src/cpu/x86/vm/macroAssembler_x86.cpp

changeset 6557
526acaf3626f
parent 6429
606acabe7b5c
child 6665
400709e275c1
     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 {

mercurial