add syscall numbers for the new renameat2 syscall
[musl] / src / signal / powerpc / sigsetjmp.s
1         .global sigsetjmp
2         .global __sigsetjmp
3         .type sigsetjmp,%function
4         .type __sigsetjmp,%function
5 sigsetjmp:
6 __sigsetjmp:
7         #int sigsetjmp(sigjmp_buf buf, int save)
8         #               r3              r4
9         #0) store save into buf->__fl
10         stw 4, 448(3)
11         #1) compare save with 0
12         cmpwi cr7, 4, 0
13         #2) if its 0, goto setjmp code
14         beq- cr7, 1f
15         #3) else: we must call pthread_sigmask(SIG_SETMASK, 0, (sigset_t *)buf->__ss);
16         # store non-volatile regs 30, 31 into the setjmp buf
17         stw 30, 0(3)
18         stw 31, 4(3)
19         # use them to store the pointer to the jmpbuf and the link reg
20         mr 30, 3
21         mflr 31
22         
23         # put pointer to ss buf into r5 (3rd arg)
24         addi 5, 3, 452
25         # put "2" i.e. SIG_SETMASK in r3
26         li 3, 2
27         li 4, 0
28         bl pthread_sigmask
29         
30         #restore jmpbuf pointer and link reg
31         mr 3, 30
32         mtlr 31
33         #resore non-volatile regs
34         lwz 30, 0(3)
35         lwz 31, 4(3)
36
37 1:
38         b setjmp