< 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 >