< prev index next >

src/cpu/x86/vm/templateInterpreterGenerator_x86.cpp

Print this page
rev 12152 : [mq]: verification.patch

@@ -622,10 +622,11 @@
 
   // add space for monitor & lock
   __ subptr(rsp, entry_size); // add space for a monitor entry
   __ movptr(monitor_block_top, rsp);  // set new monitor block top
   // store object
+  __ shenandoah_store_addr_check(rax);
   __ movptr(Address(rsp, BasicObjectLock::obj_offset_in_bytes()), rax);
   const Register lockreg = NOT_LP64(rdx) LP64_ONLY(c_rarg1);
   __ movptr(lockreg, rsp); // object address
   __ lock_object(lockreg);
 }

@@ -1267,10 +1268,11 @@
 
       // monitor expect in c_rarg1 for slow unlock path
       __ lea(regmon, monitor); // address of first monitor
 
       __ movptr(t, Address(regmon, BasicObjectLock::obj_offset_in_bytes()));
+      __ shenandoah_store_addr_check(t); // Invariant
       __ testptr(t, t);
       __ jcc(Assembler::notZero, unlock);
 
       // Entry already unlocked, need to throw exception
       __ MacroAssembler::call_VM(noreg,
< prev index next >