Enum wasm_encoder::Instruction [−][src]
#[non_exhaustive] pub enum Instruction<'a> {}Show 437 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.
Tuple Fields of Block
0: BlockType
Tuple Fields of Loop
0: BlockType
Tuple Fields of If
0: BlockType
Tuple Fields of Br
0: u32
Tuple Fields of BrIf
0: u32
Tuple Fields of Call
0: u32
Tuple Fields of LocalGet
0: u32
Tuple Fields of LocalSet
0: u32
Tuple Fields of LocalTee
0: u32
Tuple Fields of GlobalGet
0: u32
Tuple Fields of GlobalSet
0: u32
Tuple Fields of I32Load
0: MemArg
Tuple Fields of I64Load
0: MemArg
Tuple Fields of F32Load
0: MemArg
Tuple Fields of F64Load
0: MemArg
Tuple Fields of I32Load8_S
0: MemArg
Tuple Fields of I32Load8_U
0: MemArg
Tuple Fields of I32Load16_S
0: MemArg
Tuple Fields of I32Load16_U
0: MemArg
Tuple Fields of I64Load8_S
0: MemArg
Tuple Fields of I64Load8_U
0: MemArg
Tuple Fields of I64Load16_S
0: MemArg
Tuple Fields of I64Load16_U
0: MemArg
Tuple Fields of I64Load32_S
0: MemArg
Tuple Fields of I64Load32_U
0: MemArg
Tuple Fields of I32Store
0: MemArg
Tuple Fields of I64Store
0: MemArg
Tuple Fields of F32Store
0: MemArg
Tuple Fields of F64Store
0: MemArg
Tuple Fields of I32Store8
0: MemArg
Tuple Fields of I32Store16
0: MemArg
Tuple Fields of I64Store8
0: MemArg
Tuple Fields of I64Store16
0: MemArg
Tuple Fields of I64Store32
0: MemArg
Tuple Fields of MemorySize
0: u32
Tuple Fields of MemoryGrow
0: u32
Tuple Fields of DataDrop
0: u32
Tuple Fields of MemoryFill
0: u32
Tuple Fields of I32Const
0: i32
Tuple Fields of I64Const
0: i64
Tuple Fields of F32Const
0: f32
Tuple Fields of F64Const
0: f64
Tuple Fields of TypedSelect
0: ValType
Tuple Fields of RefNull
0: ValType
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
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