< prev index next >

src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp

Print this page
rev 48494 : 8195112: x86 (32 bit): implementation for Thread-local handshakes
Reviewed-by:

@@ -141,10 +141,11 @@
   return c->type() != T_OBJECT || c->as_jobject() == NULL;
 }
 
 
 LIR_Opr LIRGenerator::safepoint_poll_register() {
+  NOT_AMD64( if (SafepointMechanism::uses_thread_local_poll()) { return new_register(T_ADDRESS); } )
   return LIR_OprFact::illegalOpr;
 }
 
 
 LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,

@@ -1511,11 +1512,11 @@
 
   // add safepoint before generating condition code so it can be recomputed
   if (x->is_safepoint()) {
     // increment backedge counter if needed
     increment_backedge_counter(state_for(x, x->state_before()), x->profiled_bci());
-    __ safepoint(LIR_OprFact::illegalOpr, state_for(x, x->state_before()));
+    __ safepoint(safepoint_poll_register(), state_for(x, x->state_before()));
   }
   set_no_result(x);
 
   LIR_Opr left = xin->result();
   LIR_Opr right = yin->result();
< prev index next >