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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidfallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, java.lang.String name, MethodCallerMultiAdapter adapter)voidgenerateCallSiteArray()voidmakeCallSite(Expression receiver, java.lang.String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)voidmakeCallSiteArrayInitializer()voidmakeGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)voidmakeGroovyObjectGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)voidmakeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments)voidmakeSiteEntry()voidprepareCallSite(java.lang.String message)-
Methods inherited from class org.codehaus.groovy.classgen.asm.CallSiteWriter
getCallSites, hasCallSiteUse, prepareSiteAndReceiver, visitBoxedArgument
-
-
-
-
Constructor Detail
-
StaticTypesCallSiteWriter
public StaticTypesCallSiteWriter(StaticTypesWriterController controller)
-
-
Method Detail
-
generateCallSiteArray
public void generateCallSiteArray()
- Overrides:
generateCallSiteArrayin classCallSiteWriter
-
makeCallSite
public void makeCallSite(Expression receiver, java.lang.String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)
- Overrides:
makeCallSitein classCallSiteWriter
-
makeGetPropertySite
public void makeGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)
- Overrides:
makeGetPropertySitein classCallSiteWriter
-
makeGroovyObjectGetPropertySite
public void makeGroovyObjectGetPropertySite(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)
- Overrides:
makeGroovyObjectGetPropertySitein classCallSiteWriter
-
makeCallSiteArrayInitializer
public void makeCallSiteArrayInitializer()
- Overrides:
makeCallSiteArrayInitializerin classCallSiteWriter
-
makeSiteEntry
public void makeSiteEntry()
- Overrides:
makeSiteEntryin classCallSiteWriter
-
prepareCallSite
public void prepareCallSite(java.lang.String message)
- Overrides:
prepareCallSitein classCallSiteWriter
-
makeSingleArgumentCall
public void makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments)
- Overrides:
makeSingleArgumentCallin classCallSiteWriter
-
fallbackAttributeOrPropertySite
public void fallbackAttributeOrPropertySite(PropertyExpression expression, Expression objectExpression, java.lang.String name, MethodCallerMultiAdapter adapter)
- Overrides:
fallbackAttributeOrPropertySitein classCallSiteWriter
-
-