Energy efficient computing is a first order design concern in portable devices. This paper describes a design approach that enables operation of a processor in various performance-energy modes. Depending on the workload and performance requirements, the processor can easily switch between these modes and save energy while still computing jobs in the required time. The proposed approach can also be used as an adaptive technique to compensate for process variation. We describe a feedback circuit to reduce power-performance spread due to process variation. We apply the adaptive technique to a 63-bit adder test circuit and show that the proposed method reduces the standard deviation of delay from 8.1% to 1.6%.