Control instructions

using WasmVM::Instr::Unreachable = WasmVM::Instr::Atomic<WasmVM::Opcode::Unreachable>
enumerator WasmVM::Opcode::Unreachable = 0x00
using WasmVM::Instr::Nop = WasmVM::Instr::Atomic<WasmVM::Opcode::Nop>
enumerator WasmVM::Opcode::Nop = 0x01
using WasmVM::Instr::Block = WasmVM::Instr::BlockInstr<WasmVM::Opcode::Block>
enumerator WasmVM::Opcode::Block = 0x02
using WasmVM::Instr::Loop = WasmVM::Instr::BlockInstr<WasmVM::Opcode::Loop>
enumerator WasmVM::Opcode::Loop = 0x03
using WasmVM::Instr::If = WasmVM::Instr::BlockInstr<WasmVM::Opcode::If>
enumerator WasmVM::Opcode::If = 0x04
using WasmVM::Instr::Else = WasmVM::Instr::Atomic<WasmVM::Opcode::Else>
enumerator WasmVM::Opcode::Else = 0x05
using WasmVM::Instr::End = WasmVM::Instr::Atomic<WasmVM::Opcode::End>
enumerator WasmVM::Opcode::End = 0x0B
using WasmVM::Instr::Br = WasmVM::Instr::OneIndex<WasmVM::Opcode::Br>
enumerator WasmVM::Opcode::Br = 0x0C
using WasmVM::Instr::Br_if = WasmVM::Instr::OneIndex<WasmVM::Opcode::Br_if>
enumerator WasmVM::Opcode::Br_if = 0x0D
struct WasmVM::Instr::Br_table : public Base
std::vector<index_t> indices
enumerator WasmVM::Opcode::Br_table = 0x0E
using WasmVM::Instr::Return = WasmVM::Instr::Atomic<WasmVM::Opcode::Return>
enumerator WasmVM::Opcode::Return = 0x0F
using WasmVM::Instr::Call = WasmVM::Instr::OneIndex<WasmVM::Opcode::Call>
enumerator WasmVM::Opcode::Call = 0x10
struct WasmVM::Instr::Call_indirect : public Base
Call_indirect(index_t tableidx, index_t typeidx)
index_t tableidx
index_t typeidx
enumerator WasmVM::Opcode::Call_indirect = 0x11

Tail-call instructions

using WasmVM::Instr::Return_call = WasmVM::Instr::OneIndex<WasmVM::Opcode::Return_call>
enumerator WasmVM::Opcode::Return_call = 0x12
struct WasmVM::Instr::Return_call_indirect : public Base
Return_call_indirect(index_t tableidx, index_t typeidx)
index_t tableidx
index_t typeidx
enumerator WasmVM::Opcode::Return_call_indirect = 0x13
using WasmVM::Instr::Return_call_ref = WasmVM::Instr::OneIndex<WasmVM::Opcode::Return_call_ref>
enumerator WasmVM::Opcode::Return_call_ref = 0x15
using WasmVM::Instr::Call_ref = WasmVM::Instr::OneIndex<WasmVM::Opcode::Call_ref>
enumerator WasmVM::Opcode::Call_ref = 0x14

Exception handling instructions

using WasmVM::Instr::Throw = WasmVM::Instr::OneIndex<WasmVM::Opcode::Throw>
enumerator WasmVM::Opcode::Throw = 0x08
using WasmVM::Instr::Throw_ref = WasmVM::Instr::Atomic<WasmVM::Opcode::Throw_ref>
enumerator WasmVM::Opcode::Throw_ref = 0x0A
struct WasmVM::Instr::TryCatchEntry

A single catch clause inside a Try_table.

enum Kind
enumerator Catch = 0
enumerator CatchRef = 1
enumerator CatchAll = 2
enumerator CatchAllRef = 3
Kind kind
index_t tag_idx

Tag index. Only used for Catch and CatchRef.

index_t label_idx
struct WasmVM::Instr::Try_table : public Base
std::optional<index_t> type
std::vector<TryCatchEntry> catches
enumerator WasmVM::Opcode::Try_table = 0x1F