Package com.strobel.reflection.emit
Enum OpCode
- java.lang.Object
-
- java.lang.Enum<OpCode>
-
- com.strobel.reflection.emit.OpCode
-
-
Enum Constant Summary
-
Field Summary
Fields Modifier and Type Field Description private int
_code
private OperandType
_operandType
private static OpCode[]
_standardOpCodes
private static OpCode[]
_wideOpCodes
private static byte[]
stackChange
static int
STANDARD
The byte prefix for the wide instructions.static int
WIDE
-
Constructor Summary
Constructors Modifier Constructor Description private
OpCode(int code)
private
OpCode(int code, OperandType operandType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
endsUnconditionalJumpBlock()
static OpCode
get(int code)
Get the OpCode for a simple standard 1-byte opcode.int
getCode()
private static OpCode[]
getOpcodeBlock(int prefix)
OperandType
getOperandType()
int
getSize()
int
getSizeWithOperands()
int
getStackChange()
boolean
isWide()
OpCode
negate()
static OpCode
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.static OpCode[]
values()
Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
NOP
public static final OpCode NOP
-
ACONST_NULL
public static final OpCode ACONST_NULL
-
ICONST_M1
public static final OpCode ICONST_M1
-
ICONST_0
public static final OpCode ICONST_0
-
ICONST_1
public static final OpCode ICONST_1
-
ICONST_2
public static final OpCode ICONST_2
-
ICONST_3
public static final OpCode ICONST_3
-
ICONST_4
public static final OpCode ICONST_4
-
ICONST_5
public static final OpCode ICONST_5
-
LCONST_0
public static final OpCode LCONST_0
-
LCONST_1
public static final OpCode LCONST_1
-
FCONST_0
public static final OpCode FCONST_0
-
FCONST_1
public static final OpCode FCONST_1
-
FCONST_2
public static final OpCode FCONST_2
-
DCONST_0
public static final OpCode DCONST_0
-
DCONST_1
public static final OpCode DCONST_1
-
BIPUSH
public static final OpCode BIPUSH
-
SIPUSH
public static final OpCode SIPUSH
-
LDC
public static final OpCode LDC
-
LDC_W
public static final OpCode LDC_W
-
LDC2_W
public static final OpCode LDC2_W
-
ILOAD
public static final OpCode ILOAD
-
LLOAD
public static final OpCode LLOAD
-
FLOAD
public static final OpCode FLOAD
-
DLOAD
public static final OpCode DLOAD
-
ALOAD
public static final OpCode ALOAD
-
ILOAD_0
public static final OpCode ILOAD_0
-
ILOAD_1
public static final OpCode ILOAD_1
-
ILOAD_2
public static final OpCode ILOAD_2
-
ILOAD_3
public static final OpCode ILOAD_3
-
LLOAD_0
public static final OpCode LLOAD_0
-
LLOAD_1
public static final OpCode LLOAD_1
-
LLOAD_2
public static final OpCode LLOAD_2
-
LLOAD_3
public static final OpCode LLOAD_3
-
FLOAD_0
public static final OpCode FLOAD_0
-
FLOAD_1
public static final OpCode FLOAD_1
-
FLOAD_2
public static final OpCode FLOAD_2
-
FLOAD_3
public static final OpCode FLOAD_3
-
DLOAD_0
public static final OpCode DLOAD_0
-
DLOAD_1
public static final OpCode DLOAD_1
-
DLOAD_2
public static final OpCode DLOAD_2
-
DLOAD_3
public static final OpCode DLOAD_3
-
ALOAD_0
public static final OpCode ALOAD_0
-
ALOAD_1
public static final OpCode ALOAD_1
-
ALOAD_2
public static final OpCode ALOAD_2
-
ALOAD_3
public static final OpCode ALOAD_3
-
IALOAD
public static final OpCode IALOAD
-
LALOAD
public static final OpCode LALOAD
-
FALOAD
public static final OpCode FALOAD
-
DALOAD
public static final OpCode DALOAD
-
AALOAD
public static final OpCode AALOAD
-
BALOAD
public static final OpCode BALOAD
-
CALOAD
public static final OpCode CALOAD
-
SALOAD
public static final OpCode SALOAD
-
ISTORE
public static final OpCode ISTORE
-
LSTORE
public static final OpCode LSTORE
-
FSTORE
public static final OpCode FSTORE
-
DSTORE
public static final OpCode DSTORE
-
ASTORE
public static final OpCode ASTORE
-
ISTORE_0
public static final OpCode ISTORE_0
-
ISTORE_1
public static final OpCode ISTORE_1
-
ISTORE_2
public static final OpCode ISTORE_2
-
ISTORE_3
public static final OpCode ISTORE_3
-
LSTORE_0
public static final OpCode LSTORE_0
-
LSTORE_1
public static final OpCode LSTORE_1
-
LSTORE_2
public static final OpCode LSTORE_2
-
LSTORE_3
public static final OpCode LSTORE_3
-
FSTORE_0
public static final OpCode FSTORE_0
-
FSTORE_1
public static final OpCode FSTORE_1
-
FSTORE_2
public static final OpCode FSTORE_2
-
FSTORE_3
public static final OpCode FSTORE_3
-
DSTORE_0
public static final OpCode DSTORE_0
-
DSTORE_1
public static final OpCode DSTORE_1
-
DSTORE_2
public static final OpCode DSTORE_2
-
DSTORE_3
public static final OpCode DSTORE_3
-
ASTORE_0
public static final OpCode ASTORE_0
-
ASTORE_1
public static final OpCode ASTORE_1
-
ASTORE_2
public static final OpCode ASTORE_2
-
ASTORE_3
public static final OpCode ASTORE_3
-
IASTORE
public static final OpCode IASTORE
-
LASTORE
public static final OpCode LASTORE
-
FASTORE
public static final OpCode FASTORE
-
DASTORE
public static final OpCode DASTORE
-
AASTORE
public static final OpCode AASTORE
-
BASTORE
public static final OpCode BASTORE
-
CASTORE
public static final OpCode CASTORE
-
SASTORE
public static final OpCode SASTORE
-
POP
public static final OpCode POP
-
POP2
public static final OpCode POP2
-
DUP
public static final OpCode DUP
-
DUP_X1
public static final OpCode DUP_X1
-
DUP_X2
public static final OpCode DUP_X2
-
DUP2
public static final OpCode DUP2
-
DUP2_X1
public static final OpCode DUP2_X1
-
DUP2_X2
public static final OpCode DUP2_X2
-
SWAP
public static final OpCode SWAP
-
IADD
public static final OpCode IADD
-
LADD
public static final OpCode LADD
-
FADD
public static final OpCode FADD
-
DADD
public static final OpCode DADD
-
ISUB
public static final OpCode ISUB
-
LSUB
public static final OpCode LSUB
-
FSUB
public static final OpCode FSUB
-
DSUB
public static final OpCode DSUB
-
IMUL
public static final OpCode IMUL
-
LMUL
public static final OpCode LMUL
-
FMUL
public static final OpCode FMUL
-
DMUL
public static final OpCode DMUL
-
IDIV
public static final OpCode IDIV
-
LDIV
public static final OpCode LDIV
-
FDIV
public static final OpCode FDIV
-
DDIV
public static final OpCode DDIV
-
IREM
public static final OpCode IREM
-
LREM
public static final OpCode LREM
-
FREM
public static final OpCode FREM
-
DREM
public static final OpCode DREM
-
INEG
public static final OpCode INEG
-
LNEG
public static final OpCode LNEG
-
FNEG
public static final OpCode FNEG
-
DNEG
public static final OpCode DNEG
-
ISHL
public static final OpCode ISHL
-
LSHL
public static final OpCode LSHL
-
ISHR
public static final OpCode ISHR
-
LSHR
public static final OpCode LSHR
-
IUSHR
public static final OpCode IUSHR
-
LUSHR
public static final OpCode LUSHR
-
IAND
public static final OpCode IAND
-
LAND
public static final OpCode LAND
-
IOR
public static final OpCode IOR
-
LOR
public static final OpCode LOR
-
IXOR
public static final OpCode IXOR
-
LXOR
public static final OpCode LXOR
-
IINC
public static final OpCode IINC
-
I2L
public static final OpCode I2L
-
I2F
public static final OpCode I2F
-
I2D
public static final OpCode I2D
-
L2I
public static final OpCode L2I
-
L2F
public static final OpCode L2F
-
L2D
public static final OpCode L2D
-
F2I
public static final OpCode F2I
-
F2L
public static final OpCode F2L
-
F2D
public static final OpCode F2D
-
D2I
public static final OpCode D2I
-
D2L
public static final OpCode D2L
-
D2F
public static final OpCode D2F
-
I2B
public static final OpCode I2B
-
I2C
public static final OpCode I2C
-
I2S
public static final OpCode I2S
-
LCMP
public static final OpCode LCMP
-
FCMPL
public static final OpCode FCMPL
-
FCMPG
public static final OpCode FCMPG
-
DCMPL
public static final OpCode DCMPL
-
DCMPG
public static final OpCode DCMPG
-
IFEQ
public static final OpCode IFEQ
-
IFNE
public static final OpCode IFNE
-
IFLT
public static final OpCode IFLT
-
IFGE
public static final OpCode IFGE
-
IFGT
public static final OpCode IFGT
-
IFLE
public static final OpCode IFLE
-
IF_ICMPEQ
public static final OpCode IF_ICMPEQ
-
IF_ICMPNE
public static final OpCode IF_ICMPNE
-
IF_ICMPLT
public static final OpCode IF_ICMPLT
-
IF_ICMPGE
public static final OpCode IF_ICMPGE
-
IF_ICMPGT
public static final OpCode IF_ICMPGT
-
IF_ICMPLE
public static final OpCode IF_ICMPLE
-
IF_ACMPEQ
public static final OpCode IF_ACMPEQ
-
IF_ACMPNE
public static final OpCode IF_ACMPNE
-
GOTO
public static final OpCode GOTO
-
JSR
public static final OpCode JSR
-
RET
public static final OpCode RET
-
TABLESWITCH
public static final OpCode TABLESWITCH
-
LOOKUPSWITCH
public static final OpCode LOOKUPSWITCH
-
IRETURN
public static final OpCode IRETURN
-
LRETURN
public static final OpCode LRETURN
-
FRETURN
public static final OpCode FRETURN
-
DRETURN
public static final OpCode DRETURN
-
ARETURN
public static final OpCode ARETURN
-
RETURN
public static final OpCode RETURN
-
GETSTATIC
public static final OpCode GETSTATIC
-
PUTSTATIC
public static final OpCode PUTSTATIC
-
GETFIELD
public static final OpCode GETFIELD
-
PUTFIELD
public static final OpCode PUTFIELD
-
INVOKEVIRTUAL
public static final OpCode INVOKEVIRTUAL
-
INVOKESPECIAL
public static final OpCode INVOKESPECIAL
-
INVOKESTATIC
public static final OpCode INVOKESTATIC
-
INVOKEINTERFACE
public static final OpCode INVOKEINTERFACE
-
INVOKEDYNAMIC
public static final OpCode INVOKEDYNAMIC
-
NEW
public static final OpCode NEW
-
NEWARRAY
public static final OpCode NEWARRAY
-
ANEWARRAY
public static final OpCode ANEWARRAY
-
ARRAYLENGTH
public static final OpCode ARRAYLENGTH
-
ATHROW
public static final OpCode ATHROW
-
CHECKCAST
public static final OpCode CHECKCAST
-
INSTANCEOF
public static final OpCode INSTANCEOF
-
MONITORENTER
public static final OpCode MONITORENTER
-
MONITOREXIT
public static final OpCode MONITOREXIT
-
MULTIANEWARRAY
public static final OpCode MULTIANEWARRAY
-
IFNULL
public static final OpCode IFNULL
-
IFNONNULL
public static final OpCode IFNONNULL
-
GOTO_W
public static final OpCode GOTO_W
-
JSR_W
public static final OpCode JSR_W
-
BREAKPOINT
public static final OpCode BREAKPOINT
-
ILOAD_W
public static final OpCode ILOAD_W
-
LLOAD_W
public static final OpCode LLOAD_W
-
FLOAD_W
public static final OpCode FLOAD_W
-
DLOAD_W
public static final OpCode DLOAD_W
-
ALOAD_W
public static final OpCode ALOAD_W
-
ISTORE_W
public static final OpCode ISTORE_W
-
LSTORE_W
public static final OpCode LSTORE_W
-
FSTORE_W
public static final OpCode FSTORE_W
-
DSTORE_W
public static final OpCode DSTORE_W
-
ASTORE_W
public static final OpCode ASTORE_W
-
IINC_W
public static final OpCode IINC_W
-
RET_W
public static final OpCode RET_W
-
-
Field Detail
-
_code
private final int _code
-
_operandType
private final OperandType _operandType
-
STANDARD
public static final int STANDARD
The byte prefix for the wide instructions.- See Also:
- Constant Field Values
-
WIDE
public static final int WIDE
- See Also:
- Constant Field Values
-
_standardOpCodes
private static OpCode[] _standardOpCodes
-
_wideOpCodes
private static OpCode[] _wideOpCodes
-
stackChange
private static final byte[] stackChange
-
-
Constructor Detail
-
OpCode
private OpCode(int code)
-
OpCode
private OpCode(int code, OperandType operandType)
-
-
Method Detail
-
values
public static OpCode[] 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 (OpCode c : OpCode.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static OpCode 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
-
getCode
public int getCode()
-
isWide
public boolean isWide()
-
getOperandType
public OperandType getOperandType()
-
getSize
public int getSize()
-
getSizeWithOperands
public int getSizeWithOperands()
-
getStackChange
public int getStackChange()
-
negate
public OpCode negate()
-
get
public static OpCode get(int code)
Get the OpCode for a simple standard 1-byte opcode.
-
getOpcodeBlock
private static OpCode[] getOpcodeBlock(int prefix)
-
endsUnconditionalJumpBlock
public boolean endsUnconditionalJumpBlock()
-
-