Enum OpCode

Source
pub enum OpCode {
Show 227 variants NOP, MOVE, MOVE_FROM16, MOVE_16, MOVE_WIDE, MOVE_WIDE_FROM16, MOVE_WIDE_16, MOVE_OBJECT, MOVE_OBJECT_FROM16, MOVE_OBJECT_16, MOVE_RESULT, MOVE_RESULT_WIDE, MOVE_RESULT_OBJECT, MOVE_EXCEPTION, RETURN_VOID, RETURN, RETURN_WIDE, RETURN_OBJECT, CONST_4, CONST_16, CONST, CONST_HIGH16, CONST_WIDE_16, CONST_WIDE_32, CONST_WIDE, CONST_WIDE_HIGH16, CONST_STRING, CONST_STRING_JUMBO, CONST_CLASS, MONITOR_ENTER, MONITOR_EXIT, CHECK_CAST, INSTANCE_OF, ARRAY_LENGTH, NEW_INSTANCE, NEW_ARRAY, FILLED_NEW_ARRAY, FILLED_NEW_ARRAY_RANGE, FILL_ARRAY_DATA, THROW, GOTO, GOTO_16, GOTO_32, PACKED_SWITCH, SPARSE_SWITCH, CMPL_FLOAT, CMPG_FLOAT, CMPL_DOUBLE, CMPG_DOUBLE, CMP_LONG, IF_EQ, IF_NE, IF_LT, IF_GE, IF_GT, IF_LE, IF_EQZ, IF_NEZ, IF_LTZ, IF_GEZ, IF_GTZ, IF_LEZ, AGET, AGET_WIDE, AGET_OBJECT, AGET_BOOLEAN, AGET_BYTE, AGET_CHAR, AGET_SHORT, APUT, APUT_WIDE, APUT_OBJECT, APUT_BOOLEAN, APUT_BYTE, APUT_CHAR, APUT_SHORT, IGET, IGET_WIDE, IGET_OBJECT, IGET_BOOLEAN, IGET_BYTE, IGET_CHAR, IGET_SHORT, IPUT, IPUT_WIDE, IPUT_OBJECT, IPUT_BOOLEAN, IPUT_BYTE, IPUT_CHAR, IPUT_SHORT, SGET, SGET_WIDE, SGET_OBJECT, SGET_BOOLEAN, SGET_BYTE, SGET_CHAR, SGET_SHORT, SPUT, SPUT_WIDE, SPUT_OBJECT, SPUT_BOOLEAN, SPUT_BYTE, SPUT_CHAR, SPUT_SHORT, INVOKE_VIRTUAL, INVOKE_SUPER, INVOKE_DIRECT, INVOKE_STATIC, INVOKE_INTERFACE, INVOKE_VIRTUAL_RANGE, INVOKE_SUPER_RANGE, INVOKE_DIRECT_RANGE, INVOKE_STATIC_RANGE, INVOKE_INTERFACE_RANGE, NEG_INT, NOT_INT, NEG_LONG, NOT_LONG, NEG_FLOAT, NEG_DOUBLE, INT_TO_LONG, INT_TO_FLOAT, INT_TO_DOUBLE, LONG_TO_INT, LONG_TO_FLOAT, LONG_TO_DOUBLE, FLOAT_TO_INT, FLOAT_TO_LONG, FLOAT_TO_DOUBLE, DOUBLE_TO_INT, DOUBLE_TO_LONG, DOUBLE_TO_FLOAT, INT_TO_BYTE, INT_TO_CHAR, INT_TO_SHORT, ADD_INT, SUB_INT, MUL_INT, DIV_INT, REM_INT, AND_INT, OR_INT, XOR_INT, SHL_INT, SHR_INT, USHR_INT, ADD_LONG, SUB_LONG, MUL_LONG, DIV_LONG, REM_LONG, AND_LONG, OR_LONG, XOR_LONG, SHL_LONG, SHR_LONG, USHR_LONG, ADD_FLOAT, SUB_FLOAT, MUL_FLOAT, DIV_FLOAT, REM_FLOAT, ADD_DOUBLE, SUB_DOUBLE, MUL_DOUBLE, DIV_DOUBLE, REM_DOUBLE, ADD_INT_2ADDR, SUB_INT_2ADDR, MUL_INT_2ADDR, DIV_INT_2ADDR, REM_INT_2ADDR, AND_INT_2ADDR, OR_INT_2ADDR, XOR_INT_2ADDR, SHL_INT_2ADDR, SHR_INT_2ADDR, USHR_INT_2ADDR, ADD_LONG_2ADDR, SUB_LONG_2ADDR, MUL_LONG_2ADDR, DIV_LONG_2ADDR, REM_LONG_2ADDR, AND_LONG_2ADDR, OR_LONG_2ADDR, XOR_LONG_2ADDR, SHL_LONG_2ADDR, SHR_LONG_2ADDR, USHR_LONG_2ADDR, ADD_FLOAT_2ADDR, SUB_FLOAT_2ADDR, MUL_FLOAT_2ADDR, DIV_FLOAT_2ADDR, REM_FLOAT_2ADDR, ADD_DOUBLE_2ADDR, SUB_DOUBLE_2ADDR, MUL_DOUBLE_2ADDR, DIV_DOUBLE_2ADDR, REM_DOUBLE_2ADDR, ADD_INT_LIT16, RSUB_INT, MUL_INT_LIT16, DIV_INT_LIT16, REM_INT_LIT16, AND_INT_LIT16, OR_INT_LIT16, XOR_INT_LIT16, ADD_INT_LIT8, RSUB_INT_LIT8, MUL_INT_LIT8, DIV_INT_LIT8, REM_INT_LIT8, AND_INT_LIT8, OR_INT_LIT8, XOR_INT_LIT8, SHL_INT_LIT8, SHR_INT_LIT8, USHR_INT_LIT8, INVOKE_POLYMORPHIC, INVOKE_POLYMORPHIC_RANGE, INVOKE_CUSTOM, INVOKE_CUSTOM_RANGE, CONST_METHOD_HANDLE, CONST_METHOD_TYPE, PACKED_SWITCH_PAYLOAD, SPARSE_SWITCH_PAYLOAD, FILL_ARRAY_DATA_PAYLOAD,
}
Expand description

All existing Dalvik opcodes

Variants§

§

NOP

§

MOVE

§

MOVE_FROM16

§

MOVE_16

§

MOVE_WIDE

§

MOVE_WIDE_FROM16

§

MOVE_WIDE_16

§

MOVE_OBJECT

§

MOVE_OBJECT_FROM16

§

MOVE_OBJECT_16

§

MOVE_RESULT

§

MOVE_RESULT_WIDE

§

MOVE_RESULT_OBJECT

§

MOVE_EXCEPTION

§

RETURN_VOID

§

RETURN

§

RETURN_WIDE

§

RETURN_OBJECT

§

CONST_4

§

CONST_16

§

CONST

§

CONST_HIGH16

§

CONST_WIDE_16

§

CONST_WIDE_32

§

CONST_WIDE

§

CONST_WIDE_HIGH16

§

CONST_STRING

§

CONST_STRING_JUMBO

§

CONST_CLASS

§

MONITOR_ENTER

§

MONITOR_EXIT

§

CHECK_CAST

§

INSTANCE_OF

§

ARRAY_LENGTH

§

NEW_INSTANCE

§

NEW_ARRAY

§

FILLED_NEW_ARRAY

§

FILLED_NEW_ARRAY_RANGE

§

FILL_ARRAY_DATA

§

THROW

§

GOTO

§

GOTO_16

§

GOTO_32

§

PACKED_SWITCH

§

SPARSE_SWITCH

§

CMPL_FLOAT

§

CMPG_FLOAT

§

CMPL_DOUBLE

§

CMPG_DOUBLE

§

CMP_LONG

§

IF_EQ

§

IF_NE

§

IF_LT

§

IF_GE

§

IF_GT

§

IF_LE

§

IF_EQZ

§

IF_NEZ

§

IF_LTZ

§

IF_GEZ

§

IF_GTZ

§

IF_LEZ

§

AGET

§

AGET_WIDE

§

AGET_OBJECT

§

AGET_BOOLEAN

§

AGET_BYTE

§

AGET_CHAR

§

AGET_SHORT

§

APUT

§

APUT_WIDE

§

APUT_OBJECT

§

APUT_BOOLEAN

§

APUT_BYTE

§

APUT_CHAR

§

APUT_SHORT

§

IGET

§

IGET_WIDE

§

IGET_OBJECT

§

IGET_BOOLEAN

§

IGET_BYTE

§

IGET_CHAR

§

IGET_SHORT

§

IPUT

§

IPUT_WIDE

§

IPUT_OBJECT

§

IPUT_BOOLEAN

§

IPUT_BYTE

§

IPUT_CHAR

§

IPUT_SHORT

§

SGET

§

SGET_WIDE

§

SGET_OBJECT

§

SGET_BOOLEAN

§

SGET_BYTE

§

SGET_CHAR

§

SGET_SHORT

§

SPUT

§

SPUT_WIDE

§

SPUT_OBJECT

§

SPUT_BOOLEAN

§

SPUT_BYTE

§

SPUT_CHAR

§

SPUT_SHORT

§

INVOKE_VIRTUAL

§

INVOKE_SUPER

§

INVOKE_DIRECT

§

INVOKE_STATIC

§

INVOKE_INTERFACE

§

INVOKE_VIRTUAL_RANGE

§

INVOKE_SUPER_RANGE

§

INVOKE_DIRECT_RANGE

§

INVOKE_STATIC_RANGE

§

INVOKE_INTERFACE_RANGE

§

NEG_INT

§

NOT_INT

§

NEG_LONG

§

NOT_LONG

§

NEG_FLOAT

§

NEG_DOUBLE

§

INT_TO_LONG

§

INT_TO_FLOAT

§

INT_TO_DOUBLE

§

LONG_TO_INT

§

LONG_TO_FLOAT

§

LONG_TO_DOUBLE

§

FLOAT_TO_INT

§

FLOAT_TO_LONG

§

FLOAT_TO_DOUBLE

§

DOUBLE_TO_INT

§

DOUBLE_TO_LONG

§

DOUBLE_TO_FLOAT

§

INT_TO_BYTE

§

INT_TO_CHAR

§

INT_TO_SHORT

§

ADD_INT

§

SUB_INT

§

MUL_INT

§

DIV_INT

§

REM_INT

§

AND_INT

§

OR_INT

§

XOR_INT

§

SHL_INT

§

SHR_INT

§

USHR_INT

§

ADD_LONG

§

SUB_LONG

§

MUL_LONG

§

DIV_LONG

§

REM_LONG

§

AND_LONG

§

OR_LONG

§

XOR_LONG

§

SHL_LONG

§

SHR_LONG

§

USHR_LONG

§

ADD_FLOAT

§

SUB_FLOAT

§

MUL_FLOAT

§

DIV_FLOAT

§

REM_FLOAT

§

ADD_DOUBLE

§

SUB_DOUBLE

§

MUL_DOUBLE

§

DIV_DOUBLE

§

REM_DOUBLE

§

ADD_INT_2ADDR

§

SUB_INT_2ADDR

§

MUL_INT_2ADDR

§

DIV_INT_2ADDR

§

REM_INT_2ADDR

§

AND_INT_2ADDR

§

OR_INT_2ADDR

§

XOR_INT_2ADDR

§

SHL_INT_2ADDR

§

SHR_INT_2ADDR

§

USHR_INT_2ADDR

§

ADD_LONG_2ADDR

§

SUB_LONG_2ADDR

§

MUL_LONG_2ADDR

§

DIV_LONG_2ADDR

§

REM_LONG_2ADDR

§

AND_LONG_2ADDR

§

OR_LONG_2ADDR

§

XOR_LONG_2ADDR

§

SHL_LONG_2ADDR

§

SHR_LONG_2ADDR

§

USHR_LONG_2ADDR

§

ADD_FLOAT_2ADDR

§

SUB_FLOAT_2ADDR

§

MUL_FLOAT_2ADDR

§

DIV_FLOAT_2ADDR

§

REM_FLOAT_2ADDR

§

ADD_DOUBLE_2ADDR

§

SUB_DOUBLE_2ADDR

§

MUL_DOUBLE_2ADDR

§

DIV_DOUBLE_2ADDR

§

REM_DOUBLE_2ADDR

§

ADD_INT_LIT16

§

RSUB_INT

§

MUL_INT_LIT16

§

DIV_INT_LIT16

§

REM_INT_LIT16

§

AND_INT_LIT16

§

OR_INT_LIT16

§

XOR_INT_LIT16

§

ADD_INT_LIT8

§

RSUB_INT_LIT8

§

MUL_INT_LIT8

§

DIV_INT_LIT8

§

REM_INT_LIT8

§

AND_INT_LIT8

§

OR_INT_LIT8

§

XOR_INT_LIT8

§

SHL_INT_LIT8

§

SHR_INT_LIT8

§

USHR_INT_LIT8

§

INVOKE_POLYMORPHIC

§

INVOKE_POLYMORPHIC_RANGE

§

INVOKE_CUSTOM

§

INVOKE_CUSTOM_RANGE

§

CONST_METHOD_HANDLE

§

CONST_METHOD_TYPE

§

PACKED_SWITCH_PAYLOAD

§

SPARSE_SWITCH_PAYLOAD

§

FILL_ARRAY_DATA_PAYLOAD

Implementations§

Source§

impl OpCode

Source

pub fn parse(value: u8) -> Option<Self>

Converts an u8 into an OpCode

Trait Implementations§

Source§

impl Clone for OpCode

Source§

fn clone(&self) -> OpCode

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OpCode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for OpCode

Source§

fn eq(&self, other: &OpCode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for OpCode

Source§

impl StructuralPartialEq for OpCode

Auto Trait Implementations§

§

impl Freeze for OpCode

§

impl RefUnwindSafe for OpCode

§

impl Send for OpCode

§

impl Sync for OpCode

§

impl Unpin for OpCode

§

impl UnwindSafe for OpCode

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.