#[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 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more