changeset 11376:a5429101c6bb

added interpretable implementation to node intrinsics (GRAAL-430)
author Doug Simon <doug.simon@oracle.com>
date Tue, 20 Aug 2013 15:32:36 +0200
parents 6675167d52b6
children 0fbc1e418c88
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/DynamicNewArrayNode.java
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java	Tue Aug 20 13:23:08 2013 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java	Tue Aug 20 15:32:36 2013 +0200
@@ -103,7 +103,12 @@
     }
 
     @NodeIntrinsic
-    public static native <T> T guardingNonNull(T object);
+    public static <T> T guardingNonNull(T object) {
+        if (object == null) {
+            throw new NullPointerException();
+        }
+        return object;
+    }
 
     @NodeIntrinsic
     public static native Object guardingPi(Object object, LogicNode condition, @ConstantNodeParameter boolean negateCondition, @ConstantNodeParameter DeoptimizationReason reason,
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/DynamicNewArrayNode.java	Tue Aug 20 13:23:08 2013 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/DynamicNewArrayNode.java	Tue Aug 20 15:32:36 2013 +0200
@@ -22,6 +22,8 @@
  */
 package com.oracle.graal.nodes.java;
 
+import java.lang.reflect.*;
+
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.spi.*;
@@ -61,5 +63,7 @@
     }
 
     @NodeIntrinsic
-    public static native Object newArray(Class<?> componentType, int length);
+    public static Object newArray(Class<?> componentType, int length) {
+        return Array.newInstance(componentType, length);
+    }
 }