diff options
author | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
---|---|---|
committer | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
commit | 4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch) | |
tree | ebf009bf1376a5a223a915bc27cbbd791a1316bc /src/signal/aarch64 |
Initial version
Diffstat (limited to 'src/signal/aarch64')
-rw-r--r-- | src/signal/aarch64/restore.s | 10 | ||||
-rw-r--r-- | src/signal/aarch64/sigsetjmp.s | 21 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/signal/aarch64/restore.s b/src/signal/aarch64/restore.s new file mode 100644 index 0000000..d4e5fcf --- /dev/null +++ b/src/signal/aarch64/restore.s @@ -0,0 +1,10 @@ +.global __restore +.hidden __restore +.type __restore,%function +__restore: +.global __restore_rt +.hidden __restore_rt +.type __restore_rt,%function +__restore_rt: + mov x8,#139 // SYS_rt_sigreturn + svc 0 diff --git a/src/signal/aarch64/sigsetjmp.s b/src/signal/aarch64/sigsetjmp.s new file mode 100644 index 0000000..75910c4 --- /dev/null +++ b/src/signal/aarch64/sigsetjmp.s @@ -0,0 +1,21 @@ +.global sigsetjmp +.global __sigsetjmp +.type sigsetjmp,%function +.type __sigsetjmp,%function +sigsetjmp: +__sigsetjmp: + cbz x1,setjmp + + str x30,[x0,#176] + str x19,[x0,#176+8+8] + mov x19,x0 + + bl setjmp + + mov w1,w0 + mov x0,x19 + ldr x30,[x0,#176] + ldr x19,[x0,#176+8+8] + +.hidden __sigsetjmp_tail + b __sigsetjmp_tail |