comparison src/share/vm/runtime/vframeArray.cpp @ 2607:008adfd6d850

Fixed the stateBefore of invokes and monitorenter instructions to include the arguments of the instruction. This is necessary to ensure correct continuation in the interpreter when the stateBefore is used as a deoptimization point.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Fri, 06 May 2011 17:47:17 +0200
parents d25d4ca69222
children 5ca1332171c8
comparison
equal deleted inserted replaced
2606:f21f430a6ef2 2607:008adfd6d850
301 int bci = iframe()->interpreter_frame_bci(); 301 int bci = iframe()->interpreter_frame_bci();
302 if (use_next_mdp) ++bci; 302 if (use_next_mdp) ++bci;
303 address mdp = mdo->bci_to_dp(bci); 303 address mdp = mdo->bci_to_dp(bci);
304 iframe()->interpreter_frame_set_mdp(mdp); 304 iframe()->interpreter_frame_set_mdp(mdp);
305 } 305 }
306 }
307
308 if (TraceDeoptimization) {
309 tty->print_cr("Expressions size: %d", expressions()->size());
306 } 310 }
307 311
308 // Unpack expression stack 312 // Unpack expression stack
309 // If this is an intermediate frame (i.e. not top frame) then this 313 // If this is an intermediate frame (i.e. not top frame) then this
310 // only unpacks the part of the expression stack not used by callee 314 // only unpacks the part of the expression stack not used by callee