1*2af01421Sskrll/* $NetBSD: cerror.S,v 1.6 2020/05/05 06:20:55 skrll Exp $ */ 27bdf35d6Sskrll 37bdf35d6Sskrll/*- 47bdf35d6Sskrll * Copyright (c) 2004 The NetBSD Foundation, Inc. 57bdf35d6Sskrll * All rights reserved. 67bdf35d6Sskrll * 77bdf35d6Sskrll * This code is derived from software contributed to The NetBSD Foundation 87bdf35d6Sskrll * by Nick Hudson 97bdf35d6Sskrll * 107bdf35d6Sskrll * Redistribution and use in source and binary forms, with or without 117bdf35d6Sskrll * modification, are permitted provided that the following conditions 127bdf35d6Sskrll * are met: 137bdf35d6Sskrll * 1. Redistributions of source code must retain the above copyright 147bdf35d6Sskrll * notice, this list of conditions and the following disclaimer. 157bdf35d6Sskrll * 2. Redistributions in binary form must reproduce the above copyright 167bdf35d6Sskrll * notice, this list of conditions and the following disclaimer in the 177bdf35d6Sskrll * documentation and/or other materials provided with the distribution. 187bdf35d6Sskrll * 197bdf35d6Sskrll * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 207bdf35d6Sskrll * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 217bdf35d6Sskrll * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 227bdf35d6Sskrll * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 237bdf35d6Sskrll * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 247bdf35d6Sskrll * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 257bdf35d6Sskrll * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 267bdf35d6Sskrll * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 277bdf35d6Sskrll * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 287bdf35d6Sskrll * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 297bdf35d6Sskrll * POSSIBILITY OF SUCH DAMAGE. 307bdf35d6Sskrll */ 31aeb58ad6Sskrll 32aeb58ad6Sskrll#include "SYS.h" 33aeb58ad6Sskrll 34aeb58ad6Sskrll#ifdef _REENTRANT 35aeb58ad6SskrllENTRY(__cerror,HPPA_FRAME_SIZE) 36aeb58ad6Sskrll#else 37aeb58ad6SskrllLEAF_ENTRY(__cerror) 38aeb58ad6Sskrll#endif 39aeb58ad6Sskrll#ifdef _REENTRANT 40aeb58ad6Sskrll stw %rp, HPPA_FRAME_CRP(%sp) 41c2f33bd7Schs stw %t1, HPPA_FRAME_ARG(0)(%sp) 42aeb58ad6Sskrll ldo HPPA_FRAME_SIZE(%sp),%sp 43aeb58ad6Sskrll bl __errno, %rp 44aeb58ad6Sskrll nop 45aeb58ad6Sskrll ldo -HPPA_FRAME_SIZE(%sp), %sp 46c2f33bd7Schs ldw HPPA_FRAME_ARG(0)(%sp), %t1 47aeb58ad6Sskrll ldw HPPA_FRAME_CRP(%sp), %rp 48c2f33bd7Schs stw %t1, 0(%ret0) 49aeb58ad6Sskrll#else 504d12bfcdSjoerg#ifdef __PIC__ 51aeb58ad6Sskrll addil LT%errno, %r19 52aeb58ad6Sskrll ldw RT%errno(%r1), %r1 53aeb58ad6Sskrll stw %t1, 0(%r1) 54aeb58ad6Sskrll#else 55aeb58ad6Sskrll ldil L%errno, %r1 56aeb58ad6Sskrll stw %t1, R%errno(%r1) 57aeb58ad6Sskrll#endif 58aeb58ad6Sskrll#endif 59aeb58ad6Sskrll ldi -1, %ret0 60aeb58ad6Sskrll bv %r0(%rp) 61aeb58ad6Sskrll ldi -1, %ret1 62aeb58ad6SskrllEXIT(__cerror) 63