Skip to main content

Instr

Enum Instr 

Source
pub enum Instr {
Show 262 variants Unreachable, Nop, Block(BlockType), Loop(BlockType), If(BlockType), Else, End, Br(LabelIdx), BrIf(LabelIdx), BrOnNull(LabelIdx), BrOnNonNull(LabelIdx), BrTable { targets: Vec<LabelIdx>, default: LabelIdx, }, Return, Call(FuncIdx), ReturnCall(FuncIdx), CallRef(TypeIdx), ReturnCallRef(TypeIdx), CallIndirect { type_idx: TypeIdx, table_idx: TableIdx, }, ReturnCallIndirect { type_idx: TypeIdx, table_idx: TableIdx, }, Drop, Select, SelectTyped(Vec<ValType>), LocalGet(LocalIdx), LocalSet(LocalIdx), LocalTee(LocalIdx), GlobalGet(GlobalIdx), GlobalSet(GlobalIdx), TableGet(TableIdx), TableSet(TableIdx), V128Load(MemArg), V128Load8x8S(MemArg), V128Load8x8U(MemArg), V128Load16x4S(MemArg), V128Load16x4U(MemArg), V128Load32x2S(MemArg), V128Load32x2U(MemArg), V128Load8Splat(MemArg), V128Load16Splat(MemArg), V128Load32Splat(MemArg), V128Load64Splat(MemArg), V128Load32Zero(MemArg), V128Load64Zero(MemArg), V128Store(MemArg), V128Load8Lane { memarg: MemArg, lane: u8, }, V128Load16Lane { memarg: MemArg, lane: u8, }, V128Load32Lane { memarg: MemArg, lane: u8, }, V128Load64Lane { memarg: MemArg, lane: u8, }, V128Store8Lane { memarg: MemArg, lane: u8, }, V128Store16Lane { memarg: MemArg, lane: u8, }, V128Store32Lane { memarg: MemArg, lane: u8, }, V128Store64Lane { memarg: MemArg, lane: u8, }, I32Load(MemArg), I64Load(MemArg), F32Load(MemArg), F64Load(MemArg), I32Load8S(MemArg), I32Load8U(MemArg), I32Load16S(MemArg), I32Load16U(MemArg), I64Load8S(MemArg), I64Load8U(MemArg), I64Load16S(MemArg), I64Load16U(MemArg), I64Load32S(MemArg), I64Load32U(MemArg), I32Store(MemArg), I64Store(MemArg), F32Store(MemArg), F64Store(MemArg), I32Store8(MemArg), I32Store16(MemArg), I64Store8(MemArg), I64Store16(MemArg), I64Store32(MemArg), MemoryInit(DataIdx, MemIdx), DataDrop(DataIdx), MemoryCopy { dst: MemIdx, src: MemIdx, }, MemoryFill(MemIdx), TableInit { elem_idx: ElemIdx, table_idx: TableIdx, }, ElemDrop(ElemIdx), TableCopy { dst: TableIdx, src: TableIdx, }, TableGrow(TableIdx), TableSize(TableIdx), TableFill(TableIdx), MemorySize(MemIdx), MemoryGrow(MemIdx), I32Const(i32), I64Const(i64), F32Const(f32), F64Const(f64), RefNull(RefType), RefIsNull, RefFunc(FuncIdx), RefAsNonNull, V128Const([u8; 16]), I8x16Splat, I16x8Splat, I32x4Splat, I64x2Splat, F32x4Splat, F64x2Splat, I32x4ExtractLane(u8), I32x4ReplaceLane(u8), F32x4ExtractLane(u8), F32x4ReplaceLane(u8), V128Not, V128And, V128Or, V128Xor, I8x16Add, I8x16Sub, I16x8Add, I16x8Sub, I32x4Add, I32x4Sub, I32x4Mul, I64x2Add, I64x2Sub, F32x4Add, F32x4Sub, F32x4Mul, F32x4Div, F64x2Add, F64x2Sub, F64x2Mul, F64x2Div, 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, I32TruncF32S, I32TruncF32U, I32TruncF64S, I32TruncF64U, I64ExtendI32S, I64ExtendI32U, I64TruncF32S, I64TruncF32U, I64TruncF64S, I64TruncF64U, F32ConvertI32S, F32ConvertI32U, F32ConvertI64S, F32ConvertI64U, F32DemoteF64, F64ConvertI32S, F64ConvertI32U, F64ConvertI64S, F64ConvertI64U, F64PromoteF32, I32ReinterpretF32, I64ReinterpretF64, F32ReinterpretI32, F64ReinterpretI64, I32Extend8S, I32Extend16S, I64Extend8S, I64Extend16S, I64Extend32S, I32TruncSatF32S, I32TruncSatF32U, I32TruncSatF64S, I32TruncSatF64U, I64TruncSatF32S, I64TruncSatF32U, I64TruncSatF64S, I64TruncSatF64U,
}
Expand description

A decoded WebAssembly instruction.

Variants§

§

Unreachable

§

Nop

§

Block(BlockType)

§

Loop(BlockType)

§

If(BlockType)

§

Else

§

End

§

Br(LabelIdx)

§

BrIf(LabelIdx)

§

BrOnNull(LabelIdx)

§

BrOnNonNull(LabelIdx)

§

BrTable

Fields

§targets: Vec<LabelIdx>
§default: LabelIdx
§

Return

§

Call(FuncIdx)

§

ReturnCall(FuncIdx)

§

CallRef(TypeIdx)

§

ReturnCallRef(TypeIdx)

§

CallIndirect

Fields

§type_idx: TypeIdx
§table_idx: TableIdx
§

ReturnCallIndirect

Fields

§type_idx: TypeIdx
§table_idx: TableIdx
§

Drop

§

Select

§

SelectTyped(Vec<ValType>)

§

LocalGet(LocalIdx)

§

LocalSet(LocalIdx)

§

LocalTee(LocalIdx)

§

GlobalGet(GlobalIdx)

§

GlobalSet(GlobalIdx)

§

TableGet(TableIdx)

§

TableSet(TableIdx)

§

V128Load(MemArg)

§

V128Load8x8S(MemArg)

§

V128Load8x8U(MemArg)

§

V128Load16x4S(MemArg)

§

V128Load16x4U(MemArg)

§

V128Load32x2S(MemArg)

§

V128Load32x2U(MemArg)

§

V128Load8Splat(MemArg)

§

V128Load16Splat(MemArg)

§

V128Load32Splat(MemArg)

§

V128Load64Splat(MemArg)

§

V128Load32Zero(MemArg)

§

V128Load64Zero(MemArg)

§

V128Store(MemArg)

§

V128Load8Lane

Fields

§memarg: MemArg
§lane: u8
§

V128Load16Lane

Fields

§memarg: MemArg
§lane: u8
§

V128Load32Lane

Fields

§memarg: MemArg
§lane: u8
§

V128Load64Lane

Fields

§memarg: MemArg
§lane: u8
§

V128Store8Lane

Fields

§memarg: MemArg
§lane: u8
§

V128Store16Lane

Fields

§memarg: MemArg
§lane: u8
§

V128Store32Lane

Fields

§memarg: MemArg
§lane: u8
§

V128Store64Lane

Fields

§memarg: MemArg
§lane: u8
§

I32Load(MemArg)

§

I64Load(MemArg)

§

F32Load(MemArg)

§

F64Load(MemArg)

§

I32Load8S(MemArg)

§

I32Load8U(MemArg)

§

I32Load16S(MemArg)

§

I32Load16U(MemArg)

§

I64Load8S(MemArg)

§

I64Load8U(MemArg)

§

I64Load16S(MemArg)

§

I64Load16U(MemArg)

§

I64Load32S(MemArg)

§

I64Load32U(MemArg)

§

I32Store(MemArg)

§

I64Store(MemArg)

§

F32Store(MemArg)

§

F64Store(MemArg)

§

I32Store8(MemArg)

§

I32Store16(MemArg)

§

I64Store8(MemArg)

§

I64Store16(MemArg)

§

I64Store32(MemArg)

§

MemoryInit(DataIdx, MemIdx)

§

DataDrop(DataIdx)

§

MemoryCopy

Fields

§

MemoryFill(MemIdx)

§

TableInit

Fields

§elem_idx: ElemIdx
§table_idx: TableIdx
§

ElemDrop(ElemIdx)

§

TableCopy

Fields

§

TableGrow(TableIdx)

§

TableSize(TableIdx)

§

TableFill(TableIdx)

§

MemorySize(MemIdx)

§

MemoryGrow(MemIdx)

§

I32Const(i32)

§

I64Const(i64)

§

F32Const(f32)

§

F64Const(f64)

§

RefNull(RefType)

§

RefIsNull

§

RefFunc(FuncIdx)

§

RefAsNonNull

§

V128Const([u8; 16])

§

I8x16Splat

§

I16x8Splat

§

I32x4Splat

§

I64x2Splat

§

F32x4Splat

§

F64x2Splat

§

I32x4ExtractLane(u8)

§

I32x4ReplaceLane(u8)

§

F32x4ExtractLane(u8)

§

F32x4ReplaceLane(u8)

§

V128Not

§

V128And

§

V128Or

§

V128Xor

§

I8x16Add

§

I8x16Sub

§

I16x8Add

§

I16x8Sub

§

I32x4Add

§

I32x4Sub

§

I32x4Mul

§

I64x2Add

§

I64x2Sub

§

F32x4Add

§

F32x4Sub

§

F32x4Mul

§

F32x4Div

§

F64x2Add

§

F64x2Sub

§

F64x2Mul

§

F64x2Div

§

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

§

I32TruncF32S

§

I32TruncF32U

§

I32TruncF64S

§

I32TruncF64U

§

I64ExtendI32S

§

I64ExtendI32U

§

I64TruncF32S

§

I64TruncF32U

§

I64TruncF64S

§

I64TruncF64U

§

F32ConvertI32S

§

F32ConvertI32U

§

F32ConvertI64S

§

F32ConvertI64U

§

F32DemoteF64

§

F64ConvertI32S

§

F64ConvertI32U

§

F64ConvertI64S

§

F64ConvertI64U

§

F64PromoteF32

§

I32ReinterpretF32

§

I64ReinterpretF64

§

F32ReinterpretI32

§

F64ReinterpretI64

§

I32Extend8S

§

I32Extend16S

§

I64Extend8S

§

I64Extend16S

§

I64Extend32S

§

I32TruncSatF32S

§

I32TruncSatF32U

§

I32TruncSatF64S

§

I32TruncSatF64U

§

I64TruncSatF32S

§

I64TruncSatF32U

§

I64TruncSatF64S

§

I64TruncSatF64U

Trait Implementations§

Source§

impl Clone for Instr

Source§

fn clone(&self) -> Instr

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Instr

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Instr

Source§

fn eq(&self, other: &Instr) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Instr

Auto Trait Implementations§

§

impl Freeze for Instr

§

impl RefUnwindSafe for Instr

§

impl Send for Instr

§

impl Sync for Instr

§

impl Unpin for Instr

§

impl UnsafeUnpin for Instr

§

impl UnwindSafe for Instr

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.