Mercurial > hg > truffle
comparison src/share/vm/runtime/thread.hpp @ 1814:fd5d4527cdf5
6986270: guarantee(*bcp != Bytecodes::_monitorenter || exec_mode != Deoptimization::Unpack_exception) fails
Summary: Propagate the compiler type of the deopting method to vframeArrayElement::unpack_on_stack()
Reviewed-by: jrose, never
author | iveresov |
---|---|
date | Tue, 21 Sep 2010 13:38:35 -0700 |
parents | f4f596978298 |
children | 0715f0cf171d |
comparison
equal
deleted
inserted
replaced
1813:c77e8f982901 | 1814:fd5d4527cdf5 |
---|---|
678 // Deopt support | 678 // Deopt support |
679 DeoptResourceMark* _deopt_mark; // Holds special ResourceMark for deoptimization | 679 DeoptResourceMark* _deopt_mark; // Holds special ResourceMark for deoptimization |
680 | 680 |
681 intptr_t* _must_deopt_id; // id of frame that needs to be deopted once we | 681 intptr_t* _must_deopt_id; // id of frame that needs to be deopted once we |
682 // transition out of native | 682 // transition out of native |
683 | 683 nmethod* _deopt_nmethod; // nmethod that is currently being deoptimized |
684 vframeArray* _vframe_array_head; // Holds the heap of the active vframeArrays | 684 vframeArray* _vframe_array_head; // Holds the heap of the active vframeArrays |
685 vframeArray* _vframe_array_last; // Holds last vFrameArray we popped | 685 vframeArray* _vframe_array_last; // Holds last vFrameArray we popped |
686 // Because deoptimization is lazy we must save jvmti requests to set locals | 686 // Because deoptimization is lazy we must save jvmti requests to set locals |
687 // in compiled frames until we deoptimize and we have an interpreter frame. | 687 // in compiled frames until we deoptimize and we have an interpreter frame. |
688 // This holds the pointer to array (yeah like there might be more than one) of | 688 // This holds the pointer to array (yeah like there might be more than one) of |
1095 DeoptResourceMark* deopt_mark(void) { return _deopt_mark; } | 1095 DeoptResourceMark* deopt_mark(void) { return _deopt_mark; } |
1096 | 1096 |
1097 intptr_t* must_deopt_id() { return _must_deopt_id; } | 1097 intptr_t* must_deopt_id() { return _must_deopt_id; } |
1098 void set_must_deopt_id(intptr_t* id) { _must_deopt_id = id; } | 1098 void set_must_deopt_id(intptr_t* id) { _must_deopt_id = id; } |
1099 void clear_must_deopt_id() { _must_deopt_id = NULL; } | 1099 void clear_must_deopt_id() { _must_deopt_id = NULL; } |
1100 | |
1101 void set_deopt_nmethod(nmethod* nm) { _deopt_nmethod = nm; } | |
1102 nmethod* deopt_nmethod() { return _deopt_nmethod; } | |
1100 | 1103 |
1101 methodOop callee_target() const { return _callee_target; } | 1104 methodOop callee_target() const { return _callee_target; } |
1102 void set_callee_target (methodOop x) { _callee_target = x; } | 1105 void set_callee_target (methodOop x) { _callee_target = x; } |
1103 | 1106 |
1104 // Oop results of vm runtime calls | 1107 // Oop results of vm runtime calls |