< prev index next >

src/cpu/aarch64/vm/templateTable_aarch64.cpp

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

*** 3742,3751 **** --- 3742,3752 ---- __ bind(loop); // check if current entry is used // if not used then remember entry in c_rarg1 __ ldr(rscratch1, Address(c_rarg3, BasicObjectLock::obj_offset_in_bytes())); + __ shenandoah_store_addr_check(rscratch1); // Invariant oopDesc::bs()->interpreter_read_barrier(_masm, rscratch1); __ cmp(zr, rscratch1); __ csel(c_rarg1, c_rarg3, c_rarg1, Assembler::EQ); // check if current entry is for same object __ cmp(r0, rscratch1);
*** 3802,3811 **** --- 3803,3813 ---- // The object has already been poped from the stack, so the // expression stack looks correct. __ increment(rbcp); // store object + __ shenandoah_store_addr_check(r0); // Invariant __ str(r0, Address(c_rarg1, BasicObjectLock::obj_offset_in_bytes())); __ lock_object(c_rarg1); // check to make sure this monitor doesn't cause stack overflow after locking __ save_bcp(); // in case of exception
*** 3847,3856 **** --- 3849,3859 ---- __ b(entry); __ bind(loop); // check if current entry is for same object __ ldr(rscratch1, Address(c_rarg1, BasicObjectLock::obj_offset_in_bytes())); + __ shenandoah_store_addr_check(rscratch1); // Invariant oopDesc::bs()->interpreter_read_barrier(_masm, rscratch1); __ cmp(r0, rscratch1); // if same object then stop searching __ br(Assembler::EQ, found); // otherwise advance to next entry
< prev index next >