summaryrefslogtreecommitdiff
path: root/src/signal/aarch64
diff options
context:
space:
mode:
Diffstat (limited to 'src/signal/aarch64')
-rw-r--r--src/signal/aarch64/sigsetjmp.s22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/signal/aarch64/sigsetjmp.s b/src/signal/aarch64/sigsetjmp.s
index e0f83f06..347d0bc0 100644
--- a/src/signal/aarch64/sigsetjmp.s
+++ b/src/signal/aarch64/sigsetjmp.s
@@ -4,16 +4,18 @@
.type __sigsetjmp,%function
sigsetjmp:
__sigsetjmp:
- str x1,[x0,#176]
cbz x1,setjmp
- // TODO errno?
- // sigprocmask(SIG_SETMASK, 0, (sigset_t*)buf->__ss);
- stp x0,x30,[sp,#-16]!
- add x2,x0,#184
- mov x1,#0
- mov x0,#2
- bl sigprocmask
- ldp x0,x30,[sp],#16
+ str lr,[x0,#176]
+ str x19,[x0,#176+8+8]
+ mov x19,x0
- b setjmp
+ bl setjmp
+
+ mov w1,w0
+ mov x0,x19
+ ldr lr,[x0,#176]
+ ldr x19,[x0,#176+8+8]
+
+.hidden __sigsetjmp_tail
+ b __sigsetjmp_tail