< prev index next >

src/hotspot/cpu/x86/jniFastGetField_x86_32.cpp

Print this page

        

@@ -73,19 +73,15 @@
 
   ExternalAddress counter(SafepointSynchronize::safepoint_counter_addr());
   __ mov32 (rcx, counter);
   __ testb (rcx, 1);
   __ jcc (Assembler::notZero, slow);
-  if (os::is_MP()) {
     __ mov(rax, rcx);
     __ andptr(rax, 1);                         // rax, must end up 0
     __ movptr(rdx, Address(rsp, rax, Address::times_1, 2*wordSize));
                                               // obj, notice rax, is 0.
                                               // rdx is data dependent on rcx.
-  } else {
-    __ movptr (rdx, Address(rsp, 2*wordSize));  // obj
-  }
   __ movptr(rax, Address(rsp, 3*wordSize));  // jfieldID
 
   __ clear_jweak_tag(rdx);
 
   __ movptr(rdx, Address(rdx, 0));           // *obj

@@ -101,21 +97,17 @@
     case T_INT:     __ movl   (rax, Address(rdx, rax, Address::times_1)); break;
     default:        ShouldNotReachHere();
   }
 
   Address ca1;
-  if (os::is_MP()) {
     __ lea(rdx, counter);
     __ xorptr(rdx, rax);
     __ xorptr(rdx, rax);
     __ cmp32(rcx, Address(rdx, 0));
     // ca1 is the same as ca because
     // rax, ^ counter_addr ^ rax, = address
     // ca1 is data dependent on rax,.
-  } else {
-    __ cmp32(rcx, counter);
-  }
   __ jcc (Assembler::notEqual, slow);
 
 #ifndef _WINDOWS
   __ ret (0);
 #else

@@ -193,19 +185,15 @@
 
   __ push  (rsi);
   __ mov32 (rcx, counter);
   __ testb (rcx, 1);
   __ jcc (Assembler::notZero, slow);
-  if (os::is_MP()) {
     __ mov(rax, rcx);
     __ andptr(rax, 1);                         // rax, must end up 0
     __ movptr(rdx, Address(rsp, rax, Address::times_1, 3*wordSize));
                                               // obj, notice rax, is 0.
                                               // rdx is data dependent on rcx.
-  } else {
-    __ movptr(rdx, Address(rsp, 3*wordSize));  // obj
-  }
   __ movptr(rsi, Address(rsp, 4*wordSize));  // jfieldID
 
   __ clear_jweak_tag(rdx);
 
   __ movptr(rdx, Address(rdx, 0));           // *obj

@@ -217,23 +205,19 @@
 #ifndef _LP64
   speculative_load_pclist[count] = __ pc();
   __ movl(rdx, Address(rdx, rsi, Address::times_1, 4));
 #endif // _LP64
 
-  if (os::is_MP()) {
     __ lea(rsi, counter);
     __ xorptr(rsi, rdx);
     __ xorptr(rsi, rax);
     __ xorptr(rsi, rdx);
     __ xorptr(rsi, rax);
     __ cmp32(rcx, Address(rsi, 0));
     // ca1 is the same as ca because
     // rax, ^ rdx ^ counter_addr ^ rax, ^ rdx = address
     // ca1 is data dependent on both rax, and rdx.
-  } else {
-    __ cmp32(rcx, counter);
-  }
   __ jcc (Assembler::notEqual, slow);
 
   __ pop (rsi);
 
 #ifndef _WINDOWS

@@ -285,19 +269,15 @@
   ExternalAddress counter(SafepointSynchronize::safepoint_counter_addr());
 
   __ mov32 (rcx, counter);
   __ testb (rcx, 1);
   __ jcc (Assembler::notZero, slow);
-  if (os::is_MP()) {
     __ mov(rax, rcx);
     __ andptr(rax, 1);                         // rax, must end up 0
     __ movptr(rdx, Address(rsp, rax, Address::times_1, 2*wordSize));
                                               // obj, notice rax, is 0.
                                               // rdx is data dependent on rcx.
-  } else {
-    __ movptr(rdx, Address(rsp, 2*wordSize)); // obj
-  }
   __ movptr(rax, Address(rsp, 3*wordSize));  // jfieldID
 
   __ clear_jweak_tag(rdx);
 
   __ movptr(rdx, Address(rdx, 0));           // *obj

@@ -315,24 +295,20 @@
 #endif // _LP64
     default:       ShouldNotReachHere();
   }
 
   Address ca1;
-  if (os::is_MP()) {
     __ fst_s (Address(rsp, -4));
     __ lea(rdx, counter);
     __ movl (rax, Address(rsp, -4));
     // garbage hi-order bits on 64bit are harmless.
     __ xorptr(rdx, rax);
     __ xorptr(rdx, rax);
     __ cmp32(rcx, Address(rdx, 0));
                                           // rax, ^ counter_addr ^ rax, = address
                                           // ca1 is data dependent on the field
                                           // access.
-  } else {
-    __ cmp32(rcx, counter);
-  }
   __ jcc (Assembler::notEqual, slow_with_pop);
 
 #ifndef _WINDOWS
   __ ret (0);
 #else
< prev index next >