1.1 --- a/src/cpu/x86/vm/macroAssembler_x86.cpp Thu Apr 10 04:07:45 2014 -0700 1.2 +++ b/src/cpu/x86/vm/macroAssembler_x86.cpp Wed Apr 09 11:18:02 2014 -0700 1.3 @@ -1488,11 +1488,10 @@ 1.4 movl(retry_on_abort_count_Reg, RTMRetryCount); // Retry on abort 1.5 bind(L_rtm_retry); 1.6 } 1.7 - if (!UseRTMXendForLockBusy) { 1.8 - movptr(tmpReg, Address(objReg, 0)); 1.9 - testptr(tmpReg, markOopDesc::monitor_value); // inflated vs stack-locked|neutral|biased 1.10 - jcc(Assembler::notZero, IsInflated); 1.11 - } 1.12 + movptr(tmpReg, Address(objReg, 0)); 1.13 + testptr(tmpReg, markOopDesc::monitor_value); // inflated vs stack-locked|neutral|biased 1.14 + jcc(Assembler::notZero, IsInflated); 1.15 + 1.16 if (PrintPreciseRTMLockingStatistics || profile_rtm) { 1.17 Label L_noincrement; 1.18 if (RTMTotalCountIncrRate > 1) { 1.19 @@ -1512,10 +1511,7 @@ 1.20 Register abort_status_Reg = tmpReg; // status of abort is stored in RAX 1.21 if (UseRTMXendForLockBusy) { 1.22 xend(); 1.23 - movptr(tmpReg, Address(objReg, 0)); 1.24 - testptr(tmpReg, markOopDesc::monitor_value); // inflated vs stack-locked|neutral|biased 1.25 - jcc(Assembler::notZero, IsInflated); 1.26 - movptr(abort_status_Reg, 0x1); // Set the abort status to 1 (as xabort does) 1.27 + movptr(abort_status_Reg, 0x2); // Set the abort status to 2 (so we can retry) 1.28 jmp(L_decrement_retry); 1.29 } 1.30 else {