pub struct Operation<'func, M, F, O>{ /* private fields */ }
Implementations§
source§impl<M, O> Operation<'_, M, NonSSA, O>where
M: FunctionMutability,
O: OperationArguments,
impl<M, O> Operation<'_, M, NonSSA, O>where
M: FunctionMutability,
O: OperationArguments,
sourcepub fn flag_write(&self) -> Option<CoreFlagWrite>
pub fn flag_write(&self) -> Option<CoreFlagWrite>
Get the CoreFlagWrite
for the operation.
NOTE: This is only expected to be present for lifted IL.
source§impl<M, F> Operation<'_, M, F, Pop>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, Pop>where
M: FunctionMutability,
F: FunctionForm,
source§impl<'func, M, F> Operation<'func, M, F, SyscallSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SyscallSsa>where
M: FunctionMutability,
F: FunctionForm,
sourcepub fn output_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn output_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Get the output expression of the call.
NOTE: This is currently always CallOutputSsa
.
sourcepub fn param_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn param_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Get the parameter expression of the call.
NOTE: This is currently always CallParamSsa
.
sourcepub fn stack_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn stack_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Get the stack expression of the call.
NOTE: This is currently always CallStackSsa
.
source§impl<M, F> Operation<'_, M, F, Intrinsic>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, Intrinsic>where
M: FunctionMutability,
F: FunctionForm,
pub fn intrinsic(&self) -> Option<CoreIntrinsic>
source§impl<'func, M, F> Operation<'func, M, F, SetReg>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SetReg>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn dest_reg(&self) -> LowLevelILRegisterKind<CoreRegister>
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, SetRegSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SetRegSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn dest_reg(&self) -> LowLevelILSSARegisterKind<CoreRegister>
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, SetRegPartialSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SetRegPartialSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn dest_reg(&self) -> LowLevelILSSARegisterKind<CoreRegister>
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, SetRegSplit>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SetRegSplit>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn dest_reg_high(&self) -> LowLevelILRegisterKind<CoreRegister>
pub fn dest_reg_low(&self) -> LowLevelILRegisterKind<CoreRegister>
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, SetRegSplitSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SetRegSplitSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
sourcepub fn dest_expr_high(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn dest_expr_high(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Because of the fixed operand list size we use another expression for the dest high register.
NOTE: This should always be an expression of RegSsa
.
sourcepub fn dest_expr_low(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn dest_expr_low(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Because of the fixed operand list size we use another expression for the dest low register.
NOTE: This should always be an expression of RegSsa
.
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, SetFlag>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SetFlag>where
M: FunctionMutability,
F: FunctionForm,
pub fn dest_flag(&self) -> CoreFlag
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, SetFlagSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, SetFlagSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn dest_flag(&self) -> LowLevelILSSAFlag<CoreFlag>
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, Load>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, Load>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, LoadSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, LoadSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn source_memory_version(&self) -> u64
source§impl<'func, M, F> Operation<'func, M, F, Store>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, Store>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn dest_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, StoreSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, StoreSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn dest_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn dest_memory_version(&self) -> u64
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn source_memory_version(&self) -> u64
source§impl<M, F> Operation<'_, M, F, Reg>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, Reg>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn source_reg(&self) -> LowLevelILRegisterKind<CoreRegister>
source§impl<M, F> Operation<'_, M, F, RegSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, RegSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn source_reg(&self) -> LowLevelILSSARegisterKind<CoreRegister>
source§impl<M, F> Operation<'_, M, F, RegPartialSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, RegPartialSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn source_reg(&self) -> LowLevelILSSARegisterKind<CoreRegister>
source§impl<M, F> Operation<'_, M, F, RegSplit>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, RegSplit>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn low_reg(&self) -> LowLevelILRegisterKind<CoreRegister>
pub fn high_reg(&self) -> LowLevelILRegisterKind<CoreRegister>
source§impl<M, F> Operation<'_, M, F, RegSplitSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, RegSplitSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn low_reg(&self) -> LowLevelILSSARegisterKind<CoreRegister>
pub fn high_reg(&self) -> LowLevelILSSARegisterKind<CoreRegister>
source§impl<'func, M, F> Operation<'func, M, F, RegStackPush>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, RegStackPush>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn dest_reg_stack(&self) -> CoreRegisterStack
pub fn source_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<M, F> Operation<'_, M, F, RegStackPop>where
M: FunctionMutability,
F: FunctionForm,
impl<M, F> Operation<'_, M, F, RegStackPop>where
M: FunctionMutability,
F: FunctionForm,
pub fn size(&self) -> usize
pub fn source_reg_stack(&self) -> CoreRegisterStack
source§impl<'func, M, F> Operation<'func, M, F, Jump>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, Jump>where
M: FunctionMutability,
F: FunctionForm,
pub fn target(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
source§impl<'func, M, F> Operation<'func, M, F, JumpTo>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, JumpTo>where
M: FunctionMutability,
F: FunctionForm,
pub fn target(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn target_list(&self) -> BTreeMap<u64, LowLevelInstructionIndex>
source§impl<'func, M, F> Operation<'func, M, F, Call>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, Call>where
M: FunctionMutability,
F: FunctionForm,
pub fn target(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn stack_adjust(&self) -> Option<u64>
source§impl<'func, M, F> Operation<'func, M, F, CallSsa>where
M: FunctionMutability,
F: FunctionForm,
impl<'func, M, F> Operation<'func, M, F, CallSsa>where
M: FunctionMutability,
F: FunctionForm,
pub fn target(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
sourcepub fn output_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn output_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Get the output expression of the call.
NOTE: This is currently always CallOutputSsa
.
sourcepub fn param_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn param_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Get the parameter expression of the call.
NOTE: This is currently always CallParamSsa
.
sourcepub fn stack_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
pub fn stack_expr(&self) -> LowLevelILExpression<'func, M, F, ValueExpr>
Get the stack expression of the call.
NOTE: This is currently always CallStackSsa
.