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