< prev index next >
src/hotspot/cpu/x86/macroAssembler_x86.cpp
Print this page
*** 1752,1761 ****
--- 1752,1765 ----
testptr(tmpReg, markOopDesc::monitor_value); // inflated vs stack-locked|neutral|biased
jccb(Assembler::notZero, IsInflated);
// Attempt stack-locking ...
orptr (tmpReg, markOopDesc::unlocked_value);
+ if (EnableValhalla && !UseBiasedLocking) {
+ // Mask always_locked bit such that we go to the slow path if object is a value type
+ andptr(tmpReg, ~markOopDesc::biased_lock_bit_in_place);
+ }
movptr(Address(boxReg, 0), tmpReg); // Anticipate successful CAS
lock();
cmpxchgptr(boxReg, Address(objReg, oopDesc::mark_offset_in_bytes())); // Updates tmpReg
if (counters != NULL) {
cond_inc32(Assembler::equal,
< prev index next >