pub enum Instruction {
Show 390 variants 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,
}
Expand description

Instruction.

Variants

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

Implementations

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

Is this instruction determines the termination of instruction sequence?

true for Instruction::End

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Serialization error produced by deserialization routine.
Deserialize type from serial i/o
Formats the value using the given formatter. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialization error produced by serialization routine.
Serialize type to serial i/o

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.