About this Document
This specification defines the OpenPOWER ELF V2 application binary interface (ABI).
This ABI is derived from and represents the first major update to the Power ABI since the
original release of the IBM® RS/6000® ABI. It was developed to make extensive use of new
functions available in OpenPOWER-compliant processors. It expects an OpenPOWER-compliant
processor to implement at least Power ISA V2.07B with all OpenPOWER Architecture instruction
categories as well as OpenPOWER-defined implementation characteristics for some
implementation-specific features.
Specifically, to use this ABI and ABI-compliant programs, OpenPOWER-compliant
processors must implement the following categories:
Base
64-Bit
Server (subject to system-level requirements)
Floating-Point
Floating-Point.Record
Load/Store Quadword x2
Store Conditional Page Mobility (subject to system-level requirements)
Stream
Transactional Memory
Vector
Vector.Little-Endian
Vector-Scalar
For more information about these categories, see “Categories” in Book I of
Power ISA, version 2.07B.
The OpenPOWER ELF V2 ABI is intended for use in little- and big-endian environments.
Notices
This document is based on the following publications:
Power Architecture 32-bit Application Binary Interface Supplement 1.0
by Ryan S. Arnold, Greg Davis, Brian Deitrich, Michael Eager, Emil Medve, Steven J. Munroe,
Joseph S. Myers, Steve Papacharalambous, Anmol P. Paralkar, Katherine Stewart, and Edmar Wienskoski,
1.0 Edition. Published April 19, 2011. Copyright © 1999, 2003, 2004 IBM Corporation. Copyright © 2002
Freescale Semiconductor, Inc. Copyright © 2003, 2004 Free Standards Group. Copyright © 2011 Power.org
Portions of Power Architecture 32-bit Application Binary Interface Supplement 1.0
are derived from the 64-bit PowerPC® ELF Application Binary Interface Supplement 1.8, originally written by
Ian Lance Taylor under contract for IBM, with later revisions by: David Edelsohn, Torbjorn Granlund,
Mark Mendell, Kristin Thomas, Alan Modra, Steve Munroe, and Chris Lorenze.
The Thread Local Storage section of this document is an original contribution of IBM written by
Alan Modra and Steven Munroe.
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at
“Copyright and trademark information” at
www.ibm.com/legal/copytrade.shtml.
The following terms are trademarks or registered trademarks licensed by Power.org in the
United States and/or other countries: Power ISATM, Power Architecture®.
Information on the list of U.S. trademarks licensed by Power.org may be found at
www.power.org/about/brand-center/.
The following terms are trademarks or registered trademarks of Freescale Semiconductor
in the United States and/or other countries: AltiVecTM, e500TM.
Information on the list of U.S. trademarks owned by Freescale Semiconductor may be found at
www.freescale.com/files/abstract/help_page/TERMSOFUSE.html.
Itanium, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered
trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Java, and all Java-based trademarks and logos are trademarks or registered trademarks of
Oracle and/or its affiliates.
Other company, product, and service names may be trademarks or service marks of others.