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 17ENTRY(__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 51END(__cerror) 52