Enum wasm_encoder::Instruction [−][src]
#[non_exhaustive]
pub enum Instruction<'a> {
Show 443 variants
Unreachable,
Nop,
Block(BlockType),
Loop(BlockType),
If(BlockType),
Else,
Try(BlockType),
Delegate(u32),
Catch(u32),
CatchAll,
End,
Br(u32),
BrIf(u32),
BrTable(&'a [u32], u32),
Return,
Call(u32),
CallIndirect {
ty: u32,
table: u32,
},
Throw(u32),
Rethrow(u32),
Drop,
Select,
LocalGet(u32),
LocalSet(u32),
LocalTee(u32),
GlobalGet(u32),
GlobalSet(u32),
I32Load(MemArg),
I64Load(MemArg),
F32Load(MemArg),
F64Load(MemArg),
I32Load8_S(MemArg),
I32Load8_U(MemArg),
I32Load16_S(MemArg),
I32Load16_U(MemArg),
I64Load8_S(MemArg),
I64Load8_U(MemArg),
I64Load16_S(MemArg),
I64Load16_U(MemArg),
I64Load32_S(MemArg),
I64Load32_U(MemArg),
I32Store(MemArg),
I64Store(MemArg),
F32Store(MemArg),
F64Store(MemArg),
I32Store8(MemArg),
I32Store16(MemArg),
I64Store8(MemArg),
I64Store16(MemArg),
I64Store32(MemArg),
MemorySize(u32),
MemoryGrow(u32),
MemoryInit {
mem: u32,
data: u32,
},
DataDrop(u32),
MemoryCopy {
src: u32,
dst: u32,
},
MemoryFill(u32),
I32Const(i32),
I64Const(i64),
F32Const(f32),
F64Const(f64),
I32Eqz,
I32Eq,
I32Neq,
I32LtS,
I32LtU,
I32GtS,
I32GtU,
I32LeS,
I32LeU,
I32GeS,
I32GeU,
I64Eqz,
I64Eq,
I64Neq,
I64LtS,
I64LtU,
I64GtS,
I64GtU,
I64LeS,
I64LeU,
I64GeS,
I64GeU,
F32Eq,
F32Neq,
F32Lt,
F32Gt,
F32Le,
F32Ge,
F64Eq,
F64Neq,
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,
TypedSelect(ValType),
RefNull(ValType),
RefIsNull,
RefFunc(u32),
TableInit {
segment: u32,
table: u32,
},
ElemDrop {
segment: u32,
},
TableFill {
table: u32,
},
TableSet {
table: u32,
},
TableGet {
table: u32,
},
TableGrow {
table: u32,
},
TableSize {
table: u32,
},
TableCopy {
src: u32,
dst: u32,
},
V128Load {
memarg: MemArg,
},
V128Load8x8S {
memarg: MemArg,
},
V128Load8x8U {
memarg: MemArg,
},
V128Load16x4S {
memarg: MemArg,
},
V128Load16x4U {
memarg: MemArg,
},
V128Load32x2S {
memarg: MemArg,
},
V128Load32x2U {
memarg: MemArg,
},
V128Load8Splat {
memarg: MemArg,
},
V128Load16Splat {
memarg: MemArg,
},
V128Load32Splat {
memarg: MemArg,
},
V128Load64Splat {
memarg: MemArg,
},
V128Load32Zero {
memarg: MemArg,
},
V128Load64Zero {
memarg: MemArg,
},
V128Store {
memarg: MemArg,
},
V128Load8Lane {
memarg: MemArg,
lane: Lane,
},
V128Load16Lane {
memarg: MemArg,
lane: Lane,
},
V128Load32Lane {
memarg: MemArg,
lane: Lane,
},
V128Load64Lane {
memarg: MemArg,
lane: Lane,
},
V128Store8Lane {
memarg: MemArg,
lane: Lane,
},
V128Store16Lane {
memarg: MemArg,
lane: Lane,
},
V128Store32Lane {
memarg: MemArg,
lane: Lane,
},
V128Store64Lane {
memarg: MemArg,
lane: Lane,
},
V128Const(i128),
I8x16Shuffle {
lanes: [Lane; 16],
},
I8x16ExtractLaneS {
lane: Lane,
},
I8x16ExtractLaneU {
lane: Lane,
},
I8x16ReplaceLane {
lane: Lane,
},
I16x8ExtractLaneS {
lane: Lane,
},
I16x8ExtractLaneU {
lane: Lane,
},
I16x8ReplaceLane {
lane: Lane,
},
I32x4ExtractLane {
lane: Lane,
},
I32x4ReplaceLane {
lane: Lane,
},
I64x2ExtractLane {
lane: Lane,
},
I64x2ReplaceLane {
lane: Lane,
},
F32x4ExtractLane {
lane: Lane,
},
F32x4ReplaceLane {
lane: Lane,
},
F64x2ExtractLane {
lane: Lane,
},
F64x2ReplaceLane {
lane: Lane,
},
I8x16Swizzle,
I8x16Splat,
I16x8Splat,
I32x4Splat,
I64x2Splat,
F32x4Splat,
F64x2Splat,
I8x16Eq,
I8x16Ne,
I8x16LtS,
I8x16LtU,
I8x16GtS,
I8x16GtU,
I8x16LeS,
I8x16LeU,
I8x16GeS,
I8x16GeU,
I16x8Eq,
I16x8Ne,
I16x8LtS,
I16x8LtU,
I16x8GtS,
I16x8GtU,
I16x8LeS,
I16x8LeU,
I16x8GeS,
I16x8GeU,
I32x4Eq,
I32x4Ne,
I32x4LtS,
I32x4LtU,
I32x4GtS,
I32x4GtU,
I32x4LeS,
I32x4LeU,
I32x4GeS,
I32x4GeU,
I64x2Eq,
I64x2Ne,
I64x2LtS,
I64x2GtS,
I64x2LeS,
I64x2GeS,
F32x4Eq,
F32x4Ne,
F32x4Lt,
F32x4Gt,
F32x4Le,
F32x4Ge,
F64x2Eq,
F64x2Ne,
F64x2Lt,
F64x2Gt,
F64x2Le,
F64x2Ge,
V128Not,
V128And,
V128AndNot,
V128Or,
V128Xor,
V128Bitselect,
V128AnyTrue,
I8x16Abs,
I8x16Neg,
I8x16Popcnt,
I8x16AllTrue,
I8x16Bitmask,
I8x16NarrowI16x8S,
I8x16NarrowI16x8U,
I8x16Shl,
I8x16ShrS,
I8x16ShrU,
I8x16Add,
I8x16AddSatS,
I8x16AddSatU,
I8x16Sub,
I8x16SubSatS,
I8x16SubSatU,
I8x16MinS,
I8x16MinU,
I8x16MaxS,
I8x16MaxU,
I8x16RoundingAverageU,
I16x8ExtAddPairwiseI8x16S,
I16x8ExtAddPairwiseI8x16U,
I16x8Abs,
I16x8Neg,
I16x8Q15MulrSatS,
I16x8AllTrue,
I16x8Bitmask,
I16x8NarrowI32x4S,
I16x8NarrowI32x4U,
I16x8ExtendLowI8x16S,
I16x8ExtendHighI8x16S,
I16x8ExtendLowI8x16U,
I16x8ExtendHighI8x16U,
I16x8Shl,
I16x8ShrS,
I16x8ShrU,
I16x8Add,
I16x8AddSatS,
I16x8AddSatU,
I16x8Sub,
I16x8SubSatS,
I16x8SubSatU,
I16x8Mul,
I16x8MinS,
I16x8MinU,
I16x8MaxS,
I16x8MaxU,
I16x8RoundingAverageU,
I16x8ExtMulLowI8x16S,
I16x8ExtMulHighI8x16S,
I16x8ExtMulLowI8x16U,
I16x8ExtMulHighI8x16U,
I32x4ExtAddPairwiseI16x8S,
I32x4ExtAddPairwiseI16x8U,
I32x4Abs,
I32x4Neg,
I32x4AllTrue,
I32x4Bitmask,
I32x4ExtendLowI16x8S,
I32x4ExtendHighI16x8S,
I32x4ExtendLowI16x8U,
I32x4ExtendHighI16x8U,
I32x4Shl,
I32x4ShrS,
I32x4ShrU,
I32x4Add,
I32x4Sub,
I32x4Mul,
I32x4MinS,
I32x4MinU,
I32x4MaxS,
I32x4MaxU,
I32x4DotI16x8S,
I32x4ExtMulLowI16x8S,
I32x4ExtMulHighI16x8S,
I32x4ExtMulLowI16x8U,
I32x4ExtMulHighI16x8U,
I64x2Abs,
I64x2Neg,
I64x2AllTrue,
I64x2Bitmask,
I64x2ExtendLowI32x4S,
I64x2ExtendHighI32x4S,
I64x2ExtendLowI32x4U,
I64x2ExtendHighI32x4U,
I64x2Shl,
I64x2ShrS,
I64x2ShrU,
I64x2Add,
I64x2Sub,
I64x2Mul,
I64x2ExtMulLowI32x4S,
I64x2ExtMulHighI32x4S,
I64x2ExtMulLowI32x4U,
I64x2ExtMulHighI32x4U,
F32x4Ceil,
F32x4Floor,
F32x4Trunc,
F32x4Nearest,
F32x4Abs,
F32x4Neg,
F32x4Sqrt,
F32x4Add,
F32x4Sub,
F32x4Mul,
F32x4Div,
F32x4Min,
F32x4Max,
F32x4PMin,
F32x4PMax,
F64x2Ceil,
F64x2Floor,
F64x2Trunc,
F64x2Nearest,
F64x2Abs,
F64x2Neg,
F64x2Sqrt,
F64x2Add,
F64x2Sub,
F64x2Mul,
F64x2Div,
F64x2Min,
F64x2Max,
F64x2PMin,
F64x2PMax,
I32x4TruncSatF32x4S,
I32x4TruncSatF32x4U,
F32x4ConvertI32x4S,
F32x4ConvertI32x4U,
I32x4TruncSatF64x2SZero,
I32x4TruncSatF64x2UZero,
F64x2ConvertLowI32x4S,
F64x2ConvertLowI32x4U,
F32x4DemoteF64x2Zero,
F64x2PromoteLowF32x4,
}
Expand description
WebAssembly instructions.
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Block(BlockType)
Tuple Fields of Block
0: BlockType
Loop(BlockType)
Tuple Fields of Loop
0: BlockType
If(BlockType)
Tuple Fields of If
0: BlockType
Try(BlockType)
Tuple Fields of Try
0: BlockType
Delegate(u32)
Tuple Fields of Delegate
0: u32
Catch(u32)
Tuple Fields of Catch
0: u32
Br(u32)
Tuple Fields of Br
0: u32
BrIf(u32)
Tuple Fields of BrIf
0: u32
Call(u32)
Tuple Fields of Call
0: u32
Throw(u32)
Tuple Fields of Throw
0: u32
Rethrow(u32)
Tuple Fields of Rethrow
0: u32
LocalGet(u32)
Tuple Fields of LocalGet
0: u32
LocalSet(u32)
Tuple Fields of LocalSet
0: u32
LocalTee(u32)
Tuple Fields of LocalTee
0: u32
GlobalGet(u32)
Tuple Fields of GlobalGet
0: u32
GlobalSet(u32)
Tuple Fields of GlobalSet
0: u32
I32Load(MemArg)
Tuple Fields of I32Load
0: MemArg
I64Load(MemArg)
Tuple Fields of I64Load
0: MemArg
F32Load(MemArg)
Tuple Fields of F32Load
0: MemArg
F64Load(MemArg)
Tuple Fields of F64Load
0: MemArg
I32Load8_S(MemArg)
Tuple Fields of I32Load8_S
0: MemArg
I32Load8_U(MemArg)
Tuple Fields of I32Load8_U
0: MemArg
I32Load16_S(MemArg)
Tuple Fields of I32Load16_S
0: MemArg
I32Load16_U(MemArg)
Tuple Fields of I32Load16_U
0: MemArg
I64Load8_S(MemArg)
Tuple Fields of I64Load8_S
0: MemArg
I64Load8_U(MemArg)
Tuple Fields of I64Load8_U
0: MemArg
I64Load16_S(MemArg)
Tuple Fields of I64Load16_S
0: MemArg
I64Load16_U(MemArg)
Tuple Fields of I64Load16_U
0: MemArg
I64Load32_S(MemArg)
Tuple Fields of I64Load32_S
0: MemArg
I64Load32_U(MemArg)
Tuple Fields of I64Load32_U
0: MemArg
I32Store(MemArg)
Tuple Fields of I32Store
0: MemArg
I64Store(MemArg)
Tuple Fields of I64Store
0: MemArg
F32Store(MemArg)
Tuple Fields of F32Store
0: MemArg
F64Store(MemArg)
Tuple Fields of F64Store
0: MemArg
I32Store8(MemArg)
Tuple Fields of I32Store8
0: MemArg
I32Store16(MemArg)
Tuple Fields of I32Store16
0: MemArg
I64Store8(MemArg)
Tuple Fields of I64Store8
0: MemArg
I64Store16(MemArg)
Tuple Fields of I64Store16
0: MemArg
I64Store32(MemArg)
Tuple Fields of I64Store32
0: MemArg
MemorySize(u32)
Tuple Fields of MemorySize
0: u32
MemoryGrow(u32)
Tuple Fields of MemoryGrow
0: u32
DataDrop(u32)
Tuple Fields of DataDrop
0: u32
MemoryFill(u32)
Tuple Fields of MemoryFill
0: u32
I32Const(i32)
Tuple Fields of I32Const
0: i32
I64Const(i64)
Tuple Fields of I64Const
0: i64
F32Const(f32)
Tuple Fields of F32Const
0: f32
F64Const(f64)
Tuple Fields of F64Const
0: f64
TypedSelect(ValType)
Tuple Fields of TypedSelect
0: ValType
RefNull(ValType)
Tuple Fields of RefNull
0: ValType
RefFunc(u32)
Tuple Fields of RefFunc
0: u32
Fields of ElemDrop
segment: u32
Fields of TableFill
table: u32
Fields of TableSet
table: u32
Fields of TableGet
table: u32
Fields of TableGrow
table: u32
Fields of TableSize
table: u32
Fields of V128Load
memarg: MemArg
Fields of V128Load8x8S
memarg: MemArg
Fields of V128Load8x8U
memarg: MemArg
Fields of V128Load16x4S
memarg: MemArg
Fields of V128Load16x4U
memarg: MemArg
Fields of V128Load32x2S
memarg: MemArg
Fields of V128Load32x2U
memarg: MemArg
Fields of V128Load8Splat
memarg: MemArg
Fields of V128Load16Splat
memarg: MemArg
Fields of V128Load32Splat
memarg: MemArg
Fields of V128Load64Splat
memarg: MemArg
Fields of V128Load32Zero
memarg: MemArg
Fields of V128Load64Zero
memarg: MemArg
Fields of V128Store
memarg: MemArg
V128Const(i128)
Tuple Fields of V128Const
0: i128
Fields of I8x16ExtractLaneS
lane: Lane
Fields of I8x16ExtractLaneU
lane: Lane
Fields of I8x16ReplaceLane
lane: Lane
Fields of I16x8ExtractLaneS
lane: Lane
Fields of I16x8ExtractLaneU
lane: Lane
Fields of I16x8ReplaceLane
lane: Lane
Fields of I32x4ExtractLane
lane: Lane
Fields of I32x4ReplaceLane
lane: Lane
Fields of I64x2ExtractLane
lane: Lane
Fields of I64x2ReplaceLane
lane: Lane
Fields of F32x4ExtractLane
lane: Lane
Fields of F32x4ReplaceLane
lane: Lane
Fields of F64x2ExtractLane
lane: Lane
Fields of F64x2ReplaceLane
lane: Lane
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for Instruction<'a>
impl<'a> Send for Instruction<'a>
impl<'a> Sync for Instruction<'a>
impl<'a> Unpin for Instruction<'a>
impl<'a> UnwindSafe for Instruction<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more