[][src]Enum parity_wasm::elements::Instruction

pub enum Instruction {
    Unreachable,
    Nop,
    Block(BlockType),
    Loop(BlockType),
    If(BlockType),
    Else,
    End,
    Br(u32),
    BrIf(u32),
    BrTable(Box<BrTableData>),
    Return,
    Call(u32),
    CallIndirect(u32u8),
    Drop,
    Select,
    GetLocal(u32),
    SetLocal(u32),
    TeeLocal(u32),
    GetGlobal(u32),
    SetGlobal(u32),
    I32Load(u32u32),
    I64Load(u32u32),
    F32Load(u32u32),
    F64Load(u32u32),
    I32Load8S(u32u32),
    I32Load8U(u32u32),
    I32Load16S(u32u32),
    I32Load16U(u32u32),
    I64Load8S(u32u32),
    I64Load8U(u32u32),
    I64Load16S(u32u32),
    I64Load16U(u32u32),
    I64Load32S(u32u32),
    I64Load32U(u32u32),
    I32Store(u32u32),
    I64Store(u32u32),
    F32Store(u32u32),
    F64Store(u32u32),
    I32Store8(u32u32),
    I32Store16(u32u32),
    I64Store8(u32u32),
    I64Store16(u32u32),
    I64Store32(u32u32),
    CurrentMemory(u8),
    GrowMemory(u8),
    I32Const(i32),
    I64Const(i64),
    F32Const(u32),
    F64Const(u64),
    I32Eqz,
    I32Eq,
    I32Ne,
    I32LtS,
    I32LtU,
    I32GtS,
    I32GtU,
    I32LeS,
    I32LeU,
    I32GeS,
    I32GeU,
    I64Eqz,
    I64Eq,
    I64Ne,
    I64LtS,
    I64LtU,
    I64GtS,
    I64GtU,
    I64LeS,
    I64LeU,
    I64GeS,
    I64GeU,
    F32Eq,
    F32Ne,
    F32Lt,
    F32Gt,
    F32Le,
    F32Ge,
    F64Eq,
    F64Ne,
    F64Lt,
    F64Gt,
    F64Le,
    F64Ge,
    I32Clz,
    I32Ctz,
    I32Popcnt,
    I32Add,
    I32Sub,
    I32Mul,
    I32DivS,
    I32DivU,
    I32RemS,
    I32RemU,
    I32And,
    I32Or,
    I32Xor,
    I32Shl,
    I32ShrS,
    I32ShrU,
    I32Rotl,
    I32Rotr,
    I64Clz,
    I64Ctz,
    I64Popcnt,
    I64Add,
    I64Sub,
    I64Mul,
    I64DivS,
    I64DivU,
    I64RemS,
    I64RemU,
    I64And,
    I64Or,
    I64Xor,
    I64Shl,
    I64ShrS,
    I64ShrU,
    I64Rotl,
    I64Rotr,
    F32Abs,
    F32Neg,
    F32Ceil,
    F32Floor,
    F32Trunc,
    F32Nearest,
    F32Sqrt,
    F32Add,
    F32Sub,
    F32Mul,
    F32Div,
    F32Min,
    F32Max,
    F32Copysign,
    F64Abs,
    F64Neg,
    F64Ceil,
    F64Floor,
    F64Trunc,
    F64Nearest,
    F64Sqrt,
    F64Add,
    F64Sub,
    F64Mul,
    F64Div,
    F64Min,
    F64Max,
    F64Copysign,
    I32WrapI64,
    I32TruncSF32,
    I32TruncUF32,
    I32TruncSF64,
    I32TruncUF64,
    I64ExtendSI32,
    I64ExtendUI32,
    I64TruncSF32,
    I64TruncUF32,
    I64TruncSF64,
    I64TruncUF64,
    F32ConvertSI32,
    F32ConvertUI32,
    F32ConvertSI64,
    F32ConvertUI64,
    F32DemoteF64,
    F64ConvertSI32,
    F64ConvertUI32,
    F64ConvertSI64,
    F64ConvertUI64,
    F64PromoteF32,
    I32ReinterpretF32,
    I64ReinterpretF64,
    F32ReinterpretI32,
    F64ReinterpretI64,
    I32Extend8S,
    I32Extend16S,
    I64Extend8S,
    I64Extend16S,
    I64Extend32S,
    AtomicWake(MemArg),
    I32AtomicWait(MemArg),
    I64AtomicWait(MemArg),
    I32AtomicLoad(MemArg),
    I64AtomicLoad(MemArg),
    I32AtomicLoad8u(MemArg),
    I32AtomicLoad16u(MemArg),
    I64AtomicLoad8u(MemArg),
    I64AtomicLoad16u(MemArg),
    I64AtomicLoad32u(MemArg),
    I32AtomicStore(MemArg),
    I64AtomicStore(MemArg),
    I32AtomicStore8u(MemArg),
    I32AtomicStore16u(MemArg),
    I64AtomicStore8u(MemArg),
    I64AtomicStore16u(MemArg),
    I64AtomicStore32u(MemArg),
    I32AtomicRmwAdd(MemArg),
    I64AtomicRmwAdd(MemArg),
    I32AtomicRmwAdd8u(MemArg),
    I32AtomicRmwAdd16u(MemArg),
    I64AtomicRmwAdd8u(MemArg),
    I64AtomicRmwAdd16u(MemArg),
    I64AtomicRmwAdd32u(MemArg),
    I32AtomicRmwSub(MemArg),
    I64AtomicRmwSub(MemArg),
    I32AtomicRmwSub8u(MemArg),
    I32AtomicRmwSub16u(MemArg),
    I64AtomicRmwSub8u(MemArg),
    I64AtomicRmwSub16u(MemArg),
    I64AtomicRmwSub32u(MemArg),
    I32AtomicRmwAnd(MemArg),
    I64AtomicRmwAnd(MemArg),
    I32AtomicRmwAnd8u(MemArg),
    I32AtomicRmwAnd16u(MemArg),
    I64AtomicRmwAnd8u(MemArg),
    I64AtomicRmwAnd16u(MemArg),
    I64AtomicRmwAnd32u(MemArg),
    I32AtomicRmwOr(MemArg),
    I64AtomicRmwOr(MemArg),
    I32AtomicRmwOr8u(MemArg),
    I32AtomicRmwOr16u(MemArg),
    I64AtomicRmwOr8u(MemArg),
    I64AtomicRmwOr16u(MemArg),
    I64AtomicRmwOr32u(MemArg),
    I32AtomicRmwXor(MemArg),
    I64AtomicRmwXor(MemArg),
    I32AtomicRmwXor8u(MemArg),
    I32AtomicRmwXor16u(MemArg),
    I64AtomicRmwXor8u(MemArg),
    I64AtomicRmwXor16u(MemArg),
    I64AtomicRmwXor32u(MemArg),
    I32AtomicRmwXchg(MemArg),
    I64AtomicRmwXchg(MemArg),
    I32AtomicRmwXchg8u(MemArg),
    I32AtomicRmwXchg16u(MemArg),
    I64AtomicRmwXchg8u(MemArg),
    I64AtomicRmwXchg16u(MemArg),
    I64AtomicRmwXchg32u(MemArg),
    I32AtomicRmwCmpxchg(MemArg),
    I64AtomicRmwCmpxchg(MemArg),
    I32AtomicRmwCmpxchg8u(MemArg),
    I32AtomicRmwCmpxchg16u(MemArg),
    I64AtomicRmwCmpxchg8u(MemArg),
    I64AtomicRmwCmpxchg16u(MemArg),
    I64AtomicRmwCmpxchg32u(MemArg),
    V128Const(Box<[u8; 16]>),
    V128Load(MemArg),
    V128Store(MemArg),
    I8x16Splat,
    I16x8Splat,
    I32x4Splat,
    I64x2Splat,
    F32x4Splat,
    F64x2Splat,
    I8x16ExtractLaneS(u8),
    I8x16ExtractLaneU(u8),
    I16x8ExtractLaneS(u8),
    I16x8ExtractLaneU(u8),
    I32x4ExtractLane(u8),
    I64x2ExtractLane(u8),
    F32x4ExtractLane(u8),
    F64x2ExtractLane(u8),
    I8x16ReplaceLane(u8),
    I16x8ReplaceLane(u8),
    I32x4ReplaceLane(u8),
    I64x2ReplaceLane(u8),
    F32x4ReplaceLane(u8),
    F64x2ReplaceLane(u8),
    V8x16Shuffle(Box<[u8; 16]>),
    I8x16Add,
    I16x8Add,
    I32x4Add,
    I64x2Add,
    I8x16Sub,
    I16x8Sub,
    I32x4Sub,
    I64x2Sub,
    I8x16Mul,
    I16x8Mul,
    I32x4Mul,
    I8x16Neg,
    I16x8Neg,
    I32x4Neg,
    I64x2Neg,
    I8x16AddSaturateS,
    I8x16AddSaturateU,
    I16x8AddSaturateS,
    I16x8AddSaturateU,
    I8x16SubSaturateS,
    I8x16SubSaturateU,
    I16x8SubSaturateS,
    I16x8SubSaturateU,
    I8x16Shl,
    I16x8Shl,
    I32x4Shl,
    I64x2Shl,
    I8x16ShrS,
    I8x16ShrU,
    I16x8ShrS,
    I16x8ShrU,
    I32x4ShrS,
    I32x4ShrU,
    I64x2ShrS,
    I64x2ShrU,
    V128And,
    V128Or,
    V128Xor,
    V128Not,
    V128Bitselect,
    I8x16AnyTrue,
    I16x8AnyTrue,
    I32x4AnyTrue,
    I64x2AnyTrue,
    I8x16AllTrue,
    I16x8AllTrue,
    I32x4AllTrue,
    I64x2AllTrue,
    I8x16Eq,
    I16x8Eq,
    I32x4Eq,
    F32x4Eq,
    F64x2Eq,
    I8x16Ne,
    I16x8Ne,
    I32x4Ne,
    F32x4Ne,
    F64x2Ne,
    I8x16LtS,
    I8x16LtU,
    I16x8LtS,
    I16x8LtU,
    I32x4LtS,
    I32x4LtU,
    F32x4Lt,
    F64x2Lt,
    I8x16LeS,
    I8x16LeU,
    I16x8LeS,
    I16x8LeU,
    I32x4LeS,
    I32x4LeU,
    F32x4Le,
    F64x2Le,
    I8x16GtS,
    I8x16GtU,
    I16x8GtS,
    I16x8GtU,
    I32x4GtS,
    I32x4GtU,
    F32x4Gt,
    F64x2Gt,
    I8x16GeS,
    I8x16GeU,
    I16x8GeS,
    I16x8GeU,
    I32x4GeS,
    I32x4GeU,
    F32x4Ge,
    F64x2Ge,
    F32x4Neg,
    F64x2Neg,
    F32x4Abs,
    F64x2Abs,
    F32x4Min,
    F64x2Min,
    F32x4Max,
    F64x2Max,
    F32x4Add,
    F64x2Add,
    F32x4Sub,
    F64x2Sub,
    F32x4Div,
    F64x2Div,
    F32x4Mul,
    F64x2Mul,
    F32x4Sqrt,
    F64x2Sqrt,
    F32x4ConvertSI32x4,
    F32x4ConvertUI32x4,
    F64x2ConvertSI64x2,
    F64x2ConvertUI64x2,
    I32x4TruncSF32x4Sat,
    I32x4TruncUF32x4Sat,
    I64x2TruncSF64x2Sat,
    I64x2TruncUF64x2Sat,
    MemoryInit(u32),
    MemoryDrop(u32),
    MemoryCopy,
    MemoryFill,
    TableInit(u32),
    TableDrop(u32),
    TableCopy,
}

Instruction.

Variants

UnreachableNopBlock(BlockType)Loop(BlockType)If(BlockType)ElseEndBr(u32)BrIf(u32)BrTable(Box<BrTableData>)ReturnCall(u32)CallIndirect(u32u8)DropSelectGetLocal(u32)SetLocal(u32)TeeLocal(u32)GetGlobal(u32)SetGlobal(u32)I32Load(u32u32)I64Load(u32u32)F32Load(u32u32)F64Load(u32u32)I32Load8S(u32u32)I32Load8U(u32u32)I32Load16S(u32u32)I32Load16U(u32u32)I64Load8S(u32u32)I64Load8U(u32u32)I64Load16S(u32u32)I64Load16U(u32u32)I64Load32S(u32u32)I64Load32U(u32u32)I32Store(u32u32)I64Store(u32u32)F32Store(u32u32)F64Store(u32u32)I32Store8(u32u32)I32Store16(u32u32)I64Store8(u32u32)I64Store16(u32u32)I64Store32(u32u32)CurrentMemory(u8)GrowMemory(u8)I32Const(i32)I64Const(i64)F32Const(u32)F64Const(u64)I32EqzI32EqI32NeI32LtSI32LtUI32GtSI32GtUI32LeSI32LeUI32GeSI32GeUI64EqzI64EqI64NeI64LtSI64LtUI64GtSI64GtUI64LeSI64LeUI64GeSI64GeUF32EqF32NeF32LtF32GtF32LeF32GeF64EqF64NeF64LtF64GtF64LeF64GeI32ClzI32CtzI32PopcntI32AddI32SubI32MulI32DivSI32DivUI32RemSI32RemUI32AndI32OrI32XorI32ShlI32ShrSI32ShrUI32RotlI32RotrI64ClzI64CtzI64PopcntI64AddI64SubI64MulI64DivSI64DivUI64RemSI64RemUI64AndI64OrI64XorI64ShlI64ShrSI64ShrUI64RotlI64RotrF32AbsF32NegF32CeilF32FloorF32TruncF32NearestF32SqrtF32AddF32SubF32MulF32DivF32MinF32MaxF32CopysignF64AbsF64NegF64CeilF64FloorF64TruncF64NearestF64SqrtF64AddF64SubF64MulF64DivF64MinF64MaxF64CopysignI32WrapI64I32TruncSF32I32TruncUF32I32TruncSF64I32TruncUF64I64ExtendSI32I64ExtendUI32I64TruncSF32I64TruncUF32I64TruncSF64I64TruncUF64F32ConvertSI32F32ConvertUI32F32ConvertSI64F32ConvertUI64F32DemoteF64F64ConvertSI32F64ConvertUI32F64ConvertSI64F64ConvertUI64F64PromoteF32I32ReinterpretF32I64ReinterpretF64F32ReinterpretI32F64ReinterpretI64I32Extend8SI32Extend16SI64Extend8SI64Extend16SI64Extend32SAtomicWake(MemArg)I32AtomicWait(MemArg)I64AtomicWait(MemArg)I32AtomicLoad(MemArg)I64AtomicLoad(MemArg)I32AtomicLoad8u(MemArg)I32AtomicLoad16u(MemArg)I64AtomicLoad8u(MemArg)I64AtomicLoad16u(MemArg)I64AtomicLoad32u(MemArg)I32AtomicStore(MemArg)I64AtomicStore(MemArg)I32AtomicStore8u(MemArg)I32AtomicStore16u(MemArg)I64AtomicStore8u(MemArg)I64AtomicStore16u(MemArg)I64AtomicStore32u(MemArg)I32AtomicRmwAdd(MemArg)I64AtomicRmwAdd(MemArg)I32AtomicRmwAdd8u(MemArg)I32AtomicRmwAdd16u(MemArg)I64AtomicRmwAdd8u(MemArg)I64AtomicRmwAdd16u(MemArg)I64AtomicRmwAdd32u(MemArg)I32AtomicRmwSub(MemArg)I64AtomicRmwSub(MemArg)I32AtomicRmwSub8u(MemArg)I32AtomicRmwSub16u(MemArg)I64AtomicRmwSub8u(MemArg)I64AtomicRmwSub16u(MemArg)I64AtomicRmwSub32u(MemArg)I32AtomicRmwAnd(MemArg)I64AtomicRmwAnd(MemArg)I32AtomicRmwAnd8u(MemArg)I32AtomicRmwAnd16u(MemArg)I64AtomicRmwAnd8u(MemArg)I64AtomicRmwAnd16u(MemArg)I64AtomicRmwAnd32u(MemArg)I32AtomicRmwOr(MemArg)I64AtomicRmwOr(MemArg)I32AtomicRmwOr8u(MemArg)I32AtomicRmwOr16u(MemArg)I64AtomicRmwOr8u(MemArg)I64AtomicRmwOr16u(MemArg)I64AtomicRmwOr32u(MemArg)I32AtomicRmwXor(MemArg)I64AtomicRmwXor(MemArg)I32AtomicRmwXor8u(MemArg)I32AtomicRmwXor16u(MemArg)I64AtomicRmwXor8u(MemArg)I64AtomicRmwXor16u(MemArg)I64AtomicRmwXor32u(MemArg)I32AtomicRmwXchg(MemArg)I64AtomicRmwXchg(MemArg)I32AtomicRmwXchg8u(MemArg)I32AtomicRmwXchg16u(MemArg)I64AtomicRmwXchg8u(MemArg)I64AtomicRmwXchg16u(MemArg)I64AtomicRmwXchg32u(MemArg)I32AtomicRmwCmpxchg(MemArg)I64AtomicRmwCmpxchg(MemArg)I32AtomicRmwCmpxchg8u(MemArg)I32AtomicRmwCmpxchg16u(MemArg)I64AtomicRmwCmpxchg8u(MemArg)I64AtomicRmwCmpxchg16u(MemArg)I64AtomicRmwCmpxchg32u(MemArg)V128Const(Box<[u8; 16]>)V128Load(MemArg)V128Store(MemArg)I8x16SplatI16x8SplatI32x4SplatI64x2SplatF32x4SplatF64x2SplatI8x16ExtractLaneS(u8)I8x16ExtractLaneU(u8)I16x8ExtractLaneS(u8)I16x8ExtractLaneU(u8)I32x4ExtractLane(u8)I64x2ExtractLane(u8)F32x4ExtractLane(u8)F64x2ExtractLane(u8)I8x16ReplaceLane(u8)I16x8ReplaceLane(u8)I32x4ReplaceLane(u8)I64x2ReplaceLane(u8)F32x4ReplaceLane(u8)F64x2ReplaceLane(u8)V8x16Shuffle(Box<[u8; 16]>)I8x16AddI16x8AddI32x4AddI64x2AddI8x16SubI16x8SubI32x4SubI64x2SubI8x16MulI16x8MulI32x4MulI8x16NegI16x8NegI32x4NegI64x2NegI8x16AddSaturateSI8x16AddSaturateUI16x8AddSaturateSI16x8AddSaturateUI8x16SubSaturateSI8x16SubSaturateUI16x8SubSaturateSI16x8SubSaturateUI8x16ShlI16x8ShlI32x4ShlI64x2ShlI8x16ShrSI8x16ShrUI16x8ShrSI16x8ShrUI32x4ShrSI32x4ShrUI64x2ShrSI64x2ShrUV128AndV128OrV128XorV128NotV128BitselectI8x16AnyTrueI16x8AnyTrueI32x4AnyTrueI64x2AnyTrueI8x16AllTrueI16x8AllTrueI32x4AllTrueI64x2AllTrueI8x16EqI16x8EqI32x4EqF32x4EqF64x2EqI8x16NeI16x8NeI32x4NeF32x4NeF64x2NeI8x16LtSI8x16LtUI16x8LtSI16x8LtUI32x4LtSI32x4LtUF32x4LtF64x2LtI8x16LeSI8x16LeUI16x8LeSI16x8LeUI32x4LeSI32x4LeUF32x4LeF64x2LeI8x16GtSI8x16GtUI16x8GtSI16x8GtUI32x4GtSI32x4GtUF32x4GtF64x2GtI8x16GeSI8x16GeUI16x8GeSI16x8GeUI32x4GeSI32x4GeUF32x4GeF64x2GeF32x4NegF64x2NegF32x4AbsF64x2AbsF32x4MinF64x2MinF32x4MaxF64x2MaxF32x4AddF64x2AddF32x4SubF64x2SubF32x4DivF64x2DivF32x4MulF64x2MulF32x4SqrtF64x2SqrtF32x4ConvertSI32x4F32x4ConvertUI32x4F64x2ConvertSI64x2F64x2ConvertUI64x2I32x4TruncSF32x4SatI32x4TruncUF32x4SatI64x2TruncSF64x2SatI64x2TruncUF64x2SatMemoryInit(u32)MemoryDrop(u32)MemoryCopyMemoryFillTableInit(u32)TableDrop(u32)TableCopy

Methods

impl Instruction[src]

pub fn is_block(&self) -> bool[src]

Is this instruction starts the new block (which should end with terminal instruction).

pub fn is_terminal(&self) -> bool[src]

Is this instruction determines the termination of instruction sequence?

true for Instruction::End

Trait Implementations

impl Deserialize for Instruction[src]

type Error = Error

Serialization error produced by deserialization routine.

impl Serialize for Instruction[src]

type Error = Error

Serialization error produced by serialization routine.

impl PartialEq<Instruction> for Instruction[src]

impl Eq for Instruction[src]

impl Clone for Instruction[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Hash for Instruction[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl Debug for Instruction[src]

impl Display for Instruction[src]

Auto Trait Implementations

impl Send for Instruction

impl Sync for Instruction

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.