summaryrefslogtreecommitdiff
path: root/src/signal/or1k/sigsetjmp.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/signal/or1k/sigsetjmp.s')
-rw-r--r--src/signal/or1k/sigsetjmp.s25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/signal/or1k/sigsetjmp.s b/src/signal/or1k/sigsetjmp.s
index 70a29223..350c00e2 100644
--- a/src/signal/or1k/sigsetjmp.s
+++ b/src/signal/or1k/sigsetjmp.s
@@ -6,17 +6,18 @@ sigsetjmp:
__sigsetjmp:
l.sfeq r4, r0
l.bf plt(setjmp)
- l.sw 52(r3), r4 /* buf->__fl = save */
- l.addi r1, r1, -8
- l.sw 0(r1), r9
- l.sw 4(r1), r3
- l.addi r5, r3, 56 /* buf->__ss */
- l.add r4, r0, r0
- l.jal plt(sigprocmask)
- l.ori r3, r0, 2 /* SIG_SETMASK */
+ l.sw 52(r3), r9
+ l.sw 52+4+8(r3), r20
- l.lwz r9, 0(r1)
- l.lwz r3, 4(r1)
- l.j plt(setjmp)
- l.addi r1, r1, 8
+ l.jal plt(setjmp)
+ l.ori r20, r3, 0
+
+ l.ori r4, r11, 0
+ l.ori r3, r20, 0
+
+ l.lwz r9, 52(r3)
+
+.hidden __sigsetjmp_tail
+ l.j plt(__sigsetjmp_tail)
+ l.lwz r20, 52+4+8(r3)