# HG changeset patch # User Gilles Duboscq # Date 1405342140 -7200 # Node ID c82000597867aa58abb294325d6b84673ef0669e # Parent 2b63e51e778929204138720e5595f148c8f300e9 Add getInvokeKind on Invoke, add hasReceiver on InvokeKind diff -r 2b63e51e7789 -r c82000597867 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/CallTargetNode.java --- 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 arguments; diff -r 2b63e51e7789 -r c82000597867 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/Invoke.java --- 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(); + } }