Skip to content

Commit d96da54

Browse files
committed
Merge remote-tracking branch 'gc/main' into wasm-3.0
2 parents f8190d1 + 9d2d677 commit d96da54

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
@@ -506,7 +506,7 @@ Conventions
506506
.. math::
507507
\begin{array}{@{}lcl}
508508
\packval_{\valtype}(\val) &=& \val \\
509-
\packval_{\packedtype}(\I32.\CONST~i) &=& \packedtype.\PACK~(\wrap_{32,|\packtype|}(i))
509+
\packval_{\packedtype}(\I32.\CONST~i) &=& \packedtype.\PACK~(\wrap_{32,|\packedtype|}(i))
510510
\end{array}
511511
512512
* The inverse conversion of a :ref:`field value <syntax-fieldval>` to a regular :ref:`value <syntax-val>` is defined as follows:
@@ -622,6 +622,7 @@ Conventions
622622
.. _syntax-trap:
623623
.. _syntax-reffuncaddr:
624624
.. _syntax-invoke:
625+
.. _syntax-return_invoke:
625626
.. _syntax-instr-admin:
626627

627628
Administrative Instructions

document/core/syntax/types.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ Conventions
8282
.. _type-concrete:
8383
.. _syntax-i31:
8484
.. _syntax-heaptype:
85+
.. _syntax-absheaptype:
8586

8687
Heap Types
8788
~~~~~~~~~~
@@ -290,12 +291,21 @@ Structures are heterogeneous, but require static indexing, while arrays need to
290291
\end{array}
291292
292293
.. _bitwidth-fieldtype:
294+
.. _aux-unpacktype:
293295

294296
Conventions
295297
...........
296298

297299
* 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`.
298300

301+
* The auxiliary function :math:`\unpacktype` maps a storage type to the :ref:`value type <syntax-valtype>` obtained when accessing a field:
302+
303+
.. math::
304+
\begin{array}{lll}
305+
\unpacktype(\valtype) &=& \valtype \\
306+
\unpacktype(\packedtype) &=& \I32 \\
307+
\end{array}
308+
299309
300310
.. index:: ! composite type, function type, aggreagate type, structure type, array type
301311
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
@@ -573,7 +573,7 @@ As another abbreviation, element segments may also be specified inline with :ref
573573
single: data; segment
574574
.. _text-datastring:
575575
.. _text-data:
576-
.. _test-memuse:
576+
.. _text-memuse:
577577

578578
Data Segments
579579
~~~~~~~~~~~~~

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}}
@@ -235,8 +235,8 @@
235235
.. |MVAR| mathdef:: \xref{syntax/types}{syntax-mut}{\K{var}}
236236
.. |MCONST| mathdef:: \xref{syntax/types}{syntax-mut}{\K{const}}
237237

238-
.. |SET| mathdef:: \xref{syntax/types}{syntax-init}{\K{set}}
239-
.. |UNSET| mathdef:: \xref{syntax/types}{syntax-init}{\K{unset}}
238+
.. |SET| mathdef:: \xref{valid/conventions}{syntax-init}{\K{set}}
239+
.. |UNSET| mathdef:: \xref{valid/conventions}{syntax-init}{\K{unset}}
240240

241241
.. |LMIN| mathdef:: \xref{syntax/types}{syntax-limits}{\K{min}}
242242
.. |LMAX| mathdef:: \xref{syntax/types}{syntax-limits}{\K{max}}
@@ -273,7 +273,7 @@
273273

274274
.. |limits| mathdef:: \xref{syntax/types}{syntax-limits}{\X{limits}}
275275
.. |mut| mathdef:: \xref{syntax/types}{syntax-mut}{\X{mut}}
276-
.. |init| mathdef:: \xref{syntax/types}{syntax-init}{\X{init}}
276+
.. |init| mathdef:: \xref{valid/conventions}{syntax-init}{\X{init}}
277277

278278
.. |instrtype| mathdef:: \xref{valid/conventions}{syntax-instrtype}{\X{instrtype}}
279279
.. |localtype| mathdef:: \xref{valid/conventions}{syntax-localtype}{\X{localtype}}
@@ -291,7 +291,6 @@
291291
.. |expanddt| mathdef:: \xref{valid/conventions}{aux-expand-deftype}{\F{expand}}
292292
.. |unrollht| mathdef:: \xref{appendix/properties}{aux-unroll-heaptype}{\F{unroll}}
293293

294-
.. |packtype| mathdef:: \xref{syntax/types}{aux-packtype}{\F{pack}}
295294
.. |unpacktype| mathdef:: \xref{syntax/types}{aux-unpacktype}{\F{unpack}}
296295

297296
.. |etfuncs| mathdef:: \xref{syntax/types}{syntax-externtype}{\F{funcs}}
@@ -496,10 +495,10 @@
496495
.. |ARRAYGETU| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.get\_u}}
497496
.. |ARRAYSET| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.set}}
498497
.. |ARRAYLEN| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.len}}
499-
.. |ARRAYFILL| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.fill}}
500-
.. |ARRAYCOPY| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.copy}}
501-
.. |ARRAYINITDATA| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.init\_data}}
502-
.. |ARRAYINITELEM| mathdef:: \xref{syntax/instructions}{syntax-instr-aray}{\K{array.init\_elem}}
498+
.. |ARRAYFILL| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.fill}}
499+
.. |ARRAYCOPY| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.copy}}
500+
.. |ARRAYINITDATA| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.init\_data}}
501+
.. |ARRAYINITELEM| mathdef:: \xref{syntax/instructions}{syntax-instr-array}{\K{array.init\_elem}}
503502

504503
.. |REFI31| mathdef:: \xref{syntax/instructions}{syntax-instr-i31}{\K{ref.i31}}
505504
.. |I31GET| mathdef:: \xref{syntax/instructions}{syntax-instr-i31}{\K{i31.get}}
@@ -632,9 +631,7 @@
632631
.. |vunop| mathdef:: \xref{syntax/instructions}{syntax-vunop}{\X{vunop}}
633632
.. |vbinop| mathdef:: \xref{syntax/instructions}{syntax-vbinop}{\X{vbinop}}
634633
.. |vrelop| mathdef:: \xref{syntax/instructions}{syntax-vrelop}{\X{vrelop}}
635-
.. |vternop| mathdef:: \xref{syntax/instructions}{syntax-vternop}{\X{vternop}}
636634
.. |vcvtop| mathdef:: \xref{syntax/instructions}{syntax-vcvtop}{\X{vcvtop}}
637-
.. |vextmul| mathdef:: \xref{syntax/instructions}{syntax-vextmul}{\X{vextmul}}
638635

639636
.. |laneidx| mathdef:: \xref{syntax/instructions}{syntax-laneidx}{\X{laneidx}}
640637
.. |vvunop| mathdef:: \xref{syntax/instructions}{syntax-vvunop}{\X{vvunop}}
@@ -905,7 +902,7 @@
905902
.. |Tfunctype| mathdef:: \xref{text/types}{text-functype}{\T{functype}}
906903
.. |Tstructtype| mathdef:: \xref{text/types}{text-structtype}{\T{structtype}}
907904
.. |Tarraytype| mathdef:: \xref{text/types}{text-arraytype}{\T{arraytype}}
908-
.. |Taggrtype| mathdef:: \xref{text/types}{text-aggrype}{\T{aggrtype}}
905+
.. |Taggrtype| mathdef:: \xref{text/types}{text-aggrtype}{\T{aggrtype}}
909906
.. |Tfieldtype| mathdef:: \xref{text/types}{text-fieldtype}{\T{fieldtype}}
910907
.. |Tstoragetype| mathdef:: \xref{text/types}{text-storagetype}{\T{storagetype}}
911908
.. |Tpackedtype| mathdef:: \xref{text/types}{text-packedtype}{\T{packedtype}}
@@ -941,9 +938,8 @@
941938
.. Modules, non-terminals
942939

943940
.. |Tmodule| mathdef:: \xref{text/modules}{text-module}{\T{module}}
944-
.. |Tmodulebody| mathdef:: \xref{text/modules}{text-modulebody}{\T{modulebody}}
945941
.. |Tmodulefield| mathdef:: \xref{text/modules}{text-modulefield}{\T{modulefield}}
946-
.. |Ttype| mathdef:: \xref{text/modules}{text-typedef}{\T{type}}
942+
.. |Ttype| mathdef:: \xref{text/types}{text-typedef}{\T{type}}
947943
.. |Ttypeuse| mathdef:: \xref{text/modules}{text-typeuse}{\T{typeuse}}
948944
.. |Tfunc| mathdef:: \xref{text/modules}{text-func}{\T{func}}
949945
.. |Ttable| mathdef:: \xref{text/modules}{text-table}{\T{table}}
@@ -957,7 +953,6 @@
957953
.. |Telemlist| mathdef:: \xref{text/modules}{text-elemlist}{\T{elemlist}}
958954
.. |Telemexpr| mathdef:: \xref{text/modules}{text-elemexpr}{\T{elemexpr}}
959955
.. |Ttableuse| mathdef:: \xref{text/modules}{text-tableuse}{\T{tableuse}}
960-
.. |Tcode| mathdef:: \xref{text/modules}{text-code}{\T{code}}
961956
.. |Tlocal| mathdef:: \xref{text/modules}{text-local}{\T{local}}
962957
.. |Tlocals| mathdef:: \xref{text/modules}{text-local}{\T{locals}}
963958
.. |Tdata| mathdef:: \xref{text/modules}{text-data}{\T{data}}
@@ -1043,7 +1038,7 @@
10431038

10441039
.. Meta functions
10451040

1046-
.. |clostype| mathdef:: \xref{valid/conventions}{closure}{\K{clos}}
1041+
.. |clostype| mathdef:: \xref{valid/conventions}{aux-clostype}{\K{clos}}
10471042

10481043

10491044
.. Contexts
@@ -1059,7 +1054,7 @@
10591054
.. |CLABELS| mathdef:: \xref{valid/conventions}{context}{\K{labels}}
10601055
.. |CRETURN| mathdef:: \xref{valid/conventions}{context}{\K{return}}
10611056
.. |CREFS| mathdef:: \xref{valid/conventions}{context}{\K{refs}}
1062-
.. |CRECS| mathdef:: \xref{valid/matching}{context-rec}{\K{recs}}
1057+
.. |CRECS| mathdef:: \xref{appendix/properties}{context-ext}{\K{recs}}
10631058

10641059

10651060
.. Judgments
@@ -1136,7 +1131,7 @@
11361131
.. |vdashimportdesc| mathdef:: \xref{valid/modules}{valid-importdesc}{\vdash}
11371132
.. |vdashmodule| mathdef:: \xref{valid/modules}{valid-module}{\vdash}
11381133

1139-
.. |unpacked| mathdef:: \xref{valid/instructions}{aux-unpacked}{\F{unpacked}}
1134+
.. |unpackshape| mathdef:: \xref{valid/instructions}{aux-unpackshape}{\F{unpack}}
11401135
.. |dim| mathdef:: \xref{valid/instructions}{aux-dim}{\F{dim}}
11411136

11421137

@@ -1145,7 +1140,7 @@
11451140

11461141
.. Notation
11471142

1148-
.. |stepto| mathdef:: \xref{exec/conventions}{formal-notation}{\hookrightarrow}
1143+
.. |stepto| mathdef:: \xref{exec/conventions}{exec-notation}{\hookrightarrow}
11491144
.. |extendsto| mathdef:: \xref{appendix/properties}{extend}{\preceq}
11501145

11511146

@@ -1183,12 +1178,12 @@
11831178

11841179
.. Address, meta functions
11851180

1186-
.. |freefuncaddr| mathdef:: \xref{syntax/modules}{syntax-funcaddr}{\F{funcaddr}}
1187-
.. |freetableaddr| mathdef:: \xref{syntax/modules}{syntax-tableaddr}{\F{tableaddr}}
1188-
.. |freememaddr| mathdef:: \xref{syntax/modules}{syntax-memaddr}{\F{memaddr}}
1189-
.. |freeglobaladdr| mathdef:: \xref{syntax/modules}{syntax-globaladdr}{\F{globaladdr}}
1190-
.. |freeelemaddr| mathdef:: \xref{syntax/modules}{syntax-elemaddr}{\F{elemaddr}}
1191-
.. |freedataaddr| mathdef:: \xref{syntax/modules}{syntax-dataaddr}{\F{dataaddr}}
1181+
.. |freefuncaddr| mathdef:: \xref{exec/runtime}{syntax-funcaddr}{\F{funcaddr}}
1182+
.. |freetableaddr| mathdef:: \xref{exec/runtime}{syntax-tableaddr}{\F{tableaddr}}
1183+
.. |freememaddr| mathdef:: \xref{exec/runtime}{syntax-memaddr}{\F{memaddr}}
1184+
.. |freeglobaladdr| mathdef:: \xref{exec/runtime}{syntax-globaladdr}{\F{globaladdr}}
1185+
.. |freeelemaddr| mathdef:: \xref{exec/runtime}{syntax-elemaddr}{\F{elemaddr}}
1186+
.. |freedataaddr| mathdef:: \xref{exec/runtime}{syntax-dataaddr}{\F{dataaddr}}
11921187

11931188

11941189
.. Instances, terminals
@@ -1236,8 +1231,8 @@
12361231
.. |AIFIELDS| mathdef:: \xref{exec/runtime}{syntax-arrayinst}{\K{fields}}
12371232

12381233
.. |PACK| mathdef:: \xref{exec/runtime}{syntax-packedval}{\K{pack}}
1239-
.. |I8PACK| mathdef:: \xref{exec/runtime}{syntax-packval}{\K{i8.pack}}
1240-
.. |I16PACK| mathdef:: \xref{exec/runtime}{syntax-packval}{\K{i16.pack}}
1234+
.. |I8PACK| mathdef:: \xref{exec/runtime}{syntax-packedval}{\K{i8.pack}}
1235+
.. |I16PACK| mathdef:: \xref{exec/runtime}{syntax-packedval}{\K{i16.pack}}
12411236

12421237

12431238
.. Instances, non-terminals
@@ -1322,7 +1317,7 @@
13221317
.. Values & Results, non-terminals
13231318

13241319
.. |num| mathdef:: \xref{exec/runtime}{syntax-num}{\X{num}}
1325-
.. |vecc| mathdef:: \xref{exec/runtime}{syntax-vec}{\X{vec}}
1320+
.. |vecc| mathdef:: \xref{exec/runtime}{syntax-vecc}{\X{vec}}
13261321
.. |reff| mathdef:: \xref{exec/runtime}{syntax-ref}{\X{ref}}
13271322
.. |val| mathdef:: \xref{exec/runtime}{syntax-val}{\X{val}}
13281323
.. |result| mathdef:: \xref{exec/runtime}{syntax-result}{\X{result}}
@@ -1391,10 +1386,10 @@
13911386
.. |imins| mathdef:: \xref{exec/numerics}{op-imin_s}{\F{imin\_s}}
13921387
.. |imaxu| mathdef:: \xref{exec/numerics}{op-imax_u}{\F{imax\_u}}
13931388
.. |imaxs| mathdef:: \xref{exec/numerics}{op-imax_s}{\F{imax\_s}}
1394-
.. |iaddsatu| mathdef:: \xref{exec/numerics}{op-iaddsat_u}{\F{iaddsat\_u}}
1395-
.. |iaddsats| mathdef:: \xref{exec/numerics}{op-iaddsat_s}{\F{iaddsat\_s}}
1396-
.. |isubsatu| mathdef:: \xref{exec/numerics}{op-isubsat_u}{\F{isubsat\_u}}
1397-
.. |isubsats| mathdef:: \xref{exec/numerics}{op-isubsat_s}{\F{isubsat\_s}}
1389+
.. |iaddsatu| mathdef:: \xref{exec/numerics}{op-iadd_sat_u}{\F{iadd\_sat\_u}}
1390+
.. |iaddsats| mathdef:: \xref{exec/numerics}{op-iadd_sat_s}{\F{iadd\_sat\_s}}
1391+
.. |isubsatu| mathdef:: \xref{exec/numerics}{op-isub_sat_u}{\F{isub\_sat\_u}}
1392+
.. |isubsats| mathdef:: \xref{exec/numerics}{op-isub_sat_s}{\F{isub\_sat\_s}}
13981393
.. |iavgru| mathdef:: \xref{exec/numerics}{op-iavgr_u}{\F{iavgr\_u}}
13991394
.. |iq15mulrsats| mathdef:: \xref{exec/numerics}{op-iq15mulrsat_s}{\F{iq15mulrsat\_s}}
14001395

@@ -1478,7 +1473,7 @@
14781473

14791474
.. |vdashadmininstr| mathdef:: \xref{appendix/properties}{valid-instr-admin}{\vdash}
14801475

1481-
.. |vdashval| mathdef:: \xref{appendix/properties}{valid-val}{\vdash}
1476+
.. |vdashval| mathdef:: \xref{exec/values}{valid-val}{\vdash}
14821477
.. |vdashresult| mathdef:: \xref{appendix/properties}{valid-result}{\vdash}
14831478
.. |vdashfieldval| mathdef:: \xref{appendix/properties}{valid-fieldval}{\vdash}
14841479
.. |vdashpackedval| mathdef:: \xref{appendix/properties}{valid-packedval}{\vdash}

document/core/valid/conventions.rst

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

302302
.. index:: ! type closure
303303
.. _type-closure:
304+
.. _aux-clostype:
304305

305306
Convention
306307
..........

0 commit comments

Comments
 (0)