Freescale Semiconductor, Inc.
The e500 Application Binary Interface (ABI), and possibly other ABIs, provide a mechanism for specifying
the types and revisions of APUs that are required for proper behavior of a program. This information is
contained in an optional .PPC.EMB.apuinfo section in the ELF-format object ﬁle. This document
provides the ofﬁcial mapping between Motorola Book E Implementation Standard APUs and the numeric
APU IDs that are used in the APUinfo section. See “APU Information Section” in Chapter 3, “Object Files,”
of the PowerPC e500 Application Binary Interface, for more details on the format and usage of this section.
The APU information is intended primarily to allow link-time checks of compatibility between object ﬁles
to avoid obvious errors. For example, because both AltiVec and the signal processing engine (SPE) APU use
the same instruction encodings for different instructions, linking an object ﬁle that requires AltiVec
instructions with an object ﬁle that requires SPE instructions should provide an error message.
The APU information can also be used by disassemblers to unambiguously disassemble such shared
opcodes. In addition, operating systems can use the APUinfo section in an application to provide transparent
emulation of APUs that are not present in the hardware. Without APU information, an operating system
would not know whether it should emulate AltiVec or SPE semantics for certain instruction encodings.
The APUinfo section contains an entry for each APU that the object ﬁle requires. Each entry contains a
32-bit word: an upper 16-bit half word specifying the APU type, and a lower 16-bit half word specifying the
revision of that APU. This document presents the current assignments for the APU types. See the reference
manual for the implementation to determine the revision of an APU for the lower half word of the entry.
Table 1-1 provides the current APU ID assignments. Note that this application note is the deﬁnitive source
for APU ID assignments and will be revised as new APUs are added.
Table 1-1. APU IDs
APU ID (16 Bits)
Reserved for legacy use
Motorola AltiVec APU 1
Book E integer select (isel) APU
Motorola Book E performance monitor APU
Motorola Book E machine check APU
Motorola Book E cache locking APU
Motorola Book E SPE APU
Motorola Book E SPFP APU
e500 branch-locking APU (also called the BTB locking APU)
1 Although AltiVec predates the Book E concept of APUs, AltiVec can be considered an APU.
Motorola Book E Implementation Standards: APU ID Reference
For More Information On This Product,
Go to: www.freescale.com