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

java.lang.Object
  extended by org.codehaus.groovy.classgen.asm.BinaryExpressionHelper
      extended by org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher
          extended by org.codehaus.groovy.classgen.asm.sc.StaticTypesBinaryExpressionMultiTypeDispatcher
All Implemented Interfaces:
org.objectweb.asm.Opcodes

public class StaticTypesBinaryExpressionMultiTypeDispatcher
extends BinaryExpressionMultiTypeDispatcher
implements org.objectweb.asm.Opcodes

A specialized version of the multi type binary expression dispatcher which is aware of static compilation. It is able to generate optimized bytecode for some operations using JVM instructions when available.


Field Summary
 
Fields inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher
binExpWriter, typeMap, typeMapKeyNames
 
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
StaticTypesBinaryExpressionMultiTypeDispatcher(WriterController wc)
           
 
Method Summary
protected  void assignToArray(Expression parrent, Expression receiver, Expression index, Expression rhsValueLoader)
           
 void evaluateEqual(BinaryExpression expression, boolean defineVariable)
           
protected  void writePostOrPrefixMethod(int op, java.lang.String method, Expression expression, Expression orig)
           
 
Methods inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher
doPrimtiveCompare, evaluateBinaryExpression, evaluateBinaryExpressionWithAssignment, evaluateCompareExpression, getOperandType, initializeDelegateHelpers
 
Methods inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionHelper
eval, evaluatePostfixMethod, evaluatePrefixMethod, evaluateTernary, getController, getIsCaseMethod
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StaticTypesBinaryExpressionMultiTypeDispatcher

public StaticTypesBinaryExpressionMultiTypeDispatcher(WriterController wc)
Method Detail

writePostOrPrefixMethod

protected void writePostOrPrefixMethod(int op,
                                       java.lang.String method,
                                       Expression expression,
                                       Expression orig)
Overrides:
writePostOrPrefixMethod in class BinaryExpressionMultiTypeDispatcher

evaluateEqual

public void evaluateEqual(BinaryExpression expression,
                          boolean defineVariable)
Overrides:
evaluateEqual in class BinaryExpressionHelper

assignToArray

protected void assignToArray(Expression parrent,
                             Expression receiver,
                             Expression index,
                             Expression rhsValueLoader)
Overrides:
assignToArray in class BinaryExpressionMultiTypeDispatcher