summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/wasm/instruction.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/tetratelabs/wazero/internal/wasm/instruction.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/wasm/instruction.go')
-rw-r--r--vendor/github.com/tetratelabs/wazero/internal/wasm/instruction.go1866
1 files changed, 0 insertions, 1866 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/wasm/instruction.go b/vendor/github.com/tetratelabs/wazero/internal/wasm/instruction.go
deleted file mode 100644
index 67f196b8b..000000000
--- a/vendor/github.com/tetratelabs/wazero/internal/wasm/instruction.go
+++ /dev/null
@@ -1,1866 +0,0 @@
-package wasm
-
-// Opcode is the binary Opcode of an instruction. See also InstructionName
-type Opcode = byte
-
-const (
- // OpcodeUnreachable causes an unconditional trap.
- OpcodeUnreachable Opcode = 0x00
- // OpcodeNop does nothing
- OpcodeNop Opcode = 0x01
- // OpcodeBlock brackets a sequence of instructions. A branch instruction on an if label breaks out to after its
- // OpcodeEnd.
- OpcodeBlock Opcode = 0x02
- // OpcodeLoop brackets a sequence of instructions. A branch instruction on a loop label will jump back to the
- // beginning of its block.
- OpcodeLoop Opcode = 0x03
- // OpcodeIf brackets a sequence of instructions. When the top of the stack evaluates to 1, the block is executed.
- // Zero jumps to the optional OpcodeElse. A branch instruction on an if label breaks out to after its OpcodeEnd.
- OpcodeIf Opcode = 0x04
- // OpcodeElse brackets a sequence of instructions enclosed by an OpcodeIf. A branch instruction on a then label
- // breaks out to after the OpcodeEnd on the enclosing OpcodeIf.
- OpcodeElse Opcode = 0x05
- // OpcodeEnd terminates a control instruction OpcodeBlock, OpcodeLoop or OpcodeIf.
- OpcodeEnd Opcode = 0x0b
-
- // OpcodeBr is a stack-polymorphic opcode that performs an unconditional branch. How the stack is modified depends
- // on whether the "br" is enclosed by a loop, and if CoreFeatureMultiValue is enabled.
- //
- // Here are the rules in pseudocode about how the stack is modified based on the "br" operand L (label):
- // if L is loop: append(L.originalStackWithoutInputs, N-values popped from the stack) where N == L.inputs
- // else: append(L.originalStackWithoutInputs, N-values popped from the stack) where N == L.results
- //
- // In WebAssembly 1.0 (20191205), N can be zero or one. When CoreFeatureMultiValue is enabled, N can be more than one,
- // depending on the type use of the label L.
- //
- // See https://www.w3.org/TR/2019/REC-wasm-core-1-20191205/#-hrefsyntax-instr-controlmathsfbrl
- OpcodeBr Opcode = 0x0c
-
- OpcodeBrIf Opcode = 0x0d
- OpcodeBrTable Opcode = 0x0e
- OpcodeReturn Opcode = 0x0f
- OpcodeCall Opcode = 0x10
- OpcodeCallIndirect Opcode = 0x11
-
- // parametric instructions
-
- OpcodeDrop Opcode = 0x1a
- OpcodeSelect Opcode = 0x1b
- OpcodeTypedSelect Opcode = 0x1c
-
- // variable instructions
-
- OpcodeLocalGet Opcode = 0x20
- OpcodeLocalSet Opcode = 0x21
- OpcodeLocalTee Opcode = 0x22
- OpcodeGlobalGet Opcode = 0x23
- OpcodeGlobalSet Opcode = 0x24
-
- // Below are toggled with CoreFeatureReferenceTypes
-
- OpcodeTableGet Opcode = 0x25
- OpcodeTableSet Opcode = 0x26
-
- // memory instructions
-
- OpcodeI32Load Opcode = 0x28
- OpcodeI64Load Opcode = 0x29
- OpcodeF32Load Opcode = 0x2a
- OpcodeF64Load Opcode = 0x2b
- OpcodeI32Load8S Opcode = 0x2c
- OpcodeI32Load8U Opcode = 0x2d
- OpcodeI32Load16S Opcode = 0x2e
- OpcodeI32Load16U Opcode = 0x2f
- OpcodeI64Load8S Opcode = 0x30
- OpcodeI64Load8U Opcode = 0x31
- OpcodeI64Load16S Opcode = 0x32
- OpcodeI64Load16U Opcode = 0x33
- OpcodeI64Load32S Opcode = 0x34
- OpcodeI64Load32U Opcode = 0x35
- OpcodeI32Store Opcode = 0x36
- OpcodeI64Store Opcode = 0x37
- OpcodeF32Store Opcode = 0x38
- OpcodeF64Store Opcode = 0x39
- OpcodeI32Store8 Opcode = 0x3a
- OpcodeI32Store16 Opcode = 0x3b
- OpcodeI64Store8 Opcode = 0x3c
- OpcodeI64Store16 Opcode = 0x3d
- OpcodeI64Store32 Opcode = 0x3e
- OpcodeMemorySize Opcode = 0x3f
- OpcodeMemoryGrow Opcode = 0x40
-
- // const instructions
-
- OpcodeI32Const Opcode = 0x41
- OpcodeI64Const Opcode = 0x42
- OpcodeF32Const Opcode = 0x43
- OpcodeF64Const Opcode = 0x44
-
- // numeric instructions
-
- OpcodeI32Eqz Opcode = 0x45
- OpcodeI32Eq Opcode = 0x46
- OpcodeI32Ne Opcode = 0x47
- OpcodeI32LtS Opcode = 0x48
- OpcodeI32LtU Opcode = 0x49
- OpcodeI32GtS Opcode = 0x4a
- OpcodeI32GtU Opcode = 0x4b
- OpcodeI32LeS Opcode = 0x4c
- OpcodeI32LeU Opcode = 0x4d
- OpcodeI32GeS Opcode = 0x4e
- OpcodeI32GeU Opcode = 0x4f
-
- OpcodeI64Eqz Opcode = 0x50
- OpcodeI64Eq Opcode = 0x51
- OpcodeI64Ne Opcode = 0x52
- OpcodeI64LtS Opcode = 0x53
- OpcodeI64LtU Opcode = 0x54
- OpcodeI64GtS Opcode = 0x55
- OpcodeI64GtU Opcode = 0x56
- OpcodeI64LeS Opcode = 0x57
- OpcodeI64LeU Opcode = 0x58
- OpcodeI64GeS Opcode = 0x59
- OpcodeI64GeU Opcode = 0x5a
-
- OpcodeF32Eq Opcode = 0x5b
- OpcodeF32Ne Opcode = 0x5c
- OpcodeF32Lt Opcode = 0x5d
- OpcodeF32Gt Opcode = 0x5e
- OpcodeF32Le Opcode = 0x5f
- OpcodeF32Ge Opcode = 0x60
-
- OpcodeF64Eq Opcode = 0x61
- OpcodeF64Ne Opcode = 0x62
- OpcodeF64Lt Opcode = 0x63
- OpcodeF64Gt Opcode = 0x64
- OpcodeF64Le Opcode = 0x65
- OpcodeF64Ge Opcode = 0x66
-
- OpcodeI32Clz Opcode = 0x67
- OpcodeI32Ctz Opcode = 0x68
- OpcodeI32Popcnt Opcode = 0x69
- OpcodeI32Add Opcode = 0x6a
- OpcodeI32Sub Opcode = 0x6b
- OpcodeI32Mul Opcode = 0x6c
- OpcodeI32DivS Opcode = 0x6d
- OpcodeI32DivU Opcode = 0x6e
- OpcodeI32RemS Opcode = 0x6f
- OpcodeI32RemU Opcode = 0x70
- OpcodeI32And Opcode = 0x71
- OpcodeI32Or Opcode = 0x72
- OpcodeI32Xor Opcode = 0x73
- OpcodeI32Shl Opcode = 0x74
- OpcodeI32ShrS Opcode = 0x75
- OpcodeI32ShrU Opcode = 0x76
- OpcodeI32Rotl Opcode = 0x77
- OpcodeI32Rotr Opcode = 0x78
-
- OpcodeI64Clz Opcode = 0x79
- OpcodeI64Ctz Opcode = 0x7a
- OpcodeI64Popcnt Opcode = 0x7b
- OpcodeI64Add Opcode = 0x7c
- OpcodeI64Sub Opcode = 0x7d
- OpcodeI64Mul Opcode = 0x7e
- OpcodeI64DivS Opcode = 0x7f
- OpcodeI64DivU Opcode = 0x80
- OpcodeI64RemS Opcode = 0x81
- OpcodeI64RemU Opcode = 0x82
- OpcodeI64And Opcode = 0x83
- OpcodeI64Or Opcode = 0x84
- OpcodeI64Xor Opcode = 0x85
- OpcodeI64Shl Opcode = 0x86
- OpcodeI64ShrS Opcode = 0x87
- OpcodeI64ShrU Opcode = 0x88
- OpcodeI64Rotl Opcode = 0x89
- OpcodeI64Rotr Opcode = 0x8a
-
- OpcodeF32Abs Opcode = 0x8b
- OpcodeF32Neg Opcode = 0x8c
- OpcodeF32Ceil Opcode = 0x8d
- OpcodeF32Floor Opcode = 0x8e
- OpcodeF32Trunc Opcode = 0x8f
- OpcodeF32Nearest Opcode = 0x90
- OpcodeF32Sqrt Opcode = 0x91
- OpcodeF32Add Opcode = 0x92
- OpcodeF32Sub Opcode = 0x93
- OpcodeF32Mul Opcode = 0x94
- OpcodeF32Div Opcode = 0x95
- OpcodeF32Min Opcode = 0x96
- OpcodeF32Max Opcode = 0x97
- OpcodeF32Copysign Opcode = 0x98
-
- OpcodeF64Abs Opcode = 0x99
- OpcodeF64Neg Opcode = 0x9a
- OpcodeF64Ceil Opcode = 0x9b
- OpcodeF64Floor Opcode = 0x9c
- OpcodeF64Trunc Opcode = 0x9d
- OpcodeF64Nearest Opcode = 0x9e
- OpcodeF64Sqrt Opcode = 0x9f
- OpcodeF64Add Opcode = 0xa0
- OpcodeF64Sub Opcode = 0xa1
- OpcodeF64Mul Opcode = 0xa2
- OpcodeF64Div Opcode = 0xa3
- OpcodeF64Min Opcode = 0xa4
- OpcodeF64Max Opcode = 0xa5
- OpcodeF64Copysign Opcode = 0xa6
-
- OpcodeI32WrapI64 Opcode = 0xa7
- OpcodeI32TruncF32S Opcode = 0xa8
- OpcodeI32TruncF32U Opcode = 0xa9
- OpcodeI32TruncF64S Opcode = 0xaa
- OpcodeI32TruncF64U Opcode = 0xab
-
- OpcodeI64ExtendI32S Opcode = 0xac
- OpcodeI64ExtendI32U Opcode = 0xad
- OpcodeI64TruncF32S Opcode = 0xae
- OpcodeI64TruncF32U Opcode = 0xaf
- OpcodeI64TruncF64S Opcode = 0xb0
- OpcodeI64TruncF64U Opcode = 0xb1
-
- OpcodeF32ConvertI32S Opcode = 0xb2
- OpcodeF32ConvertI32U Opcode = 0xb3
- OpcodeF32ConvertI64S Opcode = 0xb4
- OpcodeF32ConvertI64U Opcode = 0xb5
- OpcodeF32DemoteF64 Opcode = 0xb6
-
- OpcodeF64ConvertI32S Opcode = 0xb7
- OpcodeF64ConvertI32U Opcode = 0xb8
- OpcodeF64ConvertI64S Opcode = 0xb9
- OpcodeF64ConvertI64U Opcode = 0xba
- OpcodeF64PromoteF32 Opcode = 0xbb
-
- OpcodeI32ReinterpretF32 Opcode = 0xbc
- OpcodeI64ReinterpretF64 Opcode = 0xbd
- OpcodeF32ReinterpretI32 Opcode = 0xbe
- OpcodeF64ReinterpretI64 Opcode = 0xbf
-
- // OpcodeRefNull pushes a null reference value whose type is specified by immediate to this opcode.
- // This is defined in the reference-types proposal, but necessary for CoreFeatureBulkMemoryOperations as well.
- //
- // Currently only supported in the constant expression in element segments.
- OpcodeRefNull = 0xd0
- // OpcodeRefIsNull pops a reference value, and pushes 1 if it is null, 0 otherwise.
- // This is defined in the reference-types proposal, but necessary for CoreFeatureBulkMemoryOperations as well.
- //
- // Currently not supported.
- OpcodeRefIsNull = 0xd1
- // OpcodeRefFunc pushes a funcref value whose index equals the immediate to this opcode.
- // This is defined in the reference-types proposal, but necessary for CoreFeatureBulkMemoryOperations as well.
- //
- // Currently, this is only supported in the constant expression in element segments.
- OpcodeRefFunc = 0xd2
-
- // Below are toggled with CoreFeatureSignExtensionOps
-
- // OpcodeI32Extend8S extends a signed 8-bit integer to a 32-bit integer.
- // Note: This is dependent on the flag CoreFeatureSignExtensionOps
- OpcodeI32Extend8S Opcode = 0xc0
-
- // OpcodeI32Extend16S extends a signed 16-bit integer to a 32-bit integer.
- // Note: This is dependent on the flag CoreFeatureSignExtensionOps
- OpcodeI32Extend16S Opcode = 0xc1
-
- // OpcodeI64Extend8S extends a signed 8-bit integer to a 64-bit integer.
- // Note: This is dependent on the flag CoreFeatureSignExtensionOps
- OpcodeI64Extend8S Opcode = 0xc2
-
- // OpcodeI64Extend16S extends a signed 16-bit integer to a 64-bit integer.
- // Note: This is dependent on the flag CoreFeatureSignExtensionOps
- OpcodeI64Extend16S Opcode = 0xc3
-
- // OpcodeI64Extend32S extends a signed 32-bit integer to a 64-bit integer.
- // Note: This is dependent on the flag CoreFeatureSignExtensionOps
- OpcodeI64Extend32S Opcode = 0xc4
-
- // OpcodeMiscPrefix is the prefix of various multi-byte opcodes.
- // Introduced in CoreFeatureNonTrappingFloatToIntConversion, but used in other
- // features, such as CoreFeatureBulkMemoryOperations.
- OpcodeMiscPrefix Opcode = 0xfc
-
- // OpcodeVecPrefix is the prefix of all vector isntructions introduced in
- // CoreFeatureSIMD.
- OpcodeVecPrefix Opcode = 0xfd
-
- // OpcodeAtomicPrefix is the prefix of all atomic instructions introduced in
- // CoreFeatureThreads.
- OpcodeAtomicPrefix Opcode = 0xfe
-)
-
-// OpcodeMisc represents opcodes of the miscellaneous operations.
-// Such an operations has multi-byte encoding which is prefixed by OpcodeMiscPrefix.
-type OpcodeMisc = byte
-
-const (
- // Below are toggled with CoreFeatureNonTrappingFloatToIntConversion.
- // https://github.com/WebAssembly/spec/blob/ce4b6c4d47eb06098cc7ab2e81f24748da822f20/proposals/nontrapping-float-to-int-conversion/Overview.md
-
- OpcodeMiscI32TruncSatF32S OpcodeMisc = 0x00
- OpcodeMiscI32TruncSatF32U OpcodeMisc = 0x01
- OpcodeMiscI32TruncSatF64S OpcodeMisc = 0x02
- OpcodeMiscI32TruncSatF64U OpcodeMisc = 0x03
- OpcodeMiscI64TruncSatF32S OpcodeMisc = 0x04
- OpcodeMiscI64TruncSatF32U OpcodeMisc = 0x05
- OpcodeMiscI64TruncSatF64S OpcodeMisc = 0x06
- OpcodeMiscI64TruncSatF64U OpcodeMisc = 0x07
-
- // Below are toggled with CoreFeatureBulkMemoryOperations.
- // Opcodes are those new in document/core/appendix/index-instructions.rst (the commit that merged the feature).
- // See https://github.com/WebAssembly/spec/commit/7fa2f20a6df4cf1c114582c8cb60f5bfcdbf1be1
- // See https://www.w3.org/TR/2022/WD-wasm-core-2-20220419/appendix/changes.html#bulk-memory-and-table-instructions
-
- OpcodeMiscMemoryInit OpcodeMisc = 0x08
- OpcodeMiscDataDrop OpcodeMisc = 0x09
- OpcodeMiscMemoryCopy OpcodeMisc = 0x0a
- OpcodeMiscMemoryFill OpcodeMisc = 0x0b
- OpcodeMiscTableInit OpcodeMisc = 0x0c
- OpcodeMiscElemDrop OpcodeMisc = 0x0d
- OpcodeMiscTableCopy OpcodeMisc = 0x0e
-
- // Below are toggled with CoreFeatureReferenceTypes
-
- OpcodeMiscTableGrow OpcodeMisc = 0x0f
- OpcodeMiscTableSize OpcodeMisc = 0x10
- OpcodeMiscTableFill OpcodeMisc = 0x11
-)
-
-// OpcodeVec represents an opcode of a vector instructions which has
-// multi-byte encoding and is prefixed by OpcodeMiscPrefix.
-//
-// These opcodes are toggled with CoreFeatureSIMD.
-type OpcodeVec = byte
-
-const (
- // Loads and stores.
-
- OpcodeVecV128Load OpcodeVec = 0x00
- OpcodeVecV128Load8x8s OpcodeVec = 0x01
- OpcodeVecV128Load8x8u OpcodeVec = 0x02
- OpcodeVecV128Load16x4s OpcodeVec = 0x03
- OpcodeVecV128Load16x4u OpcodeVec = 0x04
- OpcodeVecV128Load32x2s OpcodeVec = 0x05
- OpcodeVecV128Load32x2u OpcodeVec = 0x06
- OpcodeVecV128Load8Splat OpcodeVec = 0x07
- OpcodeVecV128Load16Splat OpcodeVec = 0x08
- OpcodeVecV128Load32Splat OpcodeVec = 0x09
- OpcodeVecV128Load64Splat OpcodeVec = 0x0a
-
- OpcodeVecV128Load32zero OpcodeVec = 0x5c
- OpcodeVecV128Load64zero OpcodeVec = 0x5d
-
- OpcodeVecV128Store OpcodeVec = 0x0b
- OpcodeVecV128Load8Lane OpcodeVec = 0x54
- OpcodeVecV128Load16Lane OpcodeVec = 0x55
- OpcodeVecV128Load32Lane OpcodeVec = 0x56
- OpcodeVecV128Load64Lane OpcodeVec = 0x57
- OpcodeVecV128Store8Lane OpcodeVec = 0x58
- OpcodeVecV128Store16Lane OpcodeVec = 0x59
- OpcodeVecV128Store32Lane OpcodeVec = 0x5a
- OpcodeVecV128Store64Lane OpcodeVec = 0x5b
-
- // OpcodeVecV128Const is the vector const instruction.
- OpcodeVecV128Const OpcodeVec = 0x0c
-
- // OpcodeVecV128i8x16Shuffle is the vector shuffle instruction.
- OpcodeVecV128i8x16Shuffle OpcodeVec = 0x0d
-
- // Extrac and replaces.
-
- OpcodeVecI8x16ExtractLaneS OpcodeVec = 0x15
- OpcodeVecI8x16ExtractLaneU OpcodeVec = 0x16
- OpcodeVecI8x16ReplaceLane OpcodeVec = 0x17
- OpcodeVecI16x8ExtractLaneS OpcodeVec = 0x18
- OpcodeVecI16x8ExtractLaneU OpcodeVec = 0x19
- OpcodeVecI16x8ReplaceLane OpcodeVec = 0x1a
- OpcodeVecI32x4ExtractLane OpcodeVec = 0x1b
- OpcodeVecI32x4ReplaceLane OpcodeVec = 0x1c
- OpcodeVecI64x2ExtractLane OpcodeVec = 0x1d
- OpcodeVecI64x2ReplaceLane OpcodeVec = 0x1e
- OpcodeVecF32x4ExtractLane OpcodeVec = 0x1f
- OpcodeVecF32x4ReplaceLane OpcodeVec = 0x20
- OpcodeVecF64x2ExtractLane OpcodeVec = 0x21
- OpcodeVecF64x2ReplaceLane OpcodeVec = 0x22
-
- // Splat and swizzle.
-
- OpcodeVecI8x16Swizzle OpcodeVec = 0x0e
- OpcodeVecI8x16Splat OpcodeVec = 0x0f
- OpcodeVecI16x8Splat OpcodeVec = 0x10
- OpcodeVecI32x4Splat OpcodeVec = 0x11
- OpcodeVecI64x2Splat OpcodeVec = 0x12
- OpcodeVecF32x4Splat OpcodeVec = 0x13
- OpcodeVecF64x2Splat OpcodeVec = 0x14
-
- // i8 comparisons.
-
- OpcodeVecI8x16Eq OpcodeVec = 0x23
- OpcodeVecI8x16Ne OpcodeVec = 0x24
- OpcodeVecI8x16LtS OpcodeVec = 0x25
- OpcodeVecI8x16LtU OpcodeVec = 0x26
- OpcodeVecI8x16GtS OpcodeVec = 0x27
- OpcodeVecI8x16GtU OpcodeVec = 0x28
- OpcodeVecI8x16LeS OpcodeVec = 0x29
- OpcodeVecI8x16LeU OpcodeVec = 0x2a
- OpcodeVecI8x16GeS OpcodeVec = 0x2b
- OpcodeVecI8x16GeU OpcodeVec = 0x2c
-
- // i16 comparisons.
-
- OpcodeVecI16x8Eq OpcodeVec = 0x2d
- OpcodeVecI16x8Ne OpcodeVec = 0x2e
- OpcodeVecI16x8LtS OpcodeVec = 0x2f
- OpcodeVecI16x8LtU OpcodeVec = 0x30
- OpcodeVecI16x8GtS OpcodeVec = 0x31
- OpcodeVecI16x8GtU OpcodeVec = 0x32
- OpcodeVecI16x8LeS OpcodeVec = 0x33
- OpcodeVecI16x8LeU OpcodeVec = 0x34
- OpcodeVecI16x8GeS OpcodeVec = 0x35
- OpcodeVecI16x8GeU OpcodeVec = 0x36
-
- // i32 comparisons.
-
- OpcodeVecI32x4Eq OpcodeVec = 0x37
- OpcodeVecI32x4Ne OpcodeVec = 0x38
- OpcodeVecI32x4LtS OpcodeVec = 0x39
- OpcodeVecI32x4LtU OpcodeVec = 0x3a
- OpcodeVecI32x4GtS OpcodeVec = 0x3b
- OpcodeVecI32x4GtU OpcodeVec = 0x3c
- OpcodeVecI32x4LeS OpcodeVec = 0x3d
- OpcodeVecI32x4LeU OpcodeVec = 0x3e
- OpcodeVecI32x4GeS OpcodeVec = 0x3f
- OpcodeVecI32x4GeU OpcodeVec = 0x40
-
- // i64 comparisons.
-
- OpcodeVecI64x2Eq OpcodeVec = 0xd6
- OpcodeVecI64x2Ne OpcodeVec = 0xd7
- OpcodeVecI64x2LtS OpcodeVec = 0xd8
- OpcodeVecI64x2GtS OpcodeVec = 0xd9
- OpcodeVecI64x2LeS OpcodeVec = 0xda
- OpcodeVecI64x2GeS OpcodeVec = 0xdb
-
- // f32 comparisons.
-
- OpcodeVecF32x4Eq OpcodeVec = 0x41
- OpcodeVecF32x4Ne OpcodeVec = 0x42
- OpcodeVecF32x4Lt OpcodeVec = 0x43
- OpcodeVecF32x4Gt OpcodeVec = 0x44
- OpcodeVecF32x4Le OpcodeVec = 0x45
- OpcodeVecF32x4Ge OpcodeVec = 0x46
-
- // f64 comparisons.
-
- OpcodeVecF64x2Eq OpcodeVec = 0x47
- OpcodeVecF64x2Ne OpcodeVec = 0x48
- OpcodeVecF64x2Lt OpcodeVec = 0x49
- OpcodeVecF64x2Gt OpcodeVec = 0x4a
- OpcodeVecF64x2Le OpcodeVec = 0x4b
- OpcodeVecF64x2Ge OpcodeVec = 0x4c
-
- // v128 logical instructions.
-
- OpcodeVecV128Not OpcodeVec = 0x4d
- OpcodeVecV128And OpcodeVec = 0x4e
- OpcodeVecV128AndNot OpcodeVec = 0x4f
- OpcodeVecV128Or OpcodeVec = 0x50
- OpcodeVecV128Xor OpcodeVec = 0x51
- OpcodeVecV128Bitselect OpcodeVec = 0x52
- OpcodeVecV128AnyTrue OpcodeVec = 0x53
-
- // i8 misc.
-
- OpcodeVecI8x16Abs OpcodeVec = 0x60
- OpcodeVecI8x16Neg OpcodeVec = 0x61
- OpcodeVecI8x16Popcnt OpcodeVec = 0x62
- OpcodeVecI8x16AllTrue OpcodeVec = 0x63
- OpcodeVecI8x16BitMask OpcodeVec = 0x64
- OpcodeVecI8x16NarrowI16x8S OpcodeVec = 0x65
- OpcodeVecI8x16NarrowI16x8U OpcodeVec = 0x66
-
- OpcodeVecI8x16Shl OpcodeVec = 0x6b
- OpcodeVecI8x16ShrS OpcodeVec = 0x6c
- OpcodeVecI8x16ShrU OpcodeVec = 0x6d
- OpcodeVecI8x16Add OpcodeVec = 0x6e
- OpcodeVecI8x16AddSatS OpcodeVec = 0x6f
-
- OpcodeVecI8x16AddSatU OpcodeVec = 0x70
- OpcodeVecI8x16Sub OpcodeVec = 0x71
- OpcodeVecI8x16SubSatS OpcodeVec = 0x72
- OpcodeVecI8x16SubSatU OpcodeVec = 0x73
- OpcodeVecI8x16MinS OpcodeVec = 0x76
- OpcodeVecI8x16MinU OpcodeVec = 0x77
- OpcodeVecI8x16MaxS OpcodeVec = 0x78
- OpcodeVecI8x16MaxU OpcodeVec = 0x79
- OpcodeVecI8x16AvgrU OpcodeVec = 0x7b
-
- // i16 misc.
-
- OpcodeVecI16x8ExtaddPairwiseI8x16S OpcodeVec = 0x7c
- OpcodeVecI16x8ExtaddPairwiseI8x16U OpcodeVec = 0x7d
- OpcodeVecI16x8Abs OpcodeVec = 0x80
- OpcodeVecI16x8Neg OpcodeVec = 0x81
- OpcodeVecI16x8Q15mulrSatS OpcodeVec = 0x82
- OpcodeVecI16x8AllTrue OpcodeVec = 0x83
- OpcodeVecI16x8BitMask OpcodeVec = 0x84
- OpcodeVecI16x8NarrowI32x4S OpcodeVec = 0x85
- OpcodeVecI16x8NarrowI32x4U OpcodeVec = 0x86
- OpcodeVecI16x8ExtendLowI8x16S OpcodeVec = 0x87
- OpcodeVecI16x8ExtendHighI8x16S OpcodeVec = 0x88
- OpcodeVecI16x8ExtendLowI8x16U OpcodeVec = 0x89
- OpcodeVecI16x8ExtendHighI8x16U OpcodeVec = 0x8a
- OpcodeVecI16x8Shl OpcodeVec = 0x8b
- OpcodeVecI16x8ShrS OpcodeVec = 0x8c
- OpcodeVecI16x8ShrU OpcodeVec = 0x8d
- OpcodeVecI16x8Add OpcodeVec = 0x8e
- OpcodeVecI16x8AddSatS OpcodeVec = 0x8f
- OpcodeVecI16x8AddSatU OpcodeVec = 0x90
- OpcodeVecI16x8Sub OpcodeVec = 0x91
- OpcodeVecI16x8SubSatS OpcodeVec = 0x92
- OpcodeVecI16x8SubSatU OpcodeVec = 0x93
- OpcodeVecI16x8Mul OpcodeVec = 0x95
- OpcodeVecI16x8MinS OpcodeVec = 0x96
- OpcodeVecI16x8MinU OpcodeVec = 0x97
- OpcodeVecI16x8MaxS OpcodeVec = 0x98
- OpcodeVecI16x8MaxU OpcodeVec = 0x99
- OpcodeVecI16x8AvgrU OpcodeVec = 0x9b
- OpcodeVecI16x8ExtMulLowI8x16S OpcodeVec = 0x9c
- OpcodeVecI16x8ExtMulHighI8x16S OpcodeVec = 0x9d
- OpcodeVecI16x8ExtMulLowI8x16U OpcodeVec = 0x9e
- OpcodeVecI16x8ExtMulHighI8x16U OpcodeVec = 0x9f
-
- // i32 misc.
-
- OpcodeVecI32x4ExtaddPairwiseI16x8S OpcodeVec = 0x7e
- OpcodeVecI32x4ExtaddPairwiseI16x8U OpcodeVec = 0x7f
- OpcodeVecI32x4Abs OpcodeVec = 0xa0
- OpcodeVecI32x4Neg OpcodeVec = 0xa1
- OpcodeVecI32x4AllTrue OpcodeVec = 0xa3
- OpcodeVecI32x4BitMask OpcodeVec = 0xa4
- OpcodeVecI32x4ExtendLowI16x8S OpcodeVec = 0xa7
- OpcodeVecI32x4ExtendHighI16x8S OpcodeVec = 0xa8
- OpcodeVecI32x4ExtendLowI16x8U OpcodeVec = 0xa9
- OpcodeVecI32x4ExtendHighI16x8U OpcodeVec = 0xaa
- OpcodeVecI32x4Shl OpcodeVec = 0xab
- OpcodeVecI32x4ShrS OpcodeVec = 0xac
- OpcodeVecI32x4ShrU OpcodeVec = 0xad
- OpcodeVecI32x4Add OpcodeVec = 0xae
- OpcodeVecI32x4Sub OpcodeVec = 0xb1
- OpcodeVecI32x4Mul OpcodeVec = 0xb5
- OpcodeVecI32x4MinS OpcodeVec = 0xb6
- OpcodeVecI32x4MinU OpcodeVec = 0xb7
- OpcodeVecI32x4MaxS OpcodeVec = 0xb8
- OpcodeVecI32x4MaxU OpcodeVec = 0xb9
- OpcodeVecI32x4DotI16x8S OpcodeVec = 0xba
- OpcodeVecI32x4ExtMulLowI16x8S OpcodeVec = 0xbc
- OpcodeVecI32x4ExtMulHighI16x8S OpcodeVec = 0xbd
- OpcodeVecI32x4ExtMulLowI16x8U OpcodeVec = 0xbe
- OpcodeVecI32x4ExtMulHighI16x8U OpcodeVec = 0xbf
-
- // i64 misc.
-
- OpcodeVecI64x2Abs OpcodeVec = 0xc0
- OpcodeVecI64x2Neg OpcodeVec = 0xc1
- OpcodeVecI64x2AllTrue OpcodeVec = 0xc3
- OpcodeVecI64x2BitMask OpcodeVec = 0xc4
- OpcodeVecI64x2ExtendLowI32x4S OpcodeVec = 0xc7
- OpcodeVecI64x2ExtendHighI32x4S OpcodeVec = 0xc8
- OpcodeVecI64x2ExtendLowI32x4U OpcodeVec = 0xc9
- OpcodeVecI64x2ExtendHighI32x4U OpcodeVec = 0xca
- OpcodeVecI64x2Shl OpcodeVec = 0xcb
- OpcodeVecI64x2ShrS OpcodeVec = 0xcc
- OpcodeVecI64x2ShrU OpcodeVec = 0xcd
- OpcodeVecI64x2Add OpcodeVec = 0xce
- OpcodeVecI64x2Sub OpcodeVec = 0xd1
- OpcodeVecI64x2Mul OpcodeVec = 0xd5
- OpcodeVecI64x2ExtMulLowI32x4S OpcodeVec = 0xdc
- OpcodeVecI64x2ExtMulHighI32x4S OpcodeVec = 0xdd
- OpcodeVecI64x2ExtMulLowI32x4U OpcodeVec = 0xde
- OpcodeVecI64x2ExtMulHighI32x4U OpcodeVec = 0xdf
-
- // f32 misc.
-
- OpcodeVecF32x4Ceil OpcodeVec = 0x67
- OpcodeVecF32x4Floor OpcodeVec = 0x68
- OpcodeVecF32x4Trunc OpcodeVec = 0x69
- OpcodeVecF32x4Nearest OpcodeVec = 0x6a
- OpcodeVecF32x4Abs OpcodeVec = 0xe0
- OpcodeVecF32x4Neg OpcodeVec = 0xe1
- OpcodeVecF32x4Sqrt OpcodeVec = 0xe3
- OpcodeVecF32x4Add OpcodeVec = 0xe4
- OpcodeVecF32x4Sub OpcodeVec = 0xe5
- OpcodeVecF32x4Mul OpcodeVec = 0xe6
- OpcodeVecF32x4Div OpcodeVec = 0xe7
- OpcodeVecF32x4Min OpcodeVec = 0xe8
- OpcodeVecF32x4Max OpcodeVec = 0xe9
- OpcodeVecF32x4Pmin OpcodeVec = 0xea
- OpcodeVecF32x4Pmax OpcodeVec = 0xeb
-
- // f64 misc.
-
- OpcodeVecF64x2Ceil OpcodeVec = 0x74
- OpcodeVecF64x2Floor OpcodeVec = 0x75
- OpcodeVecF64x2Trunc OpcodeVec = 0x7a
- OpcodeVecF64x2Nearest OpcodeVec = 0x94
- OpcodeVecF64x2Abs OpcodeVec = 0xec
- OpcodeVecF64x2Neg OpcodeVec = 0xed
- OpcodeVecF64x2Sqrt OpcodeVec = 0xef
- OpcodeVecF64x2Add OpcodeVec = 0xf0
- OpcodeVecF64x2Sub OpcodeVec = 0xf1
- OpcodeVecF64x2Mul OpcodeVec = 0xf2
- OpcodeVecF64x2Div OpcodeVec = 0xf3
- OpcodeVecF64x2Min OpcodeVec = 0xf4
- OpcodeVecF64x2Max OpcodeVec = 0xf5
- OpcodeVecF64x2Pmin OpcodeVec = 0xf6
- OpcodeVecF64x2Pmax OpcodeVec = 0xf7
-
- // conversions.
-
- OpcodeVecI32x4TruncSatF32x4S OpcodeVec = 0xf8
- OpcodeVecI32x4TruncSatF32x4U OpcodeVec = 0xf9
- OpcodeVecF32x4ConvertI32x4S OpcodeVec = 0xfa
- OpcodeVecF32x4ConvertI32x4U OpcodeVec = 0xfb
- OpcodeVecI32x4TruncSatF64x2SZero OpcodeVec = 0xfc
- OpcodeVecI32x4TruncSatF64x2UZero OpcodeVec = 0xfd
- OpcodeVecF64x2ConvertLowI32x4S OpcodeVec = 0xfe
- OpcodeVecF64x2ConvertLowI32x4U OpcodeVec = 0xff
- OpcodeVecF32x4DemoteF64x2Zero OpcodeVec = 0x5e
- OpcodeVecF64x2PromoteLowF32x4Zero OpcodeVec = 0x5f
-)
-
-// OpcodeAtomic represents an opcode of atomic instructions which has
-// multi-byte encoding and is prefixed by OpcodeAtomicPrefix.
-//
-// These opcodes are toggled with CoreFeaturesThreads.
-type OpcodeAtomic = byte
-
-const (
- // OpcodeAtomicMemoryNotify represents the instruction memory.atomic.notify.
- OpcodeAtomicMemoryNotify OpcodeAtomic = 0x00
- // OpcodeAtomicMemoryWait32 represents the instruction memory.atomic.wait32.
- OpcodeAtomicMemoryWait32 OpcodeAtomic = 0x01
- // OpcodeAtomicMemoryWait64 represents the instruction memory.atomic.wait64.
- OpcodeAtomicMemoryWait64 OpcodeAtomic = 0x02
- // OpcodeAtomicFence represents the instruction atomic.fence.
- OpcodeAtomicFence OpcodeAtomic = 0x03
-
- // OpcodeAtomicI32Load represents the instruction i32.atomic.load.
- OpcodeAtomicI32Load OpcodeAtomic = 0x10
- // OpcodeAtomicI64Load represents the instruction i64.atomic.load.
- OpcodeAtomicI64Load OpcodeAtomic = 0x11
- // OpcodeAtomicI32Load8U represents the instruction i32.atomic.load8_u.
- OpcodeAtomicI32Load8U OpcodeAtomic = 0x12
- // OpcodeAtomicI32Load16U represents the instruction i32.atomic.load16_u.
- OpcodeAtomicI32Load16U OpcodeAtomic = 0x13
- // OpcodeAtomicI64Load8U represents the instruction i64.atomic.load8_u.
- OpcodeAtomicI64Load8U OpcodeAtomic = 0x14
- // OpcodeAtomicI64Load16U represents the instruction i64.atomic.load16_u.
- OpcodeAtomicI64Load16U OpcodeAtomic = 0x15
- // OpcodeAtomicI64Load32U represents the instruction i64.atomic.load32_u.
- OpcodeAtomicI64Load32U OpcodeAtomic = 0x16
- // OpcodeAtomicI32Store represents the instruction i32.atomic.store.
- OpcodeAtomicI32Store OpcodeAtomic = 0x17
- // OpcodeAtomicI64Store represents the instruction i64.atomic.store.
- OpcodeAtomicI64Store OpcodeAtomic = 0x18
- // OpcodeAtomicI32Store8 represents the instruction i32.atomic.store8.
- OpcodeAtomicI32Store8 OpcodeAtomic = 0x19
- // OpcodeAtomicI32Store16 represents the instruction i32.atomic.store16.
- OpcodeAtomicI32Store16 OpcodeAtomic = 0x1a
- // OpcodeAtomicI64Store8 represents the instruction i64.atomic.store8.
- OpcodeAtomicI64Store8 OpcodeAtomic = 0x1b
- // OpcodeAtomicI64Store16 represents the instruction i64.atomic.store16.
- OpcodeAtomicI64Store16 OpcodeAtomic = 0x1c
- // OpcodeAtomicI64Store32 represents the instruction i64.atomic.store32.
- OpcodeAtomicI64Store32 OpcodeAtomic = 0x1d
-
- // OpcodeAtomicI32RmwAdd represents the instruction i32.atomic.rmw.add.
- OpcodeAtomicI32RmwAdd OpcodeAtomic = 0x1e
- // OpcodeAtomicI64RmwAdd represents the instruction i64.atomic.rmw.add.
- OpcodeAtomicI64RmwAdd OpcodeAtomic = 0x1f
- // OpcodeAtomicI32Rmw8AddU represents the instruction i32.atomic.rmw8.add_u.
- OpcodeAtomicI32Rmw8AddU OpcodeAtomic = 0x20
- // OpcodeAtomicI32Rmw16AddU represents the instruction i32.atomic.rmw16.add_u.
- OpcodeAtomicI32Rmw16AddU OpcodeAtomic = 0x21
- // OpcodeAtomicI64Rmw8AddU represents the instruction i64.atomic.rmw8.add_u.
- OpcodeAtomicI64Rmw8AddU OpcodeAtomic = 0x22
- // OpcodeAtomicI64Rmw16AddU represents the instruction i64.atomic.rmw16.add_u.
- OpcodeAtomicI64Rmw16AddU OpcodeAtomic = 0x23
- // OpcodeAtomicI64Rmw32AddU represents the instruction i64.atomic.rmw32.add_u.
- OpcodeAtomicI64Rmw32AddU OpcodeAtomic = 0x24
-
- // OpcodeAtomicI32RmwSub represents the instruction i32.atomic.rmw.sub.
- OpcodeAtomicI32RmwSub OpcodeAtomic = 0x25
- // OpcodeAtomicI64RmwSub represents the instruction i64.atomic.rmw.sub.
- OpcodeAtomicI64RmwSub OpcodeAtomic = 0x26
- // OpcodeAtomicI32Rmw8SubU represents the instruction i32.atomic.rmw8.sub_u.
- OpcodeAtomicI32Rmw8SubU OpcodeAtomic = 0x27
- // OpcodeAtomicI32Rmw16SubU represents the instruction i32.atomic.rmw16.sub_u.
- OpcodeAtomicI32Rmw16SubU OpcodeAtomic = 0x28
- // OpcodeAtomicI64Rmw8SubU represents the instruction i64.atomic.rmw8.sub_u.
- OpcodeAtomicI64Rmw8SubU OpcodeAtomic = 0x29
- // OpcodeAtomicI64Rmw16SubU represents the instruction i64.atomic.rmw16.sub_u.
- OpcodeAtomicI64Rmw16SubU OpcodeAtomic = 0x2a
- // OpcodeAtomicI64Rmw32SubU represents the instruction i64.atomic.rmw32.sub_u.
- OpcodeAtomicI64Rmw32SubU OpcodeAtomic = 0x2b
-
- // OpcodeAtomicI32RmwAnd represents the instruction i32.atomic.rmw.and.
- OpcodeAtomicI32RmwAnd OpcodeAtomic = 0x2c
- // OpcodeAtomicI64RmwAnd represents the instruction i64.atomic.rmw.and.
- OpcodeAtomicI64RmwAnd OpcodeAtomic = 0x2d
- // OpcodeAtomicI32Rmw8AndU represents the instruction i32.atomic.rmw8.and_u.
- OpcodeAtomicI32Rmw8AndU OpcodeAtomic = 0x2e
- // OpcodeAtomicI32Rmw16AndU represents the instruction i32.atomic.rmw16.and_u.
- OpcodeAtomicI32Rmw16AndU OpcodeAtomic = 0x2f
- // OpcodeAtomicI64Rmw8AndU represents the instruction i64.atomic.rmw8.and_u.
- OpcodeAtomicI64Rmw8AndU OpcodeAtomic = 0x30
- // OpcodeAtomicI64Rmw16AndU represents the instruction i64.atomic.rmw16.and_u.
- OpcodeAtomicI64Rmw16AndU OpcodeAtomic = 0x31
- // OpcodeAtomicI64Rmw32AndU represents the instruction i64.atomic.rmw32.and_u.
- OpcodeAtomicI64Rmw32AndU OpcodeAtomic = 0x32
-
- // OpcodeAtomicI32RmwOr represents the instruction i32.atomic.rmw.or.
- OpcodeAtomicI32RmwOr OpcodeAtomic = 0x33
- // OpcodeAtomicI64RmwOr represents the instruction i64.atomic.rmw.or.
- OpcodeAtomicI64RmwOr OpcodeAtomic = 0x34
- // OpcodeAtomicI32Rmw8OrU represents the instruction i32.atomic.rmw8.or_u.
- OpcodeAtomicI32Rmw8OrU OpcodeAtomic = 0x35
- // OpcodeAtomicI32Rmw16OrU represents the instruction i32.atomic.rmw16.or_u.
- OpcodeAtomicI32Rmw16OrU OpcodeAtomic = 0x36
- // OpcodeAtomicI64Rmw8OrU represents the instruction i64.atomic.rmw8.or_u.
- OpcodeAtomicI64Rmw8OrU OpcodeAtomic = 0x37
- // OpcodeAtomicI64Rmw16OrU represents the instruction i64.atomic.rmw16.or_u.
- OpcodeAtomicI64Rmw16OrU OpcodeAtomic = 0x38
- // OpcodeAtomicI64Rmw32OrU represents the instruction i64.atomic.rmw32.or_u.
- OpcodeAtomicI64Rmw32OrU OpcodeAtomic = 0x39
-
- // OpcodeAtomicI32RmwXor represents the instruction i32.atomic.rmw.xor.
- OpcodeAtomicI32RmwXor OpcodeAtomic = 0x3a
- // OpcodeAtomicI64RmwXor represents the instruction i64.atomic.rmw.xor.
- OpcodeAtomicI64RmwXor OpcodeAtomic = 0x3b
- // OpcodeAtomicI32Rmw8XorU represents the instruction i32.atomic.rmw8.xor_u.
- OpcodeAtomicI32Rmw8XorU OpcodeAtomic = 0x3c
- // OpcodeAtomicI32Rmw16XorU represents the instruction i32.atomic.rmw16.xor_u.
- OpcodeAtomicI32Rmw16XorU OpcodeAtomic = 0x3d
- // OpcodeAtomicI64Rmw8XorU represents the instruction i64.atomic.rmw8.xor_u.
- OpcodeAtomicI64Rmw8XorU OpcodeAtomic = 0x3e
- // OpcodeAtomicI64Rmw16XorU represents the instruction i64.atomic.rmw16.xor_u.
- OpcodeAtomicI64Rmw16XorU OpcodeAtomic = 0x3f
- // OpcodeAtomicI64Rmw32XorU represents the instruction i64.atomic.rmw32.xor_u.
- OpcodeAtomicI64Rmw32XorU OpcodeAtomic = 0x40
-
- // OpcodeAtomicI32RmwXchg represents the instruction i32.atomic.rmw.xchg.
- OpcodeAtomicI32RmwXchg OpcodeAtomic = 0x41
- // OpcodeAtomicI64RmwXchg represents the instruction i64.atomic.rmw.xchg.
- OpcodeAtomicI64RmwXchg OpcodeAtomic = 0x42
- // OpcodeAtomicI32Rmw8XchgU represents the instruction i32.atomic.rmw8.xchg_u.
- OpcodeAtomicI32Rmw8XchgU OpcodeAtomic = 0x43
- // OpcodeAtomicI32Rmw16XchgU represents the instruction i32.atomic.rmw16.xchg_u.
- OpcodeAtomicI32Rmw16XchgU OpcodeAtomic = 0x44
- // OpcodeAtomicI64Rmw8XchgU represents the instruction i64.atomic.rmw8.xchg_u.
- OpcodeAtomicI64Rmw8XchgU OpcodeAtomic = 0x45
- // OpcodeAtomicI64Rmw16XchgU represents the instruction i64.atomic.rmw16.xchg_u.
- OpcodeAtomicI64Rmw16XchgU OpcodeAtomic = 0x46
- // OpcodeAtomicI64Rmw32XchgU represents the instruction i64.atomic.rmw32.xchg_u.
- OpcodeAtomicI64Rmw32XchgU OpcodeAtomic = 0x47
-
- // OpcodeAtomicI32RmwCmpxchg represents the instruction i32.atomic.rmw.cmpxchg.
- OpcodeAtomicI32RmwCmpxchg OpcodeAtomic = 0x48
- // OpcodeAtomicI64RmwCmpxchg represents the instruction i64.atomic.rmw.cmpxchg.
- OpcodeAtomicI64RmwCmpxchg OpcodeAtomic = 0x49
- // OpcodeAtomicI32Rmw8CmpxchgU represents the instruction i32.atomic.rmw8.cmpxchg_u.
- OpcodeAtomicI32Rmw8CmpxchgU OpcodeAtomic = 0x4a
- // OpcodeAtomicI32Rmw16CmpxchgU represents the instruction i32.atomic.rmw16.cmpxchg_u.
- OpcodeAtomicI32Rmw16CmpxchgU OpcodeAtomic = 0x4b
- // OpcodeAtomicI64Rmw8CmpxchgU represents the instruction i64.atomic.rmw8.cmpxchg_u.
- OpcodeAtomicI64Rmw8CmpxchgU OpcodeAtomic = 0x4c
- // OpcodeAtomicI64Rmw16CmpxchgU represents the instruction i64.atomic.rmw16.cmpxchg_u.
- OpcodeAtomicI64Rmw16CmpxchgU OpcodeAtomic = 0x4d
- // OpcodeAtomicI64Rmw32CmpxchgU represents the instruction i64.atomic.rmw32.cmpxchg_u.
- OpcodeAtomicI64Rmw32CmpxchgU OpcodeAtomic = 0x4e
-)
-
-const (
- OpcodeUnreachableName = "unreachable"
- OpcodeNopName = "nop"
- OpcodeBlockName = "block"
- OpcodeLoopName = "loop"
- OpcodeIfName = "if"
- OpcodeElseName = "else"
- OpcodeEndName = "end"
- OpcodeBrName = "br"
- OpcodeBrIfName = "br_if"
- OpcodeBrTableName = "br_table"
- OpcodeReturnName = "return"
- OpcodeCallName = "call"
- OpcodeCallIndirectName = "call_indirect"
- OpcodeDropName = "drop"
- OpcodeSelectName = "select"
- OpcodeTypedSelectName = "typed_select"
- OpcodeLocalGetName = "local.get"
- OpcodeLocalSetName = "local.set"
- OpcodeLocalTeeName = "local.tee"
- OpcodeGlobalGetName = "global.get"
- OpcodeGlobalSetName = "global.set"
- OpcodeI32LoadName = "i32.load"
- OpcodeI64LoadName = "i64.load"
- OpcodeF32LoadName = "f32.load"
- OpcodeF64LoadName = "f64.load"
- OpcodeI32Load8SName = "i32.load8_s"
- OpcodeI32Load8UName = "i32.load8_u"
- OpcodeI32Load16SName = "i32.load16_s"
- OpcodeI32Load16UName = "i32.load16_u"
- OpcodeI64Load8SName = "i64.load8_s"
- OpcodeI64Load8UName = "i64.load8_u"
- OpcodeI64Load16SName = "i64.load16_s"
- OpcodeI64Load16UName = "i64.load16_u"
- OpcodeI64Load32SName = "i64.load32_s"
- OpcodeI64Load32UName = "i64.load32_u"
- OpcodeI32StoreName = "i32.store"
- OpcodeI64StoreName = "i64.store"
- OpcodeF32StoreName = "f32.store"
- OpcodeF64StoreName = "f64.store"
- OpcodeI32Store8Name = "i32.store8"
- OpcodeI32Store16Name = "i32.store16"
- OpcodeI64Store8Name = "i64.store8"
- OpcodeI64Store16Name = "i64.store16"
- OpcodeI64Store32Name = "i64.store32"
- OpcodeMemorySizeName = "memory.size"
- OpcodeMemoryGrowName = "memory.grow"
- OpcodeI32ConstName = "i32.const"
- OpcodeI64ConstName = "i64.const"
- OpcodeF32ConstName = "f32.const"
- OpcodeF64ConstName = "f64.const"
- OpcodeI32EqzName = "i32.eqz"
- OpcodeI32EqName = "i32.eq"
- OpcodeI32NeName = "i32.ne"
- OpcodeI32LtSName = "i32.lt_s"
- OpcodeI32LtUName = "i32.lt_u"
- OpcodeI32GtSName = "i32.gt_s"
- OpcodeI32GtUName = "i32.gt_u"
- OpcodeI32LeSName = "i32.le_s"
- OpcodeI32LeUName = "i32.le_u"
- OpcodeI32GeSName = "i32.ge_s"
- OpcodeI32GeUName = "i32.ge_u"
- OpcodeI64EqzName = "i64.eqz"
- OpcodeI64EqName = "i64.eq"
- OpcodeI64NeName = "i64.ne"
- OpcodeI64LtSName = "i64.lt_s"
- OpcodeI64LtUName = "i64.lt_u"
- OpcodeI64GtSName = "i64.gt_s"
- OpcodeI64GtUName = "i64.gt_u"
- OpcodeI64LeSName = "i64.le_s"
- OpcodeI64LeUName = "i64.le_u"
- OpcodeI64GeSName = "i64.ge_s"
- OpcodeI64GeUName = "i64.ge_u"
- OpcodeF32EqName = "f32.eq"
- OpcodeF32NeName = "f32.ne"
- OpcodeF32LtName = "f32.lt"
- OpcodeF32GtName = "f32.gt"
- OpcodeF32LeName = "f32.le"
- OpcodeF32GeName = "f32.ge"
- OpcodeF64EqName = "f64.eq"
- OpcodeF64NeName = "f64.ne"
- OpcodeF64LtName = "f64.lt"
- OpcodeF64GtName = "f64.gt"
- OpcodeF64LeName = "f64.le"
- OpcodeF64GeName = "f64.ge"
- OpcodeI32ClzName = "i32.clz"
- OpcodeI32CtzName = "i32.ctz"
- OpcodeI32PopcntName = "i32.popcnt"
- OpcodeI32AddName = "i32.add"
- OpcodeI32SubName = "i32.sub"
- OpcodeI32MulName = "i32.mul"
- OpcodeI32DivSName = "i32.div_s"
- OpcodeI32DivUName = "i32.div_u"
- OpcodeI32RemSName = "i32.rem_s"
- OpcodeI32RemUName = "i32.rem_u"
- OpcodeI32AndName = "i32.and"
- OpcodeI32OrName = "i32.or"
- OpcodeI32XorName = "i32.xor"
- OpcodeI32ShlName = "i32.shl"
- OpcodeI32ShrSName = "i32.shr_s"
- OpcodeI32ShrUName = "i32.shr_u"
- OpcodeI32RotlName = "i32.rotl"
- OpcodeI32RotrName = "i32.rotr"
- OpcodeI64ClzName = "i64.clz"
- OpcodeI64CtzName = "i64.ctz"
- OpcodeI64PopcntName = "i64.popcnt"
- OpcodeI64AddName = "i64.add"
- OpcodeI64SubName = "i64.sub"
- OpcodeI64MulName = "i64.mul"
- OpcodeI64DivSName = "i64.div_s"
- OpcodeI64DivUName = "i64.div_u"
- OpcodeI64RemSName = "i64.rem_s"
- OpcodeI64RemUName = "i64.rem_u"
- OpcodeI64AndName = "i64.and"
- OpcodeI64OrName = "i64.or"
- OpcodeI64XorName = "i64.xor"
- OpcodeI64ShlName = "i64.shl"
- OpcodeI64ShrSName = "i64.shr_s"
- OpcodeI64ShrUName = "i64.shr_u"
- OpcodeI64RotlName = "i64.rotl"
- OpcodeI64RotrName = "i64.rotr"
- OpcodeF32AbsName = "f32.abs"
- OpcodeF32NegName = "f32.neg"
- OpcodeF32CeilName = "f32.ceil"
- OpcodeF32FloorName = "f32.floor"
- OpcodeF32TruncName = "f32.trunc"
- OpcodeF32NearestName = "f32.nearest"
- OpcodeF32SqrtName = "f32.sqrt"
- OpcodeF32AddName = "f32.add"
- OpcodeF32SubName = "f32.sub"
- OpcodeF32MulName = "f32.mul"
- OpcodeF32DivName = "f32.div"
- OpcodeF32MinName = "f32.min"
- OpcodeF32MaxName = "f32.max"
- OpcodeF32CopysignName = "f32.copysign"
- OpcodeF64AbsName = "f64.abs"
- OpcodeF64NegName = "f64.neg"
- OpcodeF64CeilName = "f64.ceil"
- OpcodeF64FloorName = "f64.floor"
- OpcodeF64TruncName = "f64.trunc"
- OpcodeF64NearestName = "f64.nearest"
- OpcodeF64SqrtName = "f64.sqrt"
- OpcodeF64AddName = "f64.add"
- OpcodeF64SubName = "f64.sub"
- OpcodeF64MulName = "f64.mul"
- OpcodeF64DivName = "f64.div"
- OpcodeF64MinName = "f64.min"
- OpcodeF64MaxName = "f64.max"
- OpcodeF64CopysignName = "f64.copysign"
- OpcodeI32WrapI64Name = "i32.wrap_i64"
- OpcodeI32TruncF32SName = "i32.trunc_f32_s"
- OpcodeI32TruncF32UName = "i32.trunc_f32_u"
- OpcodeI32TruncF64SName = "i32.trunc_f64_s"
- OpcodeI32TruncF64UName = "i32.trunc_f64_u"
- OpcodeI64ExtendI32SName = "i64.extend_i32_s"
- OpcodeI64ExtendI32UName = "i64.extend_i32_u"
- OpcodeI64TruncF32SName = "i64.trunc_f32_s"
- OpcodeI64TruncF32UName = "i64.trunc_f32_u"
- OpcodeI64TruncF64SName = "i64.trunc_f64_s"
- OpcodeI64TruncF64UName = "i64.trunc_f64_u"
- OpcodeF32ConvertI32SName = "f32.convert_i32_s"
- OpcodeF32ConvertI32UName = "f32.convert_i32_u"
- OpcodeF32ConvertI64SName = "f32.convert_i64_s"
- OpcodeF32ConvertI64UName = "f32.convert_i64u"
- OpcodeF32DemoteF64Name = "f32.demote_f64"
- OpcodeF64ConvertI32SName = "f64.convert_i32_s"
- OpcodeF64ConvertI32UName = "f64.convert_i32_u"
- OpcodeF64ConvertI64SName = "f64.convert_i64_s"
- OpcodeF64ConvertI64UName = "f64.convert_i64_u"
- OpcodeF64PromoteF32Name = "f64.promote_f32"
- OpcodeI32ReinterpretF32Name = "i32.reinterpret_f32"
- OpcodeI64ReinterpretF64Name = "i64.reinterpret_f64"
- OpcodeF32ReinterpretI32Name = "f32.reinterpret_i32"
- OpcodeF64ReinterpretI64Name = "f64.reinterpret_i64"
-
- OpcodeRefNullName = "ref.null"
- OpcodeRefIsNullName = "ref.is_null"
- OpcodeRefFuncName = "ref.func"
-
- OpcodeTableGetName = "table.get"
- OpcodeTableSetName = "table.set"
-
- // Below are toggled with CoreFeatureSignExtensionOps
-
- OpcodeI32Extend8SName = "i32.extend8_s"
- OpcodeI32Extend16SName = "i32.extend16_s"
- OpcodeI64Extend8SName = "i64.extend8_s"
- OpcodeI64Extend16SName = "i64.extend16_s"
- OpcodeI64Extend32SName = "i64.extend32_s"
-
- OpcodeMiscPrefixName = "misc_prefix"
- OpcodeVecPrefixName = "vector_prefix"
- OpcodeAtomicPrefixName = "atomic_prefix"
-)
-
-var instructionNames = [256]string{
- OpcodeUnreachable: OpcodeUnreachableName,
- OpcodeNop: OpcodeNopName,
- OpcodeBlock: OpcodeBlockName,
- OpcodeLoop: OpcodeLoopName,
- OpcodeIf: OpcodeIfName,
- OpcodeElse: OpcodeElseName,
- OpcodeEnd: OpcodeEndName,
- OpcodeBr: OpcodeBrName,
- OpcodeBrIf: OpcodeBrIfName,
- OpcodeBrTable: OpcodeBrTableName,
- OpcodeReturn: OpcodeReturnName,
- OpcodeCall: OpcodeCallName,
- OpcodeCallIndirect: OpcodeCallIndirectName,
- OpcodeDrop: OpcodeDropName,
- OpcodeSelect: OpcodeSelectName,
- OpcodeTypedSelect: OpcodeTypedSelectName,
- OpcodeLocalGet: OpcodeLocalGetName,
- OpcodeLocalSet: OpcodeLocalSetName,
- OpcodeLocalTee: OpcodeLocalTeeName,
- OpcodeGlobalGet: OpcodeGlobalGetName,
- OpcodeGlobalSet: OpcodeGlobalSetName,
- OpcodeI32Load: OpcodeI32LoadName,
- OpcodeI64Load: OpcodeI64LoadName,
- OpcodeF32Load: OpcodeF32LoadName,
- OpcodeF64Load: OpcodeF64LoadName,
- OpcodeI32Load8S: OpcodeI32Load8SName,
- OpcodeI32Load8U: OpcodeI32Load8UName,
- OpcodeI32Load16S: OpcodeI32Load16SName,
- OpcodeI32Load16U: OpcodeI32Load16UName,
- OpcodeI64Load8S: OpcodeI64Load8SName,
- OpcodeI64Load8U: OpcodeI64Load8UName,
- OpcodeI64Load16S: OpcodeI64Load16SName,
- OpcodeI64Load16U: OpcodeI64Load16UName,
- OpcodeI64Load32S: OpcodeI64Load32SName,
- OpcodeI64Load32U: OpcodeI64Load32UName,
- OpcodeI32Store: OpcodeI32StoreName,
- OpcodeI64Store: OpcodeI64StoreName,
- OpcodeF32Store: OpcodeF32StoreName,
- OpcodeF64Store: OpcodeF64StoreName,
- OpcodeI32Store8: OpcodeI32Store8Name,
- OpcodeI32Store16: OpcodeI32Store16Name,
- OpcodeI64Store8: OpcodeI64Store8Name,
- OpcodeI64Store16: OpcodeI64Store16Name,
- OpcodeI64Store32: OpcodeI64Store32Name,
- OpcodeMemorySize: OpcodeMemorySizeName,
- OpcodeMemoryGrow: OpcodeMemoryGrowName,
- OpcodeI32Const: OpcodeI32ConstName,
- OpcodeI64Const: OpcodeI64ConstName,
- OpcodeF32Const: OpcodeF32ConstName,
- OpcodeF64Const: OpcodeF64ConstName,
- OpcodeI32Eqz: OpcodeI32EqzName,
- OpcodeI32Eq: OpcodeI32EqName,
- OpcodeI32Ne: OpcodeI32NeName,
- OpcodeI32LtS: OpcodeI32LtSName,
- OpcodeI32LtU: OpcodeI32LtUName,
- OpcodeI32GtS: OpcodeI32GtSName,
- OpcodeI32GtU: OpcodeI32GtUName,
- OpcodeI32LeS: OpcodeI32LeSName,
- OpcodeI32LeU: OpcodeI32LeUName,
- OpcodeI32GeS: OpcodeI32GeSName,
- OpcodeI32GeU: OpcodeI32GeUName,
- OpcodeI64Eqz: OpcodeI64EqzName,
- OpcodeI64Eq: OpcodeI64EqName,
- OpcodeI64Ne: OpcodeI64NeName,
- OpcodeI64LtS: OpcodeI64LtSName,
- OpcodeI64LtU: OpcodeI64LtUName,
- OpcodeI64GtS: OpcodeI64GtSName,
- OpcodeI64GtU: OpcodeI64GtUName,
- OpcodeI64LeS: OpcodeI64LeSName,
- OpcodeI64LeU: OpcodeI64LeUName,
- OpcodeI64GeS: OpcodeI64GeSName,
- OpcodeI64GeU: OpcodeI64GeUName,
- OpcodeF32Eq: OpcodeF32EqName,
- OpcodeF32Ne: OpcodeF32NeName,
- OpcodeF32Lt: OpcodeF32LtName,
- OpcodeF32Gt: OpcodeF32GtName,
- OpcodeF32Le: OpcodeF32LeName,
- OpcodeF32Ge: OpcodeF32GeName,
- OpcodeF64Eq: OpcodeF64EqName,
- OpcodeF64Ne: OpcodeF64NeName,
- OpcodeF64Lt: OpcodeF64LtName,
- OpcodeF64Gt: OpcodeF64GtName,
- OpcodeF64Le: OpcodeF64LeName,
- OpcodeF64Ge: OpcodeF64GeName,
- OpcodeI32Clz: OpcodeI32ClzName,
- OpcodeI32Ctz: OpcodeI32CtzName,
- OpcodeI32Popcnt: OpcodeI32PopcntName,
- OpcodeI32Add: OpcodeI32AddName,
- OpcodeI32Sub: OpcodeI32SubName,
- OpcodeI32Mul: OpcodeI32MulName,
- OpcodeI32DivS: OpcodeI32DivSName,
- OpcodeI32DivU: OpcodeI32DivUName,
- OpcodeI32RemS: OpcodeI32RemSName,
- OpcodeI32RemU: OpcodeI32RemUName,
- OpcodeI32And: OpcodeI32AndName,
- OpcodeI32Or: OpcodeI32OrName,
- OpcodeI32Xor: OpcodeI32XorName,
- OpcodeI32Shl: OpcodeI32ShlName,
- OpcodeI32ShrS: OpcodeI32ShrSName,
- OpcodeI32ShrU: OpcodeI32ShrUName,
- OpcodeI32Rotl: OpcodeI32RotlName,
- OpcodeI32Rotr: OpcodeI32RotrName,
- OpcodeI64Clz: OpcodeI64ClzName,
- OpcodeI64Ctz: OpcodeI64CtzName,
- OpcodeI64Popcnt: OpcodeI64PopcntName,
- OpcodeI64Add: OpcodeI64AddName,
- OpcodeI64Sub: OpcodeI64SubName,
- OpcodeI64Mul: OpcodeI64MulName,
- OpcodeI64DivS: OpcodeI64DivSName,
- OpcodeI64DivU: OpcodeI64DivUName,
- OpcodeI64RemS: OpcodeI64RemSName,
- OpcodeI64RemU: OpcodeI64RemUName,
- OpcodeI64And: OpcodeI64AndName,
- OpcodeI64Or: OpcodeI64OrName,
- OpcodeI64Xor: OpcodeI64XorName,
- OpcodeI64Shl: OpcodeI64ShlName,
- OpcodeI64ShrS: OpcodeI64ShrSName,
- OpcodeI64ShrU: OpcodeI64ShrUName,
- OpcodeI64Rotl: OpcodeI64RotlName,
- OpcodeI64Rotr: OpcodeI64RotrName,
- OpcodeF32Abs: OpcodeF32AbsName,
- OpcodeF32Neg: OpcodeF32NegName,
- OpcodeF32Ceil: OpcodeF32CeilName,
- OpcodeF32Floor: OpcodeF32FloorName,
- OpcodeF32Trunc: OpcodeF32TruncName,
- OpcodeF32Nearest: OpcodeF32NearestName,
- OpcodeF32Sqrt: OpcodeF32SqrtName,
- OpcodeF32Add: OpcodeF32AddName,
- OpcodeF32Sub: OpcodeF32SubName,
- OpcodeF32Mul: OpcodeF32MulName,
- OpcodeF32Div: OpcodeF32DivName,
- OpcodeF32Min: OpcodeF32MinName,
- OpcodeF32Max: OpcodeF32MaxName,
- OpcodeF32Copysign: OpcodeF32CopysignName,
- OpcodeF64Abs: OpcodeF64AbsName,
- OpcodeF64Neg: OpcodeF64NegName,
- OpcodeF64Ceil: OpcodeF64CeilName,
- OpcodeF64Floor: OpcodeF64FloorName,
- OpcodeF64Trunc: OpcodeF64TruncName,
- OpcodeF64Nearest: OpcodeF64NearestName,
- OpcodeF64Sqrt: OpcodeF64SqrtName,
- OpcodeF64Add: OpcodeF64AddName,
- OpcodeF64Sub: OpcodeF64SubName,
- OpcodeF64Mul: OpcodeF64MulName,
- OpcodeF64Div: OpcodeF64DivName,
- OpcodeF64Min: OpcodeF64MinName,
- OpcodeF64Max: OpcodeF64MaxName,
- OpcodeF64Copysign: OpcodeF64CopysignName,
- OpcodeI32WrapI64: OpcodeI32WrapI64Name,
- OpcodeI32TruncF32S: OpcodeI32TruncF32SName,
- OpcodeI32TruncF32U: OpcodeI32TruncF32UName,
- OpcodeI32TruncF64S: OpcodeI32TruncF64SName,
- OpcodeI32TruncF64U: OpcodeI32TruncF64UName,
- OpcodeI64ExtendI32S: OpcodeI64ExtendI32SName,
- OpcodeI64ExtendI32U: OpcodeI64ExtendI32UName,
- OpcodeI64TruncF32S: OpcodeI64TruncF32SName,
- OpcodeI64TruncF32U: OpcodeI64TruncF32UName,
- OpcodeI64TruncF64S: OpcodeI64TruncF64SName,
- OpcodeI64TruncF64U: OpcodeI64TruncF64UName,
- OpcodeF32ConvertI32S: OpcodeF32ConvertI32SName,
- OpcodeF32ConvertI32U: OpcodeF32ConvertI32UName,
- OpcodeF32ConvertI64S: OpcodeF32ConvertI64SName,
- OpcodeF32ConvertI64U: OpcodeF32ConvertI64UName,
- OpcodeF32DemoteF64: OpcodeF32DemoteF64Name,
- OpcodeF64ConvertI32S: OpcodeF64ConvertI32SName,
- OpcodeF64ConvertI32U: OpcodeF64ConvertI32UName,
- OpcodeF64ConvertI64S: OpcodeF64ConvertI64SName,
- OpcodeF64ConvertI64U: OpcodeF64ConvertI64UName,
- OpcodeF64PromoteF32: OpcodeF64PromoteF32Name,
- OpcodeI32ReinterpretF32: OpcodeI32ReinterpretF32Name,
- OpcodeI64ReinterpretF64: OpcodeI64ReinterpretF64Name,
- OpcodeF32ReinterpretI32: OpcodeF32ReinterpretI32Name,
- OpcodeF64ReinterpretI64: OpcodeF64ReinterpretI64Name,
-
- OpcodeRefNull: OpcodeRefNullName,
- OpcodeRefIsNull: OpcodeRefIsNullName,
- OpcodeRefFunc: OpcodeRefFuncName,
-
- OpcodeTableGet: OpcodeTableGetName,
- OpcodeTableSet: OpcodeTableSetName,
-
- // Below are toggled with CoreFeatureSignExtensionOps
-
- OpcodeI32Extend8S: OpcodeI32Extend8SName,
- OpcodeI32Extend16S: OpcodeI32Extend16SName,
- OpcodeI64Extend8S: OpcodeI64Extend8SName,
- OpcodeI64Extend16S: OpcodeI64Extend16SName,
- OpcodeI64Extend32S: OpcodeI64Extend32SName,
-
- OpcodeMiscPrefix: OpcodeMiscPrefixName,
- OpcodeVecPrefix: OpcodeVecPrefixName,
-}
-
-// InstructionName returns the instruction corresponding to this binary Opcode.
-// See https://www.w3.org/TR/2019/REC-wasm-core-1-20191205/#a7-index-of-instructions
-func InstructionName(oc Opcode) string {
- return instructionNames[oc]
-}
-
-const (
- OpcodeI32TruncSatF32SName = "i32.trunc_sat_f32_s"
- OpcodeI32TruncSatF32UName = "i32.trunc_sat_f32_u"
- OpcodeI32TruncSatF64SName = "i32.trunc_sat_f64_s"
- OpcodeI32TruncSatF64UName = "i32.trunc_sat_f64_u"
- OpcodeI64TruncSatF32SName = "i64.trunc_sat_f32_s"
- OpcodeI64TruncSatF32UName = "i64.trunc_sat_f32_u"
- OpcodeI64TruncSatF64SName = "i64.trunc_sat_f64_s"
- OpcodeI64TruncSatF64UName = "i64.trunc_sat_f64_u"
-
- OpcodeMemoryInitName = "memory.init"
- OpcodeDataDropName = "data.drop"
- OpcodeMemoryCopyName = "memory.copy"
- OpcodeMemoryFillName = "memory.fill"
- OpcodeTableInitName = "table.init"
- OpcodeElemDropName = "elem.drop"
- OpcodeTableCopyName = "table.copy"
- OpcodeTableGrowName = "table.grow"
- OpcodeTableSizeName = "table.size"
- OpcodeTableFillName = "table.fill"
-)
-
-var miscInstructionNames = [256]string{
- OpcodeMiscI32TruncSatF32S: OpcodeI32TruncSatF32SName,
- OpcodeMiscI32TruncSatF32U: OpcodeI32TruncSatF32UName,
- OpcodeMiscI32TruncSatF64S: OpcodeI32TruncSatF64SName,
- OpcodeMiscI32TruncSatF64U: OpcodeI32TruncSatF64UName,
- OpcodeMiscI64TruncSatF32S: OpcodeI64TruncSatF32SName,
- OpcodeMiscI64TruncSatF32U: OpcodeI64TruncSatF32UName,
- OpcodeMiscI64TruncSatF64S: OpcodeI64TruncSatF64SName,
- OpcodeMiscI64TruncSatF64U: OpcodeI64TruncSatF64UName,
-
- OpcodeMiscMemoryInit: OpcodeMemoryInitName,
- OpcodeMiscDataDrop: OpcodeDataDropName,
- OpcodeMiscMemoryCopy: OpcodeMemoryCopyName,
- OpcodeMiscMemoryFill: OpcodeMemoryFillName,
- OpcodeMiscTableInit: OpcodeTableInitName,
- OpcodeMiscElemDrop: OpcodeElemDropName,
- OpcodeMiscTableCopy: OpcodeTableCopyName,
- OpcodeMiscTableGrow: OpcodeTableGrowName,
- OpcodeMiscTableSize: OpcodeTableSizeName,
- OpcodeMiscTableFill: OpcodeTableFillName,
-}
-
-// MiscInstructionName returns the instruction corresponding to this miscellaneous Opcode.
-func MiscInstructionName(oc OpcodeMisc) string {
- return miscInstructionNames[oc]
-}
-
-const (
- OpcodeVecV128LoadName = "v128.load"
- OpcodeVecV128Load8x8SName = "v128.load8x8_s"
- OpcodeVecV128Load8x8UName = "v128.load8x8_u"
- OpcodeVecV128Load16x4SName = "v128.load16x4_s"
- OpcodeVecV128Load16x4UName = "v128.load16x4_u"
- OpcodeVecV128Load32x2SName = "v128.load32x2_s"
- OpcodeVecV128Load32x2UName = "v128.load32x2_u"
- OpcodeVecV128Load8SplatName = "v128.load8_splat"
- OpcodeVecV128Load16SplatName = "v128.load16_splat"
- OpcodeVecV128Load32SplatName = "v128.load32_splat"
- OpcodeVecV128Load64SplatName = "v128.load64_splat"
- OpcodeVecV128Load32zeroName = "v128.load32_zero"
- OpcodeVecV128Load64zeroName = "v128.load64_zero"
- OpcodeVecV128StoreName = "v128.store"
- OpcodeVecV128Load8LaneName = "v128.load8_lane"
- OpcodeVecV128Load16LaneName = "v128.load16_lane"
- OpcodeVecV128Load32LaneName = "v128.load32_lane"
- OpcodeVecV128Load64LaneName = "v128.load64_lane"
- OpcodeVecV128Store8LaneName = "v128.store8_lane"
- OpcodeVecV128Store16LaneName = "v128.store16_lane"
- OpcodeVecV128Store32LaneName = "v128.store32_lane"
- OpcodeVecV128Store64LaneName = "v128.store64_lane"
- OpcodeVecV128ConstName = "v128.const"
- OpcodeVecV128i8x16ShuffleName = "v128.shuffle"
- OpcodeVecI8x16ExtractLaneSName = "i8x16.extract_lane_s"
- OpcodeVecI8x16ExtractLaneUName = "i8x16.extract_lane_u"
- OpcodeVecI8x16ReplaceLaneName = "i8x16.replace_lane"
- OpcodeVecI16x8ExtractLaneSName = "i16x8.extract_lane_s"
- OpcodeVecI16x8ExtractLaneUName = "i16x8.extract_lane_u"
- OpcodeVecI16x8ReplaceLaneName = "i16x8.replace_lane"
- OpcodeVecI32x4ExtractLaneName = "i32x4.extract_lane"
- OpcodeVecI32x4ReplaceLaneName = "i32x4.replace_lane"
- OpcodeVecI64x2ExtractLaneName = "i64x2.extract_lane"
- OpcodeVecI64x2ReplaceLaneName = "i64x2.replace_lane"
- OpcodeVecF32x4ExtractLaneName = "f32x4.extract_lane"
- OpcodeVecF32x4ReplaceLaneName = "f32x4.replace_lane"
- OpcodeVecF64x2ExtractLaneName = "f64x2.extract_lane"
- OpcodeVecF64x2ReplaceLaneName = "f64x2.replace_lane"
- OpcodeVecI8x16SwizzleName = "i8x16.swizzle"
- OpcodeVecI8x16SplatName = "i8x16.splat"
- OpcodeVecI16x8SplatName = "i16x8.splat"
- OpcodeVecI32x4SplatName = "i32x4.splat"
- OpcodeVecI64x2SplatName = "i64x2.splat"
- OpcodeVecF32x4SplatName = "f32x4.splat"
- OpcodeVecF64x2SplatName = "f64x2.splat"
- OpcodeVecI8x16EqName = "i8x16.eq"
- OpcodeVecI8x16NeName = "i8x16.ne"
- OpcodeVecI8x16LtSName = "i8x16.lt_s"
- OpcodeVecI8x16LtUName = "i8x16.lt_u"
- OpcodeVecI8x16GtSName = "i8x16.gt_s"
- OpcodeVecI8x16GtUName = "i8x16.gt_u"
- OpcodeVecI8x16LeSName = "i8x16.le_s"
- OpcodeVecI8x16LeUName = "i8x16.le_u"
- OpcodeVecI8x16GeSName = "i8x16.ge_s"
- OpcodeVecI8x16GeUName = "i8x16.ge_u"
- OpcodeVecI16x8EqName = "i16x8.eq"
- OpcodeVecI16x8NeName = "i16x8.ne"
- OpcodeVecI16x8LtSName = "i16x8.lt_s"
- OpcodeVecI16x8LtUName = "i16x8.lt_u"
- OpcodeVecI16x8GtSName = "i16x8.gt_s"
- OpcodeVecI16x8GtUName = "i16x8.gt_u"
- OpcodeVecI16x8LeSName = "i16x8.le_s"
- OpcodeVecI16x8LeUName = "i16x8.le_u"
- OpcodeVecI16x8GeSName = "i16x8.ge_s"
- OpcodeVecI16x8GeUName = "i16x8.ge_u"
- OpcodeVecI32x4EqName = "i32x4.eq"
- OpcodeVecI32x4NeName = "i32x4.ne"
- OpcodeVecI32x4LtSName = "i32x4.lt_s"
- OpcodeVecI32x4LtUName = "i32x4.lt_u"
- OpcodeVecI32x4GtSName = "i32x4.gt_s"
- OpcodeVecI32x4GtUName = "i32x4.gt_u"
- OpcodeVecI32x4LeSName = "i32x4.le_s"
- OpcodeVecI32x4LeUName = "i32x4.le_u"
- OpcodeVecI32x4GeSName = "i32x4.ge_s"
- OpcodeVecI32x4GeUName = "i32x4.ge_u"
- OpcodeVecI64x2EqName = "i64x2.eq"
- OpcodeVecI64x2NeName = "i64x2.ne"
- OpcodeVecI64x2LtSName = "i64x2.lt"
- OpcodeVecI64x2GtSName = "i64x2.gt"
- OpcodeVecI64x2LeSName = "i64x2.le"
- OpcodeVecI64x2GeSName = "i64x2.ge"
- OpcodeVecF32x4EqName = "f32x4.eq"
- OpcodeVecF32x4NeName = "f32x4.ne"
- OpcodeVecF32x4LtName = "f32x4.lt"
- OpcodeVecF32x4GtName = "f32x4.gt"
- OpcodeVecF32x4LeName = "f32x4.le"
- OpcodeVecF32x4GeName = "f32x4.ge"
- OpcodeVecF64x2EqName = "f64x2.eq"
- OpcodeVecF64x2NeName = "f64x2.ne"
- OpcodeVecF64x2LtName = "f64x2.lt"
- OpcodeVecF64x2GtName = "f64x2.gt"
- OpcodeVecF64x2LeName = "f64x2.le"
- OpcodeVecF64x2GeName = "f64x2.ge"
- OpcodeVecV128NotName = "v128.not"
- OpcodeVecV128AndName = "v128.and"
- OpcodeVecV128AndNotName = "v128.andnot"
- OpcodeVecV128OrName = "v128.or"
- OpcodeVecV128XorName = "v128.xor"
- OpcodeVecV128BitselectName = "v128.bitselect"
- OpcodeVecV128AnyTrueName = "v128.any_true"
- OpcodeVecI8x16AbsName = "i8x16.abs"
- OpcodeVecI8x16NegName = "i8x16.neg"
- OpcodeVecI8x16PopcntName = "i8x16.popcnt"
- OpcodeVecI8x16AllTrueName = "i8x16.all_true"
- OpcodeVecI8x16BitMaskName = "i8x16.bitmask"
- OpcodeVecI8x16NarrowI16x8SName = "i8x16.narrow_i16x8_s"
- OpcodeVecI8x16NarrowI16x8UName = "i8x16.narrow_i16x8_u"
- OpcodeVecI8x16ShlName = "i8x16.shl"
- OpcodeVecI8x16ShrSName = "i8x16.shr_s"
- OpcodeVecI8x16ShrUName = "i8x16.shr_u"
- OpcodeVecI8x16AddName = "i8x16.add"
- OpcodeVecI8x16AddSatSName = "i8x16.add_sat_s"
- OpcodeVecI8x16AddSatUName = "i8x16.add_sat_u"
- OpcodeVecI8x16SubName = "i8x16.sub"
- OpcodeVecI8x16SubSatSName = "i8x16.sub_s"
- OpcodeVecI8x16SubSatUName = "i8x16.sub_u"
- OpcodeVecI8x16MinSName = "i8x16.min_s"
- OpcodeVecI8x16MinUName = "i8x16.min_u"
- OpcodeVecI8x16MaxSName = "i8x16.max_s"
- OpcodeVecI8x16MaxUName = "i8x16.max_u"
- OpcodeVecI8x16AvgrUName = "i8x16.avgr_u"
- OpcodeVecI16x8ExtaddPairwiseI8x16SName = "i16x8.extadd_pairwise_i8x16_s"
- OpcodeVecI16x8ExtaddPairwiseI8x16UName = "i16x8.extadd_pairwise_i8x16_u"
- OpcodeVecI16x8AbsName = "i16x8.abs"
- OpcodeVecI16x8NegName = "i16x8.neg"
- OpcodeVecI16x8Q15mulrSatSName = "i16x8.q15mulr_sat_s"
- OpcodeVecI16x8AllTrueName = "i16x8.all_true"
- OpcodeVecI16x8BitMaskName = "i16x8.bitmask"
- OpcodeVecI16x8NarrowI32x4SName = "i16x8.narrow_i32x4_s"
- OpcodeVecI16x8NarrowI32x4UName = "i16x8.narrow_i32x4_u"
- OpcodeVecI16x8ExtendLowI8x16SName = "i16x8.extend_low_i8x16_s"
- OpcodeVecI16x8ExtendHighI8x16SName = "i16x8.extend_high_i8x16_s"
- OpcodeVecI16x8ExtendLowI8x16UName = "i16x8.extend_low_i8x16_u"
- OpcodeVecI16x8ExtendHighI8x16UName = "i16x8.extend_high_i8x16_u"
- OpcodeVecI16x8ShlName = "i16x8.shl"
- OpcodeVecI16x8ShrSName = "i16x8.shr_s"
- OpcodeVecI16x8ShrUName = "i16x8.shr_u"
- OpcodeVecI16x8AddName = "i16x8.add"
- OpcodeVecI16x8AddSatSName = "i16x8.add_sat_s"
- OpcodeVecI16x8AddSatUName = "i16x8.add_sat_u"
- OpcodeVecI16x8SubName = "i16x8.sub"
- OpcodeVecI16x8SubSatSName = "i16x8.sub_sat_s"
- OpcodeVecI16x8SubSatUName = "i16x8.sub_sat_u"
- OpcodeVecI16x8MulName = "i16x8.mul"
- OpcodeVecI16x8MinSName = "i16x8.min_s"
- OpcodeVecI16x8MinUName = "i16x8.min_u"
- OpcodeVecI16x8MaxSName = "i16x8.max_s"
- OpcodeVecI16x8MaxUName = "i16x8.max_u"
- OpcodeVecI16x8AvgrUName = "i16x8.avgr_u"
- OpcodeVecI16x8ExtMulLowI8x16SName = "i16x8.extmul_low_i8x16_s"
- OpcodeVecI16x8ExtMulHighI8x16SName = "i16x8.extmul_high_i8x16_s"
- OpcodeVecI16x8ExtMulLowI8x16UName = "i16x8.extmul_low_i8x16_u"
- OpcodeVecI16x8ExtMulHighI8x16UName = "i16x8.extmul_high_i8x16_u"
- OpcodeVecI32x4ExtaddPairwiseI16x8SName = "i32x4.extadd_pairwise_i16x8_s"
- OpcodeVecI32x4ExtaddPairwiseI16x8UName = "i32x4.extadd_pairwise_i16x8_u"
- OpcodeVecI32x4AbsName = "i32x4.abs"
- OpcodeVecI32x4NegName = "i32x4.neg"
- OpcodeVecI32x4AllTrueName = "i32x4.all_true"
- OpcodeVecI32x4BitMaskName = "i32x4.bitmask"
- OpcodeVecI32x4ExtendLowI16x8SName = "i32x4.extend_low_i16x8_s"
- OpcodeVecI32x4ExtendHighI16x8SName = "i32x4.extend_high_i16x8_s"
- OpcodeVecI32x4ExtendLowI16x8UName = "i32x4.extend_low_i16x8_u"
- OpcodeVecI32x4ExtendHighI16x8UName = "i32x4.extend_high_i16x8_u"
- OpcodeVecI32x4ShlName = "i32x4.shl"
- OpcodeVecI32x4ShrSName = "i32x4.shr_s"
- OpcodeVecI32x4ShrUName = "i32x4.shr_u"
- OpcodeVecI32x4AddName = "i32x4.add"
- OpcodeVecI32x4SubName = "i32x4.sub"
- OpcodeVecI32x4MulName = "i32x4.mul"
- OpcodeVecI32x4MinSName = "i32x4.min_s"
- OpcodeVecI32x4MinUName = "i32x4.min_u"
- OpcodeVecI32x4MaxSName = "i32x4.max_s"
- OpcodeVecI32x4MaxUName = "i32x4.max_u"
- OpcodeVecI32x4DotI16x8SName = "i32x4.dot_i16x8_s"
- OpcodeVecI32x4ExtMulLowI16x8SName = "i32x4.extmul_low_i16x8_s"
- OpcodeVecI32x4ExtMulHighI16x8SName = "i32x4.extmul_high_i16x8_s"
- OpcodeVecI32x4ExtMulLowI16x8UName = "i32x4.extmul_low_i16x8_u"
- OpcodeVecI32x4ExtMulHighI16x8UName = "i32x4.extmul_high_i16x8_u"
- OpcodeVecI64x2AbsName = "i64x2.abs"
- OpcodeVecI64x2NegName = "i64x2.neg"
- OpcodeVecI64x2AllTrueName = "i64x2.all_true"
- OpcodeVecI64x2BitMaskName = "i64x2.bitmask"
- OpcodeVecI64x2ExtendLowI32x4SName = "i64x2.extend_low_i32x4_s"
- OpcodeVecI64x2ExtendHighI32x4SName = "i64x2.extend_high_i32x4_s"
- OpcodeVecI64x2ExtendLowI32x4UName = "i64x2.extend_low_i32x4_u"
- OpcodeVecI64x2ExtendHighI32x4UName = "i64x2.extend_high_i32x4_u"
- OpcodeVecI64x2ShlName = "i64x2.shl"
- OpcodeVecI64x2ShrSName = "i64x2.shr_s"
- OpcodeVecI64x2ShrUName = "i64x2.shr_u"
- OpcodeVecI64x2AddName = "i64x2.add"
- OpcodeVecI64x2SubName = "i64x2.sub"
- OpcodeVecI64x2MulName = "i64x2.mul"
- OpcodeVecI64x2ExtMulLowI32x4SName = "i64x2.extmul_low_i32x4_s"
- OpcodeVecI64x2ExtMulHighI32x4SName = "i64x2.extmul_high_i32x4_s"
- OpcodeVecI64x2ExtMulLowI32x4UName = "i64x2.extmul_low_i32x4_u"
- OpcodeVecI64x2ExtMulHighI32x4UName = "i64x2.extmul_high_i32x4_u"
- OpcodeVecF32x4CeilName = "f32x4.ceil"
- OpcodeVecF32x4FloorName = "f32x4.floor"
- OpcodeVecF32x4TruncName = "f32x4.trunc"
- OpcodeVecF32x4NearestName = "f32x4.nearest"
- OpcodeVecF32x4AbsName = "f32x4.abs"
- OpcodeVecF32x4NegName = "f32x4.neg"
- OpcodeVecF32x4SqrtName = "f32x4.sqrt"
- OpcodeVecF32x4AddName = "f32x4.add"
- OpcodeVecF32x4SubName = "f32x4.sub"
- OpcodeVecF32x4MulName = "f32x4.mul"
- OpcodeVecF32x4DivName = "f32x4.div"
- OpcodeVecF32x4MinName = "f32x4.min"
- OpcodeVecF32x4MaxName = "f32x4.max"
- OpcodeVecF32x4PminName = "f32x4.pmin"
- OpcodeVecF32x4PmaxName = "f32x4.pmax"
- OpcodeVecF64x2CeilName = "f64x2.ceil"
- OpcodeVecF64x2FloorName = "f64x2.floor"
- OpcodeVecF64x2TruncName = "f64x2.trunc"
- OpcodeVecF64x2NearestName = "f64x2.nearest"
- OpcodeVecF64x2AbsName = "f64x2.abs"
- OpcodeVecF64x2NegName = "f64x2.neg"
- OpcodeVecF64x2SqrtName = "f64x2.sqrt"
- OpcodeVecF64x2AddName = "f64x2.add"
- OpcodeVecF64x2SubName = "f64x2.sub"
- OpcodeVecF64x2MulName = "f64x2.mul"
- OpcodeVecF64x2DivName = "f64x2.div"
- OpcodeVecF64x2MinName = "f64x2.min"
- OpcodeVecF64x2MaxName = "f64x2.max"
- OpcodeVecF64x2PminName = "f64x2.pmin"
- OpcodeVecF64x2PmaxName = "f64x2.pmax"
- OpcodeVecI32x4TruncSatF32x4SName = "i32x4.trunc_sat_f32x4_s"
- OpcodeVecI32x4TruncSatF32x4UName = "i32x4.trunc_sat_f32x4_u"
- OpcodeVecF32x4ConvertI32x4SName = "f32x4.convert_i32x4_s"
- OpcodeVecF32x4ConvertI32x4UName = "f32x4.convert_i32x4_u"
- OpcodeVecI32x4TruncSatF64x2SZeroName = "i32x4.trunc_sat_f64x2_s_zero"
- OpcodeVecI32x4TruncSatF64x2UZeroName = "i32x4.trunc_sat_f64x2_u_zero"
- OpcodeVecF64x2ConvertLowI32x4SName = "f64x2.convert_low_i32x4_s"
- OpcodeVecF64x2ConvertLowI32x4UName = "f64x2.convert_low_i32x4_u"
- OpcodeVecF32x4DemoteF64x2ZeroName = "f32x4.demote_f64x2_zero"
- OpcodeVecF64x2PromoteLowF32x4ZeroName = "f64x2.promote_low_f32x4"
-)
-
-var vectorInstructionName = map[OpcodeVec]string{
- OpcodeVecV128Load: OpcodeVecV128LoadName,
- OpcodeVecV128Load8x8s: OpcodeVecV128Load8x8SName,
- OpcodeVecV128Load8x8u: OpcodeVecV128Load8x8UName,
- OpcodeVecV128Load16x4s: OpcodeVecV128Load16x4SName,
- OpcodeVecV128Load16x4u: OpcodeVecV128Load16x4UName,
- OpcodeVecV128Load32x2s: OpcodeVecV128Load32x2SName,
- OpcodeVecV128Load32x2u: OpcodeVecV128Load32x2UName,
- OpcodeVecV128Load8Splat: OpcodeVecV128Load8SplatName,
- OpcodeVecV128Load16Splat: OpcodeVecV128Load16SplatName,
- OpcodeVecV128Load32Splat: OpcodeVecV128Load32SplatName,
- OpcodeVecV128Load64Splat: OpcodeVecV128Load64SplatName,
- OpcodeVecV128Load32zero: OpcodeVecV128Load32zeroName,
- OpcodeVecV128Load64zero: OpcodeVecV128Load64zeroName,
- OpcodeVecV128Store: OpcodeVecV128StoreName,
- OpcodeVecV128Load8Lane: OpcodeVecV128Load8LaneName,
- OpcodeVecV128Load16Lane: OpcodeVecV128Load16LaneName,
- OpcodeVecV128Load32Lane: OpcodeVecV128Load32LaneName,
- OpcodeVecV128Load64Lane: OpcodeVecV128Load64LaneName,
- OpcodeVecV128Store8Lane: OpcodeVecV128Store8LaneName,
- OpcodeVecV128Store16Lane: OpcodeVecV128Store16LaneName,
- OpcodeVecV128Store32Lane: OpcodeVecV128Store32LaneName,
- OpcodeVecV128Store64Lane: OpcodeVecV128Store64LaneName,
- OpcodeVecV128Const: OpcodeVecV128ConstName,
- OpcodeVecV128i8x16Shuffle: OpcodeVecV128i8x16ShuffleName,
- OpcodeVecI8x16ExtractLaneS: OpcodeVecI8x16ExtractLaneSName,
- OpcodeVecI8x16ExtractLaneU: OpcodeVecI8x16ExtractLaneUName,
- OpcodeVecI8x16ReplaceLane: OpcodeVecI8x16ReplaceLaneName,
- OpcodeVecI16x8ExtractLaneS: OpcodeVecI16x8ExtractLaneSName,
- OpcodeVecI16x8ExtractLaneU: OpcodeVecI16x8ExtractLaneUName,
- OpcodeVecI16x8ReplaceLane: OpcodeVecI16x8ReplaceLaneName,
- OpcodeVecI32x4ExtractLane: OpcodeVecI32x4ExtractLaneName,
- OpcodeVecI32x4ReplaceLane: OpcodeVecI32x4ReplaceLaneName,
- OpcodeVecI64x2ExtractLane: OpcodeVecI64x2ExtractLaneName,
- OpcodeVecI64x2ReplaceLane: OpcodeVecI64x2ReplaceLaneName,
- OpcodeVecF32x4ExtractLane: OpcodeVecF32x4ExtractLaneName,
- OpcodeVecF32x4ReplaceLane: OpcodeVecF32x4ReplaceLaneName,
- OpcodeVecF64x2ExtractLane: OpcodeVecF64x2ExtractLaneName,
- OpcodeVecF64x2ReplaceLane: OpcodeVecF64x2ReplaceLaneName,
- OpcodeVecI8x16Swizzle: OpcodeVecI8x16SwizzleName,
- OpcodeVecI8x16Splat: OpcodeVecI8x16SplatName,
- OpcodeVecI16x8Splat: OpcodeVecI16x8SplatName,
- OpcodeVecI32x4Splat: OpcodeVecI32x4SplatName,
- OpcodeVecI64x2Splat: OpcodeVecI64x2SplatName,
- OpcodeVecF32x4Splat: OpcodeVecF32x4SplatName,
- OpcodeVecF64x2Splat: OpcodeVecF64x2SplatName,
- OpcodeVecI8x16Eq: OpcodeVecI8x16EqName,
- OpcodeVecI8x16Ne: OpcodeVecI8x16NeName,
- OpcodeVecI8x16LtS: OpcodeVecI8x16LtSName,
- OpcodeVecI8x16LtU: OpcodeVecI8x16LtUName,
- OpcodeVecI8x16GtS: OpcodeVecI8x16GtSName,
- OpcodeVecI8x16GtU: OpcodeVecI8x16GtUName,
- OpcodeVecI8x16LeS: OpcodeVecI8x16LeSName,
- OpcodeVecI8x16LeU: OpcodeVecI8x16LeUName,
- OpcodeVecI8x16GeS: OpcodeVecI8x16GeSName,
- OpcodeVecI8x16GeU: OpcodeVecI8x16GeUName,
- OpcodeVecI16x8Eq: OpcodeVecI16x8EqName,
- OpcodeVecI16x8Ne: OpcodeVecI16x8NeName,
- OpcodeVecI16x8LtS: OpcodeVecI16x8LtSName,
- OpcodeVecI16x8LtU: OpcodeVecI16x8LtUName,
- OpcodeVecI16x8GtS: OpcodeVecI16x8GtSName,
- OpcodeVecI16x8GtU: OpcodeVecI16x8GtUName,
- OpcodeVecI16x8LeS: OpcodeVecI16x8LeSName,
- OpcodeVecI16x8LeU: OpcodeVecI16x8LeUName,
- OpcodeVecI16x8GeS: OpcodeVecI16x8GeSName,
- OpcodeVecI16x8GeU: OpcodeVecI16x8GeUName,
- OpcodeVecI32x4Eq: OpcodeVecI32x4EqName,
- OpcodeVecI32x4Ne: OpcodeVecI32x4NeName,
- OpcodeVecI32x4LtS: OpcodeVecI32x4LtSName,
- OpcodeVecI32x4LtU: OpcodeVecI32x4LtUName,
- OpcodeVecI32x4GtS: OpcodeVecI32x4GtSName,
- OpcodeVecI32x4GtU: OpcodeVecI32x4GtUName,
- OpcodeVecI32x4LeS: OpcodeVecI32x4LeSName,
- OpcodeVecI32x4LeU: OpcodeVecI32x4LeUName,
- OpcodeVecI32x4GeS: OpcodeVecI32x4GeSName,
- OpcodeVecI32x4GeU: OpcodeVecI32x4GeUName,
- OpcodeVecI64x2Eq: OpcodeVecI64x2EqName,
- OpcodeVecI64x2Ne: OpcodeVecI64x2NeName,
- OpcodeVecI64x2LtS: OpcodeVecI64x2LtSName,
- OpcodeVecI64x2GtS: OpcodeVecI64x2GtSName,
- OpcodeVecI64x2LeS: OpcodeVecI64x2LeSName,
- OpcodeVecI64x2GeS: OpcodeVecI64x2GeSName,
- OpcodeVecF32x4Eq: OpcodeVecF32x4EqName,
- OpcodeVecF32x4Ne: OpcodeVecF32x4NeName,
- OpcodeVecF32x4Lt: OpcodeVecF32x4LtName,
- OpcodeVecF32x4Gt: OpcodeVecF32x4GtName,
- OpcodeVecF32x4Le: OpcodeVecF32x4LeName,
- OpcodeVecF32x4Ge: OpcodeVecF32x4GeName,
- OpcodeVecF64x2Eq: OpcodeVecF64x2EqName,
- OpcodeVecF64x2Ne: OpcodeVecF64x2NeName,
- OpcodeVecF64x2Lt: OpcodeVecF64x2LtName,
- OpcodeVecF64x2Gt: OpcodeVecF64x2GtName,
- OpcodeVecF64x2Le: OpcodeVecF64x2LeName,
- OpcodeVecF64x2Ge: OpcodeVecF64x2GeName,
- OpcodeVecV128Not: OpcodeVecV128NotName,
- OpcodeVecV128And: OpcodeVecV128AndName,
- OpcodeVecV128AndNot: OpcodeVecV128AndNotName,
- OpcodeVecV128Or: OpcodeVecV128OrName,
- OpcodeVecV128Xor: OpcodeVecV128XorName,
- OpcodeVecV128Bitselect: OpcodeVecV128BitselectName,
- OpcodeVecV128AnyTrue: OpcodeVecV128AnyTrueName,
- OpcodeVecI8x16Abs: OpcodeVecI8x16AbsName,
- OpcodeVecI8x16Neg: OpcodeVecI8x16NegName,
- OpcodeVecI8x16Popcnt: OpcodeVecI8x16PopcntName,
- OpcodeVecI8x16AllTrue: OpcodeVecI8x16AllTrueName,
- OpcodeVecI8x16BitMask: OpcodeVecI8x16BitMaskName,
- OpcodeVecI8x16NarrowI16x8S: OpcodeVecI8x16NarrowI16x8SName,
- OpcodeVecI8x16NarrowI16x8U: OpcodeVecI8x16NarrowI16x8UName,
- OpcodeVecI8x16Shl: OpcodeVecI8x16ShlName,
- OpcodeVecI8x16ShrS: OpcodeVecI8x16ShrSName,
- OpcodeVecI8x16ShrU: OpcodeVecI8x16ShrUName,
- OpcodeVecI8x16Add: OpcodeVecI8x16AddName,
- OpcodeVecI8x16AddSatS: OpcodeVecI8x16AddSatSName,
- OpcodeVecI8x16AddSatU: OpcodeVecI8x16AddSatUName,
- OpcodeVecI8x16Sub: OpcodeVecI8x16SubName,
- OpcodeVecI8x16SubSatS: OpcodeVecI8x16SubSatSName,
- OpcodeVecI8x16SubSatU: OpcodeVecI8x16SubSatUName,
- OpcodeVecI8x16MinS: OpcodeVecI8x16MinSName,
- OpcodeVecI8x16MinU: OpcodeVecI8x16MinUName,
- OpcodeVecI8x16MaxS: OpcodeVecI8x16MaxSName,
- OpcodeVecI8x16MaxU: OpcodeVecI8x16MaxUName,
- OpcodeVecI8x16AvgrU: OpcodeVecI8x16AvgrUName,
- OpcodeVecI16x8ExtaddPairwiseI8x16S: OpcodeVecI16x8ExtaddPairwiseI8x16SName,
- OpcodeVecI16x8ExtaddPairwiseI8x16U: OpcodeVecI16x8ExtaddPairwiseI8x16UName,
- OpcodeVecI16x8Abs: OpcodeVecI16x8AbsName,
- OpcodeVecI16x8Neg: OpcodeVecI16x8NegName,
- OpcodeVecI16x8Q15mulrSatS: OpcodeVecI16x8Q15mulrSatSName,
- OpcodeVecI16x8AllTrue: OpcodeVecI16x8AllTrueName,
- OpcodeVecI16x8BitMask: OpcodeVecI16x8BitMaskName,
- OpcodeVecI16x8NarrowI32x4S: OpcodeVecI16x8NarrowI32x4SName,
- OpcodeVecI16x8NarrowI32x4U: OpcodeVecI16x8NarrowI32x4UName,
- OpcodeVecI16x8ExtendLowI8x16S: OpcodeVecI16x8ExtendLowI8x16SName,
- OpcodeVecI16x8ExtendHighI8x16S: OpcodeVecI16x8ExtendHighI8x16SName,
- OpcodeVecI16x8ExtendLowI8x16U: OpcodeVecI16x8ExtendLowI8x16UName,
- OpcodeVecI16x8ExtendHighI8x16U: OpcodeVecI16x8ExtendHighI8x16UName,
- OpcodeVecI16x8Shl: OpcodeVecI16x8ShlName,
- OpcodeVecI16x8ShrS: OpcodeVecI16x8ShrSName,
- OpcodeVecI16x8ShrU: OpcodeVecI16x8ShrUName,
- OpcodeVecI16x8Add: OpcodeVecI16x8AddName,
- OpcodeVecI16x8AddSatS: OpcodeVecI16x8AddSatSName,
- OpcodeVecI16x8AddSatU: OpcodeVecI16x8AddSatUName,
- OpcodeVecI16x8Sub: OpcodeVecI16x8SubName,
- OpcodeVecI16x8SubSatS: OpcodeVecI16x8SubSatSName,
- OpcodeVecI16x8SubSatU: OpcodeVecI16x8SubSatUName,
- OpcodeVecI16x8Mul: OpcodeVecI16x8MulName,
- OpcodeVecI16x8MinS: OpcodeVecI16x8MinSName,
- OpcodeVecI16x8MinU: OpcodeVecI16x8MinUName,
- OpcodeVecI16x8MaxS: OpcodeVecI16x8MaxSName,
- OpcodeVecI16x8MaxU: OpcodeVecI16x8MaxUName,
- OpcodeVecI16x8AvgrU: OpcodeVecI16x8AvgrUName,
- OpcodeVecI16x8ExtMulLowI8x16S: OpcodeVecI16x8ExtMulLowI8x16SName,
- OpcodeVecI16x8ExtMulHighI8x16S: OpcodeVecI16x8ExtMulHighI8x16SName,
- OpcodeVecI16x8ExtMulLowI8x16U: OpcodeVecI16x8ExtMulLowI8x16UName,
- OpcodeVecI16x8ExtMulHighI8x16U: OpcodeVecI16x8ExtMulHighI8x16UName,
- OpcodeVecI32x4ExtaddPairwiseI16x8S: OpcodeVecI32x4ExtaddPairwiseI16x8SName,
- OpcodeVecI32x4ExtaddPairwiseI16x8U: OpcodeVecI32x4ExtaddPairwiseI16x8UName,
- OpcodeVecI32x4Abs: OpcodeVecI32x4AbsName,
- OpcodeVecI32x4Neg: OpcodeVecI32x4NegName,
- OpcodeVecI32x4AllTrue: OpcodeVecI32x4AllTrueName,
- OpcodeVecI32x4BitMask: OpcodeVecI32x4BitMaskName,
- OpcodeVecI32x4ExtendLowI16x8S: OpcodeVecI32x4ExtendLowI16x8SName,
- OpcodeVecI32x4ExtendHighI16x8S: OpcodeVecI32x4ExtendHighI16x8SName,
- OpcodeVecI32x4ExtendLowI16x8U: OpcodeVecI32x4ExtendLowI16x8UName,
- OpcodeVecI32x4ExtendHighI16x8U: OpcodeVecI32x4ExtendHighI16x8UName,
- OpcodeVecI32x4Shl: OpcodeVecI32x4ShlName,
- OpcodeVecI32x4ShrS: OpcodeVecI32x4ShrSName,
- OpcodeVecI32x4ShrU: OpcodeVecI32x4ShrUName,
- OpcodeVecI32x4Add: OpcodeVecI32x4AddName,
- OpcodeVecI32x4Sub: OpcodeVecI32x4SubName,
- OpcodeVecI32x4Mul: OpcodeVecI32x4MulName,
- OpcodeVecI32x4MinS: OpcodeVecI32x4MinSName,
- OpcodeVecI32x4MinU: OpcodeVecI32x4MinUName,
- OpcodeVecI32x4MaxS: OpcodeVecI32x4MaxSName,
- OpcodeVecI32x4MaxU: OpcodeVecI32x4MaxUName,
- OpcodeVecI32x4DotI16x8S: OpcodeVecI32x4DotI16x8SName,
- OpcodeVecI32x4ExtMulLowI16x8S: OpcodeVecI32x4ExtMulLowI16x8SName,
- OpcodeVecI32x4ExtMulHighI16x8S: OpcodeVecI32x4ExtMulHighI16x8SName,
- OpcodeVecI32x4ExtMulLowI16x8U: OpcodeVecI32x4ExtMulLowI16x8UName,
- OpcodeVecI32x4ExtMulHighI16x8U: OpcodeVecI32x4ExtMulHighI16x8UName,
- OpcodeVecI64x2Abs: OpcodeVecI64x2AbsName,
- OpcodeVecI64x2Neg: OpcodeVecI64x2NegName,
- OpcodeVecI64x2AllTrue: OpcodeVecI64x2AllTrueName,
- OpcodeVecI64x2BitMask: OpcodeVecI64x2BitMaskName,
- OpcodeVecI64x2ExtendLowI32x4S: OpcodeVecI64x2ExtendLowI32x4SName,
- OpcodeVecI64x2ExtendHighI32x4S: OpcodeVecI64x2ExtendHighI32x4SName,
- OpcodeVecI64x2ExtendLowI32x4U: OpcodeVecI64x2ExtendLowI32x4UName,
- OpcodeVecI64x2ExtendHighI32x4U: OpcodeVecI64x2ExtendHighI32x4UName,
- OpcodeVecI64x2Shl: OpcodeVecI64x2ShlName,
- OpcodeVecI64x2ShrS: OpcodeVecI64x2ShrSName,
- OpcodeVecI64x2ShrU: OpcodeVecI64x2ShrUName,
- OpcodeVecI64x2Add: OpcodeVecI64x2AddName,
- OpcodeVecI64x2Sub: OpcodeVecI64x2SubName,
- OpcodeVecI64x2Mul: OpcodeVecI64x2MulName,
- OpcodeVecI64x2ExtMulLowI32x4S: OpcodeVecI64x2ExtMulLowI32x4SName,
- OpcodeVecI64x2ExtMulHighI32x4S: OpcodeVecI64x2ExtMulHighI32x4SName,
- OpcodeVecI64x2ExtMulLowI32x4U: OpcodeVecI64x2ExtMulLowI32x4UName,
- OpcodeVecI64x2ExtMulHighI32x4U: OpcodeVecI64x2ExtMulHighI32x4UName,
- OpcodeVecF32x4Ceil: OpcodeVecF32x4CeilName,
- OpcodeVecF32x4Floor: OpcodeVecF32x4FloorName,
- OpcodeVecF32x4Trunc: OpcodeVecF32x4TruncName,
- OpcodeVecF32x4Nearest: OpcodeVecF32x4NearestName,
- OpcodeVecF32x4Abs: OpcodeVecF32x4AbsName,
- OpcodeVecF32x4Neg: OpcodeVecF32x4NegName,
- OpcodeVecF32x4Sqrt: OpcodeVecF32x4SqrtName,
- OpcodeVecF32x4Add: OpcodeVecF32x4AddName,
- OpcodeVecF32x4Sub: OpcodeVecF32x4SubName,
- OpcodeVecF32x4Mul: OpcodeVecF32x4MulName,
- OpcodeVecF32x4Div: OpcodeVecF32x4DivName,
- OpcodeVecF32x4Min: OpcodeVecF32x4MinName,
- OpcodeVecF32x4Max: OpcodeVecF32x4MaxName,
- OpcodeVecF32x4Pmin: OpcodeVecF32x4PminName,
- OpcodeVecF32x4Pmax: OpcodeVecF32x4PmaxName,
- OpcodeVecF64x2Ceil: OpcodeVecF64x2CeilName,
- OpcodeVecF64x2Floor: OpcodeVecF64x2FloorName,
- OpcodeVecF64x2Trunc: OpcodeVecF64x2TruncName,
- OpcodeVecF64x2Nearest: OpcodeVecF64x2NearestName,
- OpcodeVecF64x2Abs: OpcodeVecF64x2AbsName,
- OpcodeVecF64x2Neg: OpcodeVecF64x2NegName,
- OpcodeVecF64x2Sqrt: OpcodeVecF64x2SqrtName,
- OpcodeVecF64x2Add: OpcodeVecF64x2AddName,
- OpcodeVecF64x2Sub: OpcodeVecF64x2SubName,
- OpcodeVecF64x2Mul: OpcodeVecF64x2MulName,
- OpcodeVecF64x2Div: OpcodeVecF64x2DivName,
- OpcodeVecF64x2Min: OpcodeVecF64x2MinName,
- OpcodeVecF64x2Max: OpcodeVecF64x2MaxName,
- OpcodeVecF64x2Pmin: OpcodeVecF64x2PminName,
- OpcodeVecF64x2Pmax: OpcodeVecF64x2PmaxName,
- OpcodeVecI32x4TruncSatF32x4S: OpcodeVecI32x4TruncSatF32x4SName,
- OpcodeVecI32x4TruncSatF32x4U: OpcodeVecI32x4TruncSatF32x4UName,
- OpcodeVecF32x4ConvertI32x4S: OpcodeVecF32x4ConvertI32x4SName,
- OpcodeVecF32x4ConvertI32x4U: OpcodeVecF32x4ConvertI32x4UName,
- OpcodeVecI32x4TruncSatF64x2SZero: OpcodeVecI32x4TruncSatF64x2SZeroName,
- OpcodeVecI32x4TruncSatF64x2UZero: OpcodeVecI32x4TruncSatF64x2UZeroName,
- OpcodeVecF64x2ConvertLowI32x4S: OpcodeVecF64x2ConvertLowI32x4SName,
- OpcodeVecF64x2ConvertLowI32x4U: OpcodeVecF64x2ConvertLowI32x4UName,
- OpcodeVecF32x4DemoteF64x2Zero: OpcodeVecF32x4DemoteF64x2ZeroName,
- OpcodeVecF64x2PromoteLowF32x4Zero: OpcodeVecF64x2PromoteLowF32x4ZeroName,
-}
-
-// VectorInstructionName returns the instruction name corresponding to the vector Opcode.
-func VectorInstructionName(oc OpcodeVec) (ret string) {
- return vectorInstructionName[oc]
-}
-
-const (
- OpcodeAtomicMemoryNotifyName = "memory.atomic.notify"
- OpcodeAtomicMemoryWait32Name = "memory.atomic.wait32"
- OpcodeAtomicMemoryWait64Name = "memory.atomic.wait64"
- OpcodeAtomicFenceName = "atomic.fence"
-
- OpcodeAtomicI32LoadName = "i32.atomic.load"
- OpcodeAtomicI64LoadName = "i64.atomic.load"
- OpcodeAtomicI32Load8UName = "i32.atomic.load8_u"
- OpcodeAtomicI32Load16UName = "i32.atomic.load16_u"
- OpcodeAtomicI64Load8UName = "i64.atomic.load8_u"
- OpcodeAtomicI64Load16UName = "i64.atomic.load16_u"
- OpcodeAtomicI64Load32UName = "i64.atomic.load32_u"
- OpcodeAtomicI32StoreName = "i32.atomic.store"
- OpcodeAtomicI64StoreName = "i64.atomic.store"
- OpcodeAtomicI32Store8Name = "i32.atomic.store8"
- OpcodeAtomicI32Store16Name = "i32.atomic.store16"
- OpcodeAtomicI64Store8Name = "i64.atomic.store8"
- OpcodeAtomicI64Store16Name = "i64.atomic.store16"
- OpcodeAtomicI64Store32Name = "i64.atomic.store32"
-
- OpcodeAtomicI32RmwAddName = "i32.atomic.rmw.add"
- OpcodeAtomicI64RmwAddName = "i64.atomic.rmw.add"
- OpcodeAtomicI32Rmw8AddUName = "i32.atomic.rmw8.add_u"
- OpcodeAtomicI32Rmw16AddUName = "i32.atomic.rmw16.add_u"
- OpcodeAtomicI64Rmw8AddUName = "i64.atomic.rmw8.add_u"
- OpcodeAtomicI64Rmw16AddUName = "i64.atomic.rmw16.add_u"
- OpcodeAtomicI64Rmw32AddUName = "i64.atomic.rmw32.add_u"
-
- OpcodeAtomicI32RmwSubName = "i32.atomic.rmw.sub"
- OpcodeAtomicI64RmwSubName = "i64.atomic.rmw.sub"
- OpcodeAtomicI32Rmw8SubUName = "i32.atomic.rmw8.sub_u"
- OpcodeAtomicI32Rmw16SubUName = "i32.atomic.rmw16.sub_u"
- OpcodeAtomicI64Rmw8SubUName = "i64.atomic.rmw8.sub_u"
- OpcodeAtomicI64Rmw16SubUName = "i64.atomic.rmw16.sub_u"
- OpcodeAtomicI64Rmw32SubUName = "i64.atomic.rmw32.sub_u"
-
- OpcodeAtomicI32RmwAndName = "i32.atomic.rmw.and"
- OpcodeAtomicI64RmwAndName = "i64.atomic.rmw.and"
- OpcodeAtomicI32Rmw8AndUName = "i32.atomic.rmw8.and_u"
- OpcodeAtomicI32Rmw16AndUName = "i32.atomic.rmw16.and_u"
- OpcodeAtomicI64Rmw8AndUName = "i64.atomic.rmw8.and_u"
- OpcodeAtomicI64Rmw16AndUName = "i64.atomic.rmw16.and_u"
- OpcodeAtomicI64Rmw32AndUName = "i64.atomic.rmw32.and_u"
-
- OpcodeAtomicI32RmwOrName = "i32.atomic.rmw.or"
- OpcodeAtomicI64RmwOrName = "i64.atomic.rmw.or"
- OpcodeAtomicI32Rmw8OrUName = "i32.atomic.rmw8.or_u"
- OpcodeAtomicI32Rmw16OrUName = "i32.atomic.rmw16.or_u"
- OpcodeAtomicI64Rmw8OrUName = "i64.atomic.rmw8.or_u"
- OpcodeAtomicI64Rmw16OrUName = "i64.atomic.rmw16.or_u"
- OpcodeAtomicI64Rmw32OrUName = "i64.atomic.rmw32.or_u"
-
- OpcodeAtomicI32RmwXorName = "i32.atomic.rmw.xor"
- OpcodeAtomicI64RmwXorName = "i64.atomic.rmw.xor"
- OpcodeAtomicI32Rmw8XorUName = "i32.atomic.rmw8.xor_u"
- OpcodeAtomicI32Rmw16XorUName = "i32.atomic.rmw16.xor_u"
- OpcodeAtomicI64Rmw8XorUName = "i64.atomic.rmw8.xor_u"
- OpcodeAtomicI64Rmw16XorUName = "i64.atomic.rmw16.xor_u"
- OpcodeAtomicI64Rmw32XorUName = "i64.atomic.rmw32.xor_u"
-
- OpcodeAtomicI32RmwXchgName = "i32.atomic.rmw.xchg"
- OpcodeAtomicI64RmwXchgName = "i64.atomic.rmw.xchg"
- OpcodeAtomicI32Rmw8XchgUName = "i32.atomic.rmw8.xchg_u"
- OpcodeAtomicI32Rmw16XchgUName = "i32.atomic.rmw16.xchg_u"
- OpcodeAtomicI64Rmw8XchgUName = "i64.atomic.rmw8.xchg_u"
- OpcodeAtomicI64Rmw16XchgUName = "i64.atomic.rmw16.xchg_u"
- OpcodeAtomicI64Rmw32XchgUName = "i64.atomic.rmw32.xchg_u"
-
- OpcodeAtomicI32RmwCmpxchgName = "i32.atomic.rmw.cmpxchg"
- OpcodeAtomicI64RmwCmpxchgName = "i64.atomic.rmw.cmpxchg"
- OpcodeAtomicI32Rmw8CmpxchgUName = "i32.atomic.rmw8.cmpxchg_u"
- OpcodeAtomicI32Rmw16CmpxchgUName = "i32.atomic.rmw16.cmpxchg_u"
- OpcodeAtomicI64Rmw8CmpxchgUName = "i64.atomic.rmw8.cmpxchg_u"
- OpcodeAtomicI64Rmw16CmpxchgUName = "i64.atomic.rmw16.cmpxchg_u"
- OpcodeAtomicI64Rmw32CmpxchgUName = "i64.atomic.rmw32.cmpxchg_u"
-)
-
-var atomicInstructionName = map[OpcodeAtomic]string{
- OpcodeAtomicMemoryNotify: OpcodeAtomicMemoryNotifyName,
- OpcodeAtomicMemoryWait32: OpcodeAtomicMemoryWait32Name,
- OpcodeAtomicMemoryWait64: OpcodeAtomicMemoryWait64Name,
- OpcodeAtomicFence: OpcodeAtomicFenceName,
-
- OpcodeAtomicI32Load: OpcodeAtomicI32LoadName,
- OpcodeAtomicI64Load: OpcodeAtomicI64LoadName,
- OpcodeAtomicI32Load8U: OpcodeAtomicI32Load8UName,
- OpcodeAtomicI32Load16U: OpcodeAtomicI32Load16UName,
- OpcodeAtomicI64Load8U: OpcodeAtomicI64Load8UName,
- OpcodeAtomicI64Load16U: OpcodeAtomicI64Load16UName,
- OpcodeAtomicI64Load32U: OpcodeAtomicI64Load32UName,
- OpcodeAtomicI32Store: OpcodeAtomicI32StoreName,
- OpcodeAtomicI64Store: OpcodeAtomicI64StoreName,
- OpcodeAtomicI32Store8: OpcodeAtomicI32Store8Name,
- OpcodeAtomicI32Store16: OpcodeAtomicI32Store16Name,
- OpcodeAtomicI64Store8: OpcodeAtomicI64Store8Name,
- OpcodeAtomicI64Store16: OpcodeAtomicI64Store16Name,
- OpcodeAtomicI64Store32: OpcodeAtomicI64Store32Name,
-
- OpcodeAtomicI32RmwAdd: OpcodeAtomicI32RmwAddName,
- OpcodeAtomicI64RmwAdd: OpcodeAtomicI64RmwAddName,
- OpcodeAtomicI32Rmw8AddU: OpcodeAtomicI32Rmw8AddUName,
- OpcodeAtomicI32Rmw16AddU: OpcodeAtomicI32Rmw16AddUName,
- OpcodeAtomicI64Rmw8AddU: OpcodeAtomicI64Rmw8AddUName,
- OpcodeAtomicI64Rmw16AddU: OpcodeAtomicI64Rmw16AddUName,
- OpcodeAtomicI64Rmw32AddU: OpcodeAtomicI64Rmw32AddUName,
-
- OpcodeAtomicI32RmwSub: OpcodeAtomicI32RmwSubName,
- OpcodeAtomicI64RmwSub: OpcodeAtomicI64RmwSubName,
- OpcodeAtomicI32Rmw8SubU: OpcodeAtomicI32Rmw8SubUName,
- OpcodeAtomicI32Rmw16SubU: OpcodeAtomicI32Rmw16SubUName,
- OpcodeAtomicI64Rmw8SubU: OpcodeAtomicI64Rmw8SubUName,
- OpcodeAtomicI64Rmw16SubU: OpcodeAtomicI64Rmw16SubUName,
- OpcodeAtomicI64Rmw32SubU: OpcodeAtomicI64Rmw32SubUName,
-
- OpcodeAtomicI32RmwAnd: OpcodeAtomicI32RmwAndName,
- OpcodeAtomicI64RmwAnd: OpcodeAtomicI64RmwAndName,
- OpcodeAtomicI32Rmw8AndU: OpcodeAtomicI32Rmw8AndUName,
- OpcodeAtomicI32Rmw16AndU: OpcodeAtomicI32Rmw16AndUName,
- OpcodeAtomicI64Rmw8AndU: OpcodeAtomicI64Rmw8AndUName,
- OpcodeAtomicI64Rmw16AndU: OpcodeAtomicI64Rmw16AndUName,
- OpcodeAtomicI64Rmw32AndU: OpcodeAtomicI64Rmw32AndUName,
-
- OpcodeAtomicI32RmwOr: OpcodeAtomicI32RmwOrName,
- OpcodeAtomicI64RmwOr: OpcodeAtomicI64RmwOrName,
- OpcodeAtomicI32Rmw8OrU: OpcodeAtomicI32Rmw8OrUName,
- OpcodeAtomicI32Rmw16OrU: OpcodeAtomicI32Rmw16OrUName,
- OpcodeAtomicI64Rmw8OrU: OpcodeAtomicI64Rmw8OrUName,
- OpcodeAtomicI64Rmw16OrU: OpcodeAtomicI64Rmw16OrUName,
- OpcodeAtomicI64Rmw32OrU: OpcodeAtomicI64Rmw32OrUName,
-
- OpcodeAtomicI32RmwXor: OpcodeAtomicI32RmwXorName,
- OpcodeAtomicI64RmwXor: OpcodeAtomicI64RmwXorName,
- OpcodeAtomicI32Rmw8XorU: OpcodeAtomicI32Rmw8XorUName,
- OpcodeAtomicI32Rmw16XorU: OpcodeAtomicI32Rmw16XorUName,
- OpcodeAtomicI64Rmw8XorU: OpcodeAtomicI64Rmw8XorUName,
- OpcodeAtomicI64Rmw16XorU: OpcodeAtomicI64Rmw16XorUName,
- OpcodeAtomicI64Rmw32XorU: OpcodeAtomicI64Rmw32XorUName,
-
- OpcodeAtomicI32RmwXchg: OpcodeAtomicI32RmwXchgName,
- OpcodeAtomicI64RmwXchg: OpcodeAtomicI64RmwXchgName,
- OpcodeAtomicI32Rmw8XchgU: OpcodeAtomicI32Rmw8XchgUName,
- OpcodeAtomicI32Rmw16XchgU: OpcodeAtomicI32Rmw16XchgUName,
- OpcodeAtomicI64Rmw8XchgU: OpcodeAtomicI64Rmw8XchgUName,
- OpcodeAtomicI64Rmw16XchgU: OpcodeAtomicI64Rmw16XchgUName,
- OpcodeAtomicI64Rmw32XchgU: OpcodeAtomicI64Rmw32XchgUName,
-
- OpcodeAtomicI32RmwCmpxchg: OpcodeAtomicI32RmwCmpxchgName,
- OpcodeAtomicI64RmwCmpxchg: OpcodeAtomicI64RmwCmpxchgName,
- OpcodeAtomicI32Rmw8CmpxchgU: OpcodeAtomicI32Rmw8CmpxchgUName,
- OpcodeAtomicI32Rmw16CmpxchgU: OpcodeAtomicI32Rmw16CmpxchgUName,
- OpcodeAtomicI64Rmw8CmpxchgU: OpcodeAtomicI64Rmw8CmpxchgUName,
- OpcodeAtomicI64Rmw16CmpxchgU: OpcodeAtomicI64Rmw16CmpxchgUName,
- OpcodeAtomicI64Rmw32CmpxchgU: OpcodeAtomicI64Rmw32CmpxchgUName,
-}
-
-// AtomicInstructionName returns the instruction name corresponding to the atomic Opcode.
-func AtomicInstructionName(oc OpcodeAtomic) (ret string) {
- return atomicInstructionName[oc]
-}