Enum panopticon_core::il::Operation [] [src]

pub enum Operation<V> where
    V: Serialize + for<'a> Deserialize<'a> + Clone + PartialEq + Eq + Debug
{ Add(V, V), Subtract(V, V), Multiply(V, V), DivideUnsigned(V, V), DivideSigned(V, V), ShiftLeft(V, V), ShiftRightUnsigned(V, V), ShiftRightSigned(V, V), Modulo(V, V), And(V, V), InclusiveOr(V, V), ExclusiveOr(V, V), Equal(V, V), LessOrEqualUnsigned(V, V), LessOrEqualSigned(V, V), LessUnsigned(V, V), LessSigned(V, V), ZeroExtend(usize, V), SignExtend(usize, V), Move(V), Call(V), Initialize(Cow<'static, str>, usize), Select(usize, V, V), Load(Cow<'static, str>, Endianessusize, V), Store(Cow<'static, str>, Endianessusize, V, V), Phi(Vec<V>), }

A RREIL operation.

Variants

Integer addition

Integer subtraction

Unsigned integer multiplication

Unsigned integer division

Signed integer division

Bitwise left shift

Bitwise logical right shift

Bitwise arithmetic right shift

Integer modulo

Bitwise logical and

Bitwise logical or

Bitwise logical xor

Compare both operands for equality and returns 1 or 0

Returns 1 if the first operand is less than or equal to the second and 0 otherwise. Comparison assumes unsigned values.

Returns 1 if the first operand is less than or equal to the second and 0 otherwise. Comparison assumes signed values.

Returns 1 if the first operand is less than the second and 0 otherwise. Comparison assumes unsigned values.

Returns 1 if the first operand is less than the second and 0 otherwise. Comparison assumes signed values.

Zero extends the operand.

Sign extends the operand.

Copies the operand without modification.

Calls the function located at the address pointed to by the operand.

Initializes a global variable.

Copies only a range of bit from the operand.

Reads a memory cell

Writes a memory cell pointed by 1st V w/ 2nd V, returns Undef

SSA Phi function

Methods

impl<V> Operation<V> where
    V: Serialize + for<'a> Deserialize<'a> + Clone + PartialEq + Eq + Debug
[src]

[src]

Returns its operands

[src]

Returns its operands

Trait Implementations

impl<V: Clone> Clone for Operation<V> where
    V: Serialize + for<'a> Deserialize<'a> + Clone + PartialEq + Eq + Debug
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<V: PartialEq> PartialEq for Operation<V> where
    V: Serialize + for<'a> Deserialize<'a> + Clone + PartialEq + Eq + Debug
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl<V: Eq> Eq for Operation<V> where
    V: Serialize + for<'a> Deserialize<'a> + Clone + PartialEq + Eq + Debug
[src]

impl<V: Debug> Debug for Operation<V> where
    V: Serialize + for<'a> Deserialize<'a> + Clone + PartialEq + Eq + Debug
[src]

[src]

Formats the value using the given formatter. Read more

impl Arbitrary for Operation<Rvalue>
[src]

[src]

[src]