Mercurial > hg > truffle
comparison src/share/vm/runtime/vframeArray.cpp @ 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 | d93949c5bdcc |
children | 8d88c9ac9247 f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1813:c77e8f982901 | 1814:fd5d4527cdf5 |
---|---|
177 // | 177 // |
178 // For Compiler1, deoptimization can occur while throwing a NullPointerException at monitorenter, | 178 // For Compiler1, deoptimization can occur while throwing a NullPointerException at monitorenter, |
179 // in which case bcp should point to the monitorenter since it is within the exception's range. | 179 // in which case bcp should point to the monitorenter since it is within the exception's range. |
180 | 180 |
181 assert(*bcp != Bytecodes::_monitorenter || is_top_frame, "a _monitorenter must be a top frame"); | 181 assert(*bcp != Bytecodes::_monitorenter || is_top_frame, "a _monitorenter must be a top frame"); |
182 // TIERED Must know the compiler of the deoptee QQQ | 182 assert(thread->deopt_nmethod() != NULL, "nmethod should be known"); |
183 COMPILER2_PRESENT(guarantee(*bcp != Bytecodes::_monitorenter || exec_mode != Deoptimization::Unpack_exception, | 183 guarantee(!(thread->deopt_nmethod()->is_compiled_by_c2() && |
184 "shouldn't get exception during monitorenter");) | 184 *bcp == Bytecodes::_monitorenter && |
185 exec_mode == Deoptimization::Unpack_exception), | |
186 "shouldn't get exception during monitorenter"); | |
185 | 187 |
186 int popframe_preserved_args_size_in_bytes = 0; | 188 int popframe_preserved_args_size_in_bytes = 0; |
187 int popframe_preserved_args_size_in_words = 0; | 189 int popframe_preserved_args_size_in_words = 0; |
188 if (is_top_frame) { | 190 if (is_top_frame) { |
189 JvmtiThreadState *state = thread->jvmti_thread_state(); | 191 JvmtiThreadState *state = thread->jvmti_thread_state(); |