Power.org, the organization that promotes and develops standards for Power Architecture technology, announced the availability of the Power Architecture 32-bit Application Binary Interface Supplement that is current with Power ISA 2.05 (Power Architecture 32-bit ABI Supplement 1.0).
The supplement, collaboratively prepared by Code Sourcery (now part of Mentor Graphics), Eager Consulting, Freescale Semiconductor, Green Hills Software, IBM, and Wind River, provides detailed documentation on the current state of the 32-bit Power Architecture processor-specific ELF ABI as implemented for the Linux Operating System and embedded environments.
The new document, which includes every unique update generated by interested parties of the ABI, was published under the GNU Free Document License (Version 1.3).
The Power.org technical subcommittee originated after several Power.org member companies sought to document the de facto ABI into a unified document. The objective was to deliver detailed documentation and eliminate possible fragmentation caused by changes made independently. Unification of the Linux and embedded ABIs will allow a high level of compatibility among Power Architecture implementations.
The original 32-bit PowerPC ELF ABI document, “System V Application Binary Interface: PowerPC Processor Supplement,” which was published in September 1995, was created cooperatively by IBM and SunSoft using UNIX System Laboratories, Inc. copyrighted material with permission. Since then, the advancement of Power Architecture hardware, improvements in security, and the maturation of the generic ELF ABI specification, necessitated numerous changes to the specification.
The information in the new ABI document was largely derived from the 64-bit Power ELF ABI, E500 ABI, EABI, TLS ABI, and Secure-PLT ABI. By publishing the supplement under the GNU Free Document License, future loss of revision authority is prevented. The following changes to the ABI are thoroughly documented in the new supplement:
- APU Information
- C++ Exception support
- Complex Numbers
- DFP – Decimal Floating Point Hardware support
- DWARF (Debugging Format)
- EABI – Embedded ABI
- SPE – Signal Processing Engine Hardware support
- TLS – Thread Local Storage
- Vector – AltiVec support
- VLE – Variable Length Encoding Hardware support
Fragmentation caused by changes made since the original ABI documentation was written has been corrected or documented as incompatible by certain implementations. Fragmentation had occurred in the register reservation/usage overlap (small data areas vs. TLS ABI), complex number passing conventions (GPRs vs. Passed as Structs), and overlap in relocation number reservations and type duplications.
To download the materials, visit www.power.org/resources/downloads/.
Planned future revisions include:
- Dynamic Stack Unwind info vs. Static Register Save Areas
- ISA 2.06 currency
- Pass Complex types in floating point registers
- Secure-PLT for EABI.
- STT_GNU_IFUNC support
- TLS ABI for EABI (challenges due to register assignment)
- VSX ABI
For more information, visit www.power.org.
Toni McConnel can be reached at .