| .. index:: instruction |
| .. _index-instr: |
| |
| Index of Instructions |
| --------------------- |
| |
| ====================================== ================ ========================================== ======================================== =============================================================== |
| Instruction Binary Opcode Type Validation Execution |
| ====================================== ================ ========================================== ======================================== =============================================================== |
| :math:`\UNREACHABLE` :math:`\hex{00}` :math:`[t_1^\ast] \to [t_2^\ast]` :ref:`validation <valid-unreachable>` :ref:`execution <exec-unreachable>` |
| :math:`\NOP` :math:`\hex{01}` :math:`[] \to []` :ref:`validation <valid-nop>` :ref:`execution <exec-nop>` |
| :math:`\BLOCK~[t^?]` :math:`\hex{02}` :math:`[] \to [t^\ast]` :ref:`validation <valid-block>` :ref:`execution <exec-block>` |
| :math:`\LOOP~[t^?]` :math:`\hex{03}` :math:`[] \to [t^\ast]` :ref:`validation <valid-loop>` :ref:`execution <exec-loop>` |
| :math:`\IF~[t^?]` :math:`\hex{04}` :math:`[\I32] \to [t^\ast]` :ref:`validation <valid-if>` :ref:`execution <exec-if>` |
| :math:`\ELSE` :math:`\hex{05}` |
| (reserved) :math:`\hex{06}` |
| (reserved) :math:`\hex{07}` |
| (reserved) :math:`\hex{08}` |
| (reserved) :math:`\hex{09}` |
| (reserved) :math:`\hex{0A}` |
| :math:`\END` :math:`\hex{0B}` |
| :math:`\BR~l` :math:`\hex{0C}` :math:`[t_1^\ast~t^?] \to [t_2^\ast]` :ref:`validation <valid-br>` :ref:`execution <exec-br>` |
| :math:`\BRIF~l` :math:`\hex{0D}` :math:`[t^?~\I32] \to [t^?]` :ref:`validation <valid-br_if>` :ref:`execution <exec-br_if>` |
| :math:`\BRTABLE~l^\ast~l` :math:`\hex{0E}` :math:`[t_1^\ast~t^?~\I32] \to [t_2^\ast]` :ref:`validation <valid-br_table>` :ref:`execution <exec-br_table>` |
| :math:`\RETURN` :math:`\hex{0F}` :math:`[t_1^\ast~t^?] \to [t_2^\ast]` :ref:`validation <valid-return>` :ref:`execution <exec-return>` |
| :math:`\CALL~x` :math:`\hex{10}` :math:`[t_1^\ast] \to [t_2^\ast]` :ref:`validation <valid-call>` :ref:`execution <exec-call>` |
| :math:`\CALLINDIRECT~x` :math:`\hex{11}` :math:`[t_1^\ast~\I32] \to [t_2^\ast]` :ref:`validation <valid-call_indirect>` :ref:`execution <exec-call_indirect>` |
| (reserved) :math:`\hex{12}` |
| (reserved) :math:`\hex{13}` |
| (reserved) :math:`\hex{14}` |
| (reserved) :math:`\hex{15}` |
| (reserved) :math:`\hex{16}` |
| (reserved) :math:`\hex{17}` |
| (reserved) :math:`\hex{18}` |
| (reserved) :math:`\hex{19}` |
| :math:`\DROP` :math:`\hex{1A}` :math:`[t] \to []` :ref:`validation <valid-drop>` :ref:`execution <exec-drop>` |
| :math:`\SELECT` :math:`\hex{1B}` :math:`[t~t~\I32] \to [t]` :ref:`validation <valid-select>` :ref:`execution <exec-select>` |
| (reserved) :math:`\hex{1C}` |
| (reserved) :math:`\hex{1D}` |
| (reserved) :math:`\hex{1E}` |
| (reserved) :math:`\hex{1F}` |
| :math:`\LOCALGET~x` :math:`\hex{20}` :math:`[] \to [t]` :ref:`validation <valid-local.get>` :ref:`execution <exec-local.get>` |
| :math:`\LOCALSET~x` :math:`\hex{21}` :math:`[t] \to []` :ref:`validation <valid-local.set>` :ref:`execution <exec-local.set>` |
| :math:`\LOCALTEE~x` :math:`\hex{22}` :math:`[t] \to [t]` :ref:`validation <valid-local.tee>` :ref:`execution <exec-local.tee>` |
| :math:`\GLOBALGET~x` :math:`\hex{23}` :math:`[] \to [t]` :ref:`validation <valid-global.get>` :ref:`execution <exec-global.get>` |
| :math:`\GLOBALSET~x` :math:`\hex{24}` :math:`[t] \to []` :ref:`validation <valid-global.set>` :ref:`execution <exec-global.set>` |
| (reserved) :math:`\hex{25}` |
| (reserved) :math:`\hex{26}` |
| (reserved) :math:`\hex{27}` |
| :math:`\I32.\LOAD~\memarg` :math:`\hex{28}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-load>` :ref:`execution <exec-load>` |
| :math:`\I64.\LOAD~\memarg` :math:`\hex{29}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-load>` :ref:`execution <exec-load>` |
| :math:`\F32.\LOAD~\memarg` :math:`\hex{2A}` :math:`[\I32] \to [\F32]` :ref:`validation <valid-load>` :ref:`execution <exec-load>` |
| :math:`\F64.\LOAD~\memarg` :math:`\hex{2B}` :math:`[\I32] \to [\F64]` :ref:`validation <valid-load>` :ref:`execution <exec-load>` |
| :math:`\I32.\LOAD\K{8\_s}~\memarg` :math:`\hex{2C}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I32.\LOAD\K{8\_u}~\memarg` :math:`\hex{2D}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I32.\LOAD\K{16\_s}~\memarg` :math:`\hex{2E}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I32.\LOAD\K{16\_u}~\memarg` :math:`\hex{2F}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I64.\LOAD\K{8\_s}~\memarg` :math:`\hex{30}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I64.\LOAD\K{8\_u}~\memarg` :math:`\hex{31}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I64.\LOAD\K{16\_s}~\memarg` :math:`\hex{32}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I64.\LOAD\K{16\_u}~\memarg` :math:`\hex{33}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I64.\LOAD\K{32\_s}~\memarg` :math:`\hex{34}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I64.\LOAD\K{32\_u}~\memarg` :math:`\hex{35}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-loadn>` :ref:`execution <exec-loadn>` |
| :math:`\I32.\STORE~\memarg` :math:`\hex{36}` :math:`[\I32~\I32] \to []` :ref:`validation <valid-store>` :ref:`execution <exec-store>` |
| :math:`\I64.\STORE~\memarg` :math:`\hex{37}` :math:`[\I32~\I64] \to []` :ref:`validation <valid-store>` :ref:`execution <exec-store>` |
| :math:`\F32.\STORE~\memarg` :math:`\hex{38}` :math:`[\I32~\F32] \to []` :ref:`validation <valid-store>` :ref:`execution <exec-store>` |
| :math:`\F64.\STORE~\memarg` :math:`\hex{39}` :math:`[\I32~\F64] \to []` :ref:`validation <valid-store>` :ref:`execution <exec-store>` |
| :math:`\I32.\STORE\K{8}~\memarg` :math:`\hex{3A}` :math:`[\I32~\I32] \to []` :ref:`validation <valid-storen>` :ref:`execution <exec-storen>` |
| :math:`\I32.\STORE\K{16}~\memarg` :math:`\hex{3B}` :math:`[\I32~\I32] \to []` :ref:`validation <valid-storen>` :ref:`execution <exec-storen>` |
| :math:`\I64.\STORE\K{8}~\memarg` :math:`\hex{3C}` :math:`[\I32~\I64] \to []` :ref:`validation <valid-storen>` :ref:`execution <exec-storen>` |
| :math:`\I64.\STORE\K{16}~\memarg` :math:`\hex{3D}` :math:`[\I32~\I64] \to []` :ref:`validation <valid-storen>` :ref:`execution <exec-storen>` |
| :math:`\I64.\STORE\K{32}~\memarg` :math:`\hex{3E}` :math:`[\I32~\I64] \to []` :ref:`validation <valid-storen>` :ref:`execution <exec-storen>` |
| :math:`\MEMORYSIZE` :math:`\hex{3F}` :math:`[] \to [\I32]` :ref:`validation <valid-memory.size>` :ref:`execution <exec-memory.size>` |
| :math:`\MEMORYGROW` :math:`\hex{40}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-memory.grow>` :ref:`execution <exec-memory.grow>` |
| :math:`\I32.\CONST~\i32` :math:`\hex{41}` :math:`[] \to [\I32]` :ref:`validation <valid-const>` :ref:`execution <exec-const>` |
| :math:`\I64.\CONST~\i64` :math:`\hex{42}` :math:`[] \to [\I64]` :ref:`validation <valid-const>` :ref:`execution <exec-const>` |
| :math:`\F32.\CONST~\f32` :math:`\hex{43}` :math:`[] \to [\F32]` :ref:`validation <valid-const>` :ref:`execution <exec-const>` |
| :math:`\F64.\CONST~\f64` :math:`\hex{44}` :math:`[] \to [\F64]` :ref:`validation <valid-const>` :ref:`execution <exec-const>` |
| :math:`\I32.\EQZ` :math:`\hex{45}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-testop>` :ref:`execution <exec-testop>`, :ref:`operator <op-ieqz>` |
| :math:`\I32.\EQ` :math:`\hex{46}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ieq>` |
| :math:`\I32.\NE` :math:`\hex{47}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ine>` |
| :math:`\I32.\LT\K{\_s}` :math:`\hex{48}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ilt_s>` |
| :math:`\I32.\LT\K{\_u}` :math:`\hex{49}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ilt_u>` |
| :math:`\I32.\GT\K{\_s}` :math:`\hex{4A}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-igt_s>` |
| :math:`\I32.\GT\K{\_u}` :math:`\hex{4B}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-igt_u>` |
| :math:`\I32.\LE\K{\_s}` :math:`\hex{4C}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ile_s>` |
| :math:`\I32.\LE\K{\_u}` :math:`\hex{4D}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ile_u>` |
| :math:`\I32.\GE\K{\_s}` :math:`\hex{4E}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ige_s>` |
| :math:`\I32.\GE\K{\_u}` :math:`\hex{4F}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ige_u>` |
| :math:`\I64.\EQZ` :math:`\hex{50}` :math:`[\I64] \to [\I32]` :ref:`validation <valid-testop>` :ref:`execution <exec-testop>`, :ref:`operator <op-ieqz>` |
| :math:`\I64.\EQ` :math:`\hex{51}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ieq>` |
| :math:`\I64.\NE` :math:`\hex{52}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ine>` |
| :math:`\I64.\LT\K{\_s}` :math:`\hex{53}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ilt_s>` |
| :math:`\I64.\LT\K{\_u}` :math:`\hex{54}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ilt_u>` |
| :math:`\I64.\GT\K{\_s}` :math:`\hex{55}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-igt_s>` |
| :math:`\I64.\GT\K{\_u}` :math:`\hex{56}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-igt_u>` |
| :math:`\I64.\LE\K{\_s}` :math:`\hex{57}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ile_s>` |
| :math:`\I64.\LE\K{\_u}` :math:`\hex{58}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ile_u>` |
| :math:`\I64.\GE\K{\_s}` :math:`\hex{59}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ige_s>` |
| :math:`\I64.\GE\K{\_u}` :math:`\hex{5A}` :math:`[\I64~\I64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-ige_u>` |
| :math:`\F32.\EQ` :math:`\hex{5B}` :math:`[\F32~\F32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-feq>` |
| :math:`\F32.\NE` :math:`\hex{5C}` :math:`[\F32~\F32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fne>` |
| :math:`\F32.\LT` :math:`\hex{5D}` :math:`[\F32~\F32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-flt>` |
| :math:`\F32.\GT` :math:`\hex{5E}` :math:`[\F32~\F32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fgt>` |
| :math:`\F32.\LE` :math:`\hex{5F}` :math:`[\F32~\F32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fle>` |
| :math:`\F32.\GE` :math:`\hex{60}` :math:`[\F32~\F32] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fge>` |
| :math:`\F64.\EQ` :math:`\hex{61}` :math:`[\F64~\F64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-feq>` |
| :math:`\F64.\NE` :math:`\hex{62}` :math:`[\F64~\F64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fne>` |
| :math:`\F64.\LT` :math:`\hex{63}` :math:`[\F64~\F64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-flt>` |
| :math:`\F64.\GT` :math:`\hex{64}` :math:`[\F64~\F64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fgt>` |
| :math:`\F64.\LE` :math:`\hex{65}` :math:`[\F64~\F64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fle>` |
| :math:`\F64.\GE` :math:`\hex{66}` :math:`[\F64~\F64] \to [\I32]` :ref:`validation <valid-relop>` :ref:`execution <exec-relop>`, :ref:`operator <op-fge>` |
| :math:`\I32.\CLZ` :math:`\hex{67}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-iclz>` |
| :math:`\I32.\CTZ` :math:`\hex{68}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ictz>` |
| :math:`\I32.\POPCNT` :math:`\hex{69}` :math:`[\I32] \to [\I32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ipopcnt>` |
| :math:`\I32.\ADD` :math:`\hex{6A}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-iadd>` |
| :math:`\I32.\SUB` :math:`\hex{6B}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-isub>` |
| :math:`\I32.\MUL` :math:`\hex{6C}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-imul>` |
| :math:`\I32.\DIV\K{\_s}` :math:`\hex{6D}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-idiv_s>` |
| :math:`\I32.\DIV\K{\_u}` :math:`\hex{6E}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-idiv_u>` |
| :math:`\I32.\REM\K{\_s}` :math:`\hex{6F}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irem_s>` |
| :math:`\I32.\REM\K{\_u}` :math:`\hex{70}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irem_u>` |
| :math:`\I32.\AND` :math:`\hex{71}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-iand>` |
| :math:`\I32.\OR` :math:`\hex{72}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ior>` |
| :math:`\I32.\XOR` :math:`\hex{73}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ixor>` |
| :math:`\I32.\SHL` :math:`\hex{74}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ishl>` |
| :math:`\I32.\SHR\K{\_s}` :math:`\hex{75}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ishr_s>` |
| :math:`\I32.\SHR\K{\_u}` :math:`\hex{76}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ishr_u>` |
| :math:`\I32.\ROTL` :math:`\hex{77}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irotl>` |
| :math:`\I32.\ROTR` :math:`\hex{78}` :math:`[\I32~\I32] \to [\I32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irotr>` |
| :math:`\I64.\CLZ` :math:`\hex{79}` :math:`[\I64] \to [\I64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-iclz>` |
| :math:`\I64.\CTZ` :math:`\hex{7A}` :math:`[\I64] \to [\I64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ictz>` |
| :math:`\I64.\POPCNT` :math:`\hex{7B}` :math:`[\I64] \to [\I64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ipopcnt>` |
| :math:`\I64.\ADD` :math:`\hex{7C}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-iadd>` |
| :math:`\I64.\SUB` :math:`\hex{7D}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-isub>` |
| :math:`\I64.\MUL` :math:`\hex{7E}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-imul>` |
| :math:`\I64.\DIV\K{\_s}` :math:`\hex{7F}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-idiv_s>` |
| :math:`\I64.\DIV\K{\_u}` :math:`\hex{80}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-idiv_u>` |
| :math:`\I64.\REM\K{\_s}` :math:`\hex{81}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irem_s>` |
| :math:`\I64.\REM\K{\_u}` :math:`\hex{82}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irem_u>` |
| :math:`\I64.\AND` :math:`\hex{83}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-iand>` |
| :math:`\I64.\OR` :math:`\hex{84}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ior>` |
| :math:`\I64.\XOR` :math:`\hex{85}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ixor>` |
| :math:`\I64.\SHL` :math:`\hex{86}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ishl>` |
| :math:`\I64.\SHR\K{\_s}` :math:`\hex{87}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ishr_s>` |
| :math:`\I64.\SHR\K{\_u}` :math:`\hex{88}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-ishr_u>` |
| :math:`\I64.\ROTL` :math:`\hex{89}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irotl>` |
| :math:`\I64.\ROTR` :math:`\hex{8A}` :math:`[\I64~\I64] \to [\I64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-irotr>` |
| :math:`\F32.\ABS` :math:`\hex{8B}` :math:`[\F32] \to [\F32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fabs>` |
| :math:`\F32.\NEG` :math:`\hex{8C}` :math:`[\F32] \to [\F32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fneg>` |
| :math:`\F32.\CEIL` :math:`\hex{8D}` :math:`[\F32] \to [\F32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fceil>` |
| :math:`\F32.\FLOOR` :math:`\hex{8E}` :math:`[\F32] \to [\F32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ffloor>` |
| :math:`\F32.\TRUNC` :math:`\hex{8F}` :math:`[\F32] \to [\F32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ftrunc>` |
| :math:`\F32.\NEAREST` :math:`\hex{90}` :math:`[\F32] \to [\F32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fnearest>` |
| :math:`\F32.\SQRT` :math:`\hex{91}` :math:`[\F32] \to [\F32]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fsqrt>` |
| :math:`\F32.\ADD` :math:`\hex{92}` :math:`[\F32~\F32] \to [\F32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fadd>` |
| :math:`\F32.\SUB` :math:`\hex{93}` :math:`[\F32~\F32] \to [\F32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fsub>` |
| :math:`\F32.\MUL` :math:`\hex{94}` :math:`[\F32~\F32] \to [\F32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fmul>` |
| :math:`\F32.\DIV` :math:`\hex{95}` :math:`[\F32~\F32] \to [\F32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fdiv>` |
| :math:`\F32.\FMIN` :math:`\hex{96}` :math:`[\F32~\F32] \to [\F32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fmin>` |
| :math:`\F32.\FMAX` :math:`\hex{97}` :math:`[\F32~\F32] \to [\F32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fmax>` |
| :math:`\F32.\COPYSIGN` :math:`\hex{98}` :math:`[\F32~\F32] \to [\F32]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fcopysign>` |
| :math:`\F64.\ABS` :math:`\hex{99}` :math:`[\F64] \to [\F64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fabs>` |
| :math:`\F64.\NEG` :math:`\hex{9A}` :math:`[\F64] \to [\F64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fneg>` |
| :math:`\F64.\CEIL` :math:`\hex{9B}` :math:`[\F64] \to [\F64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fceil>` |
| :math:`\F64.\FLOOR` :math:`\hex{9C}` :math:`[\F64] \to [\F64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ffloor>` |
| :math:`\F64.\TRUNC` :math:`\hex{9D}` :math:`[\F64] \to [\F64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-ftrunc>` |
| :math:`\F64.\NEAREST` :math:`\hex{9E}` :math:`[\F64] \to [\F64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fnearest>` |
| :math:`\F64.\SQRT` :math:`\hex{9F}` :math:`[\F64] \to [\F64]` :ref:`validation <valid-unop>` :ref:`execution <exec-unop>`, :ref:`operator <op-fsqrt>` |
| :math:`\F64.\ADD` :math:`\hex{A0}` :math:`[\F64~\F64] \to [\F64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fadd>` |
| :math:`\F64.\SUB` :math:`\hex{A1}` :math:`[\F64~\F64] \to [\F64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fsub>` |
| :math:`\F64.\MUL` :math:`\hex{A2}` :math:`[\F64~\F64] \to [\F64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fmul>` |
| :math:`\F64.\DIV` :math:`\hex{A3}` :math:`[\F64~\F64] \to [\F64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fdiv>` |
| :math:`\F64.\FMIN` :math:`\hex{A4}` :math:`[\F64~\F64] \to [\F64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fmin>` |
| :math:`\F64.\FMAX` :math:`\hex{A5}` :math:`[\F64~\F64] \to [\F64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fmax>` |
| :math:`\F64.\COPYSIGN` :math:`\hex{A6}` :math:`[\F64~\F64] \to [\F64]` :ref:`validation <valid-binop>` :ref:`execution <exec-binop>`, :ref:`operator <op-fcopysign>` |
| :math:`\I32.\WRAP\K{\_}\I64` :math:`\hex{A7}` :math:`[\I64] \to [\I32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-wrap>` |
| :math:`\I32.\TRUNC\K{\_}\F32\K{\_s}` :math:`\hex{A8}` :math:`[\F32] \to [\I32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_s>` |
| :math:`\I32.\TRUNC\K{\_}\F32\K{\_u}` :math:`\hex{A9}` :math:`[\F32] \to [\I32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_u>` |
| :math:`\I32.\TRUNC\K{\_}\F64\K{\_s}` :math:`\hex{AA}` :math:`[\F64] \to [\I32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_s>` |
| :math:`\I32.\TRUNC\K{\_}\F64\K{\_u}` :math:`\hex{AB}` :math:`[\F64] \to [\I32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_u>` |
| :math:`\I64.\EXTEND\K{\_}\I32\K{\_s}` :math:`\hex{AC}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-extend_s>` |
| :math:`\I64.\EXTEND\K{\_}\I32\K{\_u}` :math:`\hex{AD}` :math:`[\I32] \to [\I64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-extend_u>` |
| :math:`\I64.\TRUNC\K{\_}\F32\K{\_s}` :math:`\hex{AE}` :math:`[\F32] \to [\I64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_s>` |
| :math:`\I64.\TRUNC\K{\_}\F32\K{\_u}` :math:`\hex{AF}` :math:`[\F32] \to [\I64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_u>` |
| :math:`\I64.\TRUNC\K{\_}\F64\K{\_s}` :math:`\hex{B0}` :math:`[\F64] \to [\I64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_s>` |
| :math:`\I64.\TRUNC\K{\_}\F64\K{\_u}` :math:`\hex{B1}` :math:`[\F64] \to [\I64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-trunc_u>` |
| :math:`\F32.\CONVERT\K{\_}\I32\K{\_s}` :math:`\hex{B2}` :math:`[\I32] \to [\F32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_s>` |
| :math:`\F32.\CONVERT\K{\_}\I32\K{\_u}` :math:`\hex{B3}` :math:`[\I32] \to [\F32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_u>` |
| :math:`\F32.\CONVERT\K{\_}\I64\K{\_s}` :math:`\hex{B4}` :math:`[\I64] \to [\F32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_s>` |
| :math:`\F32.\CONVERT\K{\_}\I64\K{\_u}` :math:`\hex{B5}` :math:`[\I64] \to [\F32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_u>` |
| :math:`\F32.\DEMOTE\K{\_}\F64` :math:`\hex{B6}` :math:`[\F64] \to [\F32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-demote>` |
| :math:`\F64.\CONVERT\K{\_}\I32\K{\_s}` :math:`\hex{B7}` :math:`[\I32] \to [\F64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_s>` |
| :math:`\F64.\CONVERT\K{\_}\I32\K{\_u}` :math:`\hex{B8}` :math:`[\I32] \to [\F64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_u>` |
| :math:`\F64.\CONVERT\K{\_}\I64\K{\_s}` :math:`\hex{B9}` :math:`[\I64] \to [\F64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_s>` |
| :math:`\F64.\CONVERT\K{\_}\I64\K{\_u}` :math:`\hex{BA}` :math:`[\I64] \to [\F64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-convert_u>` |
| :math:`\F64.\PROMOTE\K{\_}\F32` :math:`\hex{BB}` :math:`[\F32] \to [\F64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-promote>` |
| :math:`\I32.\REINTERPRET\K{\_}\F32` :math:`\hex{BC}` :math:`[\F32] \to [\I32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-reinterpret>` |
| :math:`\I64.\REINTERPRET\K{\_}\F64` :math:`\hex{BD}` :math:`[\F64] \to [\I64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-reinterpret>` |
| :math:`\F32.\REINTERPRET\K{\_}\I32` :math:`\hex{BE}` :math:`[\I32] \to [\F32]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-reinterpret>` |
| :math:`\F64.\REINTERPRET\K{\_}\I64` :math:`\hex{BF}` :math:`[\I64] \to [\F64]` :ref:`validation <valid-cvtop>` :ref:`execution <exec-cvtop>`, :ref:`operator <op-reinterpret>` |
| ====================================== ================ ========================================== ======================================== =============================================================== |