< prev index next >

src/hotspot/share/opto/macro.cpp

Print this page

        

@@ -2707,25 +2707,17 @@
 
   float unlikely  = PROB_UNLIKELY(0.999);
   float likely  = PROB_LIKELY(0.999);
   const Type* in_val_maybe_null_t = _igvn.type(in_val);
 
-  Node* bad_mask = NULL;
-  Node* good_mask = NULL;
 #ifdef SPARC
-  bad_mask = _igvn.transform(new AddrBadBitNode());
+  Node* bad_mask = _igvn.transform(new AddrBadBitNode());
 #else
-  if (C->directive()->UseR15TestInLoadBarrierOption) {
     Node* jthread = _igvn.transform(new ThreadLocalNode());
     Node* adr = basic_plus_adr(jthread, in_bytes(JavaThread::zaddress_bad_mask_offset()));
-    bad_mask = _igvn.transform(LoadNode::make(_igvn, in_ctrl, in_mem, adr, TypeRawPtr::BOTTOM, TypeX_X, TypeX_X->basic_type(), MemNode::unordered));
-  } else {
-    bad_mask = _igvn.transform(LoadNode::make(_igvn, in_ctrl, in_mem, makecon(TypeRawPtr::make((address)addr_bad_bit)),
-                                                  TypeRawPtr::BOTTOM, TypeX_X, TypeX_X->basic_type(), MemNode::unordered));
-  }
+  Node* bad_mask = _igvn.transform(LoadNode::make(_igvn, in_ctrl, in_mem, adr, TypeRawPtr::BOTTOM, TypeX_X, TypeX_X->basic_type(), MemNode::unordered));
 #endif
-
   Node* cast = _igvn.transform(new CastP2XNode(in_ctrl, in_val));
   Node* obj_masked = _igvn.transform(new AndXNode(cast, bad_mask));
   Node* cmp = _igvn.transform(new CmpXNode(obj_masked, _igvn.zerocon(TypeX_X->basic_type())));
   Node *bol = _igvn.transform(new BoolNode(cmp, BoolTest::ne))->as_Bool();
   IfNode* iff = _igvn.transform(new IfNode(in_ctrl, bol, unlikely, COUNT_UNKNOWN))->as_If();

@@ -2818,20 +2810,13 @@
 
     float unlikely  = PROB_UNLIKELY(0.999);
     float likely    = PROB_LIKELY(0.999);
     const Type* in_val_not_null_t = _igvn.type(in_val);
 
-    Node* bad_mask = NULL;
-    if (C->directive()->UseR15TestInLoadBarrierOption) {
       Node* jthread = _igvn.transform(new ThreadLocalNode());
       Node* adr = basic_plus_adr(jthread, in_bytes(JavaThread::zaddress_bad_mask_offset()));
-      bad_mask = _igvn.transform(LoadNode::make(_igvn, in_ctrl, in_mem, adr, TypeRawPtr::BOTTOM, TypeX_X, TypeX_X->basic_type(), MemNode::unordered));
-    } else {
-      bad_mask = _igvn.transform(LoadNode::make(_igvn, in_ctrl, in_mem, makecon(TypeRawPtr::make((address)addr_bad_bit)),
-                                                TypeRawPtr::BOTTOM, TypeX_X, TypeX_X->basic_type(), MemNode::unordered));
-    }
-
+    Node* bad_mask = _igvn.transform(LoadNode::make(_igvn, in_ctrl, in_mem, adr, TypeRawPtr::BOTTOM, TypeX_X, TypeX_X->basic_type(), MemNode::unordered));
     Node* cast = _igvn.transform(new CastP2XNode(in_ctrl, in_val));
     Node* obj_masked = _igvn.transform(new AndXNode(cast, bad_mask));
     Node* cmp = _igvn.transform(new CmpXNode(obj_masked, _igvn.zerocon(TypeX_X->basic_type())));
     Node *bol = _igvn.transform(new BoolNode(cmp, BoolTest::ne))->as_Bool();
     IfNode* iff = _igvn.transform(new IfNode(in_ctrl, bol, unlikely, COUNT_UNKNOWN))->as_If();
< prev index next >