|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.android.dx.io.Opcodes
public final class Opcodes
All the Dalvik opcode value constants. See the related spec document for the meaning and instruction format of each opcode.
| Field Summary | |
|---|---|
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 |
CHECK_CAST_JUMBO
|
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_CLASS_JUMBO
|
static int |
CONST_HIGH16
|
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_JUMBO
|
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_BOOLEAN_JUMBO
|
static int |
IGET_BYTE
|
static int |
IGET_BYTE_JUMBO
|
static int |
IGET_CHAR
|
static int |
IGET_CHAR_JUMBO
|
static int |
IGET_JUMBO
|
static int |
IGET_OBJECT
|
static int |
IGET_OBJECT_JUMBO
|
static int |
IGET_SHORT
|
static int |
IGET_SHORT_JUMBO
|
static int |
IGET_WIDE
|
static int |
IGET_WIDE_JUMBO
|
static int |
INSTANCE_OF
|
static int |
INSTANCE_OF_JUMBO
|
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_DIRECT
|
static int |
INVOKE_DIRECT_JUMBO
|
static int |
INVOKE_DIRECT_RANGE
|
static int |
INVOKE_INTERFACE
|
static int |
INVOKE_INTERFACE_JUMBO
|
static int |
INVOKE_INTERFACE_RANGE
|
static int |
INVOKE_STATIC
|
static int |
INVOKE_STATIC_JUMBO
|
static int |
INVOKE_STATIC_RANGE
|
static int |
INVOKE_SUPER
|
static int |
INVOKE_SUPER_JUMBO
|
static int |
INVOKE_SUPER_RANGE
|
static int |
INVOKE_VIRTUAL
|
static int |
INVOKE_VIRTUAL_JUMBO
|
static int |
INVOKE_VIRTUAL_RANGE
|
static int |
IPUT
|
static int |
IPUT_BOOLEAN
|
static int |
IPUT_BOOLEAN_JUMBO
|
static int |
IPUT_BYTE
|
static int |
IPUT_BYTE_JUMBO
|
static int |
IPUT_CHAR
|
static int |
IPUT_CHAR_JUMBO
|
static int |
IPUT_JUMBO
|
static int |
IPUT_OBJECT
|
static int |
IPUT_OBJECT_JUMBO
|
static int |
IPUT_SHORT
|
static int |
IPUT_SHORT_JUMBO
|
static int |
IPUT_WIDE
|
static int |
IPUT_WIDE_JUMBO
|
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_ARRAY_JUMBO
|
static int |
NEW_INSTANCE
|
static int |
NEW_INSTANCE_JUMBO
|
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_BOOLEAN_JUMBO
|
static int |
SGET_BYTE
|
static int |
SGET_BYTE_JUMBO
|
static int |
SGET_CHAR
|
static int |
SGET_CHAR_JUMBO
|
static int |
SGET_JUMBO
|
static int |
SGET_OBJECT
|
static int |
SGET_OBJECT_JUMBO
|
static int |
SGET_SHORT
|
static int |
SGET_SHORT_JUMBO
|
static int |
SGET_WIDE
|
static int |
SGET_WIDE_JUMBO
|
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_BOOLEAN_JUMBO
|
static int |
SPUT_BYTE
|
static int |
SPUT_BYTE_JUMBO
|
static int |
SPUT_CHAR
|
static int |
SPUT_CHAR_JUMBO
|
static int |
SPUT_JUMBO
|
static int |
SPUT_OBJECT
|
static int |
SPUT_OBJECT_JUMBO
|
static int |
SPUT_SHORT
|
static int |
SPUT_SHORT_JUMBO
|
static int |
SPUT_WIDE
|
static int |
SPUT_WIDE_JUMBO
|
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
|
| Method Summary | |
|---|---|
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 |
isExtended(int opcode)
Gets whether ( true) or not (false) the given
opcode value is an "extended" opcode (not counting the nop-like
payload opcodes). |
static boolean |
isValidShape(int opcode)
Determines if the given opcode has the right "shape" to be valid. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
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 CONST_CLASS_JUMBO
public static final int CHECK_CAST_JUMBO
public static final int INSTANCE_OF_JUMBO
public static final int NEW_INSTANCE_JUMBO
public static final int NEW_ARRAY_JUMBO
public static final int FILLED_NEW_ARRAY_JUMBO
public static final int IGET_JUMBO
public static final int IGET_WIDE_JUMBO
public static final int IGET_OBJECT_JUMBO
public static final int IGET_BOOLEAN_JUMBO
public static final int IGET_BYTE_JUMBO
public static final int IGET_CHAR_JUMBO
public static final int IGET_SHORT_JUMBO
public static final int IPUT_JUMBO
public static final int IPUT_WIDE_JUMBO
public static final int IPUT_OBJECT_JUMBO
public static final int IPUT_BOOLEAN_JUMBO
public static final int IPUT_BYTE_JUMBO
public static final int IPUT_CHAR_JUMBO
public static final int IPUT_SHORT_JUMBO
public static final int SGET_JUMBO
public static final int SGET_WIDE_JUMBO
public static final int SGET_OBJECT_JUMBO
public static final int SGET_BOOLEAN_JUMBO
public static final int SGET_BYTE_JUMBO
public static final int SGET_CHAR_JUMBO
public static final int SGET_SHORT_JUMBO
public static final int SPUT_JUMBO
public static final int SPUT_WIDE_JUMBO
public static final int SPUT_OBJECT_JUMBO
public static final int SPUT_BOOLEAN_JUMBO
public static final int SPUT_BYTE_JUMBO
public static final int SPUT_CHAR_JUMBO
public static final int SPUT_SHORT_JUMBO
public static final int INVOKE_VIRTUAL_JUMBO
public static final int INVOKE_SUPER_JUMBO
public static final int INVOKE_DIRECT_JUMBO
public static final int INVOKE_STATIC_JUMBO
public static final int INVOKE_INTERFACE_JUMBO
public static final int PACKED_SWITCH_PAYLOAD
public static final int SPARSE_SWITCH_PAYLOAD
public static final int FILL_ARRAY_DATA_PAYLOAD
| Method Detail |
|---|
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 value
true iff the value has the right "shape" to be
possibly validpublic static boolean isExtended(int opcode)
true) or not (false) the given
opcode value is an "extended" opcode (not counting the nop-like
payload opcodes). Extended opcodes require a full 16-bit code
unit to represent, without leaving space for an argument byte.
opcode - the opcode value
true iff the opcode is an "extended" opcodepublic static int extractOpcodeFromUnit(int opcodeUnit)
opcodeUnit - the opcode-containing code unit
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||