diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java @ 11258:56f1aa40e13b

made LoadHubNode be floating
author Doug Simon <doug.simon@oracle.com>
date Wed, 07 Aug 2013 18:40:05 +0200
parents 388fbd0dd4a4
children ef6915cf1e59
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java	Wed Aug 07 16:45:23 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java	Wed Aug 07 18:40:05 2013 +0200
@@ -89,7 +89,8 @@
             }
             return falseValue;
         }
-        Word objectHub = loadHub(object);
+        BeginNode anchorNode = BeginNode.anchor(StampFactory.forNodeIntrinsic());
+        Word objectHub = loadHubIntrinsic(object, getWordKind(), anchorNode);
         // if we get an exact match: succeed immediately
         ExplodeLoopNode.explodeLoop();
         for (int i = 0; i < hints.length; i++) {
@@ -117,7 +118,8 @@
             isNull.inc();
             return falseValue;
         }
-        Word objectHub = loadHub(object);
+        BeginNode anchorNode = BeginNode.anchor(StampFactory.forNodeIntrinsic());
+        Word objectHub = loadHubIntrinsic(object, getWordKind(), anchorNode);
         if (probability(LIKELY_PROBABILITY, objectHub.notEqual(exactHub))) {
             exactMiss.inc();
             return falseValue;
@@ -135,7 +137,8 @@
             isNull.inc();
             return falseValue;
         }
-        Word objectHub = loadHub(object);
+        BeginNode anchorNode = BeginNode.anchor(StampFactory.forNodeIntrinsic());
+        Word objectHub = loadHubIntrinsic(object, getWordKind(), anchorNode);
         if (probability(NOT_LIKELY_PROBABILITY, objectHub.readWord(superCheckOffset, LocationIdentity.FINAL_LOCATION).notEqual(hub))) {
             displayMiss.inc();
             return falseValue;
@@ -154,7 +157,8 @@
             isNull.inc();
             return falseValue;
         }
-        Word objectHub = loadHub(object);
+        BeginNode anchorNode = BeginNode.anchor(StampFactory.forNodeIntrinsic());
+        Word objectHub = loadHubIntrinsic(object, getWordKind(), anchorNode);
         // if we get an exact match: succeed immediately
         ExplodeLoopNode.explodeLoop();
         for (int i = 0; i < hints.length; i++) {
@@ -182,7 +186,8 @@
         }
 
         Word hub = loadWordFromObject(mirror, klassOffset());
-        Word objectHub = loadHub(object);
+        BeginNode anchorNode = BeginNode.anchor(StampFactory.forNodeIntrinsic());
+        Word objectHub = loadHubIntrinsic(object, getWordKind(), anchorNode);
         if (!checkUnknownSubType(hub, objectHub)) {
             return falseValue;
         }