< 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 >