Skip to content

Commit b16745e

Browse files
committed
Merge branch 'wasm-3.0' into wasm-3.0+exn
2 parents dc444e3 + d96da54 commit b16745e

File tree

14 files changed

+125
-83
lines changed

14 files changed

+125
-83
lines changed

document/core/Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ publish-main: clean main bikeshed-keep deploy
8080
all: pdf html bikeshed
8181

8282
.PHONY: main
83-
main: pdf html
83+
main: macrosok pdf html
8484

8585
# Dirty hack to avoid rebuilding the Bikeshed version for every push.
8686
.PHONY: bikeshed-keep
@@ -97,6 +97,10 @@ GENERATED = appendix/index-instructions.rst
9797
%.rst: %.py
9898
(cd `dirname $@`; ./`basename $^`)
9999

100+
.PHONY: macrosok
101+
macrosok: $(GENERATED)
102+
sh util/check_macros.sh
103+
100104
.PHONY: pdf
101105
pdf: $(GENERATED) latexpdf
102106
mkdir -p $(BUILDDIR)/html/$(DOWNLOADDIR)

document/core/appendix/properties.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ In order to state and prove soundness precisely, the typing rules must be extend
2121

2222

2323
.. index:: context, recursive type, recursive type index
24-
.. context-rec:
24+
.. _context-ext:
2525

2626
Contexts
2727
~~~~~~~~

document/core/exec/instructions.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1776,7 +1776,7 @@ Most other vector instructions are defined in terms of numeric operators that ar
17761776
:math:`\shape\K{.}\SPLAT`
17771777
.........................
17781778

1779-
1. Let :math:`t` be the type :math:`\unpacked(\shape)`.
1779+
1. Let :math:`t` be the type :math:`\unpackshape(\shape)`.
17801780

17811781
2. Assert: due to :ref:`validation <valid-vec-splat>`, a value of :ref:`value type <syntax-valtype>` :math:`t` is on the top of the stack.
17821782

@@ -1791,7 +1791,7 @@ Most other vector instructions are defined in terms of numeric operators that ar
17911791
.. math::
17921792
\begin{array}{lcl@{\qquad}l}
17931793
(t\K{.}\CONST~c_1)~\shape\K{.}\SPLAT &\stepto& (\V128\K{.}\VCONST~c)
1794-
& (\iff t = \unpacked(\shape)
1794+
& (\iff t = \unpackshape(\shape)
17951795
\wedge c = \lanes^{-1}_{\shape}(c_1^{\dim(\shape)}))
17961796
\\
17971797
\end{array}
@@ -1810,7 +1810,7 @@ Most other vector instructions are defined in terms of numeric operators that ar
18101810

18111811
4. Let :math:`i^\ast` be the result of computing :math:`\lanes_{t_1\K{x}N}(c_1)`.
18121812

1813-
5. Let :math:`t_2` be the type :math:`\unpacked(t_1\K{x}N)`.
1813+
5. Let :math:`t_2` be the type :math:`\unpackshape(t_1\K{x}N)`.
18141814

18151815
6. Let :math:`c_2` be the result of computing :math:`\extend^{sx^?}_{t_1,t_2}(i^\ast[x])`.
18161816

@@ -1823,7 +1823,7 @@ Most other vector instructions are defined in terms of numeric operators that ar
18231823
\end{array}
18241824
\\ \qquad
18251825
\begin{array}[t]{@{}r@{~}l@{}}
1826-
(\iff & t_2 = \unpacked(t_1\K{x}N) \\
1826+
(\iff & t_2 = \unpackshape(t_1\K{x}N) \\
18271827
\wedge & c_2 = \extend^{sx^?}_{t_1,t_2}(\lanes_{t_1\K{x}N}(c_1)[x]))
18281828
\end{array}
18291829
\end{array}
@@ -1836,7 +1836,7 @@ Most other vector instructions are defined in terms of numeric operators that ar
18361836

18371837
1. Assert: due to :ref:`validation <valid-vec-replace_lane>`, :math:`x < \dim(\shape)`.
18381838

1839-
2. Let :math:`t_2` be the type :math:`\unpacked(\shape)`.
1839+
2. Let :math:`t_2` be the type :math:`\unpackshape(\shape)`.
18401840

18411841
3. Assert: due to :ref:`validation <valid-vec-replace_lane>`, a value of :ref:`value type <syntax-valtype>` :math:`t_1` is on the top of the stack.
18421842

document/core/exec/runtime.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ Conventions
572572
.. math::
573573
\begin{array}{@{}lcl}
574574
\packval_{\valtype}(\val) &=& \val \\
575-
\packval_{\packedtype}(\I32.\CONST~i) &=& \packedtype.\PACK~(\wrap_{32,|\packtype|}(i))
575+
\packval_{\packedtype}(\I32.\CONST~i) &=& \packedtype.\PACK~(\wrap_{32,|\packedtype|}(i))
576576
\end{array}
577577
578578
* The inverse conversion of a :ref:`field value <syntax-fieldval>` to a regular :ref:`value <syntax-val>` is defined as follows:
@@ -726,6 +726,7 @@ Conventions
726726
pair:: abstract syntax; administrative instruction
727727
.. _syntax-trap:
728728
.. _syntax-invoke:
729+
.. _syntax-return_invoke:
729730
.. _syntax-instr-admin:
730731

731732
Administrative Instructions

document/core/syntax/types.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ Conventions
8181
.. _type-concrete:
8282
.. _syntax-i31:
8383
.. _syntax-heaptype:
84+
.. _syntax-absheaptype:
8485

8586
Heap Types
8687
~~~~~~~~~~
@@ -298,12 +299,21 @@ Structures are heterogeneous, but require static indexing, while arrays need to
298299
\end{array}
299300
300301
.. _bitwidth-fieldtype:
302+
.. _aux-unpacktype:
301303

302304
Conventions
303305
...........
304306

305307
* The notation :math:`|t|` for :ref:`bit width <bitwidth-valtype>` extends to packed types as well, that is, :math:`|\I8| = 8` and :math:`|\I16| = 16`.
306308

309+
* The auxiliary function :math:`\unpacktype` maps a storage type to the :ref:`value type <syntax-valtype>` obtained when accessing a field:
310+
311+
.. math::
312+
\begin{array}{lll}
313+
\unpacktype(\valtype) &=& \valtype \\
314+
\unpacktype(\packedtype) &=& \I32 \\
315+
\end{array}
316+
307317
308318
.. index:: ! composite type, function type, aggreagate type, structure type, array type
309319
pair: abstract syntax; composite type

document/core/text/lexical.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,9 @@ Any token that does not fall into any of the other categories is considered *res
7171

7272
.. index:: ! white space, character, ASCII
7373
single: text format; white space
74-
.. _text-format:
7574
.. _text-space:
75+
.. _text-format:
76+
.. _text-newline:
7677

7778
White Space
7879
~~~~~~~~~~~

document/core/text/modules.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ As another abbreviation, element segments may also be specified inline with :ref
641641
single: data; segment
642642
.. _text-datastring:
643643
.. _text-data:
644-
.. _test-memuse:
644+
.. _text-memuse:
645645

646646
Data Segments
647647
~~~~~~~~~~~~~

document/core/util/check_macros.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/sh
2+
3+
cd `dirname $0`/..
4+
5+
FILES=`ls */*.rst`
6+
ERRORS=0
7+
8+
for XREF in `grep "[\\]xref" util/macros.def`; do
9+
if echo $XREF | grep -q "[|]"; then
10+
MACRO=`echo $XREF | sed 's/^[^|]*[|]//g' | sed 's/[|].*$//g'`
11+
elif echo $XREF | grep -q xref; then
12+
FILE=`echo $XREF | sed 's/^.*xref{//g' | sed 's/}.*$//g'`.rst
13+
LABEL=`echo $XREF | sed 's/^[^}]*}{//g' | sed 's/}.*$//g'`
14+
TARGET=".. _$LABEL:"
15+
if ! [ -f $FILE ] || ! grep -q "$TARGET" $FILE; then
16+
ERRORS=1
17+
echo Undefined cross-reference $FILE:$LABEL in macro "|$MACRO|"
18+
if ! [ -f $FILE ]; then
19+
echo ...non-existent file $FILE
20+
fi
21+
if grep -q "$TARGET" $FILES; then
22+
echo ...defined in `grep -l "$TARGET" $FILES`
23+
fi
24+
fi
25+
fi
26+
done
27+
28+
if [ $ERRORS -eq 0 ]; then
29+
echo All cross-references okay.
30+
else
31+
exit 1;
32+
fi

document/core/util/macros.def

Lines changed: 31 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101

102102
.. Notation for Sequences & Records
103103

104-
.. |subst| mathdef:: \xref{syntax/conventions}{notation-subst}{\mathrel{\mathbf{:=}}}
104+
.. |subst| mathdef:: \xref{valid/conventions}{notation-subst}{\mathrel{\mathbf{:=}}}
105105
.. |slice| mathdef:: \xref{syntax/conventions}{notation-slice}{\mathrel{\mathbf{:}}}
106106
.. |with| mathdef:: \xref{syntax/conventions}{notation-replace}{\mathrel{\mbox{with}}}
107107
.. |concat| mathdef:: \xref{syntax/conventions}{notation-concat}{\F{concat}}
@@ -178,13 +178,13 @@
178178
.. Types, terminals
179179

180180
.. |toF| mathdef:: \xref{syntax/types}{syntax-functype}{\rightarrow}
181-
.. |to| mathdef:: \mathrel{\xref{syntax/types}{syntax-instrtype}{\rightarrow}}
181+
.. |to| mathdef:: \mathrel{\xref{valid/conventions}{syntax-instrtype}{\rightarrow}}
182182

183183
.. |BOTH| mathdef:: \xref{valid/conventions}{syntax-heaptype-ext}{\K{bot}}
184184
.. |BOT| mathdef:: \xref{valid/conventions}{syntax-valtype-ext}{\K{bot}}
185185

186-
.. |I8| mathdef:: \xref{syntax/runtime}{syntax-storagetype}{\K{i8}}
187-
.. |I16| mathdef:: \xref{syntax/runtime}{syntax-storagetype}{\K{i16}}
186+
.. |I8| mathdef:: \xref{syntax/types}{syntax-storagetype}{\K{i8}}
187+
.. |I16| mathdef:: \xref{syntax/types}{syntax-storagetype}{\K{i16}}
188188
.. |I32| mathdef:: \xref{syntax/types}{syntax-valtype}{\K{i32}}
189189
.. |I64| mathdef:: \xref{syntax/types}{syntax-valtype}{\K{i64}}
190190
.. |F32| mathdef:: \xref{syntax/types}{syntax-valtype}{\K{f32}}
@@ -239,8 +239,8 @@
239239
.. |MVAR| mathdef:: \xref{syntax/types}{syntax-mut}{\K{var}}
240240
.. |MCONST| mathdef:: \xref{syntax/types}{syntax-mut}{\K{const}}
241241

242-
.. |SET| mathdef:: \xref{syntax/types}{syntax-init}{\K{set}}
243-
.. |UNSET| mathdef:: \xref{syntax/types}{syntax-init}{\K{unset}}
242+
.. |SET| mathdef:: \xref{valid/conventions}{syntax-init}{\K{set}}
243+
.. |UNSET| mathdef:: \xref{valid/conventions}{syntax-init}{\K{unset}}
244244

245245
.. |LMIN| mathdef:: \xref{syntax/types}{syntax-limits}{\K{min}}
246246
.. |LMAX| mathdef:: \xref{syntax/types}{syntax-limits}{\K{max}}
@@ -279,7 +279,7 @@
279279

280280
.. |limits| mathdef:: \xref{syntax/types}{syntax-limits}{\X{limits}}
281281
.. |mut| mathdef:: \xref{syntax/types}{syntax-mut}{\X{mut}}
282-
.. |init| mathdef:: \xref{syntax/types}{syntax-init}{\X{init}}
282+
.. |init| mathdef:: \xref{valid/conventions}{syntax-init}{\X{init}}
283283

284284
.. |instrtype| mathdef:: \xref{valid/conventions}{syntax-instrtype}{\X{instrtype}}
285285
.. |localtype| mathdef:: \xref{valid/conventions}{syntax-localtype}{\X{localtype}}
@@ -297,7 +297,6 @@
297297
.. |expanddt| mathdef:: \xref{valid/conventions}{aux-expand-deftype}{\F{expand}}
298298
.. |unrollht| mathdef:: \xref{appendix/properties}{aux-unroll-heaptype}{\F{unroll}}
299299

300-
.. |packtype| mathdef:: \xref{syntax/types}{aux-packtype}{\F{pack}}
301300
.. |unpacktype| mathdef:: \xref{syntax/types}{aux-unpacktype}{\F{unpack}}
302301

303302
.. |etfuncs| mathdef:: \xref{syntax/types}{syntax-externtype}{\F{funcs}}
@@ -519,10 +518,10 @@
519518
.. |ARRAYGETU| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.get\_u}}
520519
.. |ARRAYSET| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.set}}
521520
.. |ARRAYLEN| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.len}}
522-
.. |ARRAYFILL| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.fill}}
523-
.. |ARRAYCOPY| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.copy}}
524-
.. |ARRAYINITDATA| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.init\_data}}
525-
.. |ARRAYINITELEM| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.init\_elem}}
521+
.. |ARRAYFILL| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.fill}}
522+
.. |ARRAYCOPY| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.copy}}
523+
.. |ARRAYINITDATA| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.init\_data}}
524+
.. |ARRAYINITELEM| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.init\_elem}}
526525

527526
.. |REFI31| mathdef:: \xref{syntax/instructions}{syntax-instr-i31}{\K{ref.i31}}
528527
.. |I31GET| mathdef:: \xref{syntax/instructions}{syntax-instr-i31}{\K{i31.get}}
@@ -655,9 +654,7 @@
655654
.. |vunop| mathdef:: \xref{syntax/instructions}{syntax-vunop}{\X{vunop}}
656655
.. |vbinop| mathdef:: \xref{syntax/instructions}{syntax-vbinop}{\X{vbinop}}
657656
.. |vrelop| mathdef:: \xref{syntax/instructions}{syntax-vrelop}{\X{vrelop}}
658-
.. |vternop| mathdef:: \xref{syntax/instructions}{syntax-vternop}{\X{vternop}}
659657
.. |vcvtop| mathdef:: \xref{syntax/instructions}{syntax-vcvtop}{\X{vcvtop}}
660-
.. |vextmul| mathdef:: \xref{syntax/instructions}{syntax-vextmul}{\X{vextmul}}
661658

662659
.. |laneidx| mathdef:: \xref{syntax/instructions}{syntax-laneidx}{\X{laneidx}}
663660
.. |vvunop| mathdef:: \xref{syntax/instructions}{syntax-vvunop}{\X{vvunop}}
@@ -934,7 +931,7 @@
934931
.. |Tfunctype| mathdef:: \xref{text/types}{text-functype}{\T{functype}}
935932
.. |Tstructtype| mathdef:: \xref{text/types}{text-structtype}{\T{structtype}}
936933
.. |Tarraytype| mathdef:: \xref{text/types}{text-arraytype}{\T{arraytype}}
937-
.. |Taggrtype| mathdef:: \xref{text/types}{text-aggrype}{\T{aggrtype}}
934+
.. |Taggrtype| mathdef:: \xref{text/types}{text-aggrtype}{\T{aggrtype}}
938935
.. |Tfieldtype| mathdef:: \xref{text/types}{text-fieldtype}{\T{fieldtype}}
939936
.. |Tstoragetype| mathdef:: \xref{text/types}{text-storagetype}{\T{storagetype}}
940937
.. |Tpackedtype| mathdef:: \xref{text/types}{text-packedtype}{\T{packedtype}}
@@ -971,9 +968,8 @@
971968
.. Modules, non-terminals
972969

973970
.. |Tmodule| mathdef:: \xref{text/modules}{text-module}{\T{module}}
974-
.. |Tmodulebody| mathdef:: \xref{text/modules}{text-modulebody}{\T{modulebody}}
975971
.. |Tmodulefield| mathdef:: \xref{text/modules}{text-modulefield}{\T{modulefield}}
976-
.. |Ttype| mathdef:: \xref{text/modules}{text-typedef}{\T{type}}
972+
.. |Ttype| mathdef:: \xref{text/types}{text-typedef}{\T{type}}
977973
.. |Ttypeuse| mathdef:: \xref{text/modules}{text-typeuse}{\T{typeuse}}
978974
.. |Tfunc| mathdef:: \xref{text/modules}{text-func}{\T{func}}
979975
.. |Ttable| mathdef:: \xref{text/modules}{text-table}{\T{table}}
@@ -988,7 +984,6 @@
988984
.. |Telemlist| mathdef:: \xref{text/modules}{text-elemlist}{\T{elemlist}}
989985
.. |Telemexpr| mathdef:: \xref{text/modules}{text-elemexpr}{\T{elemexpr}}
990986
.. |Ttableuse| mathdef:: \xref{text/modules}{text-tableuse}{\T{tableuse}}
991-
.. |Tcode| mathdef:: \xref{text/modules}{text-code}{\T{code}}
992987
.. |Tlocal| mathdef:: \xref{text/modules}{text-local}{\T{local}}
993988
.. |Tlocals| mathdef:: \xref{text/modules}{text-local}{\T{locals}}
994989
.. |Tdata| mathdef:: \xref{text/modules}{text-data}{\T{data}}
@@ -1077,7 +1072,7 @@
10771072

10781073
.. Meta functions
10791074

1080-
.. |clostype| mathdef:: \xref{valid/conventions}{closure}{\K{clos}}
1075+
.. |clostype| mathdef:: \xref{valid/conventions}{aux-clostype}{\K{clos}}
10811076

10821077

10831078
.. Contexts
@@ -1094,7 +1089,7 @@
10941089
.. |CLABELS| mathdef:: \xref{valid/conventions}{context}{\K{labels}}
10951090
.. |CRETURN| mathdef:: \xref{valid/conventions}{context}{\K{return}}
10961091
.. |CREFS| mathdef:: \xref{valid/conventions}{context}{\K{refs}}
1097-
.. |CRECS| mathdef:: \xref{valid/matching}{context-rec}{\K{recs}}
1092+
.. |CRECS| mathdef:: \xref{appendix/properties}{context-ext}{\K{recs}}
10981093

10991094

11001095
.. Judgments
@@ -1175,7 +1170,7 @@
11751170
.. |vdashimportdesc| mathdef:: \xref{valid/modules}{valid-importdesc}{\vdash}
11761171
.. |vdashmodule| mathdef:: \xref{valid/modules}{valid-module}{\vdash}
11771172

1178-
.. |unpacked| mathdef:: \xref{valid/instructions}{aux-unpacked}{\F{unpacked}}
1173+
.. |unpackshape| mathdef:: \xref{valid/instructions}{aux-unpackshape}{\F{unpack}}
11791174
.. |dim| mathdef:: \xref{valid/instructions}{aux-dim}{\F{dim}}
11801175

11811176

@@ -1184,7 +1179,7 @@
11841179

11851180
.. Notation
11861181

1187-
.. |stepto| mathdef:: \xref{exec/conventions}{formal-notation}{\hookrightarrow}
1182+
.. |stepto| mathdef:: \xref{exec/conventions}{exec-notation}{\hookrightarrow}
11881183
.. |extendsto| mathdef:: \xref{appendix/properties}{extend}{\preceq}
11891184

11901185

@@ -1225,13 +1220,13 @@
12251220

12261221
.. Address, meta functions
12271222

1228-
.. |freefuncaddr| mathdef:: \xref{syntax/modules}{syntax-funcaddr}{\F{funcaddr}}
1229-
.. |freetableaddr| mathdef:: \xref{syntax/modules}{syntax-tableaddr}{\F{tableaddr}}
1230-
.. |freememaddr| mathdef:: \xref{syntax/modules}{syntax-memaddr}{\F{memaddr}}
1231-
.. |freeglobaladdr| mathdef:: \xref{syntax/modules}{syntax-globaladdr}{\F{globaladdr}}
1232-
.. |freetagaddr| mathdef:: \xref{syntax/modules}{syntax-globaladdr}{\F{tagaddr}}
1233-
.. |freeelemaddr| mathdef:: \xref{syntax/modules}{syntax-elemaddr}{\F{elemaddr}}
1234-
.. |freedataaddr| mathdef:: \xref{syntax/modules}{syntax-dataaddr}{\F{dataaddr}}
1223+
.. |freefuncaddr| mathdef:: \xref{exec/runtime}{syntax-funcaddr}{\F{funcaddr}}
1224+
.. |freetableaddr| mathdef:: \xref{exec/runtime}{syntax-tableaddr}{\F{tableaddr}}
1225+
.. |freememaddr| mathdef:: \xref{exec/runtime}{syntax-memaddr}{\F{memaddr}}
1226+
.. |freeglobaladdr| mathdef:: \xref{exec/runtime}{syntax-globaladdr}{\F{globaladdr}}
1227+
.. |freetagaddr| mathdef:: \xref{exec/runtime}{syntax-globaladdr}{\F{tagaddr}}
1228+
.. |freeelemaddr| mathdef:: \xref{exec/runtime}{syntax-elemaddr}{\F{elemaddr}}
1229+
.. |freedataaddr| mathdef:: \xref{exec/runtime}{syntax-dataaddr}{\F{dataaddr}}
12351230

12361231

12371232
.. Instances, terminals
@@ -1286,8 +1281,8 @@
12861281
.. |EIFIELDS| mathdef:: \xref{exec/runtime}{syntax-exninst}{\K{fields}}
12871282

12881283
.. |PACK| mathdef:: \xref{exec/runtime}{syntax-packedval}{\K{pack}}
1289-
.. |I8PACK| mathdef:: \xref{exec/runtime}{syntax-packval}{\K{i8.pack}}
1290-
.. |I16PACK| mathdef:: \xref{exec/runtime}{syntax-packval}{\K{i16.pack}}
1284+
.. |I8PACK| mathdef:: \xref{exec/runtime}{syntax-packedval}{\K{i8.pack}}
1285+
.. |I16PACK| mathdef:: \xref{exec/runtime}{syntax-packedval}{\K{i16.pack}}
12911286

12921287

12931288
.. Instances, non-terminals
@@ -1380,7 +1375,7 @@
13801375
.. Values & Results, non-terminals
13811376

13821377
.. |num| mathdef:: \xref{exec/runtime}{syntax-num}{\X{num}}
1383-
.. |vecc| mathdef:: \xref{exec/runtime}{syntax-vec}{\X{vec}}
1378+
.. |vecc| mathdef:: \xref{exec/runtime}{syntax-vecc}{\X{vec}}
13841379
.. |reff| mathdef:: \xref{exec/runtime}{syntax-ref}{\X{ref}}
13851380
.. |val| mathdef:: \xref{exec/runtime}{syntax-val}{\X{val}}
13861381
.. |result| mathdef:: \xref{exec/runtime}{syntax-result}{\X{result}}
@@ -1451,10 +1446,10 @@
14511446
.. |imins| mathdef:: \xref{exec/numerics}{op-imin_s}{\F{imin\_s}}
14521447
.. |imaxu| mathdef:: \xref{exec/numerics}{op-imax_u}{\F{imax\_u}}
14531448
.. |imaxs| mathdef:: \xref{exec/numerics}{op-imax_s}{\F{imax\_s}}
1454-
.. |iaddsatu| mathdef:: \xref{exec/numerics}{op-iaddsat_u}{\F{iaddsat\_u}}
1455-
.. |iaddsats| mathdef:: \xref{exec/numerics}{op-iaddsat_s}{\F{iaddsat\_s}}
1456-
.. |isubsatu| mathdef:: \xref{exec/numerics}{op-isubsat_u}{\F{isubsat\_u}}
1457-
.. |isubsats| mathdef:: \xref{exec/numerics}{op-isubsat_s}{\F{isubsat\_s}}
1449+
.. |iaddsatu| mathdef:: \xref{exec/numerics}{op-iadd_sat_u}{\F{iadd\_sat\_u}}
1450+
.. |iaddsats| mathdef:: \xref{exec/numerics}{op-iadd_sat_s}{\F{iadd\_sat\_s}}
1451+
.. |isubsatu| mathdef:: \xref{exec/numerics}{op-isub_sat_u}{\F{isub\_sat\_u}}
1452+
.. |isubsats| mathdef:: \xref{exec/numerics}{op-isub_sat_s}{\F{isub\_sat\_s}}
14581453
.. |iavgru| mathdef:: \xref{exec/numerics}{op-iavgr_u}{\F{iavgr\_u}}
14591454
.. |iq15mulrsats| mathdef:: \xref{exec/numerics}{op-iq15mulrsat_s}{\F{iq15mulrsat\_s}}
14601455

document/core/valid/conventions.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ In addition to field access written :math:`C.\K{field}` the following notation i
303303

304304
.. index:: ! type closure
305305
.. _type-closure:
306+
.. _aux-clostype:
306307

307308
Convention
308309
..........

0 commit comments

Comments
 (0)