Skip to main content

BNMediumLevelILOperation

Enum BNMediumLevelILOperation 

Source
#[repr(u8)]
pub enum BNMediumLevelILOperation {
Show 160 variants MLIL_NOP = 0, MLIL_SET_VAR = 1, MLIL_SET_VAR_FIELD = 2, MLIL_SET_VAR_SPLIT = 3, MLIL_ASSERT = 4, MLIL_FORCE_VER = 5, MLIL_LOAD = 6, MLIL_LOAD_STRUCT = 7, MLIL_STORE = 8, MLIL_STORE_STRUCT = 9, MLIL_VAR = 10, MLIL_VAR_FIELD = 11, MLIL_VAR_SPLIT = 12, MLIL_ADDRESS_OF = 13, MLIL_ADDRESS_OF_FIELD = 14, MLIL_PASS_BY_REF = 15, MLIL_RETURN_BY_REF = 16, MLIL_CONST = 17, MLIL_CONST_DATA = 18, MLIL_CONST_PTR = 19, MLIL_EXTERN_PTR = 20, MLIL_FLOAT_CONST = 21, MLIL_IMPORT = 22, MLIL_ADD = 23, MLIL_ADC = 24, MLIL_SUB = 25, MLIL_SBB = 26, MLIL_AND = 27, MLIL_OR = 28, MLIL_XOR = 29, MLIL_LSL = 30, MLIL_LSR = 31, MLIL_ASR = 32, MLIL_ROL = 33, MLIL_RLC = 34, MLIL_ROR = 35, MLIL_RRC = 36, MLIL_MUL = 37, MLIL_MULU_DP = 38, MLIL_MULS_DP = 39, MLIL_DIVU = 40, MLIL_DIVU_DP = 41, MLIL_DIVS = 42, MLIL_DIVS_DP = 43, MLIL_MODU = 44, MLIL_MODU_DP = 45, MLIL_MODS = 46, MLIL_MODS_DP = 47, MLIL_NEG = 48, MLIL_NOT = 49, MLIL_SX = 50, MLIL_ZX = 51, MLIL_LOW_PART = 52, MLIL_JUMP = 53, MLIL_JUMP_TO = 54, MLIL_RET_HINT = 55, MLIL_CALL = 56, MLIL_CALL_UNTYPED = 57, MLIL_CALL_PARAM = 58, MLIL_SEPARATE_PARAM_LIST = 59, MLIL_SHARED_PARAM_SLOT = 60, MLIL_VAR_OUTPUT = 61, MLIL_VAR_OUTPUT_FIELD = 62, MLIL_STORE_OUTPUT = 63, MLIL_RET = 64, MLIL_NORET = 65, MLIL_IF = 66, MLIL_GOTO = 67, MLIL_CMP_E = 68, MLIL_CMP_NE = 69, MLIL_CMP_SLT = 70, MLIL_CMP_ULT = 71, MLIL_CMP_SLE = 72, MLIL_CMP_ULE = 73, MLIL_CMP_SGE = 74, MLIL_CMP_UGE = 75, MLIL_CMP_SGT = 76, MLIL_CMP_UGT = 77, MLIL_TEST_BIT = 78, MLIL_BOOL_TO_INT = 79, MLIL_ADD_OVERFLOW = 80, MLIL_SYSCALL = 81, MLIL_SYSCALL_UNTYPED = 82, MLIL_TAILCALL = 83, MLIL_TAILCALL_UNTYPED = 84, MLIL_INTRINSIC = 85, MLIL_FREE_VAR_SLOT = 86, MLIL_BP = 87, MLIL_TRAP = 88, MLIL_UNDEF = 89, MLIL_UNIMPL = 90, MLIL_UNIMPL_MEM = 91, MLIL_FADD = 92, MLIL_FSUB = 93, MLIL_FMUL = 94, MLIL_FDIV = 95, MLIL_FSQRT = 96, MLIL_FNEG = 97, MLIL_FABS = 98, MLIL_FLOAT_TO_INT = 99, MLIL_INT_TO_FLOAT = 100, MLIL_FLOAT_CONV = 101, MLIL_ROUND_TO_INT = 102, MLIL_FLOOR = 103, MLIL_CEIL = 104, MLIL_FTRUNC = 105, MLIL_FCMP_E = 106, MLIL_FCMP_NE = 107, MLIL_FCMP_LT = 108, MLIL_FCMP_LE = 109, MLIL_FCMP_GE = 110, MLIL_FCMP_GT = 111, MLIL_FCMP_O = 112, MLIL_FCMP_UO = 113, MLIL_SET_VAR_SSA = 114, MLIL_SET_VAR_SSA_FIELD = 115, MLIL_SET_VAR_SPLIT_SSA = 116, MLIL_SET_VAR_ALIASED = 117, MLIL_SET_VAR_ALIASED_FIELD = 118, MLIL_VAR_SSA = 119, MLIL_VAR_SSA_FIELD = 120, MLIL_VAR_ALIASED = 121, MLIL_VAR_ALIASED_FIELD = 122, MLIL_VAR_SPLIT_SSA = 123, MLIL_ASSERT_SSA = 124, MLIL_FORCE_VER_SSA = 125, MLIL_CALL_SSA = 126, MLIL_CALL_UNTYPED_SSA = 127, MLIL_SYSCALL_SSA = 128, MLIL_SYSCALL_UNTYPED_SSA = 129, MLIL_TAILCALL_SSA = 130, MLIL_TAILCALL_UNTYPED_SSA = 131, MLIL_CALL_PARAM_SSA = 132, MLIL_CALL_OUTPUT_SSA = 133, MLIL_VAR_OUTPUT_SSA = 134, MLIL_VAR_OUTPUT_SSA_FIELD = 135, MLIL_VAR_OUTPUT_ALIASED = 136, MLIL_VAR_OUTPUT_ALIASED_FIELD = 137, MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 138, MLIL_LOAD_SSA = 139, MLIL_LOAD_STRUCT_SSA = 140, MLIL_STORE_SSA = 141, MLIL_STORE_STRUCT_SSA = 142, MLIL_INTRINSIC_SSA = 143, MLIL_MEMORY_INTRINSIC_SSA = 144, MLIL_FREE_VAR_SLOT_SSA = 145, MLIL_VAR_PHI = 146, MLIL_MEM_PHI = 147, MLIL_BLOCK_TO_EXPAND = 148, MLIL_BSWAP = 149, MLIL_POPCNT = 150, MLIL_CLZ = 151, MLIL_CTZ = 152, MLIL_RBIT = 153, MLIL_CLS = 154, MLIL_MINS = 155, MLIL_MAXS = 156, MLIL_MINU = 157, MLIL_MAXU = 158, MLIL_ABS = 159,
}

Variants§

§

MLIL_NOP = 0

§

MLIL_SET_VAR = 1

Not valid in SSA form (see MLIL_SET_VAR_SSA)

§

MLIL_SET_VAR_FIELD = 2

Not valid in SSA form (see MLIL_SET_VAR_FIELD)

§

MLIL_SET_VAR_SPLIT = 3

Not valid in SSA form (see MLIL_SET_VAR_SPLIT_SSA)

§

MLIL_ASSERT = 4

§

MLIL_FORCE_VER = 5

§

MLIL_LOAD = 6

Not valid in SSA form (see MLIL_LOAD_SSA)

§

MLIL_LOAD_STRUCT = 7

Not valid in SSA form (see MLIL_LOAD_STRUCT_SSA)

§

MLIL_STORE = 8

Not valid in SSA form (see MLIL_STORE_SSA)

§

MLIL_STORE_STRUCT = 9

Not valid in SSA form (see MLIL_STORE_STRUCT_SSA)

§

MLIL_VAR = 10

Not valid in SSA form (see MLIL_VAR_SSA)

§

MLIL_VAR_FIELD = 11

Not valid in SSA form (see MLIL_VAR_SSA_FIELD)

§

MLIL_VAR_SPLIT = 12

Not valid in SSA form (see MLIL_VAR_SPLIT_SSA)

§

MLIL_ADDRESS_OF = 13

§

MLIL_ADDRESS_OF_FIELD = 14

§

MLIL_PASS_BY_REF = 15

§

MLIL_RETURN_BY_REF = 16

§

MLIL_CONST = 17

§

MLIL_CONST_DATA = 18

§

MLIL_CONST_PTR = 19

§

MLIL_EXTERN_PTR = 20

§

MLIL_FLOAT_CONST = 21

§

MLIL_IMPORT = 22

§

MLIL_ADD = 23

§

MLIL_ADC = 24

§

MLIL_SUB = 25

§

MLIL_SBB = 26

§

MLIL_AND = 27

§

MLIL_OR = 28

§

MLIL_XOR = 29

§

MLIL_LSL = 30

§

MLIL_LSR = 31

§

MLIL_ASR = 32

§

MLIL_ROL = 33

§

MLIL_RLC = 34

§

MLIL_ROR = 35

§

MLIL_RRC = 36

§

MLIL_MUL = 37

§

MLIL_MULU_DP = 38

§

MLIL_MULS_DP = 39

§

MLIL_DIVU = 40

§

MLIL_DIVU_DP = 41

§

MLIL_DIVS = 42

§

MLIL_DIVS_DP = 43

§

MLIL_MODU = 44

§

MLIL_MODU_DP = 45

§

MLIL_MODS = 46

§

MLIL_MODS_DP = 47

§

MLIL_NEG = 48

§

MLIL_NOT = 49

§

MLIL_SX = 50

§

MLIL_ZX = 51

§

MLIL_LOW_PART = 52

§

MLIL_JUMP = 53

§

MLIL_JUMP_TO = 54

§

MLIL_RET_HINT = 55

Intermediate stages, does not appear in final forms

§

MLIL_CALL = 56

Not valid in SSA form (see MLIL_CALL_SSA)

§

MLIL_CALL_UNTYPED = 57

Not valid in SSA form (see MLIL_CALL_UNTYPED_SSA)

§

MLIL_CALL_PARAM = 58

Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions

§

MLIL_SEPARATE_PARAM_LIST = 59

Only valid within the MLIL_CALL_PARAM or MLIL_CALL_PARAM_SSA instructions inside untyped call variants

§

MLIL_SHARED_PARAM_SLOT = 60

Only valid within the MLIL_CALL_PARAM, MLIL_CALL_PARAM_SSA, or MLIL_SEPARATE_PARAM_LIST instructions inside untyped call variants

§

MLIL_VAR_OUTPUT = 61

Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions

§

MLIL_VAR_OUTPUT_FIELD = 62

Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions

§

MLIL_STORE_OUTPUT = 63

Only valid within MLIL_CALL, MLIL_SYSCALL, MLIL_TAILCALL family instructions

§

MLIL_RET = 64

§

MLIL_NORET = 65

§

MLIL_IF = 66

§

MLIL_GOTO = 67

§

MLIL_CMP_E = 68

§

MLIL_CMP_NE = 69

§

MLIL_CMP_SLT = 70

§

MLIL_CMP_ULT = 71

§

MLIL_CMP_SLE = 72

§

MLIL_CMP_ULE = 73

§

MLIL_CMP_SGE = 74

§

MLIL_CMP_UGE = 75

§

MLIL_CMP_SGT = 76

§

MLIL_CMP_UGT = 77

§

MLIL_TEST_BIT = 78

§

MLIL_BOOL_TO_INT = 79

§

MLIL_ADD_OVERFLOW = 80

§

MLIL_SYSCALL = 81

Not valid in SSA form (see MLIL_SYSCALL_SSA)

§

MLIL_SYSCALL_UNTYPED = 82

Not valid in SSA form (see MLIL_SYSCALL_UNTYPED_SSA)

§

MLIL_TAILCALL = 83

Not valid in SSA form (see MLIL_TAILCALL_SSA)

§

MLIL_TAILCALL_UNTYPED = 84

Not valid in SSA form (see MLIL_TAILCALL_UNTYPED_SSA)

§

MLIL_INTRINSIC = 85

Not valid in SSA form (see MLIL_INTRINSIC_SSA)

§

MLIL_FREE_VAR_SLOT = 86

Not valid in SSA from (see MLIL_FREE_VAR_SLOT_SSA)

§

MLIL_BP = 87

§

MLIL_TRAP = 88

§

MLIL_UNDEF = 89

§

MLIL_UNIMPL = 90

§

MLIL_UNIMPL_MEM = 91

§

MLIL_FADD = 92

Floating point

§

MLIL_FSUB = 93

Floating point

§

MLIL_FMUL = 94

Floating point

§

MLIL_FDIV = 95

Floating point

§

MLIL_FSQRT = 96

Floating point

§

MLIL_FNEG = 97

Floating point

§

MLIL_FABS = 98

Floating point

§

MLIL_FLOAT_TO_INT = 99

Floating point

§

MLIL_INT_TO_FLOAT = 100

Floating point

§

MLIL_FLOAT_CONV = 101

Floating point

§

MLIL_ROUND_TO_INT = 102

Floating point

§

MLIL_FLOOR = 103

Floating point

§

MLIL_CEIL = 104

Floating point

§

MLIL_FTRUNC = 105

Floating point

§

MLIL_FCMP_E = 106

Floating point

§

MLIL_FCMP_NE = 107

Floating point

§

MLIL_FCMP_LT = 108

Floating point

§

MLIL_FCMP_LE = 109

Floating point

§

MLIL_FCMP_GE = 110

Floating point

§

MLIL_FCMP_GT = 111

Floating point

§

MLIL_FCMP_O = 112

Floating point

§

MLIL_FCMP_UO = 113

Floating point

§

MLIL_SET_VAR_SSA = 114

The following instructions are only used in SSA form

§

MLIL_SET_VAR_SSA_FIELD = 115

The following instructions are only used in SSA form

§

MLIL_SET_VAR_SPLIT_SSA = 116

The following instructions are only used in SSA form

§

MLIL_SET_VAR_ALIASED = 117

The following instructions are only used in SSA form

§

MLIL_SET_VAR_ALIASED_FIELD = 118

The following instructions are only used in SSA form

§

MLIL_VAR_SSA = 119

The following instructions are only used in SSA form

§

MLIL_VAR_SSA_FIELD = 120

The following instructions are only used in SSA form

§

MLIL_VAR_ALIASED = 121

The following instructions are only used in SSA form

§

MLIL_VAR_ALIASED_FIELD = 122

The following instructions are only used in SSA form

§

MLIL_VAR_SPLIT_SSA = 123

The following instructions are only used in SSA form

§

MLIL_ASSERT_SSA = 124

The following instructions are only used in SSA form

§

MLIL_FORCE_VER_SSA = 125

The following instructions are only used in SSA form

§

MLIL_CALL_SSA = 126

The following instructions are only used in SSA form

§

MLIL_CALL_UNTYPED_SSA = 127

The following instructions are only used in SSA form

§

MLIL_SYSCALL_SSA = 128

The following instructions are only used in SSA form

§

MLIL_SYSCALL_UNTYPED_SSA = 129

The following instructions are only used in SSA form

§

MLIL_TAILCALL_SSA = 130

The following instructions are only used in SSA form

§

MLIL_TAILCALL_UNTYPED_SSA = 131

The following instructions are only used in SSA form

§

MLIL_CALL_PARAM_SSA = 132

Only valid within the MLIL_CALL_SSA, MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA, MLIL_INTRINSIC_SSA family instructions

§

MLIL_CALL_OUTPUT_SSA = 133

Only valid within the MLIL_CALL_SSA or MLIL_SYSCALL_SSA, MLIL_TAILCALL_SSA family instructions

§

MLIL_VAR_OUTPUT_SSA = 134

Only valid within the MLIL_CALL_OUTPUT_SSA instruction

§

MLIL_VAR_OUTPUT_SSA_FIELD = 135

Only valid within the MLIL_CALL_OUTPUT_SSA instruction

§

MLIL_VAR_OUTPUT_ALIASED = 136

Only valid within the MLIL_CALL_OUTPUT_SSA instruction

§

MLIL_VAR_OUTPUT_ALIASED_FIELD = 137

Only valid within the MLIL_CALL_OUTPUT_SSA instruction

§

MLIL_MEMORY_INTRINSIC_OUTPUT_SSA = 138

Only valid within the MLIL_MEMORY_INTRINSIC_SSA instruction

§

MLIL_LOAD_SSA = 139

§

MLIL_LOAD_STRUCT_SSA = 140

§

MLIL_STORE_SSA = 141

§

MLIL_STORE_STRUCT_SSA = 142

§

MLIL_INTRINSIC_SSA = 143

§

MLIL_MEMORY_INTRINSIC_SSA = 144

§

MLIL_FREE_VAR_SLOT_SSA = 145

§

MLIL_VAR_PHI = 146

§

MLIL_MEM_PHI = 147

§

MLIL_BLOCK_TO_EXPAND = 148

Must be expanded by a future workflow step, used temporarily to insert instructions

§

MLIL_BSWAP = 149

Reverse byte order of the whole value

§

MLIL_POPCNT = 150

Population count (number of set bits)

§

MLIL_CLZ = 151

Count leading zero bits; clz(0) == 8 * size

§

MLIL_CTZ = 152

Count trailing zero bits; ctz(0) == 8 * size

§

MLIL_RBIT = 153

Reverse bit order of the whole value

§

MLIL_CLS = 154

Count leading sign bits; number of bits below the sign bit that match it

§

MLIL_MINS = 155

Signed minimum of left and right

§

MLIL_MAXS = 156

Signed maximum of left and right

§

MLIL_MINU = 157

Unsigned minimum of left and right

§

MLIL_MAXU = 158

Unsigned maximum of left and right

§

MLIL_ABS = 159

Signed absolute value of src; abs(INT_MIN) == INT_MIN

Trait Implementations§

Source§

impl Clone for BNMediumLevelILOperation

Source§

fn clone(&self) -> BNMediumLevelILOperation

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for BNMediumLevelILOperation

Source§

impl Debug for BNMediumLevelILOperation

Source§

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

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

impl Eq for BNMediumLevelILOperation

Source§

impl Hash for BNMediumLevelILOperation

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for BNMediumLevelILOperation

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 StructuralPartialEq for BNMediumLevelILOperation

Auto Trait Implementations§

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> 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.