cerror.S revision 1.6
11.6Scgd/* $NetBSD: cerror.S,v 1.6 2000/06/14 06:49:03 cgd Exp $ */
21.1Scgd
31.1Scgd/*
41.1Scgd * Copyright (c) 1994, 1995 Carnegie-Mellon University.
51.1Scgd * All rights reserved.
61.1Scgd *
71.1Scgd * Author: Chris G. Demetriou
81.1Scgd *
91.1Scgd * Permission to use, copy, modify and distribute this software and
101.1Scgd * its documentation is hereby granted, provided that both the copyright
111.1Scgd * notice and this permission notice appear in all copies of the
121.1Scgd * software, derivative works or modified versions, and any portions
131.1Scgd * thereof, and that both notices appear in supporting documentation.
141.1Scgd *
151.1Scgd * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
161.1Scgd * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
171.1Scgd * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
181.1Scgd *
191.1Scgd * Carnegie Mellon requests users of this software to return to
201.1Scgd *
211.1Scgd *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
221.1Scgd *  School of Computer Science
231.1Scgd *  Carnegie Mellon University
241.1Scgd *  Pittsburgh PA 15213-3890
251.1Scgd *
261.1Scgd * any improvements or extensions that they make and grant Carnegie the
271.1Scgd * rights to redistribute these changes.
281.1Scgd */
291.1Scgd
301.1Scgd#include "SYS.h"
311.1Scgd
321.4Scgd#ifdef _REENTRANT
331.4Scgd#define	FRAME_SIZE		16
341.4Scgd#define	FRAME_RA_OFFSET		0
351.4Scgd#define	FRAME_V0_OFFSET		8
361.4Scgd#endif
371.1Scgd
381.4Scgd#ifdef _REENTRANT
391.5SkleinkNESTED(__cerror, 0, FRAME_SIZE, ra, IM_RA|IM_V0, 0)
401.4Scgd#else
411.5SkleinkLEAF(__cerror, 0)
421.4Scgd#endif
431.2Scgd	br	t0, L1
441.3ScgdL1:	LDGP(t0)
451.4Scgd
461.4Scgd#ifdef _REENTRANT
471.4Scgd	lda	sp, -FRAME_SIZE(sp)
481.4Scgd	stq	ra, FRAME_RA_OFFSET(sp)
491.4Scgd	stq	v0, FRAME_V0_OFFSET(sp)
501.4Scgd
511.4Scgd	CALL(__errno)
521.4Scgd
531.4Scgd	ldq	t0, FRAME_V0_OFFSET(sp)
541.4Scgd	stl	t0, 0(v0)
551.4Scgd#else
561.1Scgd	stl	v0, errno
571.4Scgd#endif
581.4Scgd
591.1Scgd	ldiq	v0, -1
601.4Scgd#ifdef _REENTRANT
611.4Scgd	ldq	ra, FRAME_RA_OFFSET(sp)
621.4Scgd	lda	sp, FRAME_SIZE(sp)
631.4Scgd#endif
641.1Scgd	RET
651.5SkleinkEND(__cerror)
66