< prev index next >

src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp

Print this page

        

*** 211,233 **** address entry = __ pc(); __ restore_bcp(); __ restore_locals(); __ restore_constant_pool_cache(); __ get_method(rmethod); - - // handle exceptions - { - Label L; - __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset())); - __ cbz(rscratch1, L); - __ call_VM(noreg, - CAST_FROM_FN_PTR(address, - InterpreterRuntime::throw_pending_exception)); - __ should_not_reach_here(); - __ bind(L); - } - __ get_dispatch(); // Calculate stack limit __ ldr(rscratch1, Address(rmethod, Method::const_offset())); __ ldrh(rscratch1, Address(rscratch1, ConstMethod::max_stack_offset())); --- 211,220 ----
*** 241,250 **** --- 228,249 ---- // Restore expression stack pointer __ ldr(esp, Address(rfp, frame::interpreter_frame_last_sp_offset * wordSize)); // NULL last_sp until next java call __ str(zr, Address(rfp, frame::interpreter_frame_last_sp_offset * wordSize)); + // handle exceptions + { + Label L; + __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset())); + __ cbz(rscratch1, L); + __ call_VM(noreg, + CAST_FROM_FN_PTR(address, + InterpreterRuntime::throw_pending_exception)); + __ should_not_reach_here(); + __ bind(L); + } + __ dispatch_next(state, step); return entry; }
< prev index next >