Package com.strobel.assembler.ir
Enum Class OpCode
- All Implemented Interfaces:
Serializable
,Comparable<OpCode>
,Constable
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantsEnum ConstantDescription -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
private final FlowControl
private final OpCodeType
private final OperandType
private final StackBehavior
private final StackBehavior
private static final byte[]
static final int
The byte prefix for the wide instructions.private static final OpCode[]
static final int
private static final OpCode[]
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
OpCode
(int code, FlowControl flowControl, OpCodeType opCodeType, OperandType operandType, StackBehavior stackBehaviorPop, StackBehavior stackBehaviorPush) -
Method Summary
Modifier and TypeMethodDescriptionboolean
canThrow()
boolean
static OpCode
get
(int code) Get the OpCode for a simple standard 1-byte opcode.int
getCode()
private static OpCode[]
getOpcodeBlock
(int prefix) int
getSize()
int
boolean
boolean
boolean
boolean
isBranch()
boolean
isGoto()
boolean
isInvoke()
boolean
boolean
isLeave()
boolean
isLoad()
boolean
boolean
isReturn()
boolean
boolean
isStore()
boolean
isThrow()
boolean
boolean
isWide()
negate()
static OpCode
Returns the enum constant of this class with the specified name.static OpCode[]
values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
NOP
-
ACONST_NULL
-
ICONST_M1
-
ICONST_0
-
ICONST_1
-
ICONST_2
-
ICONST_3
-
ICONST_4
-
ICONST_5
-
LCONST_0
-
LCONST_1
-
FCONST_0
-
FCONST_1
-
FCONST_2
-
DCONST_0
-
DCONST_1
-
BIPUSH
-
SIPUSH
-
LDC
-
LDC_W
-
LDC2_W
-
ILOAD
-
LLOAD
-
FLOAD
-
DLOAD
-
ALOAD
-
ILOAD_0
-
ILOAD_1
-
ILOAD_2
-
ILOAD_3
-
LLOAD_0
-
LLOAD_1
-
LLOAD_2
-
LLOAD_3
-
FLOAD_0
-
FLOAD_1
-
FLOAD_2
-
FLOAD_3
-
DLOAD_0
-
DLOAD_1
-
DLOAD_2
-
DLOAD_3
-
ALOAD_0
-
ALOAD_1
-
ALOAD_2
-
ALOAD_3
-
IALOAD
-
LALOAD
-
FALOAD
-
DALOAD
-
AALOAD
-
BALOAD
-
CALOAD
-
SALOAD
-
ISTORE
-
LSTORE
-
FSTORE
-
DSTORE
-
ASTORE
-
ISTORE_0
-
ISTORE_1
-
ISTORE_2
-
ISTORE_3
-
LSTORE_0
-
LSTORE_1
-
LSTORE_2
-
LSTORE_3
-
FSTORE_0
-
FSTORE_1
-
FSTORE_2
-
FSTORE_3
-
DSTORE_0
-
DSTORE_1
-
DSTORE_2
-
DSTORE_3
-
ASTORE_0
-
ASTORE_1
-
ASTORE_2
-
ASTORE_3
-
IASTORE
-
LASTORE
-
FASTORE
-
DASTORE
-
AASTORE
-
BASTORE
-
CASTORE
-
SASTORE
-
POP
-
POP2
-
DUP
-
DUP_X1
-
DUP_X2
-
DUP2
-
DUP2_X1
-
DUP2_X2
-
SWAP
-
IADD
-
LADD
-
FADD
-
DADD
-
ISUB
-
LSUB
-
FSUB
-
DSUB
-
IMUL
-
LMUL
-
FMUL
-
DMUL
-
IDIV
-
LDIV
-
FDIV
-
DDIV
-
IREM
-
LREM
-
FREM
-
DREM
-
INEG
-
LNEG
-
FNEG
-
DNEG
-
ISHL
-
LSHL
-
ISHR
-
LSHR
-
IUSHR
-
LUSHR
-
IAND
-
LAND
-
IOR
-
LOR
-
IXOR
-
LXOR
-
IINC
-
I2L
-
I2F
-
I2D
-
L2I
-
L2F
-
L2D
-
F2I
-
F2L
-
F2D
-
D2I
-
D2L
-
D2F
-
I2B
-
I2C
-
I2S
-
LCMP
-
FCMPL
-
FCMPG
-
DCMPL
-
DCMPG
-
IFEQ
-
IFNE
-
IFLT
-
IFGE
-
IFGT
-
IFLE
-
IF_ICMPEQ
-
IF_ICMPNE
-
IF_ICMPLT
-
IF_ICMPGE
-
IF_ICMPGT
-
IF_ICMPLE
-
IF_ACMPEQ
-
IF_ACMPNE
-
GOTO
-
JSR
-
RET
-
TABLESWITCH
-
LOOKUPSWITCH
-
IRETURN
-
LRETURN
-
FRETURN
-
DRETURN
-
ARETURN
-
RETURN
-
GETSTATIC
-
PUTSTATIC
-
GETFIELD
-
PUTFIELD
-
INVOKEVIRTUAL
-
INVOKESPECIAL
-
INVOKESTATIC
-
INVOKEINTERFACE
-
INVOKEDYNAMIC
-
NEW
-
NEWARRAY
-
ANEWARRAY
-
ARRAYLENGTH
-
ATHROW
-
CHECKCAST
-
INSTANCEOF
-
MONITORENTER
-
MONITOREXIT
-
MULTIANEWARRAY
-
IFNULL
-
IFNONNULL
-
GOTO_W
-
JSR_W
-
BREAKPOINT
-
ILOAD_W
-
LLOAD_W
-
FLOAD_W
-
DLOAD_W
-
ALOAD_W
-
ISTORE_W
-
LSTORE_W
-
FSTORE_W
-
DSTORE_W
-
ASTORE_W
-
IINC_W
-
RET_W
-
LEAVE
-
ENDFINALLY
-
-
Field Details
-
_code
private final int _code -
_flowControl
-
_opCodeType
-
_operandType
-
_stackBehaviorPop
-
_stackBehaviorPush
-
STANDARD
public static final int STANDARDThe byte prefix for the wide instructions.- See Also:
-
WIDE
public static final int WIDE- See Also:
-
standardOpCodes
-
wideOpCodes
-
stackChange
private static final byte[] stackChange
-
-
Constructor Details
-
OpCode
private OpCode(int code, FlowControl flowControl, OpCodeType opCodeType, OperandType operandType, StackBehavior stackBehaviorPop, StackBehavior stackBehaviorPush)
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (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:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
getCode
public int getCode() -
isWide
public boolean isWide() -
getOperandType
-
getFlowControl
-
getOpCodeType
-
getStackBehaviorPop
-
getStackBehaviorPush
-
hasVariableStackBehavior
public boolean hasVariableStackBehavior() -
isReturn
public boolean isReturn() -
isThrow
public boolean isThrow() -
isInvoke
public boolean isInvoke() -
isJumpToSubroutine
public boolean isJumpToSubroutine() -
isReturnFromSubroutine
public boolean isReturnFromSubroutine() -
isLeave
public boolean isLeave() -
isBranch
public boolean isBranch() -
isGoto
public boolean isGoto() -
isUnconditionalBranch
public boolean isUnconditionalBranch() -
isMoveInstruction
public boolean isMoveInstruction() -
isLoad
public boolean isLoad() -
isStore
public boolean isStore() -
isArrayLoad
public boolean isArrayLoad() -
isArrayStore
public boolean isArrayStore() -
getSize
public int getSize() -
getStackChange
public int getStackChange() -
endsUnconditionalJumpBlock
public boolean endsUnconditionalJumpBlock() -
canThrow
public boolean canThrow() -
negate
-
get
Get the OpCode for a simple standard 1-byte opcode. -
getOpcodeBlock
-