diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNmethod.java @ 10577:9c7d9e2c8326

PTX kernel execution - no args or return value
author Morris Meyer <morris.meyer@oracle.com>
date Sat, 29 Jun 2013 21:29:34 -0400
parents 40b8c383bc31
children 63d0eaa9b25d
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNmethod.java	Sat Jun 29 11:40:52 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNmethod.java	Sat Jun 29 21:29:34 2013 -0400
@@ -45,17 +45,30 @@
 
     private final HotSpotResolvedJavaMethod method;
     private final boolean isDefault;
+    private final boolean isExternal;
     private final Graph graph;
 
     public HotSpotNmethod(HotSpotResolvedJavaMethod method, boolean isDefault, Graph graph) {
         this.method = method;
         this.isDefault = isDefault;
+        this.isExternal = false;
+        this.graph = graph;
+    }
+
+    public HotSpotNmethod(HotSpotResolvedJavaMethod method, boolean isDefault, boolean isExternal, Graph graph) {
+        this.method = method;
+        this.isDefault = isDefault;
+        this.isExternal = isExternal;
         this.graph = graph;
     }
 
     public boolean isDefault() {
         return isDefault;
     }
+  
+    public boolean isExternal() {
+        return isExternal;
+    }
 
     public Graph getGraph() {
         return graph;
@@ -107,7 +120,11 @@
     @Override
     public Object executeVarargs(Object... args) throws InvalidInstalledCodeException {
         assert checkArgs(args);
-        return graalRuntime().getCompilerToVM().executeCompiledMethodVarargs(args, this);
+        if (isExternal()) {
+            return graalRuntime().getCompilerToGPU().executeExternalMethodVarargs(args, this);
+        } else {
+            return graalRuntime().getCompilerToVM().executeCompiledMethodVarargs(args, this);
+        }
     }
 
     @Override