Mercurial > hg > graal-compiler
comparison src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @ 17980:0bf37f737702
8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.
Reviewed-by: twisti, kvn
author | roland |
---|---|
date | Tue, 01 Apr 2014 09:36:49 +0200 |
parents | add2caa66e7e |
children | 52b4284cb496 |
comparison
equal
deleted
inserted
replaced
17978:ad51f24671c2 | 17980:0bf37f737702 |
---|---|
150 LIR_Opr LIR_Assembler::osrBufferPointer() { | 150 LIR_Opr LIR_Assembler::osrBufferPointer() { |
151 return FrameMap::I0_opr; | 151 return FrameMap::I0_opr; |
152 } | 152 } |
153 | 153 |
154 | 154 |
155 int LIR_Assembler::initial_frame_size_in_bytes() { | 155 int LIR_Assembler::initial_frame_size_in_bytes() const { |
156 return in_bytes(frame_map()->framesize_in_bytes()); | 156 return in_bytes(frame_map()->framesize_in_bytes()); |
157 } | 157 } |
158 | 158 |
159 | 159 |
160 // inline cache check: the inline cached class is in G5_inline_cache_reg(G5); | 160 // inline cache check: the inline cached class is in G5_inline_cache_reg(G5); |
180 BlockBegin* osr_entry = compilation()->hir()->osr_entry(); | 180 BlockBegin* osr_entry = compilation()->hir()->osr_entry(); |
181 ValueStack* entry_state = osr_entry->end()->state(); | 181 ValueStack* entry_state = osr_entry->end()->state(); |
182 int number_of_locks = entry_state->locks_size(); | 182 int number_of_locks = entry_state->locks_size(); |
183 | 183 |
184 // Create a frame for the compiled activation. | 184 // Create a frame for the compiled activation. |
185 __ build_frame(initial_frame_size_in_bytes()); | 185 __ build_frame(initial_frame_size_in_bytes(), bang_size_in_bytes()); |
186 | 186 |
187 // OSR buffer is | 187 // OSR buffer is |
188 // | 188 // |
189 // locals[nlocals-1..0] | 189 // locals[nlocals-1..0] |
190 // monitors[number_of_locks-1..0] | 190 // monitors[number_of_locks-1..0] |