Enum wasm_encoder::Instruction [−][src]
#[non_exhaustive] pub enum Instruction<'a> {}Show variants
Unreachable, Nop, Block(BlockType), Loop(BlockType), If(BlockType), Else, End, Br(u32), BrIf(u32), BrTable(&'a [u32], u32), Return, Call(u32), CallIndirect { ty: u32, table: 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)
Loop(BlockType)
If(BlockType)
Br(u32)
BrIf(u32)
Call(u32)
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)
DataDrop(u32)
MemoryFill(u32)
I32Const(i32)
I64Const(i64)
F32Const(f32)
F64Const(f64)
TypedSelect(ValType)
RefNull(ValType)
RefFunc(u32)
Show fields
Fields of ElemDrop
segment: u32
Show fields
Fields of TableFill
table: u32
Show fields
Fields of TableSet
table: u32
Show fields
Fields of TableGet
table: u32
Show fields
Fields of TableGrow
table: u32
Show fields
Fields of TableSize
table: u32
Show fields
Fields of V128Load
memarg: MemArg
Show fields
Fields of V128Load8x8S
memarg: MemArg
Show fields
Fields of V128Load8x8U
memarg: MemArg
Show fields
Fields of V128Load16x4S
memarg: MemArg
Show fields
Fields of V128Load16x4U
memarg: MemArg
Show fields
Fields of V128Load32x2S
memarg: MemArg
Show fields
Fields of V128Load32x2U
memarg: MemArg
Show fields
Fields of V128Load8Splat
memarg: MemArg
Show fields
Fields of V128Load16Splat
memarg: MemArg
Show fields
Fields of V128Load32Splat
memarg: MemArg
Show fields
Fields of V128Load64Splat
memarg: MemArg
Show fields
Fields of V128Load32Zero
memarg: MemArg
Show fields
Fields of V128Load64Zero
memarg: MemArg
Show fields
Fields of V128Store
memarg: MemArg
V128Const(i128)
Show fields
Fields of I8x16ExtractLaneS
lane: Lane
Show fields
Fields of I8x16ExtractLaneU
lane: Lane
Show fields
Fields of I8x16ReplaceLane
lane: Lane
Show fields
Fields of I16x8ExtractLaneS
lane: Lane
Show fields
Fields of I16x8ExtractLaneU
lane: Lane
Show fields
Fields of I16x8ReplaceLane
lane: Lane
Show fields
Fields of I32x4ExtractLane
lane: Lane
Show fields
Fields of I32x4ReplaceLane
lane: Lane
Show fields
Fields of I64x2ExtractLane
lane: Lane
Show fields
Fields of I64x2ReplaceLane
lane: Lane
Show fields
Fields of F32x4ExtractLane
lane: Lane
Show fields
Fields of F32x4ReplaceLane
lane: Lane
Show fields
Fields of F64x2ExtractLane
lane: Lane
Show fields
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