--- old/src/cpu/x86/vm/c1_FrameMap_x86.hpp 2010-11-18 19:20:40.503393000 -0800 +++ new/src/cpu/x86/vm/c1_FrameMap_x86.hpp 2010-11-18 19:20:40.294031000 -0800 @@ -126,3 +126,15 @@ assert(i >= 0 && i < nof_caller_save_xmm_regs, "out of bounds"); return _caller_save_xmm_regs[i]; } + + // The amount of allocatable registers can change depending + // on whether compressed oops are on. + static int cpu_reg_range_reduction() { +#ifdef _LP64 + if (UseCompressedOops) { + // Reducing the allocatable range by 1 effectively excluding r12. + return 1; + } +#endif + return 0; + }