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