org.objectweb.asm.tree.analysis

Class DataflowInterpreter

Implemented Interfaces:
Interpreter, Opcodes

public class DataflowInterpreter
extends Object
implements Opcodes, Interpreter

An Interpreter for DataflowValue values.

Author:
Eric Bruneton

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, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP2, DUP2_X1, DUP2_X2, DUP_X1, DUP_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, 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, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IINC, ILOAD, IMUL, INEG, INSTANCEOF, 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, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, TABLESWITCH, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, V1_1, V1_2, V1_3, V1_4, V1_5

Method Summary

Value
binaryOperation(AbstractInsnNode insn, Value value1, Value value2)
Value
copyOperation(AbstractInsnNode insn, Value value)
Value
merge(Value v, Value w)
Value
naryOperation(AbstractInsnNode insn, List values)
Value
newOperation(AbstractInsnNode insn)
Value
newValue(Type type)
Value
ternaryOperation(AbstractInsnNode insn, Value value1, Value value2, Value value3)
Value
unaryOperation(AbstractInsnNode insn, Value value)

Method Details

binaryOperation

public Value binaryOperation(AbstractInsnNode insn,
                             Value value1,
                             Value value2)
Specified by:
binaryOperation in interface Interpreter


copyOperation

public Value copyOperation(AbstractInsnNode insn,
                           Value value)
Specified by:
copyOperation in interface Interpreter


merge

public Value merge(Value v,
                   Value w)
Specified by:
merge in interface Interpreter


naryOperation

public Value naryOperation(AbstractInsnNode insn,
                           List values)
Specified by:
naryOperation in interface Interpreter


newOperation

public Value newOperation(AbstractInsnNode insn)
Specified by:
newOperation in interface Interpreter


newValue

public Value newValue(Type type)
Specified by:
newValue in interface Interpreter


ternaryOperation

public Value ternaryOperation(AbstractInsnNode insn,
                              Value value1,
                              Value value2,
                              Value value3)
Specified by:
ternaryOperation in interface Interpreter


unaryOperation

public Value unaryOperation(AbstractInsnNode insn,
                            Value value)
Specified by:
unaryOperation in interface Interpreter