#[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
impl Clone for BNMediumLevelILOperation
Source§fn clone(&self) -> BNMediumLevelILOperation
fn clone(&self) -> BNMediumLevelILOperation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BNMediumLevelILOperation
Source§impl Debug for BNMediumLevelILOperation
impl Debug for BNMediumLevelILOperation
impl Eq for BNMediumLevelILOperation
Source§impl Hash for BNMediumLevelILOperation
impl Hash for BNMediumLevelILOperation
Source§impl PartialEq for BNMediumLevelILOperation
impl PartialEq for BNMediumLevelILOperation
Source§fn eq(&self, other: &BNMediumLevelILOperation) -> bool
fn eq(&self, other: &BNMediumLevelILOperation) -> bool
self and other values to be equal, and is used by ==.