comparison src/cpu/x86/vm/c1_FrameMap_x86.hpp @ 2002:ac637b7220d1

6985015: C1 needs to support compressed oops Summary: This change implements compressed oops for C1 for x64 and sparc. The changes are mostly on the codegen level, with a few exceptions when we do access things outside of the heap that are uncompressed from the IR. Compressed oops are now also enabled with tiered. Reviewed-by: twisti, kvn, never, phh
author iveresov
date Tue, 30 Nov 2010 23:23:40 -0800
parents f95d63e2154a
children 8a02ca5e5576
comparison
equal deleted inserted replaced
1972:f95d63e2154a 2002:ac637b7220d1
128 static LIR_Opr caller_save_xmm_reg_at(int i) { 128 static LIR_Opr caller_save_xmm_reg_at(int i) {
129 assert(i >= 0 && i < nof_caller_save_xmm_regs, "out of bounds"); 129 assert(i >= 0 && i < nof_caller_save_xmm_regs, "out of bounds");
130 return _caller_save_xmm_regs[i]; 130 return _caller_save_xmm_regs[i];
131 } 131 }
132 132
133 static int adjust_reg_range(int range) {
134 // Reduce the number of available regs (to free r12) in case of compressed oops
135 if (UseCompressedOops) return range - 1;
136 return range;
137 }
138
139 static int nof_caller_save_cpu_regs() { return adjust_reg_range(pd_nof_caller_save_cpu_regs_frame_map); }
140 static int last_cpu_reg() { return adjust_reg_range(pd_last_cpu_reg); }
141 static int last_byte_reg() { return adjust_reg_range(pd_last_byte_reg); }
142
133 #endif // CPU_X86_VM_C1_FRAMEMAP_X86_HPP 143 #endif // CPU_X86_VM_C1_FRAMEMAP_X86_HPP
144