< prev index next >
src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
Print this page
rev 11804 : 8164113: AArch64: follow-up the fix for 8161598
Reviewed-by: duke
*** 2028,2038 ****
__ ldrb(rscratch1, Address(rscratch1, offset));
__ cbnzw(rscratch1, dtrace_method_exit);
__ bind(dtrace_method_exit_done);
}
! __ reset_last_Java_frame(false, true);
// Unpack oop result
if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
Label L;
__ cbz(r0, L);
--- 2028,2038 ----
__ ldrb(rscratch1, Address(rscratch1, offset));
__ cbnzw(rscratch1, dtrace_method_exit);
__ bind(dtrace_method_exit_done);
}
! __ reset_last_Java_frame(false);
// Unpack oop result
if (ret_type == T_OBJECT || ret_type == T_ARRAY) {
Label L;
__ cbz(r0, L);
*** 2368,2378 ****
Deoptimization::uncommon_trap)));
__ blrt(rscratch1, 2, 0, MacroAssembler::ret_type_integral);
__ bind(retaddr);
oop_maps->add_gc_map( __ pc()-start, map->deep_copy());
! __ reset_last_Java_frame(false, false);
__ b(after_fetch_unroll_info_call);
} // EnableJVMCI
#endif // INCLUDE_JVMCI
--- 2368,2378 ----
Deoptimization::uncommon_trap)));
__ blrt(rscratch1, 2, 0, MacroAssembler::ret_type_integral);
__ bind(retaddr);
oop_maps->add_gc_map( __ pc()-start, map->deep_copy());
! __ reset_last_Java_frame(false);
__ b(after_fetch_unroll_info_call);
} // EnableJVMCI
#endif // INCLUDE_JVMCI
*** 2463,2473 ****
// Need to have an oopmap that tells fetch_unroll_info where to
// find any register it might need.
oop_maps->add_gc_map(__ pc() - start, map);
! __ reset_last_Java_frame(false, true);
#if INCLUDE_JVMCI
if (EnableJVMCI) {
__ bind(after_fetch_unroll_info_call);
}
--- 2463,2473 ----
// Need to have an oopmap that tells fetch_unroll_info where to
// find any register it might need.
oop_maps->add_gc_map(__ pc() - start, map);
! __ reset_last_Java_frame(false);
#if INCLUDE_JVMCI
if (EnableJVMCI) {
__ bind(after_fetch_unroll_info_call);
}
*** 2604,2614 ****
// Use the same PC we used for the last java frame
oop_maps->add_gc_map(the_pc - start,
new OopMap( frame_size_in_words, 0 ));
// Clear fp AND pc
! __ reset_last_Java_frame(true, true);
// Collect return values
__ ldrd(v0, Address(sp, RegisterSaver::v0_offset_in_bytes()));
__ ldr(r0, Address(sp, RegisterSaver::r0_offset_in_bytes()));
// I think this is useless (throwing pc?)
--- 2604,2614 ----
// Use the same PC we used for the last java frame
oop_maps->add_gc_map(the_pc - start,
new OopMap( frame_size_in_words, 0 ));
// Clear fp AND pc
! __ reset_last_Java_frame(true);
// Collect return values
__ ldrd(v0, Address(sp, RegisterSaver::v0_offset_in_bytes()));
__ ldr(r0, Address(sp, RegisterSaver::r0_offset_in_bytes()));
// I think this is useless (throwing pc?)
*** 2707,2717 ****
// location of rfp is known implicitly by the frame sender code
oop_maps->add_gc_map(__ pc() - start, map);
! __ reset_last_Java_frame(false, true);
// move UnrollBlock* into r4
__ mov(r4, r0);
#ifdef ASSERT
--- 2707,2717 ----
// location of rfp is known implicitly by the frame sender code
oop_maps->add_gc_map(__ pc() - start, map);
! __ reset_last_Java_frame(false);
// move UnrollBlock* into r4
__ mov(r4, r0);
#ifdef ASSERT
*** 2826,2836 ****
// Set an oopmap for the call site
// Use the same PC we used for the last java frame
oop_maps->add_gc_map(the_pc - start, new OopMap(SimpleRuntimeFrame::framesize, 0));
// Clear fp AND pc
! __ reset_last_Java_frame(true, true);
// Pop self-frame.
__ leave(); // Epilog
// Jump to interpreter
--- 2826,2836 ----
// Set an oopmap for the call site
// Use the same PC we used for the last java frame
oop_maps->add_gc_map(the_pc - start, new OopMap(SimpleRuntimeFrame::framesize, 0));
// Clear fp AND pc
! __ reset_last_Java_frame(true);
// Pop self-frame.
__ leave(); // Epilog
// Jump to interpreter
*** 2904,2914 ****
oop_maps->add_gc_map( __ pc() - start, map);
Label noException;
! __ reset_last_Java_frame(false, true);
__ maybe_isb();
__ membar(Assembler::LoadLoad | Assembler::LoadStore);
__ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
--- 2904,2914 ----
oop_maps->add_gc_map( __ pc() - start, map);
Label noException;
! __ reset_last_Java_frame(false);
__ maybe_isb();
__ membar(Assembler::LoadLoad | Assembler::LoadStore);
__ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
*** 2983,2993 ****
__ maybe_isb();
// r0 contains the address we are going to jump to assuming no exception got installed
// clear last_Java_sp
! __ reset_last_Java_frame(false, true);
// check for pending exceptions
Label pending;
__ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
__ cbnz(rscratch1, pending);
--- 2983,2993 ----
__ maybe_isb();
// r0 contains the address we are going to jump to assuming no exception got installed
// clear last_Java_sp
! __ reset_last_Java_frame(false);
// check for pending exceptions
Label pending;
__ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset()));
__ cbnz(rscratch1, pending);
*** 3114,3124 ****
OopMapSet* oop_maps = new OopMapSet();
oop_maps->add_gc_map(the_pc - start, new OopMap(SimpleRuntimeFrame::framesize, 0));
! __ reset_last_Java_frame(false, true);
// Restore callee-saved registers
// rfp is an implicitly saved callee saved register (i.e. the calling
// convention will save restore it in prolog/epilog) Other than that
--- 3114,3124 ----
OopMapSet* oop_maps = new OopMapSet();
oop_maps->add_gc_map(the_pc - start, new OopMap(SimpleRuntimeFrame::framesize, 0));
! __ reset_last_Java_frame(false);
// Restore callee-saved registers
// rfp is an implicitly saved callee saved register (i.e. the calling
// convention will save restore it in prolog/epilog) Other than that
< prev index next >