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
10ENTRY(__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
181:
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
26END(__sigsetjmp14)
27
28ENTRY(__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
411:
42          or.       %r3,%r6,%r6
43          bnelr
44          li        %r3,1
45          blr
46END(__siglongjmp14)
47