SPRAC71B February 2019 – October 2023
A called function is required to preserve the callee-saved registers so that they have the same value on return from a function as they had at the point of the call.
Registers XAR1, XAR2, and XAR3 are callee-saved. If the target supports FPU, the R4H, R5H, R6H, and R7H registers are also callee-saved.
All other general-purpose registers are caller-save; that is, they are not preserved across a call, so if their value is needed following the call, the caller is responsible for saving and restoring their contents.