All Packages Class Hierarchy This Package Previous Next Index
java.lang.Object | +----harpoon.IR.QuadSSA.Quad | +----harpoon.IR.QuadSSA.CALL
CALL
objects represent method invocations.
The objectref
field will be null
for
static methods; the retval
field will be null
for void
methods.
It is a semantic error for the objectref
Temp
of a non-static method CALL
to be able to have the value
null
at run-time. A separate null-pointer
test should always precede the CALL
quad if
objectref
may be null at run-time. Standard java
invocation throws a NullPointerException
if the object
reference is null
.
null
for static methods.
null
for void
methods.
CALL
.
params[]
array.
CALL
is to an interface method.
CALL
uses INVOKESPECIAL
semantics.
CALL
is to a static method.
public Temp objectref
null
for static methods.
public HMethod method
public Temp params[]
public Temp retval
null
for void
methods.
public Temp retex
null
.
public boolean isSpecial
public CALL(HCodeElement source, HMethod method, Temp objectref, Temp params[], Temp retval, Temp retex, boolean isSpecial)
CALL
. params
should match
exactly the number of parameters in the method descriptor,
and retval
should be null
if the
method returns no value. objectref
should be
null
if the method is static. retex
will always be a valid Temp
. If an exception is
thrown by the called method, retex
will be assigned
a non-null value and retval
will be null. If
no exception is thrown, retex
will be null.
public Temp[] use()
public Temp[] def()
public void renameUses(TempMap tm)
public void renameDefs(TempMap tm)
public Object clone()
params[]
array.
public void visit(QuadVisitor v)
public String toString()
public boolean isInterfaceMethod()
CALL
is to an interface method.
public boolean isStatic()
CALL
is to a static method.
public boolean isSpecial()
CALL
uses INVOKESPECIAL
semantics.
All Packages Class Hierarchy This Package Previous Next Index