< prev index next >
src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp
Print this page
rev 8300 : 8079564: Use FP register as proper frame pointer in JIT compiled code on aarch64
Summary: Add support for PreserveFramePointer for debug/profile
Reviewed-by: duke
@@ -441,22 +441,12 @@
case handle_exception_id:
// Restore the registers that were saved at the beginning.
restore_live_registers(sasm, id != handle_exception_nofpu_id);
break;
case handle_exception_from_callee_id:
- // Pop the return address since we are possibly changing SP (restoring from BP).
+ // Pop the return address.
__ leave();
-
- // Restore SP from FP if the exception PC is a method handle call site.
- {
- Label nope;
- __ ldrw(rscratch1, Address(rthread, JavaThread::is_method_handle_return_offset()));
- __ cbzw(rscratch1, nope);
- __ mov(sp, rfp);
- __ bind(nope);
- }
-
__ ret(lr); // jump to exception handler
break;
default: ShouldNotReachHere();
}
@@ -512,18 +502,10 @@
__ ldp(lr, exception_oop, Address(__ post(sp, 2 * wordSize)));
__ mov(r3, lr);
__ verify_not_null_oop(exception_oop);
- {
- Label foo;
- __ ldrw(rscratch1, Address(rthread, JavaThread::is_method_handle_return_offset()));
- __ cbzw(rscratch1, foo);
- __ mov(sp, rfp);
- __ bind(foo);
- }
-
// continue at exception handler (return address removed)
// note: do *not* remove arguments when unwinding the
// activation since the caller assumes having
// all arguments on the stack when entering the
// runtime to determine the exception handler
< prev index next >