| CALLEE | ||
| REGISTER | USAGE | SAVE |
| Integer Registers | ||
| r01 | Used in prolog/epilog | NO |
| r1 | Stack pointer | YES |
| r2 | TOC pointer (reserved) | YES |
| r3-r4 | 1/2 para and return | NO |
| r5-r10 | 3-8th integer para | NO |
| r11-r12 | Func linkage regs | NO |
| r12 | Used by global linkage | NO |
| r13 | Small data area ptr reg | NO |
| r14-30 | Global int registers | YES |
| r31 | Global/environment ptr | YES |
| Floating Point Registers | ||
| f0 | Scratch reg | NO |
| f1 | 1st para / return | NO |
| f2-8 | 2-8th fp para | NO |
| f9-f13 | Scratch reg | NO |
| f14-f31 | Global fp regs | YES |
| Special Registers | ||
| CR0-CR7 | Condition reg fields, each 4 bits wide | 2, 3, 4 : YES |
| LR | Link register | YES |
| CTR | Count register | NO |
| XER | Fixed pt exception | NO |
| FPSCR | fp status & ctrl | NO |
Clint Whaley 2012-07-10