From 4abab5ad6c8465a7528ccdd5f49367da05f78bbd Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Tue, 1 Oct 2024 15:47:05 +0200 Subject: Initial version --- src/setjmp/aarch64/longjmp.s | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/setjmp/aarch64/longjmp.s (limited to 'src/setjmp/aarch64/longjmp.s') diff --git a/src/setjmp/aarch64/longjmp.s b/src/setjmp/aarch64/longjmp.s new file mode 100644 index 0000000..0af9c50 --- /dev/null +++ b/src/setjmp/aarch64/longjmp.s @@ -0,0 +1,23 @@ +.global _longjmp +.global longjmp +.type _longjmp,%function +.type longjmp,%function +_longjmp: +longjmp: + // IHI0055B_aapcs64.pdf 5.1.1, 5.1.2 callee saved registers + ldp x19, x20, [x0,#0] + ldp x21, x22, [x0,#16] + ldp x23, x24, [x0,#32] + ldp x25, x26, [x0,#48] + ldp x27, x28, [x0,#64] + ldp x29, x30, [x0,#80] + ldr x2, [x0,#104] + mov sp, x2 + ldp d8 , d9, [x0,#112] + ldp d10, d11, [x0,#128] + ldp d12, d13, [x0,#144] + ldp d14, d15, [x0,#160] + + cmp w1, 0 + csinc w0, w1, wzr, ne + br x30 -- cgit v1.2.3