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