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