Mercurial > hg > truffle
comparison src/share/vm/interpreter/bytecodeInterpreter.cpp @ 614:3db67f76d308
Merge
author | acorn |
---|---|
date | Thu, 05 Mar 2009 22:07:29 -0500 |
parents | 98cb887364d3 |
children | 7bb995fbd3c0 |
comparison
equal
deleted
inserted
replaced
613:5caef2219893 | 614:3db67f76d308 |
---|---|
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); |