1*4d12bfcdSjoerg/* $NetBSD: cerror.S,v 1.11 2013/09/12 15:36:16 joerg Exp $ */ 21394f01bSchristos 30b9f5089Scgd/* 40b9f5089Scgd * Copyright (c) 1992, 1993 50b9f5089Scgd * The Regents of the University of California. All rights reserved. 60b9f5089Scgd * 70b9f5089Scgd * This software was developed by the Computer Systems Engineering group 80b9f5089Scgd * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and 90b9f5089Scgd * contributed to Berkeley. 100b9f5089Scgd * 110b9f5089Scgd * Redistribution and use in source and binary forms, with or without 120b9f5089Scgd * modification, are permitted provided that the following conditions 130b9f5089Scgd * are met: 140b9f5089Scgd * 1. Redistributions of source code must retain the above copyright 150b9f5089Scgd * notice, this list of conditions and the following disclaimer. 160b9f5089Scgd * 2. Redistributions in binary form must reproduce the above copyright 170b9f5089Scgd * notice, this list of conditions and the following disclaimer in the 180b9f5089Scgd * documentation and/or other materials provided with the distribution. 19eb7c1594Sagc * 3. Neither the name of the University nor the names of its contributors 200b9f5089Scgd * may be used to endorse or promote products derived from this software 210b9f5089Scgd * without specific prior written permission. 220b9f5089Scgd * 230b9f5089Scgd * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 240b9f5089Scgd * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 250b9f5089Scgd * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 260b9f5089Scgd * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 270b9f5089Scgd * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 280b9f5089Scgd * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 290b9f5089Scgd * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 300b9f5089Scgd * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 310b9f5089Scgd * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 320b9f5089Scgd * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 330b9f5089Scgd * SUCH DAMAGE. 340b9f5089Scgd * 350b9f5089Scgd * from: Header: cerror.s,v 1.3 92/07/02 04:17:59 torek Exp 360b9f5089Scgd */ 370b9f5089Scgd 381394f01bSchristos#include <machine/asm.h> 390b9f5089Scgd#if defined(LIBC_SCCS) && !defined(lint) 401394f01bSchristos#if 0 410b9f5089Scgd .asciz "@(#)cerror.s 8.1 (Berkeley) 6/4/93" 421394f01bSchristos#else 43*4d12bfcdSjoerg RCSID("$NetBSD: cerror.S,v 1.11 2013/09/12 15:36:16 joerg Exp $") 441394f01bSchristos#endif 450b9f5089Scgd#endif /* LIBC_SCCS and not lint */ 460b9f5089Scgd 47e0bf9676Spk#include "SYS.h" 480b9f5089Scgd 4963c8772aSpk#ifdef _REENTRANT 50dccf2a15SkleinkFUNC(CERROR) 5155a9a999Smartin save %sp, -CCFSZ, %sp 5263c8772aSpk call _C_LABEL(__errno) 5363c8772aSpk nop 5463c8772aSpk st %i0, [%o0] 5563c8772aSpk mov -1, %i0 5663c8772aSpk ret 5763c8772aSpk restore %g0, -1, %o1 5863c8772aSpk#else 59131c70b1Stv .globl _C_LABEL(errno) 60*4d12bfcdSjoerg#ifdef __PIC__ 61dccf2a15SkleinkFUNC(CERROR) 62a34b3f87Suwe set _C_LABEL(errno), %g2 63a34b3f87Suwe ld [%g1 + %g2], %g1 64e0bf9676Spk st %o0, [%g1] 65e0bf9676Spk mov -1, %o0 66e0bf9676Spk retl 67e0bf9676Spk mov -1, %o1 68e0bf9676Spk#else 69dccf2a15SkleinkFUNC(CERROR) 70131c70b1Stv sethi %hi(_C_LABEL(errno)), %g1 71131c70b1Stv st %o0, [%g1 + %lo(_C_LABEL(errno))] 720b9f5089Scgd mov -1, %o0 730b9f5089Scgd retl 740b9f5089Scgd mov -1, %o1 75e0bf9676Spk#endif 7663c8772aSpk#endif /* _REENTRANT */ 77