Home | History | Annotate | Line # | Download | only in sys
      1 /*	$NetBSD: cerror.S,v 1.1 2014/09/03 19:34:26 matt Exp $	*/
      2 
      3 #include "SYS.h"
      4 #include "assym.h"
      5 
      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 */
      9 
     10 #ifndef _REENTRANT
     11 	.globl	_C_LABEL(errno)
     12 #endif
     13 #ifdef __PIC__
     14 	.protected _C_LABEL(__cerror)
     15 #endif
     16 
     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)
     52