# HG changeset patch # User Doug Simon # Date 1342087467 -7200 # Node ID ec65d0d0c873d291e6c3b545f6152e0f7d3ef036 # Parent 0cd337450409afda00b523bd542d552bc3ebb415 moved HIR lowering of Invokes into HotspotRuntime diff -r 0cd337450409 -r ec65d0d0c873 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu Jul 12 11:55:03 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu Jul 12 12:04:27 2012 +0200 @@ -231,6 +231,14 @@ ArrayLengthNode arrayLengthNode = (ArrayLengthNode) n; SafeReadNode safeReadArrayLength = safeReadArrayLength(arrayLengthNode.array(), StructuredGraph.INVALID_GRAPH_ID); graph.replaceFixedWithFixed(arrayLengthNode, safeReadArrayLength); + } else if (n instanceof Invoke) { + Invoke invoke = (Invoke) n; + MethodCallTargetNode callTarget = invoke.callTarget(); + NodeInputList parameters = callTarget.arguments(); + ValueNode firstParam = parameters.size() <= 0 ? null : parameters.get(0); + if (!callTarget.isStatic() && firstParam.kind() == Kind.Object && !firstParam.objectStamp().nonNull()) { + invoke.node().dependencies().add(tool.createNullCheckGuard(firstParam, invoke.leafGraphId())); + } } else if (n instanceof LoadFieldNode) { LoadFieldNode field = (LoadFieldNode) n; int displacement = ((HotSpotResolvedJavaField) field.field()).offset(); diff -r 0cd337450409 -r ec65d0d0c873 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jul 12 11:55:03 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jul 12 12:04:27 2012 +0200 @@ -97,11 +97,7 @@ @Override public void lower(LoweringTool tool) { - NodeInputList parameters = callTarget.arguments(); - ValueNode firstParam = parameters.size() <= 0 ? null : parameters.get(0); - if (!callTarget.isStatic() && firstParam.kind() == Kind.Object && !firstParam.objectStamp().nonNull()) { - dependencies().add(tool.createNullCheckGuard(firstParam, leafGraphId)); - } + tool.getRuntime().lower(this, tool); } @Override diff -r 0cd337450409 -r ec65d0d0c873 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Thu Jul 12 11:55:03 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Thu Jul 12 12:04:27 2012 +0200 @@ -128,11 +128,7 @@ @Override public void lower(LoweringTool tool) { - NodeInputList parameters = callTarget.arguments(); - ValueNode firstParam = parameters.size() <= 0 ? null : parameters.get(0); - if (!callTarget.isStatic() && firstParam.kind() == Kind.Object && !firstParam.objectStamp().nonNull()) { - dependencies().add(tool.createNullCheckGuard(firstParam, leafGraphId)); - } + tool.getRuntime().lower(this, tool); } @Override