1 /* $NetBSD: prefix.h,v 1.1 2002/06/06 20:03:39 fredette Exp $ */ 2 3 /* $OpenBSD: prefix.h,v 1.2 2001/03/29 04:08:21 mickey Exp $ */ 4 5 /* 6 * (c) Copyright 1985 HEWLETT-PACKARD COMPANY 7 * 8 * To anyone who acknowledges that this file is provided "AS IS" 9 * without any express or implied warranty: 10 * permission to use, copy, modify, and distribute this file 11 * for any purpose is hereby granted without fee, provided that 12 * the above copyright notice and this notice appears in all 13 * copies, and that the name of Hewlett-Packard Company not be 14 * used in advertising or publicity pertaining to distribution 15 * of the software without specific, written prior permission. 16 * Hewlett-Packard Company makes no representations about the 17 * suitability of this software for any purpose. 18 */ 19 20 /* 21 * STANDARD INCLUDE FILE FOR MILLICODE 22 * Every source file must include this file. 23 * 24 * Hardware General Registers 25 * 26 * Frame Offsets (millicode convention!) 27 * Used when calling other millicode routines. 28 * Stack unwinding is dependent upon these definitions. 29 * r31_slot .equ -20 30 * sr0_slot .equ -16 31 */ 32 33 #include <machine/asm.h> 34 35 #define DEFINE(name, value)name: .EQU value 36 #ifdef milliext 37 #ifdef PIC 38 #define MILLI_BE(lbl) \ 39 BL .+8,r1\ 40 ! ADDIL L%lbl-labl/**/lbl,r1\ 41 ! .LABEL labl/**/lbl\ 42 ! BE R%lbl-labl/**/lbl(sr7,r1) 43 44 #define MILLI_BEN(lbl) \ 45 BL .+8,r1\ 46 ! ADDIL L%lbl-labl/**/lbl,r1\ 47 ! .LABEL labl/**/lbl\ 48 ! BE,N R%lbl-labl/**/lbl(sr7,r1) 49 50 #define MILLI_BLE(lbl) \ 51 BL .+8,r1\ 52 ! ADDIL L%lbl-labl/**/lbl,r1\ 53 ! .LABEL labl/**/lbl \ 54 ! BLE R%lbl-labl/**/lbl(sr7,r1) 55 56 #define MILLI_BLEN(lbl) \ 57 BL .+8,r1\ 58 ! ADDIL L%lbl-labl/**/lbl,r1\ 59 ! .LABEL labl/**/lbl\ 60 ! BLE,N R%lbl-labl/**/lbl(sr7,r1) 61 #else 62 #define MILLI_BE(lbl) BE lbl(sr7,r0) 63 #define MILLI_BEN(lbl) BE,n lbl(sr7,r0) 64 #define MILLI_BLE(lbl) BLE lbl(sr7,r0) 65 #define MILLI_BLEN(lbl) BLE,n lbl(sr7,r0) 66 #endif 67 68 #define MILLIRETN BE,n 0(sr0,r31) 69 #define MILLIRET BE 0(sr0,r31) 70 #define MILLI_RETN BE,n 0(sr0,r31) 71 #define MILLI_RET BE 0(sr0,r31) 72 73 #else 74 #define MILLI_BE(lbl) B lbl 75 #define MILLI_BEN(lbl) B,n lbl 76 #define MILLI_BLE(lbl) BL lbl,r31 77 #define MILLI_BLEN(lbl) BL,n lbl,r31 78 #define MILLIRETN BV,n 0(r31) 79 #define MILLIRET BV 0(r31) 80 #define MILLI_RETN BV,n 0(r31) 81 #define MILLI_RET BV 0(r31) 82 #endif 83 ; VERSION is used wherever ".version" can appear in a routine 84 ;#define VERSION .version 85 #define VERSION ; 86