src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp

src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp

Print this page
rev 6086 : 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:

*** 150,160 **** LIR_Opr LIR_Assembler::osrBufferPointer() { return FrameMap::I0_opr; } ! int LIR_Assembler::initial_frame_size_in_bytes() { return in_bytes(frame_map()->framesize_in_bytes()); } // inline cache check: the inline cached class is in G5_inline_cache_reg(G5); --- 150,160 ---- LIR_Opr LIR_Assembler::osrBufferPointer() { return FrameMap::I0_opr; } ! int LIR_Assembler::initial_frame_size_in_bytes() const { return in_bytes(frame_map()->framesize_in_bytes()); } // inline cache check: the inline cached class is in G5_inline_cache_reg(G5);
*** 180,190 **** BlockBegin* osr_entry = compilation()->hir()->osr_entry(); ValueStack* entry_state = osr_entry->end()->state(); int number_of_locks = entry_state->locks_size(); // Create a frame for the compiled activation. ! __ build_frame(initial_frame_size_in_bytes()); // OSR buffer is // // locals[nlocals-1..0] // monitors[number_of_locks-1..0] --- 180,190 ---- BlockBegin* osr_entry = compilation()->hir()->osr_entry(); ValueStack* entry_state = osr_entry->end()->state(); int number_of_locks = entry_state->locks_size(); // Create a frame for the compiled activation. ! __ build_frame(initial_frame_size_in_bytes(), bang_size_in_bytes()); // OSR buffer is // // locals[nlocals-1..0] // monitors[number_of_locks-1..0]
src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File