Enum JVMInstr
- java.lang.Object
-
- java.lang.Enum<JVMInstr>
-
- org.benf.cfr.reader.bytecode.opcode.JVMInstr
-
-
Enum Constant Summary
-
Field Summary
Fields Modifier and Type Field Description private int
bytes
private OperationFactory
handler
private java.lang.String
name
private boolean
noThrow
private int
opcode
private static java.util.Map<java.lang.Integer,JVMInstr>
opcodeLookup
private RawJavaType
rawJavaType
private StackTypes
stackPopped
private StackTypes
stackPushed
-
Constructor Summary
Constructors Modifier Constructor Description private
JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType)
private
JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType, boolean noThrow)
private
JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType, OperationFactory handler)
private
JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType, OperationFactory handler, boolean noThrow)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Op01WithProcessedDataAndByteJumps
createOperation(ByteData bd, ConstantPool cp, int offset)
static JVMInstr
find(int opcode)
java.lang.String
getName()
int
getOpcode()
RawJavaType
getRawJavaType()
protected int
getRawLength()
StackTypes
getRawStackPopped()
StackTypes
getRawStackPushed()
StackDelta
getStackDelta(byte[] data, ConstantPoolEntry[] constantPoolEntries, StackSim stackSim, Method method)
static boolean
isAStore(JVMInstr instr)
boolean
isNoThrow()
static JVMInstr
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static JVMInstr[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
AALOAD
public static final JVMInstr AALOAD
-
AASTORE
public static final JVMInstr AASTORE
-
ACONST_NULL
public static final JVMInstr ACONST_NULL
-
ALOAD
public static final JVMInstr ALOAD
-
ALOAD_WIDE
public static final JVMInstr ALOAD_WIDE
-
ALOAD_0
public static final JVMInstr ALOAD_0
-
ALOAD_1
public static final JVMInstr ALOAD_1
-
ALOAD_2
public static final JVMInstr ALOAD_2
-
ALOAD_3
public static final JVMInstr ALOAD_3
-
ANEWARRAY
public static final JVMInstr ANEWARRAY
-
ARETURN
public static final JVMInstr ARETURN
-
ARRAYLENGTH
public static final JVMInstr ARRAYLENGTH
-
ASTORE
public static final JVMInstr ASTORE
-
ASTORE_WIDE
public static final JVMInstr ASTORE_WIDE
-
ASTORE_0
public static final JVMInstr ASTORE_0
-
ASTORE_1
public static final JVMInstr ASTORE_1
-
ASTORE_2
public static final JVMInstr ASTORE_2
-
ASTORE_3
public static final JVMInstr ASTORE_3
-
ATHROW
public static final JVMInstr ATHROW
-
BALOAD
public static final JVMInstr BALOAD
-
BASTORE
public static final JVMInstr BASTORE
-
BIPUSH
public static final JVMInstr BIPUSH
-
CALOAD
public static final JVMInstr CALOAD
-
CASTORE
public static final JVMInstr CASTORE
-
CHECKCAST
public static final JVMInstr CHECKCAST
-
D2F
public static final JVMInstr D2F
-
D2I
public static final JVMInstr D2I
-
D2L
public static final JVMInstr D2L
-
DADD
public static final JVMInstr DADD
-
DALOAD
public static final JVMInstr DALOAD
-
DASTORE
public static final JVMInstr DASTORE
-
DCMPG
public static final JVMInstr DCMPG
-
DCMPL
public static final JVMInstr DCMPL
-
DCONST_0
public static final JVMInstr DCONST_0
-
DCONST_1
public static final JVMInstr DCONST_1
-
DDIV
public static final JVMInstr DDIV
-
DLOAD
public static final JVMInstr DLOAD
-
DLOAD_WIDE
public static final JVMInstr DLOAD_WIDE
-
DLOAD_0
public static final JVMInstr DLOAD_0
-
DLOAD_1
public static final JVMInstr DLOAD_1
-
DLOAD_2
public static final JVMInstr DLOAD_2
-
DLOAD_3
public static final JVMInstr DLOAD_3
-
DMUL
public static final JVMInstr DMUL
-
DNEG
public static final JVMInstr DNEG
-
DREM
public static final JVMInstr DREM
-
DRETURN
public static final JVMInstr DRETURN
-
DSTORE
public static final JVMInstr DSTORE
-
DSTORE_WIDE
public static final JVMInstr DSTORE_WIDE
-
DSTORE_0
public static final JVMInstr DSTORE_0
-
DSTORE_1
public static final JVMInstr DSTORE_1
-
DSTORE_2
public static final JVMInstr DSTORE_2
-
DSTORE_3
public static final JVMInstr DSTORE_3
-
DSUB
public static final JVMInstr DSUB
-
DUP
public static final JVMInstr DUP
-
DUP_X1
public static final JVMInstr DUP_X1
-
DUP_X2
public static final JVMInstr DUP_X2
-
DUP2
public static final JVMInstr DUP2
-
DUP2_X1
public static final JVMInstr DUP2_X1
-
DUP2_X2
public static final JVMInstr DUP2_X2
-
F2D
public static final JVMInstr F2D
-
F2I
public static final JVMInstr F2I
-
F2L
public static final JVMInstr F2L
-
FADD
public static final JVMInstr FADD
-
FALOAD
public static final JVMInstr FALOAD
-
FASTORE
public static final JVMInstr FASTORE
-
FCMPG
public static final JVMInstr FCMPG
-
FCMPL
public static final JVMInstr FCMPL
-
FCONST_0
public static final JVMInstr FCONST_0
-
FCONST_1
public static final JVMInstr FCONST_1
-
FCONST_2
public static final JVMInstr FCONST_2
-
FDIV
public static final JVMInstr FDIV
-
FLOAD
public static final JVMInstr FLOAD
-
FLOAD_WIDE
public static final JVMInstr FLOAD_WIDE
-
FLOAD_0
public static final JVMInstr FLOAD_0
-
FLOAD_1
public static final JVMInstr FLOAD_1
-
FLOAD_2
public static final JVMInstr FLOAD_2
-
FLOAD_3
public static final JVMInstr FLOAD_3
-
FMUL
public static final JVMInstr FMUL
-
FNEG
public static final JVMInstr FNEG
-
FREM
public static final JVMInstr FREM
-
FRETURN
public static final JVMInstr FRETURN
-
FSTORE
public static final JVMInstr FSTORE
-
FSTORE_WIDE
public static final JVMInstr FSTORE_WIDE
-
FSTORE_0
public static final JVMInstr FSTORE_0
-
FSTORE_1
public static final JVMInstr FSTORE_1
-
FSTORE_2
public static final JVMInstr FSTORE_2
-
FSTORE_3
public static final JVMInstr FSTORE_3
-
FSUB
public static final JVMInstr FSUB
-
GETFIELD
public static final JVMInstr GETFIELD
-
GETSTATIC
public static final JVMInstr GETSTATIC
-
GOTO
public static final JVMInstr GOTO
-
GOTO_W
public static final JVMInstr GOTO_W
-
I2B
public static final JVMInstr I2B
-
I2C
public static final JVMInstr I2C
-
I2D
public static final JVMInstr I2D
-
I2F
public static final JVMInstr I2F
-
I2L
public static final JVMInstr I2L
-
I2S
public static final JVMInstr I2S
-
IADD
public static final JVMInstr IADD
-
IALOAD
public static final JVMInstr IALOAD
-
IAND
public static final JVMInstr IAND
-
IASTORE
public static final JVMInstr IASTORE
-
ICONST_M1
public static final JVMInstr ICONST_M1
-
ICONST_0
public static final JVMInstr ICONST_0
-
ICONST_1
public static final JVMInstr ICONST_1
-
ICONST_2
public static final JVMInstr ICONST_2
-
ICONST_3
public static final JVMInstr ICONST_3
-
ICONST_4
public static final JVMInstr ICONST_4
-
ICONST_5
public static final JVMInstr ICONST_5
-
IDIV
public static final JVMInstr IDIV
-
IF_ACMPEQ
public static final JVMInstr IF_ACMPEQ
-
IF_ACMPNE
public static final JVMInstr IF_ACMPNE
-
IF_ICMPEQ
public static final JVMInstr IF_ICMPEQ
-
IF_ICMPNE
public static final JVMInstr IF_ICMPNE
-
IF_ICMPLT
public static final JVMInstr IF_ICMPLT
-
IF_ICMPGE
public static final JVMInstr IF_ICMPGE
-
IF_ICMPGT
public static final JVMInstr IF_ICMPGT
-
IF_ICMPLE
public static final JVMInstr IF_ICMPLE
-
IFEQ
public static final JVMInstr IFEQ
-
IFNE
public static final JVMInstr IFNE
-
IFLT
public static final JVMInstr IFLT
-
IFGE
public static final JVMInstr IFGE
-
IFGT
public static final JVMInstr IFGT
-
IFLE
public static final JVMInstr IFLE
-
IFNONNULL
public static final JVMInstr IFNONNULL
-
IFNULL
public static final JVMInstr IFNULL
-
IINC
public static final JVMInstr IINC
-
IINC_WIDE
public static final JVMInstr IINC_WIDE
-
ILOAD
public static final JVMInstr ILOAD
-
ILOAD_WIDE
public static final JVMInstr ILOAD_WIDE
-
ILOAD_0
public static final JVMInstr ILOAD_0
-
ILOAD_1
public static final JVMInstr ILOAD_1
-
ILOAD_2
public static final JVMInstr ILOAD_2
-
ILOAD_3
public static final JVMInstr ILOAD_3
-
IMUL
public static final JVMInstr IMUL
-
INEG
public static final JVMInstr INEG
-
INSTANCEOF
public static final JVMInstr INSTANCEOF
-
INVOKEDYNAMIC
public static final JVMInstr INVOKEDYNAMIC
-
INVOKEINTERFACE
public static final JVMInstr INVOKEINTERFACE
-
INVOKESPECIAL
public static final JVMInstr INVOKESPECIAL
-
INVOKESTATIC
public static final JVMInstr INVOKESTATIC
-
INVOKEVIRTUAL
public static final JVMInstr INVOKEVIRTUAL
-
IOR
public static final JVMInstr IOR
-
IREM
public static final JVMInstr IREM
-
IRETURN
public static final JVMInstr IRETURN
-
ISHL
public static final JVMInstr ISHL
-
ISHR
public static final JVMInstr ISHR
-
ISTORE
public static final JVMInstr ISTORE
-
ISTORE_WIDE
public static final JVMInstr ISTORE_WIDE
-
ISTORE_0
public static final JVMInstr ISTORE_0
-
ISTORE_1
public static final JVMInstr ISTORE_1
-
ISTORE_2
public static final JVMInstr ISTORE_2
-
ISTORE_3
public static final JVMInstr ISTORE_3
-
ISUB
public static final JVMInstr ISUB
-
IUSHR
public static final JVMInstr IUSHR
-
IXOR
public static final JVMInstr IXOR
-
JSR
public static final JVMInstr JSR
-
JSR_W
public static final JVMInstr JSR_W
-
L2D
public static final JVMInstr L2D
-
L2F
public static final JVMInstr L2F
-
L2I
public static final JVMInstr L2I
-
LADD
public static final JVMInstr LADD
-
LALOAD
public static final JVMInstr LALOAD
-
LAND
public static final JVMInstr LAND
-
LASTORE
public static final JVMInstr LASTORE
-
LCMP
public static final JVMInstr LCMP
-
LCONST_0
public static final JVMInstr LCONST_0
-
LCONST_1
public static final JVMInstr LCONST_1
-
LDC
public static final JVMInstr LDC
-
LDC_W
public static final JVMInstr LDC_W
-
LDC2_W
public static final JVMInstr LDC2_W
-
LDIV
public static final JVMInstr LDIV
-
LLOAD
public static final JVMInstr LLOAD
-
LLOAD_WIDE
public static final JVMInstr LLOAD_WIDE
-
LLOAD_0
public static final JVMInstr LLOAD_0
-
LLOAD_1
public static final JVMInstr LLOAD_1
-
LLOAD_2
public static final JVMInstr LLOAD_2
-
LLOAD_3
public static final JVMInstr LLOAD_3
-
LMUL
public static final JVMInstr LMUL
-
LNEG
public static final JVMInstr LNEG
-
LOOKUPSWITCH
public static final JVMInstr LOOKUPSWITCH
-
LOR
public static final JVMInstr LOR
-
LREM
public static final JVMInstr LREM
-
LRETURN
public static final JVMInstr LRETURN
-
LSHL
public static final JVMInstr LSHL
-
LSHR
public static final JVMInstr LSHR
-
LSTORE
public static final JVMInstr LSTORE
-
LSTORE_WIDE
public static final JVMInstr LSTORE_WIDE
-
LSTORE_0
public static final JVMInstr LSTORE_0
-
LSTORE_1
public static final JVMInstr LSTORE_1
-
LSTORE_2
public static final JVMInstr LSTORE_2
-
LSTORE_3
public static final JVMInstr LSTORE_3
-
LSUB
public static final JVMInstr LSUB
-
LUSHR
public static final JVMInstr LUSHR
-
LXOR
public static final JVMInstr LXOR
-
MONITORENTER
public static final JVMInstr MONITORENTER
-
MONITOREXIT
public static final JVMInstr MONITOREXIT
-
MULTIANEWARRAY
public static final JVMInstr MULTIANEWARRAY
-
NEW
public static final JVMInstr NEW
-
NEWARRAY
public static final JVMInstr NEWARRAY
-
NOP
public static final JVMInstr NOP
-
POP
public static final JVMInstr POP
-
POP2
public static final JVMInstr POP2
-
PUTFIELD
public static final JVMInstr PUTFIELD
-
PUTSTATIC
public static final JVMInstr PUTSTATIC
-
RET
public static final JVMInstr RET
-
RET_WIDE
public static final JVMInstr RET_WIDE
-
RETURN
public static final JVMInstr RETURN
-
SALOAD
public static final JVMInstr SALOAD
-
SASTORE
public static final JVMInstr SASTORE
-
SIPUSH
public static final JVMInstr SIPUSH
-
SWAP
public static final JVMInstr SWAP
-
TABLESWITCH
public static final JVMInstr TABLESWITCH
-
WIDE
public static final JVMInstr WIDE
-
FAKE_TRY
public static final JVMInstr FAKE_TRY
-
FAKE_CATCH
public static final JVMInstr FAKE_CATCH
-
-
Field Detail
-
opcode
private final int opcode
-
bytes
private final int bytes
-
stackPopped
private final StackTypes stackPopped
-
stackPushed
private final StackTypes stackPushed
-
rawJavaType
private final RawJavaType rawJavaType
-
name
private final java.lang.String name
-
handler
private final OperationFactory handler
-
noThrow
private final boolean noThrow
-
opcodeLookup
private static final java.util.Map<java.lang.Integer,JVMInstr> opcodeLookup
-
-
Constructor Detail
-
JVMInstr
private JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType)
-
JVMInstr
private JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType, boolean noThrow)
-
JVMInstr
private JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType, OperationFactory handler)
-
JVMInstr
private JVMInstr(int opcode, int bytes, StackTypes popped, StackTypes pushed, RawJavaType rawJavaType, OperationFactory handler, boolean noThrow)
-
-
Method Detail
-
values
public static JVMInstr[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (JVMInstr c : JVMInstr.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static JVMInstr valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
java.lang.IllegalArgumentException
- if this enum type has no constant with the specified namejava.lang.NullPointerException
- if the argument is null
-
getOpcode
public int getOpcode()
-
getName
public java.lang.String getName()
-
find
public static JVMInstr find(int opcode)
-
getRawLength
protected int getRawLength()
-
getRawStackPushed
public StackTypes getRawStackPushed()
-
getRawStackPopped
public StackTypes getRawStackPopped()
-
getStackDelta
public StackDelta getStackDelta(byte[] data, ConstantPoolEntry[] constantPoolEntries, StackSim stackSim, Method method)
-
createOperation
public Op01WithProcessedDataAndByteJumps createOperation(ByteData bd, ConstantPool cp, int offset)
-
getRawJavaType
public RawJavaType getRawJavaType()
-
isNoThrow
public boolean isNoThrow()
-
isAStore
public static boolean isAStore(JVMInstr instr)
-
-