__sigsetjmp14.S revision 1.6 1 /* $NetBSD: __sigsetjmp14.S,v 1.6 2023/10/11 09:12:21 skrll Exp $ */
2
3 #include "SYS.h"
4 #include "assym.h"
5
6 #if defined(LIBC_SCCS)
7 __RCSID("$NetBSD: __sigsetjmp14.S,v 1.6 2023/10/11 09:12:21 skrll Exp $")
8 #endif
9
10 ENTRY(__sigsetjmp14)
11 mr %r6,%r3
12 or. %r7,%r4,%r4
13 beq 1f
14 li %r3,0 # how is ignored
15 li %r4,0 # set = NULL
16 addi %r5,%r6,4*(1+24) # &sigmask
17 _DOSYSCALL(__sigprocmask14) # assume no error XXX
18 1:
19 mflr %r11
20 mfcr %r12
21 mr %r10,%r1
22 mr %r9,%r2
23 stmw %r7,0(%r6) # save r7-r31
24 li %r3,0
25 blr
26 END(__sigsetjmp14)
27
28 ENTRY(__siglongjmp14)
29 lmw %r7,0(%r3) # load r7-r31
30 mr %r6,%r4
31 mtlr %r11
32 mtcr %r12
33 mr %r2,%r9
34 mr %r1,%r10
35 or. %r7,%r7,%r7
36 beq 1f
37 addi %r4,%r3,4*(1+24) # &sigmask
38 li %r3,SIG_SETMASK
39 li %r5,0
40 _DOSYSCALL(__sigprocmask14) # assume no error XXX
41 1:
42 or. %r3,%r6,%r6
43 bnelr
44 li %r3,1
45 blr
46 END(__siglongjmp14)
47