pub enum ExprInfo<'func, A, M, F>
where A: 'func + Architecture, M: FunctionMutability, F: FunctionForm,
{
Show 76 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>), 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>)

§

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>
where A: 'func + Architecture, M: FunctionMutability, F: FunctionForm,

source

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.

source

pub fn address(&self) -> u64

source

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.

source

pub fn as_cmp_op(&self) -> Option<&Operation<'func, A, M, F, Condition>>

source

pub fn as_binary_op(&self) -> Option<&Operation<'func, A, M, F, BinaryOp>>

source

pub fn as_binary_op_carry( &self ) -> Option<&Operation<'func, A, M, F, BinaryOpCarry>>

source

pub fn as_double_prec_div_op( &self ) -> Option<&Operation<'func, A, M, F, DoublePrecDivOp>>

source

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,

source

pub fn flag_write(&self) -> Option<A::FlagWrite>

Trait Implementations§

source§

impl<'func, A, M, V> Debug for ExprInfo<'func, A, M, NonSSA<V>>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'func, A, M, F> RefUnwindSafe for ExprInfo<'func, A, M, F>

§

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>

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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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.