diff options
Diffstat (limited to 'src/signal/or1k/sigsetjmp.s')
-rw-r--r-- | src/signal/or1k/sigsetjmp.s | 25 |
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) |