A function can use r0 and r3 - r12 without saving and restoring them.
r13 - r31 have to be preserved
so they must be saved and restored when you want to use them.
Also, cr2 - cr4 must be preserved,
while cr0, cr1, cr5 - cr7, lr, ctr and xer
can be used without saving & restoring them.
[ Posted Tue, 15 Jul 2003 by Paul Mackerras to linuxppc-embedded@lists.linuxppc.org ].