From ed1fc5324b18cf709d076aa18378eaa398d5e816 Mon Sep 17 00:00:00 2001 From: Sam Clegg Date: Wed, 6 Nov 2024 14:58:13 -0800 Subject: [PATCH] Update appendix for memory64 (#97) Split out from https://github.com/WebAssembly/spec/pull/1839 --- document/core/appendix/changes.rst | 41 ++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/document/core/appendix/changes.rst b/document/core/appendix/changes.rst index 352bc504..e5ffa79a 100644 --- a/document/core/appendix/changes.rst +++ b/document/core/appendix/changes.rst @@ -389,6 +389,44 @@ Added the ability to use multiple memories per module. [#proposal-multimem]_ * :ref:`Data segments ` take a :ref:`memory index ` +.. index:: address type, number type, table, memory, instruction + +64-bit Address Space +.................... + +Added the ability to declare an :math:`\I64` :ref:`address type ` for :ref:`tables ` and :ref:`memories `. [#proposal-addr64]_ + +* :ref:`Address types ` denote a subset of the integral :ref:`number types ` + +* :ref:`Table types ` include an :ref:`address type ` + +* :ref:`Memory types ` include an :ref:`address type ` + +* Operand types of :ref:`table ` and :ref:`memory ` instructions now depend on the subject's declared address type: + + - |TABLEGET| + - |TABLESET| + - |TABLESIZE| + - |TABLEGROW| + - |TABLEFILL| + - |TABLECOPY| + - |TABLEINIT| + - |MEMORYSIZE| + - |MEMORYGROW| + - |MEMORYFILL| + - |MEMORYCOPY| + - |MEMORYINIT| + - :math:`t\K{.load}` + - :math:`t\K{.store}` + - :math:`t\K{.load}\!N\!\K{\_}\sx` + - :math:`t\K{.store}\!N` + - :math:`\K{v128.load}\!N\!\K{x}\!M\!\K{\_}\sx` + - :math:`\K{v128.load}\!N\!\K{\_zero}` + - :math:`\K{v128.load}\!N\!\K{\_splat}` + - :math:`\K{v128.load}\!N\!\K{\_lane}` + - :math:`\K{v128.store}\!N\!\K{\_lane}` + + .. index:: reference, reference type, heap type, value type, local, local type, instruction, instruction type, table, function, function type, matching, subtyping Typeful References @@ -595,6 +633,9 @@ mirroring the role of custom sections in the binary format. [#proposal-annot]_ .. [#proposal-multimem] https://github.com/WebAssembly/spec/blob/main/proposals/multi-memory/ +.. [#proposal-addr64] + https://github.com/WebAssembly/spec/blob/main/proposals/memory64/ + .. [#proposal-typedref] https://github.com/WebAssembly/spec/tree/main/proposals/function-references/