[BACK]Return to prefix.h CVS log [TXT][DIR] Up to [local] / sys / lib / libkern / arch / hppa

Annotation of sys/lib/libkern/arch/hppa/prefix.h, Revision 1.1.1.1

1.1       nbrk        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 ;

CVSweb