Skip to content

Commit d9264a5

Browse files
authored
Merge branch 'ARM-software:main' into build-attributes
2 parents 2e82708 + 76d5612 commit d9264a5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+2280
-468
lines changed

.github/workflows/ci.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ jobs:
77
runs-on: ubuntu-latest
88

99
steps:
10-
- uses: actions/checkout@v2
10+
- uses: actions/checkout@v4
1111
- name: setup python
12-
uses: actions/setup-python@v2
12+
uses: actions/setup-python@v5
1313
with:
1414
python-version: '3.x'
1515
- name: install packages
@@ -18,7 +18,7 @@ jobs:
1818
run: tools/common/check-rst-syntax.sh
1919
- name: build PDFs
2020
run: tools/rst2pdf/generate-pdfs.sh PDFs
21-
- uses: actions/upload-artifact@v2
21+
- uses: actions/upload-artifact@v4
2222
with:
2323
name: PDFs
2424
path: PDFs

CONTRIBUTING.md

+36
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,41 @@ changes.
4343
If you want to make ABI changes that for some reason can't be discussed in
4444
public, you can send an email to [email protected].
4545

46+
### Extension documents
47+
While the majority of new proposals can be added to existing
48+
documents. Proposals that extend the ABI, but are not yet stable are
49+
placed in an extension document. An example of an extension document
50+
is the PAuth Extension to ELF for Arm 64-bit Architecture. Extension
51+
documents have the following requirements:
52+
53+
1. The document status must be Alpha.
54+
2. The document has an owner recorded in the table below. The owner
55+
need not be from Arm.
56+
3. The document must not clash with other ABI extension documents, or
57+
both extensions must be marked as being incompatible.
58+
59+
60+
The Arm approval process for accepting the extension is as follows:
61+
62+
1. At least one person within Arm has reviewed and accepted the pull
63+
request.
64+
2. There is a consensus within Arm that the extension can be added to
65+
the ABI.
66+
67+
Extension documents can move into the main ABI when the following conditions hold:
68+
69+
1. The information in the document is stable.
70+
2. There is an implementation of the extension.
71+
3. The boundaries of when the extension applies are clear.
72+
73+
An extension document that moves into the main ABI will add the
74+
necessary information to the main documents. In addition any design
75+
and rationale in the extension document will be moved to a new
76+
document in the design-documents folder.
77+
78+
When the extension has either moved into the main ABI or has been
79+
withdrawn it will be moved to an archive folder.
80+
4681
## Manual checking of the PDF documents and Continuous Integration
4782

4883
To check the outcome of your changes, run the `tools/rst2pdf/generate-pdfs.sh`
@@ -109,6 +144,7 @@ document | owner | Github handle
109144
[Morello extensions to ELF for the Arm 64-bit Architecture](https://github.com/ARM-software/abi-aa/tree/master/aaelf64-morello) | Silviu Baranga | @sbaranga-arm
110145
[Morello Descriptor ABI for the Arm 64-bit Architecture](https://github.com/ARM-software/abi-aa/tree/master/descabi-morello) | Silviu Baranga | @sbaranga-arm
111146
[Memtag ABI Extension to ELF for the Arm 64-bit Architecture](https://github.com/ARM-software/abi-aa/tree/master/memtagabielf64) | Mitch Phillips | @hctim
147+
[C/C++ Atomics Application Binary Interface Standard for the Arm 64-bit Architecture](https://github.com/ARM-software/abi-aa/tree/master/atomicsabi64) | Luke Geeson | @lukeg101
112148

113149
3. Merging the change
114150

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,16 @@ ELF for the Arm 64-bit Architecture | [aaelf64](a
7171
DWARF for the Arm 64-bit Architecture | [aadwarf64](aadwarf64/aadwarf64.rst) | [2020Q2](legacy-documents/aadwarf64/ihi0057_E/IHI0057_E_2020Q2_aadwarf64.pdf)
7272
C++ ABI for the Arm 64-bit Architecture | [cppabi64](cppabi64/cppabi64.rst) | [2020Q2](legacy-documents/cppabi64/ihi0059_E/IHI0059E_2020Q2_cppabi64.pdf)
7373
Vector Function ABI for the Arm 64-bit Architecture | [vfabia64](vfabia64/vfabia64.rst) | [2019Q2](legacy-documents/vfabia64/101129_1920/101129_1920_01_en.pdf)
74+
C/C++ Atomics ABI for the Arm 64-bit Architecture | [atomicsabi64](atomicsabi64/atomicsabi64.rst) | n/a
75+
System V ABI for the Arm 64-bit Architecture | [sysvabi64](sysvabi64/sysvabi64.rst) | n/a
7476

7577

7678
### ABI for the Arm 64-bit Architecture with SVE support
7779

7880
specification | latest | last legacy release
7981
--- | --- | ---
8082
Procedure Call Standard for the Arm 64-bit Architecture with SVE support | content merged with [aapcs64](aapcs64/aapcs64.rst) | [SVEpcs 00bet1](legacy-documents/aapcs64-sve/100986_0000/abi_sve_aapcs64_100986_0000_00_en.pdf)
81-
DWARF for the Arm 64-bit Architecture with SVE support | content merged with [aadwarf64](aadwarf64/aawarf64.rst) | [SVEdwf 00bet1](legacy-documents/aadwarf64-sve/100985_0000/abi_sve_aadwarf_100985_0000_00_en.pdf)
83+
DWARF for the Arm 64-bit Architecture with SVE support | content merged with [aadwarf64](aadwarf64/aadwarf64.rst) | [SVEdwf 00bet1](legacy-documents/aadwarf64-sve/100985_0000/abi_sve_aadwarf_100985_0000_00_en.pdf)
8284
Vector Function ABI for the Arm 64-bit Architecture (identical to document in *ABI for the Arm 64-bit Architecture* section) | [vfabia64](vfabia64/vfabia64.rst) | [2019Q2](legacy-documents/vfabia64/101129_1920/101129_1920_01_en.pdf)
8385

8486
### PAuth ABI Extension

aadwarf32/aadwarf32.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
..
2-
Copyright (c) 2003-2007, 2012, 2018, 2020-2023, Arm Limited and its affiliates. All rights reserved.
2+
Copyright (c) 2003-2007, 2012, 2018, 2020-2024, Arm Limited and its affiliates. All rights reserved.
33
CC-BY-SA-4.0 AND Apache-Patent-License
44
See LICENSE file for details
55
6-
.. |release| replace:: 2023Q3
7-
.. |date-of-issue| replace:: 6\ :sup:`th` October 2023
8-
.. |copyright-date| replace:: 2003-2007, 2012, 2018, 2020-2023
6+
.. |release| replace:: 2024Q3
7+
.. |date-of-issue| replace:: 5\ :sup:`th` September 2024
8+
.. |copyright-date| replace:: 2003-2007, 2012, 2018, 2020-2024
99
.. |footer| replace:: Copyright © |copyright-date|, Arm Limited and its
1010
affiliates. All rights reserved.
1111

aadwarf64-morello/aadwarf64-morello.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
..
2-
Copyright (c) 2020-2023, Arm Limited and its affiliates. All rights reserved.
2+
Copyright (c) 2020-2024, Arm Limited and its affiliates. All rights reserved.
33
CC-BY-SA-4.0 AND Apache-Patent-License
44
See LICENSE file for details
55
6-
.. |release| replace:: 2023Q3
7-
.. |date-of-issue| replace:: 6\ :sup:`th` October 2023
8-
.. |copyright-date| replace:: 2020-2023
6+
.. |release| replace:: 2024Q3
7+
.. |date-of-issue| replace:: 5\ :sup:`th` September 2024
8+
.. |copyright-date| replace:: 2020-2024
99
.. |footer| replace:: Copyright © |copyright-date|, Arm Limited and its
1010
affiliates. All rights reserved.
1111

aadwarf64/aadwarf64.rst

+57-20
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
..
2-
Copyright (c) 2010, 2013, 2018, 2020-2023, Arm Limited and its affiliates. All rights reserved.
2+
Copyright (c) 2010, 2013, 2018, 2020-2024, Arm Limited and its affiliates. All rights reserved.
33
CC-BY-SA-4.0 AND Apache-Patent-License
44
See LICENSE file for details
55
6-
.. |release| replace:: 2023Q3
7-
.. |date-of-issue| replace:: 6\ :sup:`th` October 2023
8-
.. |copyright-date| replace:: 2010, 2013, 2018, 2020-2023
6+
.. |release| replace:: 2024Q3
7+
.. |date-of-issue| replace:: 5\ :sup:`th` September 2024
8+
.. |copyright-date| replace:: 2010, 2013, 2018, 2020-2024
99
.. |footer| replace:: Copyright © |copyright-date|, Arm Limited and its
1010
affiliates. All rights reserved.
1111

@@ -229,6 +229,11 @@ changes to the content of the document for that release.
229229
| 2022Q3 | 20\ :sup:`th` October 2022 | - Added `Changes in vector length`_ at |
230230
| | | **Alpha** quality. |
231231
+--------+-----------------------------+----------------------------------------+
232+
| 2024Q3 | 5\ :sup:`th` September 2024 | In `DWARF register names_` and |
233+
| | | `Call frame instructions`_, add Dwarf |
234+
| | | support for unwinding with |
235+
| | | FEAT_PAuth_LR enabled. |
236+
+--------+-----------------------------+----------------------------------------+
232237

233238

234239
References
@@ -470,11 +475,31 @@ integers.
470475
.. _Note 8:
471476

472477
8. The RA_SIGN_STATE pseudo-register records whether the return address has
473-
been signed with a PAC. This information can be used when unwinding. It
474-
is an unsigned integer with the same size as a general register. Only
475-
bit[0] is meaningful and is initialized to zero. A value of 0 indicates
476-
the return address has not been signed. A value of 1 indicates the return
477-
address has been signed.
478+
been signed with a PAC, and whether the value of PC has been used as a
479+
diversifier for the return address signing. This information can be used
480+
when unwinding. It is an unsigned integer with the same size as a general
481+
register. Only bit[0] and bit[1] are meaningful and are initialized to zero.
482+
483+
Bit[0] indicates whether the return address has been signed. A value of 0
484+
indicates the return address has not been signed. A value of 1 indicates
485+
the return address has been signed.
486+
487+
Bit[1] indicates whether the value of PC has been used as a diversifier for
488+
signing the return address. A value of 0 indicates the value of PC has not
489+
been used for return address signing. A value of 1 indicates the value of PC
490+
has been used for return address signing.
491+
492+
+--------+--------+----------------------------------+
493+
| Bit[1] | Bit[0] | State |
494+
+========+========+==================================+
495+
| 0 | 0 | Return address not signed |
496+
+--------+--------+----------------------------------+
497+
| 0 | 1 | Return address signed with SP |
498+
+--------+--------+----------------------------------+
499+
| 1 | 1 | Return address signed with SP+PC |
500+
+--------+--------+----------------------------------+
501+
| 1 | 0 | Invalid state |
502+
+--------+--------+----------------------------------+
478503

479504
.. _Note 9:
480505

@@ -574,25 +599,37 @@ a CIE augmentation string.
574599
Call frame instructions
575600
-----------------------
576601

577-
This ABI defines one vendor call frame instruction
578-
``DW_CFA_AARCH64_negate_ra_state``.
602+
This ABI defines the following vendor call frame instructions:
603+
``DW_CFA_AARCH64_negate_ra_state`` and ``DW_CFA_AARCH64_negate_ra_state_with_pc``.
579604

580605
.. class:: aadwarf64-vendor-cfa-operations
581606

582607
.. table:: AArch64 vendor CFA operations
583608

584-
+------------------------------------+-------------+------------+-----------+-----------+
585-
| Instruction | High 2 bits | Low 6 bits | Operand 1 | Operand 2 |
586-
+====================================+=============+============+===========+===========+
587-
| ``DW_CFA_AARCH64_negate_ra_state`` | 0 | ``0x2D`` | \- | \- |
588-
+------------------------------------+-------------+------------+-----------+-----------+
609+
+--------------------------------------------+-------------+------------+-----------+-----------+
610+
| Instruction | High 2 bits | Low 6 bits | Operand 1 | Operand 2 |
611+
+============================================+=============+============+===========+===========+
612+
| ``DW_CFA_AARCH64_negate_ra_state`` | 0 | ``0x2D`` | \- | \- |
613+
+--------------------------------------------+-------------+------------+-----------+-----------+
614+
| ``DW_CFA_AARCH64_negate_ra_state_with_pc`` | 0 | ``0x2C`` | \- | \- |
615+
+--------------------------------------------+-------------+------------+-----------+-----------+
589616

590617
The ``DW_CFA_AARCH64_negate_ra_state`` operation negates bit[0] of the
591618
RA_SIGN_STATE pseudo-register. It does not take any operands.
592-
The ``DW_CFA_AARCH64_negate_ra_state`` must not be mixed with other DWARF
593-
Register Rule Instructions (GDWARF_, §6.4.2.3) on the RA_SIGN_STATE
594-
pseudo-register in one Common Information Entry (CIE) and Frame Descriptor
595-
Entry (FDE) program sequence.
619+
620+
The ``DW_CFA_AARCH64_negate_ra_state_with_pc`` operation negates bit[0] and
621+
bit[1] of the RA_SIGN_STATE pseudo-register, and instructs the unwinder to
622+
capture the current code location. The code location information can be used
623+
for authenticating the return address.
624+
625+
The ``DW_CFA_AARCH64_negate_ra_state_with_pc`` instruction must be placed within
626+
the debug frame in a position that refers to the exact code location of the
627+
signing/authenticating PAC instructions.
628+
629+
The ``DW_CFA_AARCH64_negate_ra_state`` and ``DW_CFA_AARCH64_negate_ra_state_with_pc``
630+
instructions must not be mixed with other DWARF Register Rule Instructions
631+
(GDWARF_, §6.4.2.3) on the RA_SIGN_STATE pseudo-register in one Common
632+
Information Entry (CIE) and Frame Descriptor Entry (FDE) program sequence.
596633

597634
.. _DWARF expression operations:
598635

aaelf32/aaelf32.rst

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
..
2-
Copyright (c) 2005-2009, 2012, 2015, 2018, 2020-2023, Arm Limited and its affiliates. All rights
2+
Copyright (c) 2005-2009, 2012, 2015, 2018, 2020-2024, Arm Limited and its affiliates. All rights
33
reserved. CC-BY-SA-4.0 AND Apache-Patent-License See LICENSE file
44
for details
55
6-
.. |release| replace:: 2023Q3
7-
.. |date-of-issue| replace:: 6\ :sup:`th` October 2023
8-
.. |copyright-date| replace:: 2005-2009, 2012, 2015, 2018, 2020-2023
6+
.. |release| replace:: 2024Q3
7+
.. |date-of-issue| replace:: 5\ :sup:`th` September 2024
8+
.. |copyright-date| replace:: 2005-2009, 2012, 2015, 2018, 2020-2024
99
.. |footer| replace:: Copyright © |copyright-date|, Arm Limited and its
1010
affiliates. All rights reserved.
1111
.. |armarmv5_link| replace:: https://developer.arm.com/docs/ddi0100/latest/armv5-architecture-reference-manual
@@ -980,6 +980,8 @@ potential for conflicts.
980980
+-------------------+---------------------------------------------------------------------+
981981
| ``llvm`` | The LLVM/Clang projects |
982982
+-------------------+---------------------------------------------------------------------+
983+
| ``mchp`` | Microchip Technology Inc. |
984+
+-------------------+---------------------------------------------------------------------+
983985
| ``PSI`` | PalmSource Inc. |
984986
+-------------------+---------------------------------------------------------------------+
985987
| ``RAL`` | Rowley Associates Ltd |
@@ -1765,7 +1767,7 @@ The following nomenclature is used for the operation:
17651767
+---------+----------------------------------+------------+---------------+----------------------------------------+
17661768
| 2 | :code:`R_ARM_ABS32` | Static | Data | :code:`(S + A) | T` |
17671769
+---------+----------------------------------+------------+---------------+----------------------------------------+
1768-
| 3 | :code:`R_ARM_REL32` | Static | Data | :code:`((S + A) | T) | – P` |
1770+
| 3 | :code:`R_ARM_REL32` | Static | Data | :code:`((S + A) | T) – P` |
17691771
+---------+----------------------------------+------------+---------------+----------------------------------------+
17701772
| 4 | :code:`R_ARM_LDR_PC_G0` | Static | Arm | :code:`S + A – P` |
17711773
+---------+----------------------------------+------------+---------------+----------------------------------------+

aaelf64-morello/aaelf64-morello.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
..
2-
Copyright (c) 2020-2023, Arm Limited and its affiliates. All rights reserved.
2+
Copyright (c) 2020-2024, Arm Limited and its affiliates. All rights reserved.
33
CC-BY-SA-4.0 AND Apache-Patent-License
44
See LICENSE file for details
55
6-
.. |release| replace:: 2023Q3
7-
.. |date-of-issue| replace:: 6\ :sup:`th` October 2023
8-
.. |copyright-date| replace:: 2020-2023
6+
.. |release| replace:: 2024Q3
7+
.. |date-of-issue| replace:: 5\ :sup:`th` September 2024
8+
.. |copyright-date| replace:: 2020-2024
99
.. |footer| replace:: Copyright © |copyright-date|, Arm Limited and its
1010
affiliates. All rights reserved.
1111

0 commit comments

Comments
 (0)