You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- |GLOBALGET| for any previously declared immutable :ref:`global <syntax-global>`
309
309
310
310
.. note::
311
-
The :ref:`garbage collection <extension-gc>` added further constant instructions.
311
+
The :ref:`garbage collection <extension-gc>` extension added further constant instructions.
312
312
313
313
314
314
.. index:: instruction, function, call
@@ -389,6 +389,44 @@ Added the ability to use multiple memories per module. [#proposal-multimem]_
389
389
* :ref:`Data segments <syntax-elem>` take a :ref:`memory index <syntax-memidx>`
390
390
391
391
392
+
.. index:: address type, number type, table, memory, instruction
393
+
394
+
64-bit Address Space
395
+
....................
396
+
397
+
Added the ability to declare an :math:`\I64` :ref:`address type <syntax-addrtype>` for :ref:`tables <syntax-tabletype>` and :ref:`memories <syntax-memtype>`. [#proposal-addr64]_
398
+
399
+
* :ref:`Address types <syntax-addrtype>` denote a subset of the integral :ref:`number types <syntax-numtype>`
400
+
401
+
* :ref:`Table types <syntax-tabletype>` include an :ref:`address type <syntax-addrtype>`
402
+
403
+
* :ref:`Memory types <syntax-memtype>` include an :ref:`address type <syntax-addrtype>`
404
+
405
+
* Operand types of :ref:`table <syntax-instr-table>` and :ref:`memory <syntax-instr-memory>` instructions now depend on the subject's declared address type:
406
+
407
+
- |TABLEGET|
408
+
- |TABLESET|
409
+
- |TABLESIZE|
410
+
- |TABLEGROW|
411
+
- |TABLEFILL|
412
+
- |TABLECOPY|
413
+
- |TABLEINIT|
414
+
- |MEMORYSIZE|
415
+
- |MEMORYGROW|
416
+
- |MEMORYFILL|
417
+
- |MEMORYCOPY|
418
+
- |MEMORYINIT|
419
+
- :math:`t\K{.load}`
420
+
- :math:`t\K{.store}`
421
+
- :math:`t\K{.load}\!N\!\K{\_}\sx`
422
+
- :math:`t\K{.store}\!N`
423
+
- :math:`\K{v128.load}\!N\!\K{x}\!M\!\K{\_}\sx`
424
+
- :math:`\K{v128.load}\!N\!\K{\_zero}`
425
+
- :math:`\K{v128.load}\!N\!\K{\_splat}`
426
+
- :math:`\K{v128.load}\!N\!\K{\_lane}`
427
+
- :math:`\K{v128.store}\!N\!\K{\_lane}`
428
+
429
+
392
430
.. index:: reference, reference type, heap type, value type, local, local type, instruction, instruction type, table, function, function type, matching, subtyping
393
431
394
432
Typeful References
@@ -424,6 +462,8 @@ Added more precise types for references. [#proposal-typedref]_
424
462
425
463
* Refined typing of :ref:`local instructions <valid-instr-variable>` and :ref:`instruction sequences <valid-instr-seq>` to track the :ref:`initialization status <syntax-init>` of :ref:`locals <syntax-local>` with non-:ref:`defaultable <valid-defaultable>` type
426
464
465
+
* Refined decoding of :ref:`active <syntax-elemmode>` :ref:`element segments <binary-elem>` with implicit element type and plain function indices (opcode :math:`0`) to produce :ref:`non-nullable <syntax-nullable>` :ref:`reference type <syntax-reftype>`.
466
+
427
467
* Extended :ref:`table definitions <syntax-table>` with optional initializer expression
0 commit comments