Syscalls using SVC instructions usually pass arguments in r0, r1, etc. Our default handler pushes these registers to the stack, so we could pass the Rust handler a pointer to those preserved values on the stack. If we supplied a mutable pointer, they could even modify them to return values back to the caller.