Is there a way in Aarch64 to branch to an address on a stack while preserving all registers?

Viewed 97

I have access to a stack/memory which has some address stored on it (I know here it is and can load it). I also need to preserve all GPR registers in their current state once I branch to that address. I can store them to stack to get some scratch regs but I need to restore them before the final branch. Is it possible to do on AArch64 (v8-a) and if so, how? I think on older Arm v7 you could just LDR PC, <addr> but that's no longer possible. Maybe it's somehow possible to hijack elr/eret for this?

0 Answers
Related