Binary Format¶
Instructions¶
Control Instructions¶
\[\begin{split}\begin{array}{@{}llcllll}
\def\mathdef45#1{{}}\mathdef45{instruction} & \href{../binary/instructions.html#binary-instr}{\mathtt{instr}} &::=& \dots \\ &&|&
\def\mathdef84#1{\mathtt{0x#1}}\mathdef84{06}~~\mathit{bt}{:}\href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}}~~
(\mathit{in}_1{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~ \\&&&
(\def\mathdef85#1{\mathtt{0x#1}}\mathdef85{07}~~x{:}\href{../binary/modules.html#binary-tagidx}{\mathtt{tagidx}}~~(\mathit{in}_2{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast)^\ast~~ \\&&&
(\def\mathdef86#1{\mathtt{0x#1}}\mathdef86{19}~~(\mathit{in}_3{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast)^?~~\def\mathdef87#1{\mathtt{0x#1}}\mathdef87{0B}
&\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{try}}~\mathit{bt}~\mathit{in}_1^\ast~(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{catch}}~x~\mathit{in}_2^\ast)^\ast~
(\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{catch\_all}}~\mathit{in}_3^\ast)^?\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{end}} \\ &&|&
\def\mathdef88#1{\mathtt{0x#1}}\mathdef88{06}~~\mathit{bt}{:}\href{../binary/instructions.html#binary-blocktype}{\mathtt{blocktype}}~~(\mathit{in}{:}\href{../binary/instructions.html#binary-instr}{\mathtt{instr}})^\ast~~ \\&&&
\def\mathdef89#1{\mathtt{0x#1}}\mathdef89{18}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}}
&\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{try}}~\mathit{bt}~\mathit{in}^\ast~\href{../syntax/instructions.html#syntax-instr-control}{\mathsf{delegate}}~l \\ &&|&
\def\mathdef90#1{\mathtt{0x#1}}\mathdef90{09}~~l{:}\href{../binary/modules.html#binary-labelidx}{\mathtt{labelidx}} &\Rightarrow& \href{../syntax/instructions.html#syntax-instr-control}{\mathsf{rethrow}}~l \\
\end{array}\end{split}\]