public final class Opcodes
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static int |
ADD_DOUBLE |
static int |
ADD_DOUBLE_2ADDR |
static int |
ADD_FLOAT |
static int |
ADD_FLOAT_2ADDR |
static int |
ADD_INT |
static int |
ADD_INT_2ADDR |
static int |
ADD_INT_LIT16 |
static int |
ADD_INT_LIT8 |
static int |
ADD_LONG |
static int |
ADD_LONG_2ADDR |
static int |
AGET |
static int |
AGET_BOOLEAN |
static int |
AGET_BYTE |
static int |
AGET_CHAR |
static int |
AGET_OBJECT |
static int |
AGET_SHORT |
static int |
AGET_WIDE |
static int |
AND_INT |
static int |
AND_INT_2ADDR |
static int |
AND_INT_LIT16 |
static int |
AND_INT_LIT8 |
static int |
AND_LONG |
static int |
AND_LONG_2ADDR |
static int |
APUT |
static int |
APUT_BOOLEAN |
static int |
APUT_BYTE |
static int |
APUT_CHAR |
static int |
APUT_OBJECT |
static int |
APUT_SHORT |
static int |
APUT_WIDE |
static int |
ARRAY_LENGTH |
static int |
CHECK_CAST |
static int |
CMP_LONG |
static int |
CMPG_DOUBLE |
static int |
CMPG_FLOAT |
static int |
CMPL_DOUBLE |
static int |
CMPL_FLOAT |
static int |
CONST |
static int |
CONST_16 |
static int |
CONST_4 |
static int |
CONST_CLASS |
static int |
CONST_HIGH16 |
static int |
CONST_METHOD_HANDLE |
static int |
CONST_METHOD_TYPE |
static int |
CONST_STRING |
static int |
CONST_STRING_JUMBO |
static int |
CONST_WIDE |
static int |
CONST_WIDE_16 |
static int |
CONST_WIDE_32 |
static int |
CONST_WIDE_HIGH16 |
static int |
DIV_DOUBLE |
static int |
DIV_DOUBLE_2ADDR |
static int |
DIV_FLOAT |
static int |
DIV_FLOAT_2ADDR |
static int |
DIV_INT |
static int |
DIV_INT_2ADDR |
static int |
DIV_INT_LIT16 |
static int |
DIV_INT_LIT8 |
static int |
DIV_LONG |
static int |
DIV_LONG_2ADDR |
static int |
DOUBLE_TO_FLOAT |
static int |
DOUBLE_TO_INT |
static int |
DOUBLE_TO_LONG |
static int |
FILL_ARRAY_DATA |
static int |
FILL_ARRAY_DATA_PAYLOAD
special pseudo-opcode value for fill-array-data data payload
instructions
|
static int |
FILLED_NEW_ARRAY |
static int |
FILLED_NEW_ARRAY_RANGE |
static int |
FLOAT_TO_DOUBLE |
static int |
FLOAT_TO_INT |
static int |
FLOAT_TO_LONG |
static int |
GOTO |
static int |
GOTO_16 |
static int |
GOTO_32 |
static int |
IF_EQ |
static int |
IF_EQZ |
static int |
IF_GE |
static int |
IF_GEZ |
static int |
IF_GT |
static int |
IF_GTZ |
static int |
IF_LE |
static int |
IF_LEZ |
static int |
IF_LT |
static int |
IF_LTZ |
static int |
IF_NE |
static int |
IF_NEZ |
static int |
IGET |
static int |
IGET_BOOLEAN |
static int |
IGET_BYTE |
static int |
IGET_CHAR |
static int |
IGET_OBJECT |
static int |
IGET_SHORT |
static int |
IGET_WIDE |
static int |
INSTANCE_OF |
static int |
INT_TO_BYTE |
static int |
INT_TO_CHAR |
static int |
INT_TO_DOUBLE |
static int |
INT_TO_FLOAT |
static int |
INT_TO_LONG |
static int |
INT_TO_SHORT |
static int |
INVOKE_CUSTOM |
static int |
INVOKE_CUSTOM_RANGE |
static int |
INVOKE_DIRECT |
static int |
INVOKE_DIRECT_RANGE |
static int |
INVOKE_INTERFACE |
static int |
INVOKE_INTERFACE_RANGE |
static int |
INVOKE_POLYMORPHIC |
static int |
INVOKE_POLYMORPHIC_RANGE |
static int |
INVOKE_STATIC |
static int |
INVOKE_STATIC_RANGE |
static int |
INVOKE_SUPER |
static int |
INVOKE_SUPER_RANGE |
static int |
INVOKE_VIRTUAL |
static int |
INVOKE_VIRTUAL_RANGE |
static int |
IPUT |
static int |
IPUT_BOOLEAN |
static int |
IPUT_BYTE |
static int |
IPUT_CHAR |
static int |
IPUT_OBJECT |
static int |
IPUT_SHORT |
static int |
IPUT_WIDE |
static int |
LONG_TO_DOUBLE |
static int |
LONG_TO_FLOAT |
static int |
LONG_TO_INT |
static int |
MAX_VALUE
maximum valid opcode value
|
static int |
MIN_VALUE
minimum valid opcode value
|
static int |
MONITOR_ENTER |
static int |
MONITOR_EXIT |
static int |
MOVE |
static int |
MOVE_16 |
static int |
MOVE_EXCEPTION |
static int |
MOVE_FROM16 |
static int |
MOVE_OBJECT |
static int |
MOVE_OBJECT_16 |
static int |
MOVE_OBJECT_FROM16 |
static int |
MOVE_RESULT |
static int |
MOVE_RESULT_OBJECT |
static int |
MOVE_RESULT_WIDE |
static int |
MOVE_WIDE |
static int |
MOVE_WIDE_16 |
static int |
MOVE_WIDE_FROM16 |
static int |
MUL_DOUBLE |
static int |
MUL_DOUBLE_2ADDR |
static int |
MUL_FLOAT |
static int |
MUL_FLOAT_2ADDR |
static int |
MUL_INT |
static int |
MUL_INT_2ADDR |
static int |
MUL_INT_LIT16 |
static int |
MUL_INT_LIT8 |
static int |
MUL_LONG |
static int |
MUL_LONG_2ADDR |
static int |
NEG_DOUBLE |
static int |
NEG_FLOAT |
static int |
NEG_INT |
static int |
NEG_LONG |
static int |
NEW_ARRAY |
static int |
NEW_INSTANCE |
static int |
NO_NEXT
pseudo-opcode used to indicate there is no next opcode; used
in opcode chaining lists
|
static int |
NOP |
static int |
NOT_INT |
static int |
NOT_LONG |
static int |
OR_INT |
static int |
OR_INT_2ADDR |
static int |
OR_INT_LIT16 |
static int |
OR_INT_LIT8 |
static int |
OR_LONG |
static int |
OR_LONG_2ADDR |
static int |
PACKED_SWITCH |
static int |
PACKED_SWITCH_PAYLOAD
special pseudo-opcode value for packed-switch data payload
instructions
|
static int |
REM_DOUBLE |
static int |
REM_DOUBLE_2ADDR |
static int |
REM_FLOAT |
static int |
REM_FLOAT_2ADDR |
static int |
REM_INT |
static int |
REM_INT_2ADDR |
static int |
REM_INT_LIT16 |
static int |
REM_INT_LIT8 |
static int |
REM_LONG |
static int |
REM_LONG_2ADDR |
static int |
RETURN |
static int |
RETURN_OBJECT |
static int |
RETURN_VOID |
static int |
RETURN_WIDE |
static int |
RSUB_INT |
static int |
RSUB_INT_LIT8 |
static int |
SGET |
static int |
SGET_BOOLEAN |
static int |
SGET_BYTE |
static int |
SGET_CHAR |
static int |
SGET_OBJECT |
static int |
SGET_SHORT |
static int |
SGET_WIDE |
static int |
SHL_INT |
static int |
SHL_INT_2ADDR |
static int |
SHL_INT_LIT8 |
static int |
SHL_LONG |
static int |
SHL_LONG_2ADDR |
static int |
SHR_INT |
static int |
SHR_INT_2ADDR |
static int |
SHR_INT_LIT8 |
static int |
SHR_LONG |
static int |
SHR_LONG_2ADDR |
static int |
SPARSE_SWITCH |
static int |
SPARSE_SWITCH_PAYLOAD
special pseudo-opcode value for packed-switch data payload
instructions
|
static int |
SPECIAL_FORMAT
pseudo-opcode used for nonstandard format payload "instructions".
|
static int |
SPUT |
static int |
SPUT_BOOLEAN |
static int |
SPUT_BYTE |
static int |
SPUT_CHAR |
static int |
SPUT_OBJECT |
static int |
SPUT_SHORT |
static int |
SPUT_WIDE |
static int |
SUB_DOUBLE |
static int |
SUB_DOUBLE_2ADDR |
static int |
SUB_FLOAT |
static int |
SUB_FLOAT_2ADDR |
static int |
SUB_INT |
static int |
SUB_INT_2ADDR |
static int |
SUB_LONG |
static int |
SUB_LONG_2ADDR |
static int |
THROW |
static int |
USHR_INT |
static int |
USHR_INT_2ADDR |
static int |
USHR_INT_LIT8 |
static int |
USHR_LONG |
static int |
USHR_LONG_2ADDR |
static int |
XOR_INT |
static int |
XOR_INT_2ADDR |
static int |
XOR_INT_LIT16 |
static int |
XOR_INT_LIT8 |
static int |
XOR_LONG |
static int |
XOR_LONG_2ADDR |
| Modifier and Type | Method and Description |
|---|---|
static int |
extractOpcodeFromUnit(int opcodeUnit)
Gets the opcode out of an opcode unit, the latter of which may also
include one or more argument values.
|
static boolean |
isValidShape(int opcode)
Determines if the given opcode has the right "shape" to be
valid.
|
public static final int SPECIAL_FORMAT
public static final int NO_NEXT
public static final int MIN_VALUE
public static final int MAX_VALUE
public static final int NOP
public static final int MOVE
public static final int MOVE_FROM16
public static final int MOVE_16
public static final int MOVE_WIDE
public static final int MOVE_WIDE_FROM16
public static final int MOVE_WIDE_16
public static final int MOVE_OBJECT
public static final int MOVE_OBJECT_FROM16
public static final int MOVE_OBJECT_16
public static final int MOVE_RESULT
public static final int MOVE_RESULT_WIDE
public static final int MOVE_RESULT_OBJECT
public static final int MOVE_EXCEPTION
public static final int RETURN_VOID
public static final int RETURN
public static final int RETURN_WIDE
public static final int RETURN_OBJECT
public static final int CONST_4
public static final int CONST_16
public static final int CONST
public static final int CONST_HIGH16
public static final int CONST_WIDE_16
public static final int CONST_WIDE_32
public static final int CONST_WIDE
public static final int CONST_WIDE_HIGH16
public static final int CONST_STRING
public static final int CONST_STRING_JUMBO
public static final int CONST_CLASS
public static final int MONITOR_ENTER
public static final int MONITOR_EXIT
public static final int CHECK_CAST
public static final int INSTANCE_OF
public static final int ARRAY_LENGTH
public static final int NEW_INSTANCE
public static final int NEW_ARRAY
public static final int FILLED_NEW_ARRAY
public static final int FILLED_NEW_ARRAY_RANGE
public static final int FILL_ARRAY_DATA
public static final int THROW
public static final int GOTO
public static final int GOTO_16
public static final int GOTO_32
public static final int PACKED_SWITCH
public static final int SPARSE_SWITCH
public static final int CMPL_FLOAT
public static final int CMPG_FLOAT
public static final int CMPL_DOUBLE
public static final int CMPG_DOUBLE
public static final int CMP_LONG
public static final int IF_EQ
public static final int IF_NE
public static final int IF_LT
public static final int IF_GE
public static final int IF_GT
public static final int IF_LE
public static final int IF_EQZ
public static final int IF_NEZ
public static final int IF_LTZ
public static final int IF_GEZ
public static final int IF_GTZ
public static final int IF_LEZ
public static final int AGET
public static final int AGET_WIDE
public static final int AGET_OBJECT
public static final int AGET_BOOLEAN
public static final int AGET_BYTE
public static final int AGET_CHAR
public static final int AGET_SHORT
public static final int APUT
public static final int APUT_WIDE
public static final int APUT_OBJECT
public static final int APUT_BOOLEAN
public static final int APUT_BYTE
public static final int APUT_CHAR
public static final int APUT_SHORT
public static final int IGET
public static final int IGET_WIDE
public static final int IGET_OBJECT
public static final int IGET_BOOLEAN
public static final int IGET_BYTE
public static final int IGET_CHAR
public static final int IGET_SHORT
public static final int IPUT
public static final int IPUT_WIDE
public static final int IPUT_OBJECT
public static final int IPUT_BOOLEAN
public static final int IPUT_BYTE
public static final int IPUT_CHAR
public static final int IPUT_SHORT
public static final int SGET
public static final int SGET_WIDE
public static final int SGET_OBJECT
public static final int SGET_BOOLEAN
public static final int SGET_BYTE
public static final int SGET_CHAR
public static final int SGET_SHORT
public static final int SPUT
public static final int SPUT_WIDE
public static final int SPUT_OBJECT
public static final int SPUT_BOOLEAN
public static final int SPUT_BYTE
public static final int SPUT_CHAR
public static final int SPUT_SHORT
public static final int INVOKE_VIRTUAL
public static final int INVOKE_SUPER
public static final int INVOKE_DIRECT
public static final int INVOKE_STATIC
public static final int INVOKE_INTERFACE
public static final int INVOKE_VIRTUAL_RANGE
public static final int INVOKE_SUPER_RANGE
public static final int INVOKE_DIRECT_RANGE
public static final int INVOKE_STATIC_RANGE
public static final int INVOKE_INTERFACE_RANGE
public static final int NEG_INT
public static final int NOT_INT
public static final int NEG_LONG
public static final int NOT_LONG
public static final int NEG_FLOAT
public static final int NEG_DOUBLE
public static final int INT_TO_LONG
public static final int INT_TO_FLOAT
public static final int INT_TO_DOUBLE
public static final int LONG_TO_INT
public static final int LONG_TO_FLOAT
public static final int LONG_TO_DOUBLE
public static final int FLOAT_TO_INT
public static final int FLOAT_TO_LONG
public static final int FLOAT_TO_DOUBLE
public static final int DOUBLE_TO_INT
public static final int DOUBLE_TO_LONG
public static final int DOUBLE_TO_FLOAT
public static final int INT_TO_BYTE
public static final int INT_TO_CHAR
public static final int INT_TO_SHORT
public static final int ADD_INT
public static final int SUB_INT
public static final int MUL_INT
public static final int DIV_INT
public static final int REM_INT
public static final int AND_INT
public static final int OR_INT
public static final int XOR_INT
public static final int SHL_INT
public static final int SHR_INT
public static final int USHR_INT
public static final int ADD_LONG
public static final int SUB_LONG
public static final int MUL_LONG
public static final int DIV_LONG
public static final int REM_LONG
public static final int AND_LONG
public static final int OR_LONG
public static final int XOR_LONG
public static final int SHL_LONG
public static final int SHR_LONG
public static final int USHR_LONG
public static final int ADD_FLOAT
public static final int SUB_FLOAT
public static final int MUL_FLOAT
public static final int DIV_FLOAT
public static final int REM_FLOAT
public static final int ADD_DOUBLE
public static final int SUB_DOUBLE
public static final int MUL_DOUBLE
public static final int DIV_DOUBLE
public static final int REM_DOUBLE
public static final int ADD_INT_2ADDR
public static final int SUB_INT_2ADDR
public static final int MUL_INT_2ADDR
public static final int DIV_INT_2ADDR
public static final int REM_INT_2ADDR
public static final int AND_INT_2ADDR
public static final int OR_INT_2ADDR
public static final int XOR_INT_2ADDR
public static final int SHL_INT_2ADDR
public static final int SHR_INT_2ADDR
public static final int USHR_INT_2ADDR
public static final int ADD_LONG_2ADDR
public static final int SUB_LONG_2ADDR
public static final int MUL_LONG_2ADDR
public static final int DIV_LONG_2ADDR
public static final int REM_LONG_2ADDR
public static final int AND_LONG_2ADDR
public static final int OR_LONG_2ADDR
public static final int XOR_LONG_2ADDR
public static final int SHL_LONG_2ADDR
public static final int SHR_LONG_2ADDR
public static final int USHR_LONG_2ADDR
public static final int ADD_FLOAT_2ADDR
public static final int SUB_FLOAT_2ADDR
public static final int MUL_FLOAT_2ADDR
public static final int DIV_FLOAT_2ADDR
public static final int REM_FLOAT_2ADDR
public static final int ADD_DOUBLE_2ADDR
public static final int SUB_DOUBLE_2ADDR
public static final int MUL_DOUBLE_2ADDR
public static final int DIV_DOUBLE_2ADDR
public static final int REM_DOUBLE_2ADDR
public static final int ADD_INT_LIT16
public static final int RSUB_INT
public static final int MUL_INT_LIT16
public static final int DIV_INT_LIT16
public static final int REM_INT_LIT16
public static final int AND_INT_LIT16
public static final int OR_INT_LIT16
public static final int XOR_INT_LIT16
public static final int ADD_INT_LIT8
public static final int RSUB_INT_LIT8
public static final int MUL_INT_LIT8
public static final int DIV_INT_LIT8
public static final int REM_INT_LIT8
public static final int AND_INT_LIT8
public static final int OR_INT_LIT8
public static final int XOR_INT_LIT8
public static final int SHL_INT_LIT8
public static final int SHR_INT_LIT8
public static final int USHR_INT_LIT8
public static final int INVOKE_POLYMORPHIC
public static final int INVOKE_POLYMORPHIC_RANGE
public static final int INVOKE_CUSTOM
public static final int INVOKE_CUSTOM_RANGE
public static final int CONST_METHOD_HANDLE
public static final int CONST_METHOD_TYPE
public static final int PACKED_SWITCH_PAYLOAD
public static final int SPARSE_SWITCH_PAYLOAD
public static final int FILL_ARRAY_DATA_PAYLOAD
public static boolean isValidShape(int opcode)
0x01..0xfe, the range
0x00ff..0xffff where the low-order byte is either
0 or 0xff, and the special opcode values SPECIAL_FORMAT and NO_NEXT. Note that not all of the
opcode values that pass this test are in fact used. This method
is meant to perform a quick check to reject blatantly wrong
values (e.g. when validating arguments).opcode - the opcode valuetrue iff the value has the right "shape" to be
possibly validpublic static int extractOpcodeFromUnit(int opcodeUnit)
opcodeUnit - the opcode-containing code unitCopyright © 2020. All Rights Reserved.