singlepath: store/restore R9 at function calls

R9 is used as temporary register during frame setup.
Although R9 is caller saved, in SP code, in disabled blocks, calls are
still executed unconditionally, modifying R9.
Re-/storing R9 together with other SP-related stack slots seems the
easiest way (as opposed to making distinguished calling conventions, or
a different set of callee-saved registers).