pub enum LowLevelILFlagWriteOp<R: ArchReg> {
Show 83 variants
SetReg(usize, LowLevelILRegisterOrConstant<R>),
SetRegSplit(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Sub(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Add(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Load(usize, LowLevelILRegisterOrConstant<R>),
Push(usize, LowLevelILRegisterOrConstant<R>),
Neg(usize, LowLevelILRegisterOrConstant<R>),
Not(usize, LowLevelILRegisterOrConstant<R>),
Bswap(usize, LowLevelILRegisterOrConstant<R>),
Popcnt(usize, LowLevelILRegisterOrConstant<R>),
Clz(usize, LowLevelILRegisterOrConstant<R>),
Ctz(usize, LowLevelILRegisterOrConstant<R>),
Rbit(usize, LowLevelILRegisterOrConstant<R>),
Cls(usize, LowLevelILRegisterOrConstant<R>),
Abs(usize, LowLevelILRegisterOrConstant<R>),
Sx(usize, LowLevelILRegisterOrConstant<R>),
Zx(usize, LowLevelILRegisterOrConstant<R>),
LowPart(usize, LowLevelILRegisterOrConstant<R>),
BoolToInt(usize, LowLevelILRegisterOrConstant<R>),
FloatToInt(usize, LowLevelILRegisterOrConstant<R>),
Store(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
And(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Or(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Xor(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Lsl(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Lsr(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Asr(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Rol(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Ror(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Mul(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
MuluDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
MulsDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Divu(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Divs(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Modu(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Mods(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
MinSigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
MaxSigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
MinUnsigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
MaxUnsigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
DivuDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
DivsDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
ModuDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
ModsDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
TestBit(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
AddOverflow(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Adc(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Sbb(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Rlc(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Rrc(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Pop(usize),
Fsqrt(usize, LowLevelILRegisterOrConstant<R>),
Fneg(usize, LowLevelILRegisterOrConstant<R>),
Fabs(usize, LowLevelILRegisterOrConstant<R>),
IntToFloat(usize, LowLevelILRegisterOrConstant<R>),
FloatConv(usize, LowLevelILRegisterOrConstant<R>),
RoundToInt(usize, LowLevelILRegisterOrConstant<R>),
Floor(usize, LowLevelILRegisterOrConstant<R>),
Ceil(usize, LowLevelILRegisterOrConstant<R>),
Ftrunc(usize, LowLevelILRegisterOrConstant<R>),
Fadd(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Fsub(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Fmul(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Fdiv(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpE(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpNe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpSlt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpUlt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpSle(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpUle(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpSge(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpUge(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpSgt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
CmpUgt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpE(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpNe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpLt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpLe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpGe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpGt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpO(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
FcmpUo(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>),
Raw {
operation: BNLowLevelILOperation,
size: usize,
operands: Vec<BNRegisterOrConstant>,
},
}Expand description
An operation whose result is used to calculate a flag value.
Floating-point constants retain their original bit patterns. Operations that cannot be
represented by a typed variant are passed to the same callback as Self::Raw.
Variants§
SetReg(usize, LowLevelILRegisterOrConstant<R>)
SetRegSplit(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Sub(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Add(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Load(usize, LowLevelILRegisterOrConstant<R>)
Push(usize, LowLevelILRegisterOrConstant<R>)
Neg(usize, LowLevelILRegisterOrConstant<R>)
Not(usize, LowLevelILRegisterOrConstant<R>)
Bswap(usize, LowLevelILRegisterOrConstant<R>)
Popcnt(usize, LowLevelILRegisterOrConstant<R>)
Clz(usize, LowLevelILRegisterOrConstant<R>)
Ctz(usize, LowLevelILRegisterOrConstant<R>)
Rbit(usize, LowLevelILRegisterOrConstant<R>)
Cls(usize, LowLevelILRegisterOrConstant<R>)
Abs(usize, LowLevelILRegisterOrConstant<R>)
Sx(usize, LowLevelILRegisterOrConstant<R>)
Zx(usize, LowLevelILRegisterOrConstant<R>)
LowPart(usize, LowLevelILRegisterOrConstant<R>)
BoolToInt(usize, LowLevelILRegisterOrConstant<R>)
FloatToInt(usize, LowLevelILRegisterOrConstant<R>)
Store(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
And(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Or(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Xor(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Lsl(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Lsr(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Asr(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Rol(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Ror(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Mul(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
MuluDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
MulsDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Divu(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Divs(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Modu(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Mods(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
MinSigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
MaxSigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
MinUnsigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
MaxUnsigned(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
DivuDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
DivsDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
ModuDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
ModsDp(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
TestBit(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
AddOverflow(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Adc(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Sbb(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Rlc(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Rrc(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Pop(usize)
Fsqrt(usize, LowLevelILRegisterOrConstant<R>)
Fneg(usize, LowLevelILRegisterOrConstant<R>)
Fabs(usize, LowLevelILRegisterOrConstant<R>)
IntToFloat(usize, LowLevelILRegisterOrConstant<R>)
FloatConv(usize, LowLevelILRegisterOrConstant<R>)
RoundToInt(usize, LowLevelILRegisterOrConstant<R>)
Floor(usize, LowLevelILRegisterOrConstant<R>)
Ceil(usize, LowLevelILRegisterOrConstant<R>)
Ftrunc(usize, LowLevelILRegisterOrConstant<R>)
Fadd(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Fsub(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Fmul(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Fdiv(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpE(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpNe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpSlt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpUlt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpSle(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpUle(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpSge(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpUge(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpSgt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
CmpUgt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpE(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpNe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpLt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpLe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpGe(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpGt(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpO(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
FcmpUo(usize, LowLevelILRegisterOrConstant<R>, LowLevelILRegisterOrConstant<R>)
Raw
Preserves the operation, size, and complete operand list when typed decoding is unavailable. This includes intrinsic flag writes (whose first operand is the intrinsic ID), unexpected operand counts, and operands that cannot be resolved as architecture registers.
Trait Implementations§
Auto Trait Implementations§
impl<R> Freeze for LowLevelILFlagWriteOp<R>where
R: Freeze,
impl<R> RefUnwindSafe for LowLevelILFlagWriteOp<R>where
R: RefUnwindSafe,
impl<R> Send for LowLevelILFlagWriteOp<R>where
R: Send,
impl<R> Sync for LowLevelILFlagWriteOp<R>where
R: Sync,
impl<R> Unpin for LowLevelILFlagWriteOp<R>where
R: Unpin,
impl<R> UnsafeUnpin for LowLevelILFlagWriteOp<R>where
R: UnsafeUnpin,
impl<R> UnwindSafe for LowLevelILFlagWriteOp<R>where
R: UnwindSafe,
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