pub struct EvmIrInstruction {
pub result: Option<EvmIrValueId>,
pub kind: EvmIrInstructionKind,
pub operands: Vec<EvmIrOperand>,
pub metadata: EvmIrMetadata,
}Expand description
A non-terminating untyped backend instruction.
Fields§
§result: Option<EvmIrValueId>Optional stack word produced by this instruction.
kind: EvmIrInstructionKindEVM opcode, backend pseudo-op, or physical stack operation.
operands: Vec<EvmIrOperand>Instruction operands.
metadata: EvmIrMetadataInstruction metadata.
Implementations§
Source§impl EvmIrInstruction
impl EvmIrInstruction
Sourcepub fn new(
mnemonic: impl Into<String>,
operands: Vec<EvmIrOperand>,
) -> EvmIrInstruction
pub fn new( mnemonic: impl Into<String>, operands: Vec<EvmIrOperand>, ) -> EvmIrInstruction
Creates an instruction.
Sourcepub fn stack_op(op: EvmIrStackOp) -> EvmIrInstruction
pub fn stack_op(op: EvmIrStackOp) -> EvmIrInstruction
Creates a physical stack operation.
Sourcepub const fn is_physical_stack_op(&self) -> bool
pub const fn is_physical_stack_op(&self) -> bool
Returns whether this instruction materializes a physical EVM stack op.
Trait Implementations§
Source§impl Clone for EvmIrInstruction
impl Clone for EvmIrInstruction
Source§fn clone(&self) -> EvmIrInstruction
fn clone(&self) -> EvmIrInstruction
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for EvmIrInstruction
impl Debug for EvmIrInstruction
impl Eq for EvmIrInstruction
Source§impl PartialEq for EvmIrInstruction
impl PartialEq for EvmIrInstruction
Source§fn eq(&self, other: &EvmIrInstruction) -> bool
fn eq(&self, other: &EvmIrInstruction) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for EvmIrInstruction
Auto Trait Implementations§
impl Freeze for EvmIrInstruction
impl RefUnwindSafe for EvmIrInstruction
impl Send for EvmIrInstruction
impl Sync for EvmIrInstruction
impl Unpin for EvmIrInstruction
impl UnsafeUnpin for EvmIrInstruction
impl UnwindSafe for EvmIrInstruction
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more