Remove building with NOCRYPTO option
[minix.git] / lib / libc / arch / powerpc64 / gen / __setjmp14.S
blob80fe15eb9c989568bef71fe2087cb355739bc606
1 /*      $NetBSD: __setjmp14.S,v 1.3 2014/08/23 02:24:22 matt Exp $      */
3 #include "SYS.h"
5 #if defined(LIBC_SCCS)
6 __RCSID("$NetBSD: __setjmp14.S,v 1.3 2014/08/23 02:24:22 matt Exp $")
7 #endif
9 /*
10  * C library -- _setjmp, _longjmp
11  *
12  *      longjmp(a,v)
13  * will generate a "return(v?v:1)" from the last call to
14  *      setjmp(a)
15  * by restoring registers from the stack.
16  * The previous signal state is restored.
17  */
19 ENTRY(__setjmp14)
20         mr      %r6,%r3
21         li      %r3,1                   # SIG_BLOCK
22         li      %r4,0
23         addi    %r5,%r6,100             # &sigmask
24         _DOSYSCALL(__sigprocmask14)     # assume no error       XXX
25         mflr    %r11
26         mfcr    %r12
27         mr      %r10,%r1
28         mr      %r9,%r2
30         std     %r8,8(%r6)              # save r8-r31
31         std     %r9,16(%r6)
32         std     %r10,24(%r6)
33         std     %r11,32(%r6)
34         std     %r12,40(%r6)
35         std     %r13,48(%r6)
36         std     %r14,56(%r6)
37         std     %r15,64(%r6)
38         std     %r16,72(%r6)
39         std     %r17,80(%r6)
40         std     %r18,88(%r6)
41         std     %r19,96(%r6)
42         std     %r20,104(%r6)
43         std     %r21,112(%r6)
44         std     %r22,120(%r6)
45         std     %r23,128(%r6)
46         std     %r24,136(%r6)
47         std     %r25,144(%r6)
48         std     %r26,152(%r6)
49         std     %r27,160(%r6)
50         std     %r28,168(%r6)
51         std     %r29,176(%r6)
52         std     %r30,184(%r6)
53         std     %r31,192(%r6)
55         li      %r3,0
56         blr
57 END(__setjmp14)
59 ENTRY(__longjmp14)
60         ld      %r8,8(%r6)              # load r8-r31
61         ld      %r9,16(%r6)
62         ld      %r10,24(%r6)
63         ld      %r11,32(%r6)
64         ld      %r12,40(%r6)
65         ld      %r13,48(%r6)
66         ld      %r14,56(%r6)
67         ld      %r15,64(%r6)
68         ld      %r16,72(%r6)
69         ld      %r17,80(%r6)
70         ld      %r18,88(%r6)
71         ld      %r19,96(%r6)                               
72         ld      %r20,104(%r6)
73         ld      %r21,112(%r6)
74         ld      %r22,120(%r6)
75         ld      %r23,128(%r6)
76         ld      %r24,136(%r6)
77         ld      %r25,144(%r6)
78         ld      %r26,152(%r6)
79         ld      %r27,160(%r6)
80         ld      %r28,168(%r6)
81         ld      %r29,176(%r6)
82         ld      %r30,184(%r6)
83         ld      %r31,192(%r6)
85         mr      %r6,%r4
86         mtlr    %r11
87         mtcr    %r12
88         mr      %r2,%r9
89         mr      %r1,%r10
90         addi    %r4,%r3,100             # &sigmask
91         li      %r3,3                   # SIG_SETMASK
92         li      %r5,0
93         _DOSYSCALL(__sigprocmask14)     # assume no error       XXX
94         or.     %r3,%r6,%r6
95         bnelr
96         li      %r3,1
97         blr
98 END(__longjmp14)