Skip to content

Releases: ARM-software/abi-aa

2024Q3

05 Sep 10:43
a82eef0
Compare
Choose a tag to compare

What's Changed

  • [AAELF64][SYSVABI64] Move dynamic linking contents to sysvabi64 by @smithp35 in #228
  • [SYSVABI64] Add Guarded Control Stack (GCS) Feature Bit by @smithp35 in #231
  • Add Microchip Technology Inc. to registered vendors with prefix mchp by @ashearer-mchp in #238
  • Fix "reloction" typo by @smeenai in #241
  • Fix 'unit32' typo in addenda32.rst by @valdaarhun in #244
  • Promote the SME(2) ABI status from Alpha to Beta by @rsandifo-arm in #243
  • Define soft-float PCS for AArch64 by @ostannard in #232
  • Clarify R__RELATIVE optimization wording by @smeenai in #242
  • Fix aadwarf64 typo in readme by @billybednar in #248
  • [aadwarf64] Add DWARF support for unwinding with FEAT_PAuth_LR enabled by @pratlucas in #245
  • [PAuthABIELF64] Use .note.gnu.property section as ELF marking scheme. by @smithp35 in #240
  • [AAELF64] Reserve dynamic tags used by memtagabielf64 and pauthabi64 by @smithp35 in #216
  • [AAELF64][PAUTHABI64] Assign PAuthABI relocation codes. by @smithp35 in #227
  • [CLIBABI32] Restore missing reference to EDOM. by @statham-arm in #251
  • Fix the typo in Operation Definition for R_ARM_REL32 by @eymay in #261
  • Document a new SME support routine to query the current value of VG. by @kmclaughlin-arm in #263
  • [aapcs64] Clarify meaning of "it" when preserving z and p regs by @smithp35 in #267
  • [PAUTHABIELF64] Remove alternative ELF marking scheme by @smithp35 in #250
  • [pauthabielf64] Fix typo in relocation name by @smithp35 in #255
  • [PAUTHABIELF64] Add R_AARCH64_AUTH_GOT_ADR_PREL_LO21 relocation by @smithp35 in #259
  • [aapcs64] Round up to a multiple of 8, not just to 8 by @rjmccall in #270
  • [AAELF64] Clarify how addends work in MOVZ, MOVK and ADRP. by @statham-arm in #271
  • [AAPCS64] Use oxford comma in soft-float ABI by @ostannard in #277
  • [NFC] address language suggestions across various documents by @stuij in #278
  • [aaelf64][pauthabi64] Remove addend in GDAT relocation operation by @smithp35 in #272
  • [aaelf64] Fix PAuthABI relocation details. by @smithp35 in #254
  • [ATOMICSABI64]: Alpha Draft of Atomics ABI by @lukeg101 in #256

New Contributors

Full Changelog: 2023Q3...2024Q3

Specifications included in this release

ABI for the Arm 32-bit Architecture

  • ABI for the Arm Architecture - Base Standard - pdf, html
  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • Base Platform ABI for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Support for Debugging Overlaid Programs - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
  • ABI Advisory Note - SP 8-byte alignment - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • C++ ABI for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html
  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • System V ABI for the Arm 64-bit Architecture - pdf, html
  • Memtag Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • C/C++ Atomics Application Binary Interface Standard for the Arm 64-bit Architecture - pdf, html

Morello Extension

Read more

2023Q3

20 Oct 16:23
Compare
Choose a tag to compare

changes

  • Add Dignus LLC to registered vendors
  • [aaelf64] Expand STO_AARCH64_VARIANT_PCS documentation
  • [aaelf64] Relax BTI PLT requirement
  • [Semihosting] Specify SYS_TIME return value as unsigned
  • [aapcs32][aapcs64] Update language mappings to include _BitInt(N)

the specifications included in this release

ABI for the Arm 32-bit Architecture

  • ABI for the Arm Architecture - Base Standard - pdf, html
  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • Base Platform ABI for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Support for Debugging Overlaid Programs - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
  • ABI Advisory Note - SP 8-byte alignment - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • C++ ABI for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html

PAuth ABI Extension

  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html

Morello Extension

  • Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html

Miscellaneous material

  • Semihosting for AArch32 and AArch64 - pdf, html

download bundle

PDFs of all the above specifications have also been bundled in this zip file.

2023Q1

13 Apr 14:32
Compare
Choose a tag to compare

Changes

  • memtagabielf64
    • Add the Alpha version of MemtagABI
  • sysvabi64
    • Define the processor specific interpretation for DT_PLTGOT
  • aaelf64-morello
    • Describe the purecap TLS implementation in the ELF appendix
  • aapcs64-morello
    • Rework varargs for Morello

the specifications included in this release

ABI for the Arm 32-bit Architecture

  • ABI for the Arm Architecture - Base Standard - pdf, html
  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • Base Platform ABI for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Support for Debugging Overlaid Programs - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
  • ABI Advisory Note - SP 8-byte alignment - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • C++ ABI for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html

PAuth ABI Extension

  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html

Morello Extension

  • Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html

Miscellaneous material

  • System V ABI for the Arm 64-bit Architecture - pdf, html
  • Memtag Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • Semihosting for AArch32 and AArch64 - pdf, html

download bundle

PDFs of all the above specifications have also been bundled in this zip file.

2022Q3

04 Nov 17:25
Compare
Choose a tag to compare

changes

  • aapcs64:

    • Across the document, use “thread” rather than “process”.
    • Add support for SME.
  • aadwarf64:

    • Describe SME-related changes to VG.
  • aaelf64:

    • Include the ABS64 and ABS32 relocations in Dynamic relocations.
    • ADRP + LDR GOT relaxation symbol should not be absolute.
    • Document new PT_AARCH64_MEMTAG_MTE segment.
  • aapcs64-morello:

    • Rework varargs for Morello.
  • aaelf64-morello:

    • Describe the purecap TLS implementation.
  • sysvabi64:

    • Add chapter on Program Loading and Dynamic Linking.
  • ehabi32:

    • PACBTI-M unwinding rule in case of nested functions.
  • not strictly part of the release but within this timeframe the legacy ABI documents previously hosted on developer.arm.com were added to the Git repo.

the specifications included in this release

ABI for the Arm 32-bit Architecture

  • ABI for the Arm Architecture - Base Standard - pdf, html
  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • Base Platform ABI for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Support for Debugging Overlaid Programs - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
  • ABI Advisory Note - SP 8-byte alignment - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • C++ ABI for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html
  • System V ABI for the Arm 64-bit Architecture - pdf, html

PAuth ABI Extension

  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html

Morello Extension

  • Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html

Miscellaneous material

  • Semihosting for AArch32 and AArch64 - pdf, html

download bundle

PDFs of all the above specifications have also been bundled in this zip file.

other specifications

For other ABI specifications, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi

2022Q1

06 Apr 11:43
Compare
Choose a tag to compare

changes

All the changes in this release are captured by the 2022Q1 milestones.
Substantive changes:

  • aapcs64-morello:
    fix up rule C.8 on capabilities: #120

  • aaelf64:
    soft-deprecate GNU_PROPERTY_AARCH64_FEATURE_1_PAC: #121

  • aadwarf64:
    move Pointer Authentication out from BETA state: #127
    document a limitation of the DW_CFA_AARCH64_negate_ra_state: #129

alpha-level support for Scalable Matrix Extension (SME)

A piece of work that didn't make it into the release but should get an honorable mention is the 'alpha-level support for SME' pull request: #123. This involves big changes to the aapcs64 document, and we would appreciate any kind of feedback on it.

the specifications included in this release

ABI for the Arm 32-bit Architecture

  • ABI for the Arm Architecture - Base Standard - pdf, html
  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • Base Platform ABI for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Support for Debugging Overlaid Programs - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
  • ABI Advisory Note - SP 8-byte alignment - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • C++ ABI for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html
  • System V ABI for the Arm 64-bit Architecture - pdf, html

PAuth ABI Extension

  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html

Morello Extension

  • Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html

Miscellaneous material

  • Semihosting for AArch32 and AArch64 - pdf, html

download bundle

PDFs of all the above specifications have also been bundled in this zip file.

other specifications

For older versions of the ABI specifications from before they got hosted within this Github repository, please go to:
https://developer.arm.com/architectures/system-architectures/software-standards/abi

2021Q3

22 Nov 12:18
Compare
Choose a tag to compare

changes

documents added

  • System V ABI for the Arm 64-bit Architecture - pdf, html

The SYSV ABI document is currently in alpha status and as for now only contains information on addressing modes and code models. We wish to expand the SYSV ABI content in the future.

changes made to existing documents

  • aaelf64-morello:
    add ELF markers to identify Morello purecap binaries: #101

  • aaelf64:
    reserved relocation codes for pauthabielf64: #100

  • aapcs64:
    Add support for Decimal-floating-point formats: #114

  • addenda32:
    Add Armv9-A value to Tag_CPU_arch: #111

  • pauthabielf64:
    clarify the concepts of a default and alternate pauth elf signing schemes: #105

the specifications included in this release

ABI for the Arm 32-bit Architecture

  • ABI for the Arm Architecture - Base Standard - pdf, html
  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • Base Platform ABI for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Support for Debugging Overlaid Programs - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
  • ABI Advisory Note - SP 8-byte alignment - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • C++ ABI for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html
  • System V ABI for the Arm 64-bit Architecture - pdf, html

PAuth ABI Extension

  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html

Morello Extension

  • Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html

Miscellaneous material

  • Semihosting for AArch32 and AArch64 - pdf, html

download bundle

PDFs of all the above specifications have also been bundled as a zip file.

2021Q1

23 Apr 11:47
Compare
Choose a tag to compare

changes

This release marks the completion of importing all the ABI documents into this repository. Thanks to everybody that made this possible.

Furthermore the other major addition is specifications around PAC/BTI-M .

newly converted documents

  • ABI Advisory Note (advnote132)
  • Support for Debugging Overlaid Programs (dbgovl32)
  • Application Binary Interface for the Arm Architecture introduction (bsabi32)
  • Base Platform ABI for the Arm Architecture (bpabi32)
  • C++ ABI for the Arm 64-bit Architecture (cppabi64)

changes to documents

  • aapcs32: Clarify what it means for a VFP CPRC argument to be correctly aligned.
  • addenda32: Add definitions for PACBTI-M related build attributes.
  • ehabi: PACBTI-M unwinding information.
  • aadwarf32:
    • PACBTI-M unwinding information.
    • Deleted duplicated TPIDRURO register number entry.
  • aapcs64:
    • Clarify rule C.4 of the parameter passing rules when there is an overaligned HFA.
    • Minor formatting changes.
  • aaelf64: Various typo fixes.
  • clibabi32: BTI info

the specifications included in this release

ABI for the Arm 32-bit Architecture

  • ABI for the Arm Architecture - Base Standard - pdf, html
  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • Base Platform ABI for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Support for Debugging Overlaid Programs - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html
  • ABI Advisory Note - SP 8-byte alignment - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • C++ ABI for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html

PAuth ABI Extension

  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html

Miscellaneous material

  • Semihosting for AArch32 and AArch64 - pdf, html

download bundle

PDFs of all the above specifications have also been bundled in this zip file.

release 2020Q4

23 Dec 15:01
Compare
Choose a tag to compare

The biggest change in this release is the addition of 10 converted specifications:

  • Procedure Call Standard for the Arm Architecture (aapcs32)
  • ELF for the Arm Architecture (aaelf32)
  • DWARF for the Arm Architecture (aadwarf32)
  • C++ ABI for the Arm Architecture (cppabi32)
  • Run-time ABI for the Arm Architecture (rtabi32)
  • DWARF for the Arm 64-bit Architecture (aadwarf64)
  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture (pauthabielf64)
  • Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture (aapcs64)
  • Morello Extension to ELF for the Arm 64-bit Architecture (aaelf64)
  • Morello Extension to DWARF for the Arm 64-bit Architecture (aadwarf64)
  • Semihosting for AArch32 and AArch64 (semihosting)

In addition, both the 32-bit and 64-bit versions of the Dwarf ABI specs gained Thread ID register number assignments, and in the 64-bit version of the Dwarf ABI spec, the PC was added as a register.

the specifications included in this release

ABI for the Arm 32-bit Architecture

  • Procedure Call Standard for the Arm Architecture - pdf, html
  • ELF for the Arm Architecture - pdf, html
  • DWARF for the Arm Architecture - pdf, html
  • C++ ABI for the Arm Architecture - pdf, html
  • Exception Handling ABI for the Arm Architecture - pdf, html
  • Run-time ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html

ABI for the Arm 64-bit Architecture

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • DWARF for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html

PAuth ABI Extension

  • PAuth ABI Extension to ELF for the Arm 64-bit Architecture - pdf, html

Morello Extension

  • Morello Extension to the Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to ELF for the Arm 64-bit Architecture - pdf, html
  • Morello Extension to DWARF for the Arm 64-bit Architecture - pdf, html

Miscellaneous material

  • Semihosting for AArch32 and AArch64 - pdf, html

download bundle

PDFs of all the above specifications have also been bundled in this zip file.

other specifications

For the other ABI specifications, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi

release 2020Q3

02 Oct 12:33
Compare
Choose a tag to compare

The biggest change in this release is the addition of 4 new documents:

  • Exception Handling ABI for the Arm Architecture
  • C Library for the Arm Architecture
  • Addenda to, and Errata in, the ABI for the ARM Architecture
  • ELF for the Arm 64-bit Architecture

Additionally, we've specified ABI handling for 8.7-A's new FPCR bits in the aapcs64 and we added a missing table entry for Tag_DSP_extension in the addenda32 document (as compared to the latest version up on developer.arm.com).

the documents included in this release

ABI for the Arm 32-bit Architecture:

  • Exception Handling ABI for the Arm Architecture - pdf, html
  • C Library for the Arm Architecture - pdf, html
  • Addenda to, and Errata in, the ABI for the ARM Architecture - pdf, html

ABI for the Arm 64-bit Architecture:

  • Procedure Call Standard for the Arm 64-bit Architecture - pdf, html
  • ELF for the Arm 64-bit Architecture - pdf, html
  • Vector Function ABI for the Arm 64-bit Architecture - pdf, html

For other ABI documents, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi

release 2020Q2

25 Jun 13:41
Compare
Choose a tag to compare

The following documents are included in this 2020Q2 release:

  • Procedure Call Standard for the Arm® 64-bit Architecture (AArch64) - pdf, html
  • Vector Function Application Binary Interface Specification for AArch64 - pdf, html

For other ABI documents, please go to: https://developer.arm.com/architectures/system-architectures/software-standards/abi