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
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.
- Author:
- Cedric Champeau
-
Field Summary
Fields inherited from class org.codehaus.groovy.classgen.asm.CallSiteWriter
CONSTRUCTORFields 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, V22, V23, V24, V25, V9 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidfallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, String name, MethodCallerMultiAdapter adapter) voidvoidmakeCallSite(Expression receiver, String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic) voidvoidmakeGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis) voidmakeGroovyObjectGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis) voidmakeSingleArgumentCall(Expression receiver, String message, Expression arguments) voidvoidprepareCallSite(String message) Methods inherited from class org.codehaus.groovy.classgen.asm.CallSiteWriter
getCallSites, hasCallSiteUse, prepareSiteAndReceiver, visitBoxedArgument
-
Constructor Details
-
StaticTypesCallSiteWriter
-
-
Method Details
-
generateCallSiteArray
public void generateCallSiteArray()- Overrides:
generateCallSiteArrayin classCallSiteWriter
-
makeCallSite
public void makeCallSite(Expression receiver, String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic) - Overrides:
makeCallSitein classCallSiteWriter
-
makeGetPropertySite
public void makeGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis) - Overrides:
makeGetPropertySitein classCallSiteWriter
-
makeGroovyObjectGetPropertySite
public void makeGroovyObjectGetPropertySite(Expression receiver, String methodName, boolean safe, boolean implicitThis) - Overrides:
makeGroovyObjectGetPropertySitein classCallSiteWriter
-
makeCallSiteArrayInitializer
public void makeCallSiteArrayInitializer()- Overrides:
makeCallSiteArrayInitializerin classCallSiteWriter
-
makeSiteEntry
public void makeSiteEntry()- Overrides:
makeSiteEntryin classCallSiteWriter
-
prepareCallSite
- Overrides:
prepareCallSitein classCallSiteWriter
-
makeSingleArgumentCall
- Overrides:
makeSingleArgumentCallin classCallSiteWriter
-
fallbackAttributeOrPropertySite
public void fallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, String name, MethodCallerMultiAdapter adapter) - Overrides:
fallbackAttributeOrPropertySitein classCallSiteWriter
-