Mercurial > hg > truffle
comparison src/share/vm/c1/c1_FrameMap.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 | b92c45f2bc75 |
comparison
equal
deleted
inserted
replaced
1972:f95d63e2154a | 2002:ac637b7220d1 |
---|---|
74 nof_fpu_regs = pd_nof_fpu_regs_frame_map, | 74 nof_fpu_regs = pd_nof_fpu_regs_frame_map, |
75 | 75 |
76 nof_cpu_regs_reg_alloc = pd_nof_cpu_regs_reg_alloc, | 76 nof_cpu_regs_reg_alloc = pd_nof_cpu_regs_reg_alloc, |
77 nof_fpu_regs_reg_alloc = pd_nof_fpu_regs_reg_alloc, | 77 nof_fpu_regs_reg_alloc = pd_nof_fpu_regs_reg_alloc, |
78 | 78 |
79 nof_caller_save_cpu_regs = pd_nof_caller_save_cpu_regs_frame_map, | 79 max_nof_caller_save_cpu_regs = pd_nof_caller_save_cpu_regs_frame_map, |
80 nof_caller_save_fpu_regs = pd_nof_caller_save_fpu_regs_frame_map, | 80 nof_caller_save_fpu_regs = pd_nof_caller_save_fpu_regs_frame_map, |
81 | 81 |
82 spill_slot_size_in_bytes = 4 | 82 spill_slot_size_in_bytes = 4 |
83 }; | 83 }; |
84 | 84 |
85 #ifdef TARGET_ARCH_x86 | 85 #ifdef TARGET_ARCH_x86 |
95 private: | 95 private: |
96 static bool _init_done; | 96 static bool _init_done; |
97 static Register _cpu_rnr2reg [nof_cpu_regs]; | 97 static Register _cpu_rnr2reg [nof_cpu_regs]; |
98 static int _cpu_reg2rnr [nof_cpu_regs]; | 98 static int _cpu_reg2rnr [nof_cpu_regs]; |
99 | 99 |
100 static LIR_Opr _caller_save_cpu_regs [nof_caller_save_cpu_regs]; | 100 static LIR_Opr _caller_save_cpu_regs [max_nof_caller_save_cpu_regs]; |
101 static LIR_Opr _caller_save_fpu_regs [nof_caller_save_fpu_regs]; | 101 static LIR_Opr _caller_save_fpu_regs [nof_caller_save_fpu_regs]; |
102 | 102 |
103 int _framesize; | 103 int _framesize; |
104 int _argcount; | 104 int _argcount; |
105 int _num_monitors; | 105 int _num_monitors; |
241 return sp_offset2vmreg(sp_offset_for_monitor_object(monitor_index)); | 241 return sp_offset2vmreg(sp_offset_for_monitor_object(monitor_index)); |
242 } | 242 } |
243 VMReg regname(LIR_Opr opr) const; | 243 VMReg regname(LIR_Opr opr) const; |
244 | 244 |
245 static LIR_Opr caller_save_cpu_reg_at(int i) { | 245 static LIR_Opr caller_save_cpu_reg_at(int i) { |
246 assert(i >= 0 && i < nof_caller_save_cpu_regs, "out of bounds"); | 246 assert(i >= 0 && i < max_nof_caller_save_cpu_regs, "out of bounds"); |
247 return _caller_save_cpu_regs[i]; | 247 return _caller_save_cpu_regs[i]; |
248 } | 248 } |
249 | 249 |
250 static LIR_Opr caller_save_fpu_reg_at(int i) { | 250 static LIR_Opr caller_save_fpu_reg_at(int i) { |
251 assert(i >= 0 && i < nof_caller_save_fpu_regs, "out of bounds"); | 251 assert(i >= 0 && i < nof_caller_save_fpu_regs, "out of bounds"); |