SLAA534A June 2013 – June 2020
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.
For MSP430 and MSP430X, R4 through R10 are callee-saved. However, when R4 or R5 is used as a global register, neither the caller nor the callee should save, restore, or otherwise use the register. Global registers are intended as a global state for interrupt functions. Global registers are deprecated for EABI.
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.