changeset 8395:d6ec0c05a2a2

don't use Access interface in ReadNode.canonicalizeRead
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 20 Mar 2013 11:32:41 +0100
parents 7aefc149c471
children c4028b279ebd
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java
diffstat 1 files changed, 13 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java	Wed Mar 20 11:30:17 2013 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java	Wed Mar 20 11:32:41 2013 +0100
@@ -62,35 +62,35 @@
 
     @Override
     public ValueNode canonical(CanonicalizerTool tool) {
-        return canonicalizeRead(this, tool);
+        return canonicalizeRead(this, location(), object(), tool);
     }
 
-    public static ValueNode canonicalizeRead(Access read, CanonicalizerTool tool) {
+    public static ValueNode canonicalizeRead(ValueNode read, LocationNode location, ValueNode object, CanonicalizerTool tool) {
         MetaAccessProvider runtime = tool.runtime();
-        if (runtime != null && read.object() != null && read.object().isConstant()) {
-            if (read.location().locationIdentity() == LocationNode.FINAL_LOCATION && read.location().getClass() == LocationNode.class) {
-                long displacement = read.location().displacement();
-                Kind kind = read.location().getValueKind();
-                if (read.object().kind() == Kind.Object) {
-                    Object base = read.object().asConstant().asObject();
+        if (runtime != null && object != null && object.isConstant()) {
+            if (location.locationIdentity() == LocationNode.FINAL_LOCATION && location.getClass() == LocationNode.class) {
+                long displacement = location.displacement();
+                Kind kind = location.getValueKind();
+                if (object.kind() == Kind.Object) {
+                    Object base = object.asConstant().asObject();
                     if (base != null) {
                         Constant constant = tool.runtime().readUnsafeConstant(kind, base, displacement);
                         if (constant != null) {
-                            return ConstantNode.forConstant(constant, runtime, read.node().graph());
+                            return ConstantNode.forConstant(constant, runtime, read.graph());
                         }
                     }
-                } else if (read.object().kind() == Kind.Long || read.object().kind().getStackKind() == Kind.Int) {
-                    long base = read.object().asConstant().asLong();
+                } else if (object.kind() == Kind.Long || object.kind().getStackKind() == Kind.Int) {
+                    long base = object.asConstant().asLong();
                     if (base != 0L) {
                         Constant constant = tool.runtime().readUnsafeConstant(kind, null, base + displacement);
                         if (constant != null) {
-                            return ConstantNode.forConstant(constant, runtime, read.node().graph());
+                            return ConstantNode.forConstant(constant, runtime, read.graph());
                         }
                     }
                 }
             }
         }
-        return (ValueNode) read;
+        return read;
     }
 
     /**