Home | History | Annotate | Line # | Download | only in hppa
prefix.h revision 1.1.148.1
      1  1.1.148.1      yamt /*	$NetBSD: prefix.h,v 1.1.148.1 2014/05/22 11:41:04 yamt 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.1.148.1      yamt #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