Remove building with NOCRYPTO option
[minix3.git] / lib / libc / arch / or1k / sys / cerror.S
blob7f91a2023a80edb331acba6b711b9d05976485a5
1 /*      $NetBSD: cerror.S,v 1.1 2014/09/03 19:34:26 matt Exp $  */
3 #include "SYS.h"
4 #include "assym.h"
6 #if defined(LIBC_SCCS) && !defined(lint)
7 __RCSID("$NetBSD: cerror.S,v 1.1 2014/09/03 19:34:26 matt Exp $")
8 #endif /* LIBC_SCCS && !lint */
10 #ifndef _REENTRANT
11         .globl  _C_LABEL(errno)
12 #endif
13 #ifdef __PIC__
14         .protected _C_LABEL(__cerror)
15 #endif
17 ENTRY(__cerror)
18 #ifdef _REENTRANT
19         l.sw    -4(r1),r3
20         l.sw    -8(r1),lr
21         l.sw    -16(r1),r1
22         l.addi  r1,r1,-16
23 #ifdef __PIC__
24         l.sw    -12(r1),r16
25         PIC_GOTSETUP(r16)
26 #endif
27         l.jal   PLT(_C_LABEL(__errno))  # needs got in r16
28         l.nop
29         l.addi  r1,r1,16
30 #ifdef __PIC__
31         l.lwz   r16,-12(r1)
32 #endif
33         l.lwz   lr,-8(r1)
34         l.lwz   r3,-4(r1)
35 #else
36 #ifdef __PIC__
37         l.or    r8,r9,r0
38         PIC_GOTSETUP(r4)
39         l.lwz   r11,got(_C_LABEL(errno))(r4)
40         l.or    r9,r8,r0
41 #else
42         l.movi  r11,hi(_C_LABEL(errno))
43         l.ori   r11,lo(_C_LABEL(errno))
44 #endif /* __PIC__ */
45 #endif /* _REENTRANT */
46         l.sw    0(r11),r3
47         l.addi  r11,r0,-1
48         l.addi  r12,r0,-1
49         l.jr    lr
50         l.nop
51 END(__cerror)