< prev index next >

src/cpu/aarch64/vm/templateInterpreterGenerator_aarch64.cpp

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

@@ -772,10 +772,11 @@
   __ sub(sp, sp, entry_size); // add space for a monitor entry
   __ sub(esp, esp, entry_size);
   __ mov(rscratch1, esp);
   __ str(rscratch1, monitor_block_top);  // set new monitor block top
   // store object
+  __ shenandoah_store_addr_check(r0);
   __ str(r0, Address(esp, BasicObjectLock::obj_offset_in_bytes()));
   __ mov(c_rarg1, esp); // object address
   __ lock_object(c_rarg1);
 }
 

@@ -1438,10 +1439,11 @@
       __ lea (c_rarg1, Address(rfp,   // address of first monitor
                                (intptr_t)(frame::interpreter_frame_initial_sp_offset *
                                           wordSize - sizeof(BasicObjectLock))));
 
       __ ldr(t, Address(c_rarg1, BasicObjectLock::obj_offset_in_bytes()));
+      __ shenandoah_store_addr_check(t); // Invariant
       __ cbnz(t, unlock);
 
       // Entry already unlocked, need to throw exception
       __ MacroAssembler::call_VM(noreg,
                                  CAST_FROM_FN_PTR(address,
< prev index next >