8228601: AArch64: Fix interpreter code at JVMCI deoptimization entry

Reviewed-by: adinn, aph
This commit is contained in:
Pengfei Li 2019-07-31 09:52:28 +08:00
parent 8f7206a674
commit dcf57abbc1

View File

@ -514,7 +514,7 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state,
// only occur on method entry so emit it only for vtos with step 0. // only occur on method entry so emit it only for vtos with step 0.
if ((EnableJVMCI || UseAOT) && state == vtos && step == 0) { if ((EnableJVMCI || UseAOT) && state == vtos && step == 0) {
Label L; Label L;
__ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset())); __ ldrb(rscratch1, Address(rthread, JavaThread::pending_monitorenter_offset()));
__ cbz(rscratch1, L); __ cbz(rscratch1, L);
// Clear flag. // Clear flag.
__ strb(zr, Address(rthread, JavaThread::pending_monitorenter_offset())); __ strb(zr, Address(rthread, JavaThread::pending_monitorenter_offset()));
@ -525,7 +525,7 @@ address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state,
#ifdef ASSERT #ifdef ASSERT
if (EnableJVMCI) { if (EnableJVMCI) {
Label L; Label L;
__ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset())); __ ldrb(rscratch1, Address(rthread, JavaThread::pending_monitorenter_offset()));
__ cbz(rscratch1, L); __ cbz(rscratch1, L);
__ stop("unexpected pending monitor in deopt entry"); __ stop("unexpected pending monitor in deopt entry");
__ bind(L); __ bind(L);