The PowerPC Processor Element (PPE)'s PowerPC instructions can
have up to three operands. Most computational instructions specify two source
operands and one destination operand.
The PPE’s PowerPC instructions include the following types:
- Integer Instructions – These include arithmetic, compare, logical,
and rotate/shift instructions. They operate on byte, halfword, word, and doubleword
operands.
- Floating-Point Instructions – These include floating-point arithmetic,
multiply-add, compare, and move instructions, as well as instructions that
affect the Floating-Point Status and Control Register (FPSCR). Floating-point
instructions operate on single-precision and double-precision floating-point
operands.
- Load and Store Instructions – These include integer and floating-point
load and store instructions, with byte-reverse, multiple, and string options
for the integer loads and stores.
- Memory Synchronization Instructions – These instructions control
the order in which memory operations are completed with respect to asynchronous
events, and the order in which memory operations are seen by other processors
or memory-access mechanisms. The instruction types include load and store
with reservation, synchronization, and enforce in-order execution of I/O.
They are especially useful for multiprocessing.
- Flow Control Instructions – These include branch, Condition-Register
logical, trap, and other instructions that affect the instruction flow.
- Processor Control Instructions – These instructions are used for
synchronizing memory accesses and managing caches, Translation Lookaside Buffers
(TLBs), segment registers, and other privileged processor states. They include
move-to/from special-purpose register instructions.
- Memory and Cache Control Instructions – These instructions control
caches, TLBs, and segment registers.
- External Control Instructions – These instructions allow a user-level
program to communicate with a special-purpose device.