changeset 16566:c82000597867

Add getInvokeKind on Invoke, add hasReceiver on InvokeKind
author Gilles Duboscq <duboscq@ssw.jku.at>
date Mon, 14 Jul 2014 14:49:00 +0200
parents 2b63e51e7789
children 164b644daa83
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/CallTargetNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/Invoke.java
diffstat 2 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/CallTargetNode.java	Mon Jul 14 14:17:33 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/CallTargetNode.java	Mon Jul 14 14:49:00 2014 +0200
@@ -35,7 +35,11 @@
         Interface,
         Special,
         Static,
-        Virtual
+        Virtual;
+
+        public boolean hasReceiver() {
+            return this != Static;
+        }
     }
 
     @Input private final NodeInputList<ValueNode> arguments;
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/Invoke.java	Mon Jul 14 14:17:33 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/Invoke.java	Mon Jul 14 14:49:00 2014 +0200
@@ -24,6 +24,7 @@
 
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.graph.*;
+import com.oracle.graal.nodes.CallTargetNode.*;
 import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.java.*;
 import com.oracle.graal.nodes.spi.*;
@@ -89,6 +90,7 @@
     }
 
     default ValueNode getReceiver() {
+        assert getInvokeKind().hasReceiver();
         return callTarget().arguments().get(0);
     }
 
@@ -99,4 +101,8 @@
         }
         return receiverType;
     }
+
+    default InvokeKind getInvokeKind() {
+        return callTarget().invokeKind();
+    }
 }