remove possible-textrels from powerpc asm
[musl] / src / signal / powerpc / sigsetjmp.s
index 81f5a40..152c3fe 100644 (file)
@@ -1,34 +1,27 @@
        .global sigsetjmp
+       .global __sigsetjmp
        .type sigsetjmp,%function
+       .type __sigsetjmp,%function
 sigsetjmp:
-       #int sigsetjmp(sigjmp_buf buf, int save)
-       #               r3              r4
-       #0) store save into buf->__fl
-       stw 4, 256(3)
-       #1) compare save with 0
+__sigsetjmp:
        cmpwi cr7, 4, 0
-       #2) if its 0, goto setjmp code
        beq- cr7, 1f
-       #3) else: we must call pthread_sigmask(SIG_SETMASK, 0, (sigset_t *)buf->__ss);
-       # thus store r3 on the stack, to restore it later
-       stw 3, -4(1)
-       # store old link reg
-       mflr 0
-       stw 0, -8(1)
-       # increase stack frame by 16
-       subi 1, 1, 16
-       # put pointer to ss buf into r5 (3rd arg)
-       addi 5, 3, 260
-       # put "2" i.e. SIG_SETMASK in r3
-       li 3, 2
-       li 4, 0
-       bl pthread_sigmask
-       #restore sp
-       addi 1, 1, 16
-       #restore r3
-       lwz 3, -4(1)
-       #restore link reg
-       lwz 0, -8(1)
-       mtlr 0
-1:
-       b setjmp
+
+       mflr 5
+       stw 5, 448(3)
+       stw 16, 448+4+8(3)
+       mr 16, 3
+
+.hidden ___setjmp
+       bl ___setjmp
+
+       mr 4, 3
+       mr 3, 16
+       lwz 5, 448(3)
+       mtlr 5
+       lwz 16, 448+4+8(3)
+
+.hidden __sigsetjmp_tail
+       b __sigsetjmp_tail
+
+1:     b ___setjmp