public class Invoke extends ProcedureN
| Modifier and Type | Field and Description |
|---|---|
static Invoke |
invoke |
static Invoke |
invokeSpecial |
static Invoke |
invokeStatic |
static Invoke |
make |
noArgscompilerKey, compilerXKey, validateApplyKey, validateXApplyKeynameKey| Constructor and Description |
|---|
Invoke(java.lang.String name,
char kind) |
Invoke(java.lang.String name,
char kind,
Language language) |
| Modifier and Type | Method and Description |
|---|---|
void |
apply(CallContext ctx)
Call this Procedure using the explicit-CallContext-convention.
|
java.lang.Object |
applyN(java.lang.Object[] args) |
static PrimProcedure |
getStaticMethod(ClassType type,
java.lang.String name,
Expression[] args)
Deprecated.
|
static java.lang.Object |
invoke$V(java.lang.Object[] args) |
static java.lang.Object |
invokeStatic$V(java.lang.Object[] args) |
protected MethodProc |
lookupMethods(ObjectType dtype,
java.lang.Object name) |
static java.lang.Object |
make$V(java.lang.Object[] args) |
static ApplyExp |
makeInvokeStatic(ClassType type,
java.lang.String name,
Expression... args)
Return an ApplyExp that will call a method with given arguments.
|
int |
numArgs()
Return
minArgs()|(maxArgs<<12). |
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, match0, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toStringgetName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbolpublic static final Invoke invoke
public static final Invoke invokeStatic
public static final Invoke invokeSpecial
public static final Invoke make
public Invoke(java.lang.String name,
char kind)
public Invoke(java.lang.String name,
char kind,
Language language)
public static java.lang.Object invoke$V(java.lang.Object[] args)
throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object invokeStatic$V(java.lang.Object[] args)
throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object make$V(java.lang.Object[] args)
throws java.lang.Throwable
java.lang.Throwablepublic void apply(CallContext ctx) throws java.lang.Throwable
Procedurepublic java.lang.Object applyN(java.lang.Object[] args)
throws java.lang.Throwable
applyN in class ProcedureNjava.lang.Throwablepublic int numArgs()
ProcedureminArgs()|(maxArgs<<12).
We use a single virtual function to reduce the number of methods
in the system, as well as the number of virtual method table entries.
We shift by 12 so the number can normally be represented using a
sipush instruction, without requiring a constant pool entry.protected MethodProc lookupMethods(ObjectType dtype, java.lang.Object name)
public static ApplyExp makeInvokeStatic(ClassType type, java.lang.String name, Expression... args)
type - the class containing the method we want to call.name - the name of the method we want to callargs - the arguments to the callpublic static PrimProcedure getStaticMethod(ClassType type, java.lang.String name, Expression[] args)