# HG changeset patch # User Lukas Stadler # Date 1363775561 -3600 # Node ID d6ec0c05a2a21b6e10707382bcfac1684918bd3b # Parent 7aefc149c471cfacb63a769fba00ff280086abf0 don't use Access interface in ReadNode.canonicalizeRead diff -r 7aefc149c471 -r d6ec0c05a2a2 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java --- 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; } /**