comparison src/share/vm/interpreter/bytecodeInterpreter.cpp @ 628:7bb995fbd3c0

Merge
author trims
date Thu, 12 Mar 2009 18:16:36 -0700
parents 0fbdb4381b99 98cb887364d3
children 354d3184f6b2
comparison
equal deleted inserted replaced
580:ce2272390558 628:7bb995fbd3c0
2640 if (istate->prev() == NULL) { 2640 if (istate->prev() == NULL) {
2641 // We must be returning to a deoptimized frame (because popframe only happens between 2641 // We must be returning to a deoptimized frame (because popframe only happens between
2642 // two interpreted frames). We need to save the current arguments in C heap so that 2642 // two interpreted frames). We need to save the current arguments in C heap so that
2643 // the deoptimized frame when it restarts can copy the arguments to its expression 2643 // the deoptimized frame when it restarts can copy the arguments to its expression
2644 // stack and re-execute the call. We also have to notify deoptimization that this 2644 // stack and re-execute the call. We also have to notify deoptimization that this
2645 // has occured and to pick the preerved args copy them to the deoptimized frame's 2645 // has occurred and to pick the preserved args copy them to the deoptimized frame's
2646 // java expression stack. Yuck. 2646 // java expression stack. Yuck.
2647 // 2647 //
2648 THREAD->popframe_preserve_args(in_ByteSize(METHOD->size_of_parameters() * wordSize), 2648 THREAD->popframe_preserve_args(in_ByteSize(METHOD->size_of_parameters() * wordSize),
2649 LOCALS_SLOT(METHOD->size_of_parameters() - 1)); 2649 LOCALS_SLOT(METHOD->size_of_parameters() - 1));
2650 THREAD->set_popframe_condition_bit(JavaThread::popframe_force_deopt_reexecution_bit); 2650 THREAD->set_popframe_condition_bit(JavaThread::popframe_force_deopt_reexecution_bit);