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