pub enum Operation {
Show 25 variants
Add(Value, Value),
Subtract(Value, Value),
Multiply(Value, Value),
DivideUnsigned(Value, Value),
DivideSigned(Value, Value),
ShiftLeft(Value, Value),
ShiftRightUnsigned(Value, Value),
ShiftRightSigned(Value, Value),
Modulo(Value, Value),
And(Value, Value),
InclusiveOr(Value, Value),
ExclusiveOr(Value, Value),
Equal(Value, Value),
LessOrEqualUnsigned(Value, Value),
LessOrEqualSigned(Value, Value),
LessUnsigned(Value, Value),
LessSigned(Value, Value),
ZeroExtend(usize, Value),
SignExtend(usize, Value),
Move(Value),
Initialize(StrRef, usize),
Select(usize, usize, Value),
Assume(Constraint, Value),
Load(Segment, Endianess, usize, Value),
Phi(Value, Value, Value),
}Expand description
A RREIL operation.
Variants§
Add(Value, Value)
Integer addition
Subtract(Value, Value)
Integer subtraction
Multiply(Value, Value)
Unsigned integer multiplication
DivideUnsigned(Value, Value)
Unsigned integer division
DivideSigned(Value, Value)
Signed integer division
ShiftLeft(Value, Value)
Bitwise left shift
ShiftRightUnsigned(Value, Value)
Bitwise logical right shift
ShiftRightSigned(Value, Value)
Bitwise arithmetic right shift
Modulo(Value, Value)
Integer modulo
And(Value, Value)
Bitwise logical and
InclusiveOr(Value, Value)
Bitwise logical or
ExclusiveOr(Value, Value)
Bitwise logical xor
Equal(Value, Value)
Compare both operands for equality and returns 1 or 0
LessOrEqualUnsigned(Value, Value)
Returns 1 if the first operand is less than or equal to the second and 0 otherwise.
Comparison assumes unsigned values.
LessOrEqualSigned(Value, Value)
Returns 1 if the first operand is less than or equal to the second and 0 otherwise.
Comparison assumes signed values.
LessUnsigned(Value, Value)
Returns 1 if the first operand is less than the second and 0 otherwise.
Comparison assumes unsigned values.
LessSigned(Value, Value)
Returns 1 if the first operand is less than the second and 0 otherwise.
Comparison assumes signed values.
ZeroExtend(usize, Value)
Zero extends the operand.
SignExtend(usize, Value)
Sign extends the operand.
Move(Value)
Copies the operand without modification.
Initialize(StrRef, usize)
Initializes a global variable.
Select(usize, usize, Value)
Copies only the range [self.0, self.0 + self.1] of bits from the operand.
Assume(Constraint, Value)
Asserts that the second operand is constraint by the first.
Load(Segment, Endianess, usize, Value)
Reads a memory cell
Phi(Value, Value, Value)
SSA Phi function
Implementations§
Trait Implementations§
impl Eq for Operation
impl StructuralPartialEq for Operation
Auto Trait Implementations§
impl Freeze for Operation
impl RefUnwindSafe for Operation
impl Send for Operation
impl Sync for Operation
impl Unpin for Operation
impl UnwindSafe for Operation
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.