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