org.codehaus.groovy.classgen.asm.sc
Class StaticTypesCallSiteWriter

java.lang.Object
  extended by org.codehaus.groovy.classgen.asm.CallSiteWriter
      extended by 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_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, 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, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7
 
Constructor Summary
StaticTypesCallSiteWriter(StaticTypesWriterController controller)
           
 
Method Summary
 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 methodName, boolean safe, boolean implicitThis)
           
 void makeGroovyObjectGetPropertySite(Expression receiver, java.lang.String methodName, boolean safe, boolean implicitThis)
           
 void makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments)
           
 void makeSiteEntry()
           
 void prepareCallSite(java.lang.String message)
           
 
Methods inherited from class org.codehaus.groovy.classgen.asm.CallSiteWriter
generateCallSiteArray, getCallSites, prepareSiteAndReceiver, visitBoxedArgument
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StaticTypesCallSiteWriter

public StaticTypesCallSiteWriter(StaticTypesWriterController controller)
Method Detail

makeCallSite

public void makeCallSite(Expression receiver,
                         java.lang.String message,
                         Expression arguments,
                         boolean safe,
                         boolean implicitThis,
                         boolean callCurrent,
                         boolean callStatic)
Overrides:
makeCallSite in class CallSiteWriter

makeGetPropertySite

public void makeGetPropertySite(Expression receiver,
                                java.lang.String methodName,
                                boolean safe,
                                boolean implicitThis)
Overrides:
makeGetPropertySite in class CallSiteWriter

makeGroovyObjectGetPropertySite

public void makeGroovyObjectGetPropertySite(Expression receiver,
                                            java.lang.String methodName,
                                            boolean safe,
                                            boolean implicitThis)
Overrides:
makeGroovyObjectGetPropertySite in class CallSiteWriter

makeCallSiteArrayInitializer

public void makeCallSiteArrayInitializer()
Overrides:
makeCallSiteArrayInitializer in class CallSiteWriter

makeSiteEntry

public void makeSiteEntry()
Overrides:
makeSiteEntry in class CallSiteWriter

prepareCallSite

public void prepareCallSite(java.lang.String message)
Overrides:
prepareCallSite in class CallSiteWriter

makeSingleArgumentCall

public void makeSingleArgumentCall(Expression receiver,
                                   java.lang.String message,
                                   Expression arguments)
Overrides:
makeSingleArgumentCall in class CallSiteWriter