Skip to content

Commit dd72ab9

Browse files
committed
Merge remote-tracking branch 'upstream/main' into HEAD
2 parents 11f6045 + 45f9845 commit dd72ab9

28 files changed

+199
-168
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
- run: pip install bikeshed && bikeshed update
6464
- run: pip install six
6565
- run: sudo apt-get update -y && sudo apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
66-
- run: pip install sphinx==4.0.0
66+
- run: pip install sphinx==5.1.0
6767
- run: cd document/core && make all
6868
- uses: actions/upload-artifact@v2
6969
with:

document/core/appendix/embedding.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Failure of an interface operation is indicated by an auxiliary syntactic class:
3333

3434
.. math::
3535
\begin{array}{llll}
36-
\production{(error)} & \error &::=& \ERROR \\
36+
\production{error} & \error &::=& \ERROR \\
3737
\end{array}
3838
3939
In addition to the error conditions specified explicitly in this section, implementations may also return errors when specific :ref:`implementation limitations <impl>` are reached.

document/core/appendix/gen-index-instructions.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -427,10 +427,10 @@ def Instruction(name, opcode, type=None, validation=None, execution=None, operat
427427
Instruction(r'\V128.\LOAD\K{16\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{55}', r'[\I32~\V128] \to [\V128]', r'valid-load-lane', r'exec-load-lane'),
428428
Instruction(r'\V128.\LOAD\K{32\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{56}', r'[\I32~\V128] \to [\V128]', r'valid-load-lane', r'exec-load-lane'),
429429
Instruction(r'\V128.\LOAD\K{64\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{57}', r'[\I32~\V128] \to [\V128]', r'valid-load-lane', r'exec-load-lane'),
430-
Instruction(r'\V128.\STORE\K{8\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{58}', r'[\I32~\V128] \to [\V128]', r'valid-store-lane', r'exec-store-lane'),
431-
Instruction(r'\V128.\STORE\K{16\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{59}', r'[\I32~\V128] \to [\V128]', r'valid-store-lane', r'exec-store-lane'),
432-
Instruction(r'\V128.\STORE\K{32\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{5A}', r'[\I32~\V128] \to [\V128]', r'valid-store-lane', r'exec-store-lane'),
433-
Instruction(r'\V128.\STORE\K{64\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{5B}', r'[\I32~\V128] \to [\V128]', r'valid-store-lane', r'exec-store-lane'),
430+
Instruction(r'\V128.\STORE\K{8\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{58}', r'[\I32~\V128] \to []', r'valid-store-lane', r'exec-store-lane'),
431+
Instruction(r'\V128.\STORE\K{16\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{59}', r'[\I32~\V128] \to []', r'valid-store-lane', r'exec-store-lane'),
432+
Instruction(r'\V128.\STORE\K{32\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{5A}', r'[\I32~\V128] \to []', r'valid-store-lane', r'exec-store-lane'),
433+
Instruction(r'\V128.\STORE\K{64\_lane}~\memarg~\laneidx', r'\hex{FD}~~\hex{5B}', r'[\I32~\V128] \to []', r'valid-store-lane', r'exec-store-lane'),
434434
Instruction(r'\V128.\LOAD\K{32\_zero}~\memarg~\laneidx', r'\hex{FD}~~\hex{5C}', r'[\I32] \to [\V128]', r'valid-load-zero', r'exec-load-zero'),
435435
Instruction(r'\V128.\LOAD\K{64\_zero}~\memarg~\laneidx', r'\hex{FD}~~\hex{5D}', r'[\I32] \to [\V128]', r'valid-load-zero', r'exec-load-zero'),
436436
Instruction(r'\F32X4.\VDEMOTE\K{\_f64x2\_zero}', r'\hex{FD}~~\hex{5E}', r'[\V128] \to [\V128]', r'valid-vcvtop', r'exec-vcvtop', r'op-demote'),

document/core/appendix/index-instructions.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,10 +367,10 @@ Instruction Binary Opcode
367367
:math:`\V128.\LOAD\K{16\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{55}` :math:`[\I32~\V128] \to [\V128]` :ref:`validation <valid-load-lane>` :ref:`execution <exec-load-lane>`
368368
:math:`\V128.\LOAD\K{32\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{56}` :math:`[\I32~\V128] \to [\V128]` :ref:`validation <valid-load-lane>` :ref:`execution <exec-load-lane>`
369369
:math:`\V128.\LOAD\K{64\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{57}` :math:`[\I32~\V128] \to [\V128]` :ref:`validation <valid-load-lane>` :ref:`execution <exec-load-lane>`
370-
:math:`\V128.\STORE\K{8\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{58}` :math:`[\I32~\V128] \to [\V128]` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
371-
:math:`\V128.\STORE\K{16\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{59}` :math:`[\I32~\V128] \to [\V128]` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
372-
:math:`\V128.\STORE\K{32\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{5A}` :math:`[\I32~\V128] \to [\V128]` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
373-
:math:`\V128.\STORE\K{64\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{5B}` :math:`[\I32~\V128] \to [\V128]` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
370+
:math:`\V128.\STORE\K{8\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{58}` :math:`[\I32~\V128] \to []` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
371+
:math:`\V128.\STORE\K{16\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{59}` :math:`[\I32~\V128] \to []` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
372+
:math:`\V128.\STORE\K{32\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{5A}` :math:`[\I32~\V128] \to []` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
373+
:math:`\V128.\STORE\K{64\_lane}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{5B}` :math:`[\I32~\V128] \to []` :ref:`validation <valid-store-lane>` :ref:`execution <exec-store-lane>`
374374
:math:`\V128.\LOAD\K{32\_zero}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{5C}` :math:`[\I32] \to [\V128]` :ref:`validation <valid-load-zero>` :ref:`execution <exec-load-zero>`
375375
:math:`\V128.\LOAD\K{64\_zero}~\memarg~\laneidx` :math:`\hex{FD}~~\hex{5D}` :math:`[\I32] \to [\V128]` :ref:`validation <valid-load-zero>` :ref:`execution <exec-load-zero>`
376376
:math:`\F32X4.\VDEMOTE\K{\_f64x2\_zero}` :math:`\hex{FD}~~\hex{5E}` :math:`[\V128] \to [\V128]` :ref:`validation <valid-vcvtop>` :ref:`execution <exec-vcvtop>`, :ref:`operator <op-demote>`

document/core/appendix/properties.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ Module instances are classified by *module contexts*, which are regular :ref:`co
237237
:ref:`Memory Instances <syntax-meminst>` :math:`\{ \MITYPE~\limits, \MIDATA~b^\ast \}`
238238
......................................................................................
239239

240-
* The :ref:`memory type <syntax-memtype>` :math:`\{\LMIN~n, \LMAX~m^?\}` must be :ref:`valid <valid-memtype>`.
240+
* The :ref:`memory type <syntax-memtype>` :math:`\limits` must be :ref:`valid <valid-memtype>`.
241241

242242
* The length of :math:`b^\ast` must equal :math:`\limits.\LMIN` multiplied by the :ref:`page size <page-size>` :math:`64\,\F{Ki}`.
243243

document/core/exec/instructions.rst

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ Most vector instructions are defined in terms of generic numeric operators appli
394394
.. math::
395395
\begin{array}{l}
396396
\begin{array}{lcl@{\qquad}l}
397-
(\V128\K{.}\VCONST~c_1)~(\V128\K{.}\VCONST~c_2)~\V128\K{.}\SWIZZLE &\stepto& (\V128\K{.}\VCONST~c')
397+
(\V128\K{.}\VCONST~c_1)~(\V128\K{.}\VCONST~c_2)~\I8X16\K{.}\SWIZZLE &\stepto& (\V128\K{.}\VCONST~c')
398398
\end{array}
399399
\\ \qquad
400400
\begin{array}[t]{@{}r@{~}l@{}}
@@ -431,7 +431,7 @@ Most vector instructions are defined in terms of generic numeric operators appli
431431
.. math::
432432
\begin{array}{l}
433433
\begin{array}{lcl@{\qquad}l}
434-
(\V128\K{.}\VCONST~c_1)~(\V128\K{.}\VCONST~c_2)~\V128\K{.}\SHUFFLE~x^\ast &\stepto& (\V128\K{.}\VCONST~c)
434+
(\V128\K{.}\VCONST~c_1)~(\V128\K{.}\VCONST~c_2)~\I8X16\K{.}\SHUFFLE~x^\ast &\stepto& (\V128\K{.}\VCONST~c)
435435
\end{array}
436436
\\ \qquad
437437
\begin{array}[t]{@{}r@{~}l@{}}
@@ -1256,7 +1256,7 @@ Table Instructions
12561256
.. math::
12571257
\begin{array}{l}
12581258
\begin{array}{lcl@{\qquad}l}
1259-
S; F; \TABLESIZE~x &\stepto& S; F; (\I32.\CONST~\X{sz})
1259+
S; F; (\TABLESIZE~x) &\stepto& S; F; (\I32.\CONST~\X{sz})
12601260
\end{array}
12611261
\\ \qquad
12621262
(\iff |S.\STABLES[F.\AMODULE.\MITABLES[x]].\TIELEM| = \X{sz}) \\
@@ -1288,19 +1288,21 @@ Table Instructions
12881288

12891289
10. Pop the value :math:`\val` from the stack.
12901290

1291-
11. Either, try :ref:`growing <grow-table>` :math:`\X{table}` by :math:`n` entries with initialization value :math:`\val`:
1291+
11. Let :math:`\X{err}` be the |i32| value :math:`2^{32}-1`, for which :math:`\signed_{32}(\X{err})` is :math:`-1`.
1292+
1293+
12. Either, try :ref:`growing <grow-table>` :math:`\X{table}` by :math:`n` entries with initialization value :math:`\val`:
12921294

12931295
a. If it succeeds, push the value :math:`\I32.\CONST~\X{sz}` to the stack.
12941296

1295-
b. Else, push the value :math:`\I32.\CONST~(-1)` to the stack.
1297+
b. Else, push the value :math:`\I32.\CONST~\X{err}` to the stack.
12961298

1297-
12. Or, push the value :math:`\I32.\CONST~(-1)` to the stack.
1299+
13. Or, push the value :math:`\I32.\CONST~\X{err}` to the stack.
12981300

12991301
.. math::
13001302
~\\[-1ex]
13011303
\begin{array}{l}
13021304
\begin{array}{lcl@{\qquad}l}
1303-
S; F; \val~(\I32.\CONST~n)~\TABLEGROW~x &\stepto& S'; F; (\I32.\CONST~\X{sz})
1305+
S; F; \val~(\I32.\CONST~n)~(\TABLEGROW~x) &\stepto& S'; F; (\I32.\CONST~\X{sz})
13041306
\end{array}
13051307
\\ \qquad
13061308
\begin{array}[t]{@{}r@{~}l@{}}
@@ -1310,7 +1312,7 @@ Table Instructions
13101312
\end{array}
13111313
\\[1ex]
13121314
\begin{array}{lcl@{\qquad}l}
1313-
S; F; (\I32.\CONST~n)~\TABLEGROW~x &\stepto& S; F; (\I32.\CONST~{-1})
1315+
S; F; (\I32.\CONST~n)~(\TABLEGROW~x) &\stepto& S; F; (\I32.\CONST~\signed_{32}^{-1}(-1))
13141316
\end{array}
13151317
\end{array}
13161318
@@ -1511,7 +1513,7 @@ Table Instructions
15111513
\quad\stepto
15121514
\\ \qquad S; F;
15131515
\begin{array}[t]{@{}l@{}}
1514-
(\I32.\CONST~d+n-1)~(\I32.\CONST~s+n-1)~(\TABLEGET~y)~(\TABLESET~x) \\
1516+
(\I32.\CONST~d+n)~(\I32.\CONST~s+n)~(\TABLEGET~y)~(\TABLESET~x) \\
15151517
(\I32.\CONST~d)~(\I32.\CONST~s)~(\I32.\CONST~n)~(\TABLECOPY~x~y) \\
15161518
\end{array}
15171519
\\ \qquad
@@ -1722,7 +1724,7 @@ Memory Instructions
17221724
\end{array}
17231725
\\[1ex]
17241726
\begin{array}{lcl@{\qquad}l}
1725-
S; F; (\I32.\CONST~k)~(t.\LOAD({N}\K{\_}\sx)^?~\memarg) &\stepto& S; F; \TRAP
1727+
S; F; (\I32.\CONST~i)~(t.\LOAD({N}\K{\_}\sx)^?~\memarg) &\stepto& S; F; \TRAP
17261728
\end{array}
17271729
\\ \qquad
17281730
(\otherwise) \\
@@ -1783,7 +1785,7 @@ Memory Instructions
17831785
\end{array}
17841786
\\[1ex]
17851787
\begin{array}{lcl@{\qquad}l}
1786-
S; F; (\I32.\CONST~k)~(\V128.\LOAD{M}\K{x}N\K{\_}\sx~\memarg) &\stepto& S; F; \TRAP
1788+
S; F; (\I32.\CONST~i)~(\V128.\LOAD{M}\K{x}N\K{\_}\sx~\memarg) &\stepto& S; F; \TRAP
17871789
\end{array}
17881790
\\ \qquad
17891791
(\otherwise) \\
@@ -1840,7 +1842,7 @@ Memory Instructions
18401842
\end{array}
18411843
\\[1ex]
18421844
\begin{array}{lcl@{\qquad}l}
1843-
S; F; (\I32.\CONST~k)~(\V128.\LOAD{N}\K{\_splat}~\memarg) &\stepto& S; F; \TRAP
1845+
S; F; (\I32.\CONST~i)~(\V128.\LOAD{N}\K{\_splat}~\memarg) &\stepto& S; F; \TRAP
18441846
\end{array}
18451847
\\ \qquad
18461848
(\otherwise) \\
@@ -1895,7 +1897,7 @@ Memory Instructions
18951897
\end{array}
18961898
\\[1ex]
18971899
\begin{array}{lcl@{\qquad}l}
1898-
S; F; (\I32.\CONST~k)~(\V128.\LOAD{N}\K{\_zero}~\memarg) &\stepto& S; F; \TRAP
1900+
S; F; (\I32.\CONST~i)~(\V128.\LOAD{N}\K{\_zero}~\memarg) &\stepto& S; F; \TRAP
18991901
\end{array}
19001902
\\ \qquad
19011903
(\otherwise) \\
@@ -1957,7 +1959,7 @@ Memory Instructions
19571959
\end{array}
19581960
\\[1ex]
19591961
\begin{array}{lcl@{\qquad}l}
1960-
S; F; (\I32.\CONST~k)~(\V128.\CONST~v)~(\V128.\LOAD{N}\K{\_lane}~\memarg~x) &\stepto& S; F; \TRAP
1962+
S; F; (\I32.\CONST~i)~(\V128.\CONST~v)~(\V128.\LOAD{N}\K{\_lane}~\memarg~x) &\stepto& S; F; \TRAP
19611963
\end{array}
19621964
\\ \qquad
19631965
(\otherwise) \\
@@ -2034,7 +2036,7 @@ Memory Instructions
20342036
\end{array}
20352037
\\[1ex]
20362038
\begin{array}{lcl@{\qquad}l}
2037-
S; F; (\I32.\CONST~k)~(t.\CONST~c)~(t.\STORE{N}^?~\memarg) &\stepto& S; F; \TRAP
2039+
S; F; (\I32.\CONST~i)~(t.\CONST~c)~(t.\STORE{N}^?~\memarg) &\stepto& S; F; \TRAP
20382040
\end{array}
20392041
\\ \qquad
20402042
(\otherwise) \\
@@ -2091,7 +2093,7 @@ Memory Instructions
20912093
\end{array}
20922094
\\[1ex]
20932095
\begin{array}{lcl@{\qquad}l}
2094-
S; F; (\I32.\CONST~k)~(\V128.\CONST~c)~(\V128.\STORE{N}\K{\_lane}~\memarg~x) &\stepto& S; F; \TRAP
2096+
S; F; (\I32.\CONST~i)~(\V128.\CONST~c)~(\V128.\STORE{N}\K{\_lane}~\memarg~x) &\stepto& S; F; \TRAP
20952097
\end{array}
20962098
\\ \qquad
20972099
(\otherwise) \\
@@ -2368,8 +2370,8 @@ Memory Instructions
23682370
\quad\stepto
23692371
\\ \qquad S; F;
23702372
\begin{array}[t]{@{}l@{}}
2371-
(\I32.\CONST~d+n-1) \\
2372-
(\I32.\CONST~s+n-1)~(\I32\K{.}\LOAD\K{8\_u}~\{ \OFFSET~0, \ALIGN~0 \}) \\
2373+
(\I32.\CONST~d+n) \\
2374+
(\I32.\CONST~s+n)~(\I32\K{.}\LOAD\K{8\_u}~\{ \OFFSET~0, \ALIGN~0 \}) \\
23732375
(\I32\K{.}\STORE\K{8}~\{ \OFFSET~0, \ALIGN~0 \}) \\
23742376
(\I32.\CONST~d)~(\I32.\CONST~s)~(\I32.\CONST~n)~\MEMORYCOPY \\
23752377
\end{array}
@@ -2679,7 +2681,7 @@ Control Instructions
26792681
:math:`\BRTABLE~l^\ast~l_N`
26802682
...........................
26812683

2682-
1. Assert: due to :ref:`validation <valid-if>`, a value of :ref:`value type <syntax-valtype>` |I32| is on the top of the stack.
2684+
1. Assert: due to :ref:`validation <valid-br_table>`, a value of :ref:`value type <syntax-valtype>` |I32| is on the top of the stack.
26832685

26842686
2. Pop the value :math:`\I32.\CONST~i` from the stack.
26852687

@@ -2858,22 +2860,22 @@ Exiting :math:`\instr^\ast` with label :math:`L`
28582860

28592861
When the end of a block is reached without a jump or trap aborting it, then the following steps are performed.
28602862

2861-
1. Let :math:`m` be the number of values on the top of the stack.
2863+
1. Let :math:`n` be the number of values on the top of the stack.
28622864

2863-
2. Pop the values :math:`\val^m` from the stack.
2865+
2. Pop the values :math:`\val^n` from the stack.
28642866

2865-
3. Assert: due to :ref:`validation <valid-instr-seq>`, the label :math:`L` is now on the top of the stack.
2867+
3. Assert: due to :ref:`validation <valid-instr-seq>`, the label :math:`L` is now on the top of the stack and has arity :math:`n`.
28662868

28672869
4. Pop the label from the stack.
28682870

2869-
5. Push :math:`\val^m` back to the stack.
2871+
5. Push :math:`\val^n` back to the stack.
28702872

28712873
6. Jump to the position after the |END| of the :ref:`structured control instruction <syntax-instr-control>` associated with the label :math:`L`.
28722874

28732875
.. math::
28742876
~\\[-1ex]
28752877
\begin{array}{lcl@{\qquad}l}
2876-
\LABEL_n\{\instr^\ast\}~\val^m~\END &\stepto& \val^m
2878+
\LABEL_n\{\instr^\ast\}~\val^n~\END &\stepto& \val^n
28772879
\end{array}
28782880
28792881
.. note::
@@ -2910,15 +2912,13 @@ Invocation of :ref:`function address <syntax-funcaddr>` :math:`a`
29102912

29112913
7. Pop the values :math:`\val^n` from the stack.
29122914

2913-
8. Let :math:`\val_0^\ast` be the list of zero values of types :math:`t^\ast`.
2914-
2915-
9. Let :math:`F` be the :ref:`frame <syntax-frame>` :math:`\{ \AMODULE~f.\FIMODULE, \ALOCALS~\val^n~(\default_t)^\ast \}`.
2915+
8. Let :math:`F` be the :ref:`frame <syntax-frame>` :math:`\{ \AMODULE~f.\FIMODULE, \ALOCALS~\val^n~(\default_t)^\ast \}`.
29162916

2917-
10. Push the activation of :math:`F` with arity :math:`m` to the stack.
2917+
9. Push the activation of :math:`F` with arity :math:`m` to the stack.
29182918

2919-
11. Let :math:`L` be the :ref:`label <syntax-label>` whose arity is :math:`m` and whose continuation is the end of the function.
2919+
10. Let :math:`L` be the :ref:`label <syntax-label>` whose arity is :math:`m` and whose continuation is the end of the function.
29202920

2921-
12. :ref:`Enter <exec-instr-seq-enter>` the instruction sequence :math:`\instr^\ast` with label :math:`L`.
2921+
11. :ref:`Enter <exec-instr-seq-enter>` the instruction sequence :math:`\instr^\ast` with label :math:`L`.
29222922

29232923
.. math::
29242924
~\\[-1ex]

document/core/exec/modules.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,11 @@ It is up to the :ref:`embedder <embedder>` to define how such conditions are rep
669669

670670
f. :ref:`Execute <exec-elem.drop>` the instruction :math:`\ELEMDROP~i`.
671671

672-
15. For each :ref:`data segment <syntax-data>` :math:`\data_i` in :math:`\module.\MDATAS` whose :ref:`mode <syntax-datamode>` is of the form :math:`\DACTIVE~\{ \DMEM~\memidx_i, \DOFFSET~\X{dinstr}^\ast_i~\END \}`, do:
672+
15. For each :ref:`element segment <syntax-elem>` :math:`\elem_i` in :math:`\module.\MELEMS` whose :ref:`mode <syntax-elemmode>` is of the form :math:`\EDECLARATIVE`, do:
673+
674+
a. :ref:`Execute <exec-elem.drop>` the instruction :math:`\ELEMDROP~i`.
675+
676+
16. For each :ref:`data segment <syntax-data>` :math:`\data_i` in :math:`\module.\MDATAS` whose :ref:`mode <syntax-datamode>` is of the form :math:`\DACTIVE~\{ \DMEM~\memidx_i, \DOFFSET~\X{dinstr}^\ast_i~\END \}`, do:
673677

674678
a. Assert: :math:`\memidx_i` is :math:`0`.
675679

@@ -685,15 +689,15 @@ It is up to the :ref:`embedder <embedder>` to define how such conditions are rep
685689

686690
g. :ref:`Execute <exec-data.drop>` the instruction :math:`\DATADROP~i`.
687691

688-
16. If the :ref:`start function <syntax-start>` :math:`\module.\MSTART` is not empty, then:
692+
17. If the :ref:`start function <syntax-start>` :math:`\module.\MSTART` is not empty, then:
689693

690694
a. Let :math:`\start` be the :ref:`start function <syntax-start>` :math:`\module.\MSTART`.
691695

692696
b. :ref:`Execute <exec-call>` the instruction :math:`\CALL~\start.\SFUNC`.
693697

694-
17. Assert: due to :ref:`validation <valid-module>`, the frame :math:`F` is now on the top of the stack.
698+
18. Assert: due to :ref:`validation <valid-module>`, the frame :math:`F` is now on the top of the stack.
695699

696-
18. Pop the frame :math:`F` from the stack.
700+
19. Pop the frame :math:`F` from the stack.
697701

698702

699703
.. math::

0 commit comments

Comments
 (0)