about summary refs log tree commit diff
path: root/src/signal/arm/sigsetjmp.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/signal/arm/sigsetjmp.s')
-rw-r--r--src/signal/arm/sigsetjmp.s24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/signal/arm/sigsetjmp.s b/src/signal/arm/sigsetjmp.s
index 0e7bcd49..89c020b8 100644
--- a/src/signal/arm/sigsetjmp.s
+++ b/src/signal/arm/sigsetjmp.s
@@ -4,13 +4,19 @@
 .type __sigsetjmp,%function
 sigsetjmp:
 __sigsetjmp:
-	str a2,[a1,#256]
-	tst a2,a2
+	tst r1,r1
 	beq setjmp
-	push {a1,lr}
-	add a3,a1,#260
-	mov a2,#0
-	mov a1,#2
-	bl sigprocmask
-	pop {a1,lr}
-	b setjmp
+
+	str lr,[r0,#256]
+	str r4,[r0,#260+8]
+	mov r4,r0
+
+	bl setjmp
+
+	mov r1,r0
+	mov r0,r4
+	ldr lr,[r0,#256]
+	ldr r4,[r0,#260+8]
+
+.hidden __sigsetjmp_tail
+	b __sigsetjmp_tail