Notes on PowerPC Instruction Set
from IBM's e-manuals
Contents
Types of Instructions
- 200+ total instructions
- branch
- fixed-point: for byte, halfword, word, and doubleword operands
- floating-point
Instruction Formats
- All instructions are 4 bytes long, word aligned
- Bits 0:5 specify Opcode; remaining bits are parsed in other ways (47 fields, like Rs, Rt, etc...)
- 15 different forms of instructions (i.e I-form, X-form)
see here: http://pds.twi.tudelft.nl/vakken/in1200/labcourse/instruction-set/ for simplified instruction set
Addressing
- Addressing computations use 64 bits, regardless of 32 or 64 bit mode. Upper bits are ignored in 32 bit mode
- Virtual Memory Page Table uses 4 kb blocks
Misc
See here http://the.wall.riscom.net/books/proc/ppc/cwg/a_stat.html for stats on instruction use
Fun Stuff
- Store/Load multiple: Store/Load multiple 32-bit data blocks at once!
- Little/Big Endian: "Binary Hebrew". Can read from left-right or right-left. Can even switch in the middle of a program!
- Interesting side note: The IBM PowerPC Instruction Set Documentation book tells us in section 5.3.8 that the term 'Endian' comes from Gulliver's travels, Part I, chapter 4. The things you learn in technical documents...
The 'eieio' form of instruction: Enforce In-Order Execution of I/O. Used for managing shared data structures. Old MacDonald is 21st century.