Instructions

Instructions are encoded by opcodes. Each opcode is represented by a single byte, and is followed by the instruction’s immediate arguments, where present. The only exception are structured control instructions, which consist of several opcodes bracketing their nested instruction sequences.

Note

Gaps in the byte code ranges for encoding instructions are reserved for future extensions.

Control Instructions

Control instructions have varying encodings. For structured instructions, the instruction sequences forming nested blocks are terminated with explicit opcodes for \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}}\) and \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}\).

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \def\mathdef1040#1{\mathtt{0x#1}}\mathdef1040{00} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{unreachable}} \\ &&|& \def\mathdef1041#1{\mathtt{0x#1}}\mathdef1041{01} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{nop}} \\ &&|& \def\mathdef1042#1{\mathtt{0x#1}}\mathdef1042{02}~~\mathit{rt}{:}\href{../binary/types.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1043#1{\mathtt{0x#1}}\mathdef1043{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{block}}~\mathit{rt}~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1044#1{\mathtt{0x#1}}\mathdef1044{03}~~\mathit{rt}{:}\href{../binary/types.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1045#1{\mathtt{0x#1}}\mathdef1045{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{loop}}~\mathit{rt}~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1046#1{\mathtt{0x#1}}\mathdef1046{04}~~\mathit{rt}{:}\href{../binary/types.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1047#1{\mathtt{0x#1}}\mathdef1047{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{if}}~\mathit{rt}~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}~\epsilon~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1048#1{\mathtt{0x#1}}\mathdef1048{04}~~\mathit{rt}{:}\href{../binary/types.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}_1{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~ \def\mathdef1049#1{\mathtt{0x#1}}\mathdef1049{05}~~(\mathit{in}_2{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1050#1{\mathtt{0x#1}}\mathdef1050{0B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{if}}~\mathit{rt}~\mathit{in}_1^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}~\mathit{in}_2^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|& \def\mathdef1051#1{\mathtt{0x#1}}\mathdef1051{0C}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br}}~l \\ &&|& \def\mathdef1052#1{\mathtt{0x#1}}\mathdef1052{0D}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_if}}~l \\ &&|& \def\mathdef1053#1{\mathtt{0x#1}}\mathdef1053{0E}~~l^\ast{:}\href{../binary/conventions.html#binary-vec}{\mathtt{vec}}(\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}})~~l_N{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{br\_table}}~l^\ast~l_N \\ &&|& \def\mathdef1054#1{\mathtt{0x#1}}\mathdef1054{0F} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{return}} \\ &&|& \def\mathdef1055#1{\mathtt{0x#1}}\mathdef1055{10}~~x{:}\href{../binary/modules.html#binary-funcidx}{\mathtt{funcidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{call}}~x \\ &&|& \def\mathdef1056#1{\mathtt{0x#1}}\mathdef1056{11}~~x{:}\href{../binary/modules.html#binary-typeidx}{\mathtt{typeidx}}~~\def\mathdef1057#1{\mathtt{0x#1}}\mathdef1057{00} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{call\_indirect}}~x \\ \end{array}\end{split}\]

Note

The \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{else}}\) opcode \(\def\mathdef1058#1{\mathtt{0x#1}}\mathdef1058{05}\) in the encoding of an \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{if}}\) instruction can be omitted if the following instruction sequence is empty.

Note

In future versions of WebAssembly, the zero byte occurring in the encoding of the \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{call\_indirect}}\) instruction may be used to index additional tables.

Parametric Instructions

Parametric instructions are represented by single byte codes.

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1059#1{\mathtt{0x#1}}\mathdef1059{1A} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-parametric}{\mathsf{drop}} \\ &&|& \def\mathdef1060#1{\mathtt{0x#1}}\mathdef1060{1B} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-parametric}{\mathsf{select}} \\ \end{array}\end{split}\]

Variable Instructions

Variable instructions are represented by byte codes followed by the encoding of the respective index.

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1061#1{\mathtt{0x#1}}\mathdef1061{20}~~x{:}\href{../binary/modules.html#binary-localidx}{\mathtt{localidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{get\_local}}~x \\ &&|& \def\mathdef1062#1{\mathtt{0x#1}}\mathdef1062{21}~~x{:}\href{../binary/modules.html#binary-localidx}{\mathtt{localidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{set\_local}}~x \\ &&|& \def\mathdef1063#1{\mathtt{0x#1}}\mathdef1063{22}~~x{:}\href{../binary/modules.html#binary-localidx}{\mathtt{localidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{tee\_local}}~x \\ &&|& \def\mathdef1064#1{\mathtt{0x#1}}\mathdef1064{23}~~x{:}\href{../binary/modules.html#binary-globalidx}{\mathtt{globalidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{get\_global}}~x \\ &&|& \def\mathdef1065#1{\mathtt{0x#1}}\mathdef1065{24}~~x{:}\href{../binary/modules.html#binary-globalidx}{\mathtt{globalidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-variable}{\mathsf{set\_global}}~x \\ \end{array}\end{split}\]

Memory Instructions

Each variant of memory instruction is encoded with a different byte code. Loads and stores are followed by the encoding of their \(\href{../syntax/instructions.html#syntax-memarg}{\mathit{memarg}}\) immediate.

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{memory argument} & \href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &::=& a{:}\href{../binary/values.html#binary-int}{\def\mathdef1009#1{{\mathtt{u}#1}}\mathdef1009{\mathtt{32}}}~~o{:}\href{../binary/values.html#binary-int}{\def\mathdef1009#1{{\mathtt{u}#1}}\mathdef1009{\mathtt{32}}} &\Rightarrow& \{ \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{align}}~a,~\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{offset}}~o \} \\ \def\mathdef983#1{{}}\mathdef983{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|& \def\mathdef1066#1{\mathtt{0x#1}}\mathdef1066{28}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1067#1{\mathtt{0x#1}}\mathdef1067{29}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1068#1{\mathtt{0x#1}}\mathdef1068{2A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1069#1{\mathtt{0x#1}}\mathdef1069{2B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}~m \\ &&|& \def\mathdef1070#1{\mathtt{0x#1}}\mathdef1070{2C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_s}~m \\ &&|& \def\mathdef1071#1{\mathtt{0x#1}}\mathdef1071{2D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_u}~m \\ &&|& \def\mathdef1072#1{\mathtt{0x#1}}\mathdef1072{2E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_s}~m \\ &&|& \def\mathdef1073#1{\mathtt{0x#1}}\mathdef1073{2F}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_u}~m \\ &&|& \def\mathdef1074#1{\mathtt{0x#1}}\mathdef1074{30}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_s}~m \\ &&|& \def\mathdef1075#1{\mathtt{0x#1}}\mathdef1075{31}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{8\_u}~m \\ &&|& \def\mathdef1076#1{\mathtt{0x#1}}\mathdef1076{32}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_s}~m \\ &&|& \def\mathdef1077#1{\mathtt{0x#1}}\mathdef1077{33}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{16\_u}~m \\ &&|& \def\mathdef1078#1{\mathtt{0x#1}}\mathdef1078{34}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32\_s}~m \\ &&|& \def\mathdef1079#1{\mathtt{0x#1}}\mathdef1079{35}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{load}}\mathsf{32\_u}~m \\ &&|& \def\mathdef1080#1{\mathtt{0x#1}}\mathdef1080{36}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1081#1{\mathtt{0x#1}}\mathdef1081{37}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1082#1{\mathtt{0x#1}}\mathdef1082{38}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1083#1{\mathtt{0x#1}}\mathdef1083{39}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}~m \\ &&|& \def\mathdef1084#1{\mathtt{0x#1}}\mathdef1084{3A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{8}~m \\ &&|& \def\mathdef1085#1{\mathtt{0x#1}}\mathdef1085{3B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{16}~m \\ &&|& \def\mathdef1086#1{\mathtt{0x#1}}\mathdef1086{3C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{8}~m \\ &&|& \def\mathdef1087#1{\mathtt{0x#1}}\mathdef1087{3D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{16}~m \\ &&|& \def\mathdef1088#1{\mathtt{0x#1}}\mathdef1088{3E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{store}}\mathsf{32}~m \\ &&|& \def\mathdef1089#1{\mathtt{0x#1}}\mathdef1089{3F}~~\def\mathdef1090#1{\mathtt{0x#1}}\mathdef1090{00} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{current\_memory}} \\ &&|& \def\mathdef1091#1{\mathtt{0x#1}}\mathdef1091{40}~~\def\mathdef1092#1{\mathtt{0x#1}}\mathdef1092{00} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{grow\_memory}} \\ \end{array}\end{split}\]

Note

In future versions of WebAssembly, the additional zero bytes occurring in the encoding of the \(\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{current\_memory}}\) and \(\href{../syntax/instructions.html#syntax-instr-memory}{\mathsf{grow\_memory}}\) instructions may be used to index additional memories.

Atomic Memory Instructions

Each variant of atomic memory instruction is encoded with a different byte code. Loads, stores and RMW instructions are followed by the encoding of their \(\href{../syntax/instructions.html#syntax-memarg}{\mathit{memarg}}\) immediate.

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots && \phantom{thisshouldbeenough} \\ &&|& \def\mathdef1093#1{\mathtt{0x#1}}\mathdef1093{FE}~\def\mathdef1094#1{\mathtt{0x#1}}\mathdef1094{00}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.wake}}~m \\ &&|& \def\mathdef1095#1{\mathtt{0x#1}}\mathdef1095{FE}~\def\mathdef1096#1{\mathtt{0x#1}}\mathdef1096{01}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.wait}}~m \\ &&|& \def\mathdef1097#1{\mathtt{0x#1}}\mathdef1097{FE}~\def\mathdef1098#1{\mathtt{0x#1}}\mathdef1098{02}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.wait}}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1099#1{\mathtt{0x#1}}\mathdef1099{FE}~\def\mathdef1100#1{\mathtt{0x#1}}\mathdef1100{10}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.load}}~m \\ &&|& \def\mathdef1101#1{\mathtt{0x#1}}\mathdef1101{FE}~\def\mathdef1102#1{\mathtt{0x#1}}\mathdef1102{11}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.load}}~m \\ &&|& \def\mathdef1103#1{\mathtt{0x#1}}\mathdef1103{FE}~\def\mathdef1104#1{\mathtt{0x#1}}\mathdef1104{12}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.load}}\mathsf{8\_u}~m \\ &&|& \def\mathdef1105#1{\mathtt{0x#1}}\mathdef1105{FE}~\def\mathdef1106#1{\mathtt{0x#1}}\mathdef1106{13}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.load}}\mathsf{16\_u}~m \\ &&|& \def\mathdef1107#1{\mathtt{0x#1}}\mathdef1107{FE}~\def\mathdef1108#1{\mathtt{0x#1}}\mathdef1108{14}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.load}}\mathsf{8\_u}~m \\ &&|& \def\mathdef1109#1{\mathtt{0x#1}}\mathdef1109{FE}~\def\mathdef1110#1{\mathtt{0x#1}}\mathdef1110{15}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.load}}\mathsf{16\_u}~m \\ &&|& \def\mathdef1111#1{\mathtt{0x#1}}\mathdef1111{FE}~\def\mathdef1112#1{\mathtt{0x#1}}\mathdef1112{16}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.load}}\mathsf{32\_u}~m \\ &&|& \def\mathdef1113#1{\mathtt{0x#1}}\mathdef1113{FE}~\def\mathdef1114#1{\mathtt{0x#1}}\mathdef1114{17}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.store}}~m \\ &&|& \def\mathdef1115#1{\mathtt{0x#1}}\mathdef1115{FE}~\def\mathdef1116#1{\mathtt{0x#1}}\mathdef1116{18}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.store}}~m \\ &&|& \def\mathdef1117#1{\mathtt{0x#1}}\mathdef1117{FE}~\def\mathdef1118#1{\mathtt{0x#1}}\mathdef1118{19}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.store}}\mathsf{8}~m \\ &&|& \def\mathdef1119#1{\mathtt{0x#1}}\mathdef1119{FE}~\def\mathdef1120#1{\mathtt{0x#1}}\mathdef1120{1A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.store}}\mathsf{16}~m \\ &&|& \def\mathdef1121#1{\mathtt{0x#1}}\mathdef1121{FE}~\def\mathdef1122#1{\mathtt{0x#1}}\mathdef1122{1B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.store}}\mathsf{8}~m \\ &&|& \def\mathdef1123#1{\mathtt{0x#1}}\mathdef1123{FE}~\def\mathdef1124#1{\mathtt{0x#1}}\mathdef1124{1C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.store}}\mathsf{16}~m \\ &&|& \def\mathdef1125#1{\mathtt{0x#1}}\mathdef1125{FE}~\def\mathdef1126#1{\mathtt{0x#1}}\mathdef1126{1D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.store}}\mathsf{32}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1127#1{\mathtt{0x#1}}\mathdef1127{FE}~\def\mathdef1128#1{\mathtt{0x#1}}\mathdef1128{1E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{add}}~m \\ &&|& \def\mathdef1129#1{\mathtt{0x#1}}\mathdef1129{FE}~\def\mathdef1130#1{\mathtt{0x#1}}\mathdef1130{1F}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{add}}~m \\ &&|& \def\mathdef1131#1{\mathtt{0x#1}}\mathdef1131{FE}~\def\mathdef1132#1{\mathtt{0x#1}}\mathdef1132{20}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{add}}~m \\ &&|& \def\mathdef1133#1{\mathtt{0x#1}}\mathdef1133{FE}~\def\mathdef1134#1{\mathtt{0x#1}}\mathdef1134{21}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{add}}~m \\ &&|& \def\mathdef1135#1{\mathtt{0x#1}}\mathdef1135{FE}~\def\mathdef1136#1{\mathtt{0x#1}}\mathdef1136{22}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{add}}~m \\ &&|& \def\mathdef1137#1{\mathtt{0x#1}}\mathdef1137{FE}~\def\mathdef1138#1{\mathtt{0x#1}}\mathdef1138{23}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{add}}~m \\ &&|& \def\mathdef1139#1{\mathtt{0x#1}}\mathdef1139{FE}~\def\mathdef1140#1{\mathtt{0x#1}}\mathdef1140{24}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{32\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{add}}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1141#1{\mathtt{0x#1}}\mathdef1141{FE}~\def\mathdef1142#1{\mathtt{0x#1}}\mathdef1142{25}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{sub}}~m \\ &&|& \def\mathdef1143#1{\mathtt{0x#1}}\mathdef1143{FE}~\def\mathdef1144#1{\mathtt{0x#1}}\mathdef1144{26}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{sub}}~m \\ &&|& \def\mathdef1145#1{\mathtt{0x#1}}\mathdef1145{FE}~\def\mathdef1146#1{\mathtt{0x#1}}\mathdef1146{27}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{sub}}~m \\ &&|& \def\mathdef1147#1{\mathtt{0x#1}}\mathdef1147{FE}~\def\mathdef1148#1{\mathtt{0x#1}}\mathdef1148{28}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{sub}}~m \\ &&|& \def\mathdef1149#1{\mathtt{0x#1}}\mathdef1149{FE}~\def\mathdef1150#1{\mathtt{0x#1}}\mathdef1150{29}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{sub}}~m \\ &&|& \def\mathdef1151#1{\mathtt{0x#1}}\mathdef1151{FE}~\def\mathdef1152#1{\mathtt{0x#1}}\mathdef1152{2A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{sub}}~m \\ &&|& \def\mathdef1153#1{\mathtt{0x#1}}\mathdef1153{FE}~\def\mathdef1154#1{\mathtt{0x#1}}\mathdef1154{2B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{32\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{sub}}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1155#1{\mathtt{0x#1}}\mathdef1155{FE}~\def\mathdef1156#1{\mathtt{0x#1}}\mathdef1156{2C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{and}}~m \\ &&|& \def\mathdef1157#1{\mathtt{0x#1}}\mathdef1157{FE}~\def\mathdef1158#1{\mathtt{0x#1}}\mathdef1158{2D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{and}}~m \\ &&|& \def\mathdef1159#1{\mathtt{0x#1}}\mathdef1159{FE}~\def\mathdef1160#1{\mathtt{0x#1}}\mathdef1160{2E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{and}}~m \\ &&|& \def\mathdef1161#1{\mathtt{0x#1}}\mathdef1161{FE}~\def\mathdef1162#1{\mathtt{0x#1}}\mathdef1162{2F}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{and}}~m \\ &&|& \def\mathdef1163#1{\mathtt{0x#1}}\mathdef1163{FE}~\def\mathdef1164#1{\mathtt{0x#1}}\mathdef1164{30}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{and}}~m \\ &&|& \def\mathdef1165#1{\mathtt{0x#1}}\mathdef1165{FE}~\def\mathdef1166#1{\mathtt{0x#1}}\mathdef1166{31}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{and}}~m \\ &&|& \def\mathdef1167#1{\mathtt{0x#1}}\mathdef1167{FE}~\def\mathdef1168#1{\mathtt{0x#1}}\mathdef1168{32}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{32\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{and}}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1169#1{\mathtt{0x#1}}\mathdef1169{FE}~\def\mathdef1170#1{\mathtt{0x#1}}\mathdef1170{33}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{or}}~m \\ &&|& \def\mathdef1171#1{\mathtt{0x#1}}\mathdef1171{FE}~\def\mathdef1172#1{\mathtt{0x#1}}\mathdef1172{34}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{or}}~m \\ &&|& \def\mathdef1173#1{\mathtt{0x#1}}\mathdef1173{FE}~\def\mathdef1174#1{\mathtt{0x#1}}\mathdef1174{35}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{or}}~m \\ &&|& \def\mathdef1175#1{\mathtt{0x#1}}\mathdef1175{FE}~\def\mathdef1176#1{\mathtt{0x#1}}\mathdef1176{36}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{or}}~m \\ &&|& \def\mathdef1177#1{\mathtt{0x#1}}\mathdef1177{FE}~\def\mathdef1178#1{\mathtt{0x#1}}\mathdef1178{37}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{or}}~m \\ &&|& \def\mathdef1179#1{\mathtt{0x#1}}\mathdef1179{FE}~\def\mathdef1180#1{\mathtt{0x#1}}\mathdef1180{38}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{or}}~m \\ &&|& \def\mathdef1181#1{\mathtt{0x#1}}\mathdef1181{FE}~\def\mathdef1182#1{\mathtt{0x#1}}\mathdef1182{39}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{32\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{or}}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1183#1{\mathtt{0x#1}}\mathdef1183{FE}~\def\mathdef1184#1{\mathtt{0x#1}}\mathdef1184{3A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xor}}~m \\ &&|& \def\mathdef1185#1{\mathtt{0x#1}}\mathdef1185{FE}~\def\mathdef1186#1{\mathtt{0x#1}}\mathdef1186{3B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xor}}~m \\ &&|& \def\mathdef1187#1{\mathtt{0x#1}}\mathdef1187{FE}~\def\mathdef1188#1{\mathtt{0x#1}}\mathdef1188{3C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xor}}~m \\ &&|& \def\mathdef1189#1{\mathtt{0x#1}}\mathdef1189{FE}~\def\mathdef1190#1{\mathtt{0x#1}}\mathdef1190{3D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xor}}~m \\ &&|& \def\mathdef1191#1{\mathtt{0x#1}}\mathdef1191{FE}~\def\mathdef1192#1{\mathtt{0x#1}}\mathdef1192{3E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xor}}~m \\ &&|& \def\mathdef1193#1{\mathtt{0x#1}}\mathdef1193{FE}~\def\mathdef1194#1{\mathtt{0x#1}}\mathdef1194{3F}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xor}}~m \\ &&|& \def\mathdef1195#1{\mathtt{0x#1}}\mathdef1195{FE}~\def\mathdef1196#1{\mathtt{0x#1}}\mathdef1196{40}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{32\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xor}}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1197#1{\mathtt{0x#1}}\mathdef1197{FE}~\def\mathdef1198#1{\mathtt{0x#1}}\mathdef1198{41}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xchg}}~m \\ &&|& \def\mathdef1199#1{\mathtt{0x#1}}\mathdef1199{FE}~\def\mathdef1200#1{\mathtt{0x#1}}\mathdef1200{42}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xchg}}~m \\ &&|& \def\mathdef1201#1{\mathtt{0x#1}}\mathdef1201{FE}~\def\mathdef1202#1{\mathtt{0x#1}}\mathdef1202{43}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xchg}}~m \\ &&|& \def\mathdef1203#1{\mathtt{0x#1}}\mathdef1203{FE}~\def\mathdef1204#1{\mathtt{0x#1}}\mathdef1204{44}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xchg}}~m \\ &&|& \def\mathdef1205#1{\mathtt{0x#1}}\mathdef1205{FE}~\def\mathdef1206#1{\mathtt{0x#1}}\mathdef1206{45}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xchg}}~m \\ &&|& \def\mathdef1207#1{\mathtt{0x#1}}\mathdef1207{FE}~\def\mathdef1208#1{\mathtt{0x#1}}\mathdef1208{46}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xchg}}~m \\ &&|& \def\mathdef1209#1{\mathtt{0x#1}}\mathdef1209{FE}~\def\mathdef1210#1{\mathtt{0x#1}}\mathdef1210{47}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{32\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{xchg}}~m \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1211#1{\mathtt{0x#1}}\mathdef1211{FE}~\def\mathdef1212#1{\mathtt{0x#1}}\mathdef1212{48}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{cmpxchg}}~m \\ &&|& \def\mathdef1213#1{\mathtt{0x#1}}\mathdef1213{FE}~\def\mathdef1214#1{\mathtt{0x#1}}\mathdef1214{49}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{cmpxchg}}~m \\ &&|& \def\mathdef1215#1{\mathtt{0x#1}}\mathdef1215{FE}~\def\mathdef1216#1{\mathtt{0x#1}}\mathdef1216{4A}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{cmpxchg}}~m \\ &&|& \def\mathdef1217#1{\mathtt{0x#1}}\mathdef1217{FE}~\def\mathdef1218#1{\mathtt{0x#1}}\mathdef1218{4B}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{cmpxchg}}~m \\ &&|& \def\mathdef1219#1{\mathtt{0x#1}}\mathdef1219{FE}~\def\mathdef1220#1{\mathtt{0x#1}}\mathdef1220{4C}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{8\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{cmpxchg}}~m \\ &&|& \def\mathdef1221#1{\mathtt{0x#1}}\mathdef1221{FE}~\def\mathdef1222#1{\mathtt{0x#1}}\mathdef1222{4D}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{16\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{cmpxchg}}~m \\ &&|& \def\mathdef1223#1{\mathtt{0x#1}}\mathdef1223{FE}~\def\mathdef1224#1{\mathtt{0x#1}}\mathdef1224{4E}~~m{:}\href{../binary/instructions.html#binary-memarg}{\mathtt{memarg}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{atomic.rmw}}\mathsf{32\_u}.\href{../syntax/instructions.html#syntax-instr-atomic-memory}{\mathsf{cmpxchg}}~m \\ \end{array}\end{split}\]

Numeric Instructions

All variants of numeric instructions are represented by separate byte codes.

The \(\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}\) instructions are followed by the respective literal.

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\&&|& \def\mathdef1225#1{\mathtt{0x#1}}\mathdef1225{41}~~n{:}\href{../binary/values.html#binary-int}{\def\mathdef1016#1{{\mathtt{i}#1}}\mathdef1016{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~n \\ &&|& \def\mathdef1226#1{\mathtt{0x#1}}\mathdef1226{42}~~n{:}\href{../binary/values.html#binary-int}{\def\mathdef1017#1{{\mathtt{i}#1}}\mathdef1017{\mathtt{64}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~n \\ &&|& \def\mathdef1227#1{\mathtt{0x#1}}\mathdef1227{43}~~z{:}\href{../binary/values.html#binary-float}{\def\mathdef1019#1{{\mathtt{f}#1}}\mathdef1019{\mathtt{32}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~z \\ &&|& \def\mathdef1228#1{\mathtt{0x#1}}\mathdef1228{44}~~z{:}\href{../binary/values.html#binary-float}{\def\mathdef1020#1{{\mathtt{f}#1}}\mathdef1020{\mathtt{64}}} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{const}}~z \\ \end{array}\end{split}\]

All other numeric instructions are plain opcodes without any immediates.

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots && \phantom{thisshouldbeenough} \\&&|& \def\mathdef1229#1{\mathtt{0x#1}}\mathdef1229{45} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eqz}} \\ &&|& \def\mathdef1230#1{\mathtt{0x#1}}\mathdef1230{46} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1231#1{\mathtt{0x#1}}\mathdef1231{47} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1232#1{\mathtt{0x#1}}\mathdef1232{48} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef1233#1{\mathtt{0x#1}}\mathdef1233{49} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_u} \\ &&|& \def\mathdef1234#1{\mathtt{0x#1}}\mathdef1234{4A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef1235#1{\mathtt{0x#1}}\mathdef1235{4B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_u} \\ &&|& \def\mathdef1236#1{\mathtt{0x#1}}\mathdef1236{4C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef1237#1{\mathtt{0x#1}}\mathdef1237{4D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_u} \\ &&|& \def\mathdef1238#1{\mathtt{0x#1}}\mathdef1238{4E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_s} \\ &&|& \def\mathdef1239#1{\mathtt{0x#1}}\mathdef1239{4F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1240#1{\mathtt{0x#1}}\mathdef1240{50} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eqz}} \\ &&|& \def\mathdef1241#1{\mathtt{0x#1}}\mathdef1241{51} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1242#1{\mathtt{0x#1}}\mathdef1242{52} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1243#1{\mathtt{0x#1}}\mathdef1243{53} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_s} \\ &&|& \def\mathdef1244#1{\mathtt{0x#1}}\mathdef1244{54} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}}\mathsf{\_u} \\ &&|& \def\mathdef1245#1{\mathtt{0x#1}}\mathdef1245{55} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_s} \\ &&|& \def\mathdef1246#1{\mathtt{0x#1}}\mathdef1246{56} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}}\mathsf{\_u} \\ &&|& \def\mathdef1247#1{\mathtt{0x#1}}\mathdef1247{57} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_s} \\ &&|& \def\mathdef1248#1{\mathtt{0x#1}}\mathdef1248{58} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}}\mathsf{\_u} \\ &&|& \def\mathdef1249#1{\mathtt{0x#1}}\mathdef1249{59} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_s} \\ &&|& \def\mathdef1250#1{\mathtt{0x#1}}\mathdef1250{5A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}}\mathsf{\_u} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1251#1{\mathtt{0x#1}}\mathdef1251{5B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1252#1{\mathtt{0x#1}}\mathdef1252{5C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1253#1{\mathtt{0x#1}}\mathdef1253{5D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}} \\ &&|& \def\mathdef1254#1{\mathtt{0x#1}}\mathdef1254{5E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}} \\ &&|& \def\mathdef1255#1{\mathtt{0x#1}}\mathdef1255{5F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}} \\ &&|& \def\mathdef1256#1{\mathtt{0x#1}}\mathdef1256{60} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1257#1{\mathtt{0x#1}}\mathdef1257{61} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{eq}} \\ &&|& \def\mathdef1258#1{\mathtt{0x#1}}\mathdef1258{62} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ne}} \\ &&|& \def\mathdef1259#1{\mathtt{0x#1}}\mathdef1259{63} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{lt}} \\ &&|& \def\mathdef1260#1{\mathtt{0x#1}}\mathdef1260{64} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{gt}} \\ &&|& \def\mathdef1261#1{\mathtt{0x#1}}\mathdef1261{65} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{le}} \\ &&|& \def\mathdef1262#1{\mathtt{0x#1}}\mathdef1262{66} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ge}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1263#1{\mathtt{0x#1}}\mathdef1263{67} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{clz}} \\ &&|& \def\mathdef1264#1{\mathtt{0x#1}}\mathdef1264{68} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ctz}} \\ &&|& \def\mathdef1265#1{\mathtt{0x#1}}\mathdef1265{69} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{popcnt}} \\ &&|& \def\mathdef1266#1{\mathtt{0x#1}}\mathdef1266{6A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1267#1{\mathtt{0x#1}}\mathdef1267{6B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1268#1{\mathtt{0x#1}}\mathdef1268{6C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1269#1{\mathtt{0x#1}}\mathdef1269{6D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_s} \\ &&|& \def\mathdef1270#1{\mathtt{0x#1}}\mathdef1270{6E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_u} \\ &&|& \def\mathdef1271#1{\mathtt{0x#1}}\mathdef1271{6F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_s} \\ &&|& \def\mathdef1272#1{\mathtt{0x#1}}\mathdef1272{70} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_u} \\ &&|& \def\mathdef1273#1{\mathtt{0x#1}}\mathdef1273{71} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{and}} \\ &&|& \def\mathdef1274#1{\mathtt{0x#1}}\mathdef1274{72} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{or}} \\ &&|& \def\mathdef1275#1{\mathtt{0x#1}}\mathdef1275{73} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{xor}} \\ &&|& \def\mathdef1276#1{\mathtt{0x#1}}\mathdef1276{74} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shl}} \\ &&|& \def\mathdef1277#1{\mathtt{0x#1}}\mathdef1277{75} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef1278#1{\mathtt{0x#1}}\mathdef1278{76} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef1279#1{\mathtt{0x#1}}\mathdef1279{77} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotl}} \\ &&|& \def\mathdef1280#1{\mathtt{0x#1}}\mathdef1280{78} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotr}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1281#1{\mathtt{0x#1}}\mathdef1281{79} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{clz}} \\ &&|& \def\mathdef1282#1{\mathtt{0x#1}}\mathdef1282{7A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ctz}} \\ &&|& \def\mathdef1283#1{\mathtt{0x#1}}\mathdef1283{7B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{popcnt}} \\ &&|& \def\mathdef1284#1{\mathtt{0x#1}}\mathdef1284{7C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1285#1{\mathtt{0x#1}}\mathdef1285{7D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1286#1{\mathtt{0x#1}}\mathdef1286{7E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1287#1{\mathtt{0x#1}}\mathdef1287{7F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_s} \\ &&|& \def\mathdef1288#1{\mathtt{0x#1}}\mathdef1288{80} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}}\mathsf{\_u} \\ &&|& \def\mathdef1289#1{\mathtt{0x#1}}\mathdef1289{81} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_s} \\ &&|& \def\mathdef1290#1{\mathtt{0x#1}}\mathdef1290{82} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rem}}\mathsf{\_u} \\ &&|& \def\mathdef1291#1{\mathtt{0x#1}}\mathdef1291{83} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{and}} \\ &&|& \def\mathdef1292#1{\mathtt{0x#1}}\mathdef1292{84} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{or}} \\ &&|& \def\mathdef1293#1{\mathtt{0x#1}}\mathdef1293{85} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{xor}} \\ &&|& \def\mathdef1294#1{\mathtt{0x#1}}\mathdef1294{86} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shl}} \\ &&|& \def\mathdef1295#1{\mathtt{0x#1}}\mathdef1295{87} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_s} \\ &&|& \def\mathdef1296#1{\mathtt{0x#1}}\mathdef1296{88} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{shr}}\mathsf{\_u} \\ &&|& \def\mathdef1297#1{\mathtt{0x#1}}\mathdef1297{89} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotl}} \\ &&|& \def\mathdef1298#1{\mathtt{0x#1}}\mathdef1298{8A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{rotr}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1299#1{\mathtt{0x#1}}\mathdef1299{8B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{abs}} \\ &&|& \def\mathdef1300#1{\mathtt{0x#1}}\mathdef1300{8C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{neg}} \\ &&|& \def\mathdef1301#1{\mathtt{0x#1}}\mathdef1301{8D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ceil}} \\ &&|& \def\mathdef1302#1{\mathtt{0x#1}}\mathdef1302{8E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{floor}} \\ &&|& \def\mathdef1303#1{\mathtt{0x#1}}\mathdef1303{8F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}} \\ &&|& \def\mathdef1304#1{\mathtt{0x#1}}\mathdef1304{90} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{nearest}} \\ &&|& \def\mathdef1305#1{\mathtt{0x#1}}\mathdef1305{91} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sqrt}} \\ &&|& \def\mathdef1306#1{\mathtt{0x#1}}\mathdef1306{92} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1307#1{\mathtt{0x#1}}\mathdef1307{93} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1308#1{\mathtt{0x#1}}\mathdef1308{94} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1309#1{\mathtt{0x#1}}\mathdef1309{95} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}} \\ &&|& \def\mathdef1310#1{\mathtt{0x#1}}\mathdef1310{96} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{min}} \\ &&|& \def\mathdef1311#1{\mathtt{0x#1}}\mathdef1311{97} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{max}} \\ &&|& \def\mathdef1312#1{\mathtt{0x#1}}\mathdef1312{98} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{copysign}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1313#1{\mathtt{0x#1}}\mathdef1313{99} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{abs}} \\ &&|& \def\mathdef1314#1{\mathtt{0x#1}}\mathdef1314{9A} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{neg}} \\ &&|& \def\mathdef1315#1{\mathtt{0x#1}}\mathdef1315{9B} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{ceil}} \\ &&|& \def\mathdef1316#1{\mathtt{0x#1}}\mathdef1316{9C} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{floor}} \\ &&|& \def\mathdef1317#1{\mathtt{0x#1}}\mathdef1317{9D} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}} \\ &&|& \def\mathdef1318#1{\mathtt{0x#1}}\mathdef1318{9E} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{nearest}} \\ &&|& \def\mathdef1319#1{\mathtt{0x#1}}\mathdef1319{9F} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sqrt}} \\ &&|& \def\mathdef1320#1{\mathtt{0x#1}}\mathdef1320{A0} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{add}} \\ &&|& \def\mathdef1321#1{\mathtt{0x#1}}\mathdef1321{A1} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{sub}} \\ &&|& \def\mathdef1322#1{\mathtt{0x#1}}\mathdef1322{A2} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{mul}} \\ &&|& \def\mathdef1323#1{\mathtt{0x#1}}\mathdef1323{A3} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{div}} \\ &&|& \def\mathdef1324#1{\mathtt{0x#1}}\mathdef1324{A4} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{min}} \\ &&|& \def\mathdef1325#1{\mathtt{0x#1}}\mathdef1325{A5} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{max}} \\ &&|& \def\mathdef1326#1{\mathtt{0x#1}}\mathdef1326{A6} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{copysign}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1327#1{\mathtt{0x#1}}\mathdef1327{A7} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{wrap}}\mathsf{/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ &&|& \def\mathdef1328#1{\mathtt{0x#1}}\mathdef1328{A8} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1329#1{\mathtt{0x#1}}\mathdef1329{A9} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1330#1{\mathtt{0x#1}}\mathdef1330{AA} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1331#1{\mathtt{0x#1}}\mathdef1331{AB} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1332#1{\mathtt{0x#1}}\mathdef1332{AC} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1333#1{\mathtt{0x#1}}\mathdef1333{AD} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1334#1{\mathtt{0x#1}}\mathdef1334{AE} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1335#1{\mathtt{0x#1}}\mathdef1335{AF} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1336#1{\mathtt{0x#1}}\mathdef1336{B0} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1337#1{\mathtt{0x#1}}\mathdef1337{B1} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{trunc}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1338#1{\mathtt{0x#1}}\mathdef1338{B2} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1339#1{\mathtt{0x#1}}\mathdef1339{B3} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1340#1{\mathtt{0x#1}}\mathdef1340{B4} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ &&|& \def\mathdef1341#1{\mathtt{0x#1}}\mathdef1341{B5} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ &&|& \def\mathdef1342#1{\mathtt{0x#1}}\mathdef1342{B6} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{demote}}\mathsf{/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1343#1{\mathtt{0x#1}}\mathdef1343{B7} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1344#1{\mathtt{0x#1}}\mathdef1344{B8} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1345#1{\mathtt{0x#1}}\mathdef1345{B9} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_s/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ &&|& \def\mathdef1346#1{\mathtt{0x#1}}\mathdef1346{BA} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{convert}}\mathsf{\_u/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ &&|& \def\mathdef1347#1{\mathtt{0x#1}}\mathdef1347{BB} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{promote}}\mathsf{/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1348#1{\mathtt{0x#1}}\mathdef1348{BC} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f32}} \\ &&|& \def\mathdef1349#1{\mathtt{0x#1}}\mathdef1349{BD} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{/}\href{../syntax/types.html#syntax-valtype}{\mathsf{f64}} \\ &&|& \def\mathdef1350#1{\mathtt{0x#1}}\mathdef1350{BE} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}} \\ &&|& \def\mathdef1351#1{\mathtt{0x#1}}\mathdef1351{BF} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{f64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{reinterpret}}\mathsf{/}\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}} \\ \end{array}\end{split}\]
\[\begin{split}\begin{array}{llclll} \phantom{\def\mathdef983#1{{}}\mathdef983{instruction}} & \phantom{\href{../binary/instructions.html#binary-instr}{\mathtt{instr}}} &\phantom{::=}& \phantom{\dots} && \phantom{thisshouldbeenough} \\[-2ex] &&|& \def\mathdef1352#1{\mathtt{0x#1}}\mathdef1352{C0} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{8\_s} \\ &&|& \def\mathdef1353#1{\mathtt{0x#1}}\mathdef1353{C1} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{16\_s} \\ &&|& \def\mathdef1354#1{\mathtt{0x#1}}\mathdef1354{C2} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{8\_s} \\ &&|& \def\mathdef1355#1{\mathtt{0x#1}}\mathdef1355{C3} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{16\_s} \\ &&|& \def\mathdef1356#1{\mathtt{0x#1}}\mathdef1356{C4} &\Rightarrow& \href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}.\href{../syntax/instructions.html#syntax-instr-numeric}{\mathsf{extend}}\mathsf{32\_s} \\ \end{array}\end{split}\]

Expressions

Expressions are encoded by their instruction sequence terminated with an explicit \(\def\mathdef1357#1{\mathtt{0x#1}}\mathdef1357{0B}\) opcode for \(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}}\).

\[\begin{split}\begin{array}{llclll} \def\mathdef983#1{{}}\mathdef983{expression} & \href{../binary/instructions.html#binary-expr}{\mathtt{expr}} &::=& (\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~\def\mathdef1358#1{\mathtt{0x#1}}\mathdef1358{0B} &\Rightarrow& \mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ \end{array}\end{split}\]