__sigsetjmp14.S revision 1.4 1 /* $NetBSD: __sigsetjmp14.S,v 1.4 2023/10/11 09:12:21 skrll Exp $ */
2
3 #include "SYS.h"
4
5 #if defined(LIBC_SCCS)
6 .text
7 .asciz "$NetBSD: __sigsetjmp14.S,v 1.4 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,100 # &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 i = 0
24 .rept 32-7
25 std 7+i,i*8(%r6) # save r7-r31
26 i = i + 1
27 .endr
28 li %r3,0
29 blr
30 END(__sigsetjmp14)
31
32 ENTRY(__siglongjmp14)
33 i = 0
34 .rept 32-7
35 ld 7+i,i*8(%r3) # load r7-r31
36 i = i + 1
37 .endr
38 mr %r6,%r4
39 mtlr %r11
40 mtcr %r12
41 mr %r2,%r9
42 mr %r1,%r10
43 or. %r7,%r7,%r7
44 beq 1f
45 addi %r4,%r3,100 # &sigmask
46 li %r3,3 # SIG_SETMASK
47 li %r5,0
48 _DOSYSCALL(__sigprocmask14) # assume no error XXX
49 1:
50 or. %r3,%r6,%r6
51 bnelr
52 li %r3,1
53 blr
54 END(__siglongjmp14)
55