diff --git a/aaelf64/aaelf64.rst b/aaelf64/aaelf64.rst index 7fbf12e..ee8cd26 100644 --- a/aaelf64/aaelf64.rst +++ b/aaelf64/aaelf64.rst @@ -1870,27 +1870,27 @@ At this time this ABI specifies no generic platform architecture compatibility d Program Property ---------------- -The information on Program Property has been moved to [SYSVABI64_]. +The information on Program Property has moved to [SYSVABI64_]. Program Loading --------------- -The information on program loading has been moved to [SYSVABI64_]. +The information on program loading has moved to [SYSVABI64_]. Dynamic Linking --------------- -The information on Dynamic Linking has been moved to [SYSVABI64_]. +The information on Dynamic Linking has moved to [SYSVABI64_]. Dynamic Section --------------- -The information on the Dynamic Section has been moved to [SYSVABI64_]. +The information on the Dynamic Section has moved to [SYSVABI64_]. Custom PLTs ^^^^^^^^^^^^ -The information on custom PLTs has been moved to [SYSVABI64_]. +The information on custom PLTs has moved to [SYSVABI64_]. .. raw:: pdf diff --git a/aapcs64/aapcs64.rst b/aapcs64/aapcs64.rst index 28477bd..e0415ed 100644 --- a/aapcs64/aapcs64.rst +++ b/aapcs64/aapcs64.rst @@ -2282,7 +2282,7 @@ a lazy save, with the subroutine having the following properties: **(Beta)** Platforms that support SME must provide a subroutine to query the current -value of VG, with the subroutine having the following properties: +value of VG, and the subroutine must have the following properties: * The subroutine is called ``__arm_get_current_vg``. diff --git a/memtagabielf64/memtagabielf64.rst b/memtagabielf64/memtagabielf64.rst index 3dec531..83f5fb3 100644 --- a/memtagabielf64/memtagabielf64.rst +++ b/memtagabielf64/memtagabielf64.rst @@ -380,21 +380,24 @@ MemtagABI adds the following processor-specific dynamic array tags: respectively). Binaries compiled with clang-17 and lld-17 produced the dynamic entries with ``DT_AARCH64_MEMTAG_STACK`` as ``d_val`` and ``DT_AARCH64_MEMTAG_GLOBALS`` as ``d_ptr`` as this was the intended semantics, - and they were shipped on Android devices. The values were thus updated to + and they were shipped on Android devices. The values were updated to their more fitting semantic types (without updating the ``Value``), but this does mean that ``DT_AARCH64_MEMTAG_STACK`` is a ``d_val`` with an even ``Value``, and ``DT_AARCH64_MEMTAG_GLOBALS`` is a ``d_ptr`` with an odd ``Value`` (where the normal semantics are ``odd == d_val``, and ``even == - d_ptr``). Implementations of dynamic loaders need to be careful to apply these + d_ptr``). Implementations of dynamic loaders should be careful to apply these semantics correctly - notably the load bias should not be applied to ``DT_AARCH64_MEMTAG_STACK``, as it's a ``d_val``, even though the ``Value`` is even. ``DT_AARCH64_MEMTAG_MODE`` indicates the initial MTE mode that should be set. It -has two possible values: ``0``, indicating that the desired MTE mode is -Synchronous, and ``1``, indicating that the desired mode is Asynchronous. This -entry is only valid on the main executable, usage in dynamically loaded objects -is ignored. +has two possible values: + +* ``0``, indicating that the desired MTE mode is Synchronous +* ``1``, indicating that the desired mode is Asynchronous. + +This entry is only valid on the main executable, usage in dynamically loaded +objects is ignored. The presence of the ``DT_AARCH64_MEMTAG_HEAP`` dynamic array entry indicates that heap allocations should be protected with memory tagging. Implementation of