equal
deleted
inserted
replaced
512 #if INCLUDE_JVMCI |
512 #if INCLUDE_JVMCI |
513 // Check if we need to take lock at entry of synchronized method. This can |
513 // Check if we need to take lock at entry of synchronized method. This can |
514 // only occur on method entry so emit it only for vtos with step 0. |
514 // only occur on method entry so emit it only for vtos with step 0. |
515 if ((EnableJVMCI || UseAOT) && state == vtos && step == 0) { |
515 if ((EnableJVMCI || UseAOT) && state == vtos && step == 0) { |
516 Label L; |
516 Label L; |
517 __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset())); |
517 __ ldrb(rscratch1, Address(rthread, JavaThread::pending_monitorenter_offset())); |
518 __ cbz(rscratch1, L); |
518 __ cbz(rscratch1, L); |
519 // Clear flag. |
519 // Clear flag. |
520 __ strb(zr, Address(rthread, JavaThread::pending_monitorenter_offset())); |
520 __ strb(zr, Address(rthread, JavaThread::pending_monitorenter_offset())); |
521 // Take lock. |
521 // Take lock. |
522 lock_method(); |
522 lock_method(); |
523 __ bind(L); |
523 __ bind(L); |
524 } else { |
524 } else { |
525 #ifdef ASSERT |
525 #ifdef ASSERT |
526 if (EnableJVMCI) { |
526 if (EnableJVMCI) { |
527 Label L; |
527 Label L; |
528 __ ldr(rscratch1, Address(rthread, Thread::pending_exception_offset())); |
528 __ ldrb(rscratch1, Address(rthread, JavaThread::pending_monitorenter_offset())); |
529 __ cbz(rscratch1, L); |
529 __ cbz(rscratch1, L); |
530 __ stop("unexpected pending monitor in deopt entry"); |
530 __ stop("unexpected pending monitor in deopt entry"); |
531 __ bind(L); |
531 __ bind(L); |
532 } |
532 } |
533 #endif |
533 #endif |