Mercurial > hg > truffle
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; } /**