Fix mdoc(7)/man(7) mix up.
[netbsd-mini2440.git] / lib / libc / arch / powerpc64 / gen / __sigsetjmp14.S
blob6e51067d5bcc94ffdafaf2fbe71e11b04e8b58e3
1 /*      $NetBSD: __sigsetjmp14.S,v 1.4 2006/02/18 00:45:22 matt Exp $   */
3 #include <sys/syscall.h>
4 #include <machine/asm.h>
6 #if defined(LIBC_SCCS)
7         .text
8         .asciz "$NetBSD: __sigsetjmp14.S,v 1.4 2006/02/18 00:45:22 matt Exp $"
9 #endif
11 ENTRY(__sigsetjmp14)
12         mr      %r6,%r3
13         or.     %r7,%r4,%r4
14         beq     1f
15         li      %r3,1                   # SIG_BLOCK
16         li      %r4,0
17         addi    %r5,%r6,100             # &sigmask
18         li      %r0,SYS___sigprocmask14
19         sc                              # assume no error       XXX
21         mflr    %r11
22         mfcr    %r12
23         mr      %r10,%r1
24         mr      %r9,%r2
25         stmd    7, 0(%r6)               # save r7-r31
26         li      %r3,0
27         blr
29 ENTRY(__siglongjmp14)
30         lmd     7,0(%r3)                # load r7-r31
31         mr      %r6,%r4
32         mtlr    %r11
33         mtcr    %r12
34         mr      %r2,%r9
35         mr      %r1,%r10
36         or.     %r7,%r7,%r7
37         beq     1f
38         addi    %r4,%r3,100             # &sigmask
39         li      %r3,3                   # SIG_SETMASK
40         li      %r5,0
41         li      %r0,SYS___sigprocmask14
42         sc                              # assume no error       XXX
44         or.     %r3,%r6,%r6
45         bnelr
46         li      %r3,1
47         blr