Class StaticTypesCallSiteWriter
java.lang.Object
org.codehaus.groovy.classgen.asm.CallSiteWriter
org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter
- All Implemented Interfaces:
org.objectweb.asm.Opcodes
public class StaticTypesCallSiteWriter extends CallSiteWriter implements org.objectweb.asm.Opcodes
A call site writer which replaces call site caching with static calls. This means that the generated code
looks more like Java code than dynamic Groovy code. Best effort is made to use JVM instructions instead of
calls to helper methods.
-
Field Summary
Fields inherited from class org.codehaus.groovy.classgen.asm.CallSiteWriter
CONSTRUCTOR
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V9
-
Constructor Summary
Constructors Constructor Description StaticTypesCallSiteWriter(StaticTypesWriterController controller)
-
Method Summary
Modifier and Type Method Description void
fallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, java.lang.String name, MethodCallerMultiAdapter adapter)
void
generateCallSiteArray()
void
makeCallSite(Expression receiver, java.lang.String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)
void
makeCallSiteArrayInitializer()
void
makeGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)
void
makeGroovyObjectGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)
void
makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments, boolean safe)
void
makeSiteEntry()
void
prepareCallSite(java.lang.String message)
Methods inherited from class org.codehaus.groovy.classgen.asm.CallSiteWriter
getCallSites, hasCallSiteUse, makeSingleArgumentCall, prepareSiteAndReceiver, visitBoxedArgument
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
StaticTypesCallSiteWriter
-
-
Method Details
-
generateCallSiteArray
public void generateCallSiteArray()- Overrides:
generateCallSiteArray
in classCallSiteWriter
-
makeCallSite
public void makeCallSite(Expression receiver, java.lang.String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)- Overrides:
makeCallSite
in classCallSiteWriter
-
makeGetPropertySite
public void makeGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)- Overrides:
makeGetPropertySite
in classCallSiteWriter
-
makeGroovyObjectGetPropertySite
public void makeGroovyObjectGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)- Overrides:
makeGroovyObjectGetPropertySite
in classCallSiteWriter
-
makeCallSiteArrayInitializer
public void makeCallSiteArrayInitializer()- Overrides:
makeCallSiteArrayInitializer
in classCallSiteWriter
-
makeSiteEntry
public void makeSiteEntry()- Overrides:
makeSiteEntry
in classCallSiteWriter
-
prepareCallSite
public void prepareCallSite(java.lang.String message)- Overrides:
prepareCallSite
in classCallSiteWriter
-
makeSingleArgumentCall
public void makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments, boolean safe)- Overrides:
makeSingleArgumentCall
in classCallSiteWriter
-
fallbackAttributeOrPropertySite
public void fallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, java.lang.String name, MethodCallerMultiAdapter adapter)- Overrides:
fallbackAttributeOrPropertySite
in classCallSiteWriter
-