Enum binaryninja::llil::ExprInfo
source · pub enum ExprInfo<'func, A, M, F>{
Show 77 variants
Load(Operation<'func, A, M, F, Load>),
Pop(Operation<'func, A, M, F, Pop>),
Reg(Operation<'func, A, M, F, Reg>),
RegSplit(Operation<'func, A, M, F, RegSplit>),
Const(Operation<'func, A, M, F, Const>),
ConstPtr(Operation<'func, A, M, F, Const>),
Flag(Operation<'func, A, M, F, Flag>),
FlagBit(Operation<'func, A, M, F, FlagBit>),
ExternPtr(Operation<'func, A, M, F, Extern>),
Add(Operation<'func, A, M, F, BinaryOp>),
Adc(Operation<'func, A, M, F, BinaryOpCarry>),
Sub(Operation<'func, A, M, F, BinaryOp>),
Sbb(Operation<'func, A, M, F, BinaryOpCarry>),
And(Operation<'func, A, M, F, BinaryOp>),
Or(Operation<'func, A, M, F, BinaryOp>),
Xor(Operation<'func, A, M, F, BinaryOp>),
Lsl(Operation<'func, A, M, F, BinaryOp>),
Lsr(Operation<'func, A, M, F, BinaryOp>),
Asr(Operation<'func, A, M, F, BinaryOp>),
Rol(Operation<'func, A, M, F, BinaryOp>),
Rlc(Operation<'func, A, M, F, BinaryOpCarry>),
Ror(Operation<'func, A, M, F, BinaryOp>),
Rrc(Operation<'func, A, M, F, BinaryOpCarry>),
Mul(Operation<'func, A, M, F, BinaryOp>),
MulsDp(Operation<'func, A, M, F, BinaryOp>),
MuluDp(Operation<'func, A, M, F, BinaryOp>),
Divu(Operation<'func, A, M, F, BinaryOp>),
Divs(Operation<'func, A, M, F, BinaryOp>),
DivuDp(Operation<'func, A, M, F, DoublePrecDivOp>),
DivsDp(Operation<'func, A, M, F, DoublePrecDivOp>),
Modu(Operation<'func, A, M, F, BinaryOp>),
Mods(Operation<'func, A, M, F, BinaryOp>),
ModuDp(Operation<'func, A, M, F, DoublePrecDivOp>),
ModsDp(Operation<'func, A, M, F, DoublePrecDivOp>),
Neg(Operation<'func, A, M, F, UnaryOp>),
Not(Operation<'func, A, M, F, UnaryOp>),
Sx(Operation<'func, A, M, F, UnaryOp>),
Zx(Operation<'func, A, M, F, UnaryOp>),
LowPart(Operation<'func, A, M, F, UnaryOp>),
FlagCond(Operation<'func, A, M, F, FlagCond>),
FlagGroup(Operation<'func, A, M, F, FlagGroup>),
CmpE(Operation<'func, A, M, F, Condition>),
CmpNe(Operation<'func, A, M, F, Condition>),
CmpSlt(Operation<'func, A, M, F, Condition>),
CmpUlt(Operation<'func, A, M, F, Condition>),
CmpSle(Operation<'func, A, M, F, Condition>),
CmpUle(Operation<'func, A, M, F, Condition>),
CmpSge(Operation<'func, A, M, F, Condition>),
CmpUge(Operation<'func, A, M, F, Condition>),
CmpSgt(Operation<'func, A, M, F, Condition>),
CmpUgt(Operation<'func, A, M, F, Condition>),
BoolToInt(Operation<'func, A, M, F, UnaryOp>),
Fadd(Operation<'func, A, M, F, BinaryOp>),
Fsub(Operation<'func, A, M, F, BinaryOp>),
Fmul(Operation<'func, A, M, F, BinaryOp>),
Fdiv(Operation<'func, A, M, F, BinaryOp>),
Fsqrt(Operation<'func, A, M, F, UnaryOp>),
Fneg(Operation<'func, A, M, F, UnaryOp>),
Fabs(Operation<'func, A, M, F, UnaryOp>),
FloatToInt(Operation<'func, A, M, F, UnaryOp>),
IntToFloat(Operation<'func, A, M, F, UnaryOp>),
FloatConv(Operation<'func, A, M, F, UnaryOp>),
RoundToInt(Operation<'func, A, M, F, UnaryOp>),
Floor(Operation<'func, A, M, F, UnaryOp>),
Ceil(Operation<'func, A, M, F, UnaryOp>),
Ftrunc(Operation<'func, A, M, F, UnaryOp>),
FcmpE(Operation<'func, A, M, F, Condition>),
FcmpNE(Operation<'func, A, M, F, Condition>),
FcmpLT(Operation<'func, A, M, F, Condition>),
FcmpLE(Operation<'func, A, M, F, Condition>),
FcmpGE(Operation<'func, A, M, F, Condition>),
FcmpGT(Operation<'func, A, M, F, Condition>),
FcmpO(Operation<'func, A, M, F, Condition>),
FcmpUO(Operation<'func, A, M, F, Condition>),
Unimpl(Operation<'func, A, M, F, NoArgs>),
UnimplMem(Operation<'func, A, M, F, UnimplMem>),
Undef(Operation<'func, A, M, F, NoArgs>),
}
Variants§
Load(Operation<'func, A, M, F, Load>)
Pop(Operation<'func, A, M, F, Pop>)
Reg(Operation<'func, A, M, F, Reg>)
RegSplit(Operation<'func, A, M, F, RegSplit>)
Const(Operation<'func, A, M, F, Const>)
ConstPtr(Operation<'func, A, M, F, Const>)
Flag(Operation<'func, A, M, F, Flag>)
FlagBit(Operation<'func, A, M, F, FlagBit>)
ExternPtr(Operation<'func, A, M, F, Extern>)
Add(Operation<'func, A, M, F, BinaryOp>)
Adc(Operation<'func, A, M, F, BinaryOpCarry>)
Sub(Operation<'func, A, M, F, BinaryOp>)
Sbb(Operation<'func, A, M, F, BinaryOpCarry>)
And(Operation<'func, A, M, F, BinaryOp>)
Or(Operation<'func, A, M, F, BinaryOp>)
Xor(Operation<'func, A, M, F, BinaryOp>)
Lsl(Operation<'func, A, M, F, BinaryOp>)
Lsr(Operation<'func, A, M, F, BinaryOp>)
Asr(Operation<'func, A, M, F, BinaryOp>)
Rol(Operation<'func, A, M, F, BinaryOp>)
Rlc(Operation<'func, A, M, F, BinaryOpCarry>)
Ror(Operation<'func, A, M, F, BinaryOp>)
Rrc(Operation<'func, A, M, F, BinaryOpCarry>)
Mul(Operation<'func, A, M, F, BinaryOp>)
MulsDp(Operation<'func, A, M, F, BinaryOp>)
MuluDp(Operation<'func, A, M, F, BinaryOp>)
Divu(Operation<'func, A, M, F, BinaryOp>)
Divs(Operation<'func, A, M, F, BinaryOp>)
DivuDp(Operation<'func, A, M, F, DoublePrecDivOp>)
DivsDp(Operation<'func, A, M, F, DoublePrecDivOp>)
Modu(Operation<'func, A, M, F, BinaryOp>)
Mods(Operation<'func, A, M, F, BinaryOp>)
ModuDp(Operation<'func, A, M, F, DoublePrecDivOp>)
ModsDp(Operation<'func, A, M, F, DoublePrecDivOp>)
Neg(Operation<'func, A, M, F, UnaryOp>)
Not(Operation<'func, A, M, F, UnaryOp>)
Sx(Operation<'func, A, M, F, UnaryOp>)
Zx(Operation<'func, A, M, F, UnaryOp>)
LowPart(Operation<'func, A, M, F, UnaryOp>)
FlagCond(Operation<'func, A, M, F, FlagCond>)
FlagGroup(Operation<'func, A, M, F, FlagGroup>)
CmpE(Operation<'func, A, M, F, Condition>)
CmpNe(Operation<'func, A, M, F, Condition>)
CmpSlt(Operation<'func, A, M, F, Condition>)
CmpUlt(Operation<'func, A, M, F, Condition>)
CmpSle(Operation<'func, A, M, F, Condition>)
CmpUle(Operation<'func, A, M, F, Condition>)
CmpSge(Operation<'func, A, M, F, Condition>)
CmpUge(Operation<'func, A, M, F, Condition>)
CmpSgt(Operation<'func, A, M, F, Condition>)
CmpUgt(Operation<'func, A, M, F, Condition>)
BoolToInt(Operation<'func, A, M, F, UnaryOp>)
Fadd(Operation<'func, A, M, F, BinaryOp>)
Fsub(Operation<'func, A, M, F, BinaryOp>)
Fmul(Operation<'func, A, M, F, BinaryOp>)
Fdiv(Operation<'func, A, M, F, BinaryOp>)
Fsqrt(Operation<'func, A, M, F, UnaryOp>)
Fneg(Operation<'func, A, M, F, UnaryOp>)
Fabs(Operation<'func, A, M, F, UnaryOp>)
FloatToInt(Operation<'func, A, M, F, UnaryOp>)
IntToFloat(Operation<'func, A, M, F, UnaryOp>)
FloatConv(Operation<'func, A, M, F, UnaryOp>)
RoundToInt(Operation<'func, A, M, F, UnaryOp>)
Floor(Operation<'func, A, M, F, UnaryOp>)
Ceil(Operation<'func, A, M, F, UnaryOp>)
Ftrunc(Operation<'func, A, M, F, UnaryOp>)
FcmpE(Operation<'func, A, M, F, Condition>)
FcmpNE(Operation<'func, A, M, F, Condition>)
FcmpLT(Operation<'func, A, M, F, Condition>)
FcmpLE(Operation<'func, A, M, F, Condition>)
FcmpGE(Operation<'func, A, M, F, Condition>)
FcmpGT(Operation<'func, A, M, F, Condition>)
FcmpO(Operation<'func, A, M, F, Condition>)
FcmpUO(Operation<'func, A, M, F, Condition>)
Unimpl(Operation<'func, A, M, F, NoArgs>)
UnimplMem(Operation<'func, A, M, F, UnimplMem>)
Undef(Operation<'func, A, M, F, NoArgs>)
Implementations§
source§impl<'func, A, M, F> ExprInfo<'func, A, M, F>
impl<'func, A, M, F> ExprInfo<'func, A, M, F>
sourcepub fn size(&self) -> Option<usize>
pub fn size(&self) -> Option<usize>
Returns the size of the result of this expression
If the expression is malformed or is Unimpl
there
is no meaningful size associated with the result.
pub fn address(&self) -> u64
sourcepub fn is_same_op_as(&self, other: &Self) -> bool
pub fn is_same_op_as(&self, other: &Self) -> bool
Determines if the expressions represent the same operation
It does not examine the operands for equality.
pub fn as_cmp_op(&self) -> Option<&Operation<'func, A, M, F, Condition>>
pub fn as_binary_op(&self) -> Option<&Operation<'func, A, M, F, BinaryOp>>
pub fn as_binary_op_carry( &self ) -> Option<&Operation<'func, A, M, F, BinaryOpCarry>>
pub fn as_double_prec_div_op( &self ) -> Option<&Operation<'func, A, M, F, DoublePrecDivOp>>
pub fn as_unary_op(&self) -> Option<&Operation<'func, A, M, F, UnaryOp>>
source§impl<'func, A> ExprInfo<'func, A, Mutable, NonSSA<LiftedNonSSA>>where
A: 'func + Architecture,
impl<'func, A> ExprInfo<'func, A, Mutable, NonSSA<LiftedNonSSA>>where
A: 'func + Architecture,
pub fn flag_write(&self) -> Option<A::FlagWrite>
Trait Implementations§
Auto Trait Implementations§
impl<'func, A, M, F> RefUnwindSafe for ExprInfo<'func, A, M, F>where
A: RefUnwindSafe,
F: RefUnwindSafe,
M: RefUnwindSafe,
<A as Architecture>::Handle: RefUnwindSafe,
impl<'func, A, M, F> Send for ExprInfo<'func, A, M, F>
impl<'func, A, M, F> Sync for ExprInfo<'func, A, M, F>
impl<'func, A, M, F> Unpin for ExprInfo<'func, A, M, F>
impl<'func, A, M, F> UnwindSafe for ExprInfo<'func, A, M, F>where
A: RefUnwindSafe,
F: RefUnwindSafe,
M: RefUnwindSafe,
<A as Architecture>::Handle: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more