Recent work has shown that architectural isolation can be violated through software side channel attacks that exploit microarchitectural performance optimizations such as speculation to leak secrets. While turning off microarchitectural optimizations can preclude some classes of attacks, we argue that performance and security do not have be in conflict, provided processors are designed with security in mind.We advocate designing processors to support enclaves, which are processes with an associated security policy, and espouse a principled hardware/software co-design approach to eliminating entire attack surfaces relevant to the security policy through microarchitectural isolation, rather than plugging attack-specific privacy leaks. As a case study of this approach, we describe both in-order and speculative processor designs that offer strong provable isolation of software modules running concurrently and sharing resources, even when large parts of the operating system are compromised. Open-source implementations of these processors will allow security properties to be independently verified. Finally, we describe the current limitations of this approach and future opportunities for research.