mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
8161598: Kitchensink fails: assert(nm->insts_contains(original_pc)) failed: original PC must be in nmethod/CompiledMethod
Skip unwalkable frames in Reviewed-by: fparain, coleenp, aph
This commit is contained in:
parent
72dcc9193e
commit
6e820bb025
20 changed files with 77 additions and 76 deletions
|
@ -1330,7 +1330,7 @@ static void check_needs_gc_for_critical_native(MacroAssembler* masm,
|
|||
__ increment(rsp, wordSize);
|
||||
|
||||
__ get_thread(thread);
|
||||
__ reset_last_Java_frame(thread, false, true);
|
||||
__ reset_last_Java_frame(thread, false);
|
||||
|
||||
save_or_restore_arguments(masm, stack_slots, total_in_args,
|
||||
arg_save_area, NULL, in_regs, in_sig_bt);
|
||||
|
@ -2224,7 +2224,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
|
|||
|
||||
// We can finally stop using that last_Java_frame we setup ages ago
|
||||
|
||||
__ reset_last_Java_frame(thread, false, true);
|
||||
__ reset_last_Java_frame(thread, false);
|
||||
|
||||
// Unpack oop result
|
||||
if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
|
||||
|
@ -2553,7 +2553,7 @@ void SharedRuntime::generate_deopt_blob() {
|
|||
__ pop(rcx);
|
||||
|
||||
__ get_thread(rcx);
|
||||
__ reset_last_Java_frame(rcx, false, false);
|
||||
__ reset_last_Java_frame(rcx, false);
|
||||
|
||||
// Load UnrollBlock into EDI
|
||||
__ mov(rdi, rax);
|
||||
|
@ -2702,7 +2702,7 @@ void SharedRuntime::generate_deopt_blob() {
|
|||
__ push(rax);
|
||||
|
||||
__ get_thread(rcx);
|
||||
__ reset_last_Java_frame(rcx, false, false);
|
||||
__ reset_last_Java_frame(rcx, false);
|
||||
|
||||
// Collect return values
|
||||
__ movptr(rax,Address(rsp, (RegisterSaver::raxOffset() + additional_words + 1)*wordSize));
|
||||
|
@ -2806,7 +2806,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {
|
|||
|
||||
__ get_thread(rcx);
|
||||
|
||||
__ reset_last_Java_frame(rcx, false, false);
|
||||
__ reset_last_Java_frame(rcx, false);
|
||||
|
||||
// Load UnrollBlock into EDI
|
||||
__ movptr(rdi, rax);
|
||||
|
@ -2912,7 +2912,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {
|
|||
oop_maps->add_gc_map( __ pc()-start, new OopMap( framesize, 0 ) );
|
||||
|
||||
__ get_thread(rdi);
|
||||
__ reset_last_Java_frame(rdi, true, false);
|
||||
__ reset_last_Java_frame(rdi, true);
|
||||
|
||||
// Pop self-frame.
|
||||
__ leave(); // Epilog!
|
||||
|
@ -3007,7 +3007,7 @@ SafepointBlob* SharedRuntime::generate_handler_blob(address call_ptr, int poll_t
|
|||
|
||||
// Clear last_Java_sp again
|
||||
__ get_thread(java_thread);
|
||||
__ reset_last_Java_frame(java_thread, false, false);
|
||||
__ reset_last_Java_frame(java_thread, false);
|
||||
|
||||
__ cmpptr(Address(java_thread, Thread::pending_exception_offset()), (int32_t)NULL_WORD);
|
||||
__ jcc(Assembler::equal, noException);
|
||||
|
@ -3082,7 +3082,7 @@ RuntimeStub* SharedRuntime::generate_resolve_blob(address destination, const cha
|
|||
__ addptr(rsp, wordSize);
|
||||
|
||||
// clear last_Java_sp
|
||||
__ reset_last_Java_frame(thread, true, false);
|
||||
__ reset_last_Java_frame(thread, true);
|
||||
// check for pending exceptions
|
||||
Label pending;
|
||||
__ cmpptr(Address(thread, Thread::pending_exception_offset()), (int32_t)NULL_WORD);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue