< prev index next >

src/cpu/x86/vm/interp_masm_x86.cpp

Print this page
rev 12121 : Use oopDesc::mark_offset_in_bytes() instead of just 0 to access object mark word in assembly.

*** 1146,1165 **** // Load immediate 1 into swap_reg %rax movl(swap_reg, (int32_t)1); // Load (object->mark() | 1) into swap_reg %rax ! orptr(swap_reg, Address(obj_reg, 0)); // Save (object->mark() | 1) into BasicLock's displaced header movptr(Address(lock_reg, mark_offset), swap_reg); assert(lock_offset == 0, "displaced header must be first word in BasicObjectLock"); if (os::is_MP()) lock(); ! cmpxchgptr(lock_reg, Address(obj_reg, 0)); if (PrintBiasedLockingStatistics) { cond_inc32(Assembler::zero, ExternalAddress((address) BiasedLocking::fast_path_entry_count_addr())); } jcc(Assembler::zero, done); --- 1146,1165 ---- // Load immediate 1 into swap_reg %rax movl(swap_reg, (int32_t)1); // Load (object->mark() | 1) into swap_reg %rax ! orptr(swap_reg, Address(obj_reg, oopDesc::mark_offset_in_bytes())); // Save (object->mark() | 1) into BasicLock's displaced header movptr(Address(lock_reg, mark_offset), swap_reg); assert(lock_offset == 0, "displaced header must be first word in BasicObjectLock"); if (os::is_MP()) lock(); ! cmpxchgptr(lock_reg, Address(obj_reg, oopDesc::mark_offset_in_bytes())); if (PrintBiasedLockingStatistics) { cond_inc32(Assembler::zero, ExternalAddress((address) BiasedLocking::fast_path_entry_count_addr())); } jcc(Assembler::zero, done);
*** 1252,1262 **** // zero for recursive case jcc(Assembler::zero, done); // Atomic swap back the old header if (os::is_MP()) lock(); ! cmpxchgptr(header_reg, Address(obj_reg, 0)); // zero for simple unlock of a stack-lock case jcc(Assembler::zero, done); // Call the runtime routine for slow case. --- 1252,1262 ---- // zero for recursive case jcc(Assembler::zero, done); // Atomic swap back the old header if (os::is_MP()) lock(); ! cmpxchgptr(header_reg, Address(obj_reg, oopDesc::mark_offset_in_bytes())); // zero for simple unlock of a stack-lock case jcc(Assembler::zero, done); // Call the runtime routine for slow case.
< prev index next >