added some comments to palcode and zeroed system type in HWPRB (m5 will fill in)
[gem5.git] / system / alpha / palcode / fromHudsonMacros.h
1 #ifndef HUDSON_MACROS_LOADED
2 #define HUDSON_MACROS_LOADED 1
3
4 /*
5 * VID: [T1.2] PT: [Fri Apr 21 16:47:16 1995] SF: [macros.h]
6 * TI: [/sae_users/cruz/bin/vice -iplatform.s -l// -p# -DEB164 -h -m -aeb164 ]
7 */
8 /*
9 *****************************************************************************
10 ** *
11 ** Copyright © 1993, 1994 *
12 ** by Digital Equipment Corporation, Maynard, Massachusetts. *
13 ** *
14 ** All Rights Reserved *
15 ** *
16 ** Permission is hereby granted to use, copy, modify and distribute *
17 ** this software and its documentation, in both source code and *
18 ** object code form, and without fee, for the purpose of distribution *
19 ** of this software or modifications of this software within products *
20 ** incorporating an integrated circuit implementing Digital's AXP *
21 ** architecture, regardless of the source of such integrated circuit, *
22 ** provided that the above copyright notice and this permission notice *
23 ** appear in all copies, and that the name of Digital Equipment *
24 ** Corporation not be used in advertising or publicity pertaining to *
25 ** distribution of the document or software without specific, written *
26 ** prior permission. *
27 ** *
28 ** Digital Equipment Corporation disclaims all warranties and/or *
29 ** guarantees with regard to this software, including all implied *
30 ** warranties of fitness for a particular purpose and merchantability, *
31 ** and makes no representations regarding the use of, or the results *
32 ** of the use of, the software and documentation in terms of correctness, *
33 ** accuracy, reliability, currentness or otherwise; and you rely on *
34 ** the software, documentation and results solely at your own risk. *
35 ** *
36 ** AXP is a trademark of Digital Equipment Corporation. *
37 ** *
38 *****************************************************************************
39 **
40 ** FACILITY:
41 **
42 ** DECchip 21164 PALcode
43 **
44 ** MODULE:
45 **
46 ** macros.h
47 **
48 ** MODULE DESCRIPTION:
49 **
50 ** DECchip 21164 PALcode macro definitions
51 **
52 ** AUTHOR: ER
53 **
54 ** CREATION DATE: 29-Nov-1993
55 **
56 ** $Id: fromHudsonMacros.h,v 1.1.1.1 1997/10/30 23:27:19 verghese Exp $
57 **
58 ** MODIFICATION HISTORY:
59 **
60 ** $Log: fromHudsonMacros.h,v $
61 ** Revision 1.1.1.1 1997/10/30 23:27:19 verghese
62 ** current 10/29/97
63 **
64 ** Revision 1.1 1995/11/18 01:46:23 boyle
65 ** Initial revision
66 **
67 ** Revision 1.5 1994/07/08 17:03:12 samberg
68 ** Changes to support platform specific additions
69 **
70 ** Revision 1.4 1994/05/20 19:24:19 ericr
71 ** Moved STALL macro from osfpal.s to here
72 ** Added LDLI macro
73 **
74 ** Revision 1.3 1994/05/20 18:08:14 ericr
75 ** Changed line comments to C++ style comment character
76 **
77 ** Revision 1.2 1994/02/28 18:45:51 ericr
78 ** Fixed EGORE related bugs
79 **
80 ** Revision 1.1 1993/12/16 21:55:05 eric
81 ** Initial revision
82 **
83 **
84 **--
85 */
86
87 #define STALL \
88 mfpr r31, pt0
89
90 #define NOP \
91 bis $31, $31, $31
92
93 /*
94 ** Align code on an 8K byte page boundary.
95 */
96
97 #define ALIGN_PAGE \
98 .align 13
99
100 /*
101 ** Align code on a 32 byte block boundary.
102 */
103
104 #define ALIGN_BLOCK \
105 .align 5
106
107 /*
108 ** Align code on a quadword boundary.
109 */
110
111 #define ALIGN_BRANCH \
112 .align 3
113
114 /*
115 ** Hardware vectors go in .text 0 sub-segment.
116 */
117
118 #define HDW_VECTOR(offset) \
119 . = offset
120
121 /*
122 ** Privileged CALL_PAL functions are in .text 1 sub-segment.
123 */
124
125 #define CALL_PAL_PRIV(vector) \
126 . = (PAL_CALL_PAL_PRIV_ENTRY+(vector<<6))
127
128 /*
129 ** Unprivileged CALL_PAL functions are in .text 1 sub-segment,
130 ** the privileged bit is removed from these vectors.
131 */
132
133 #define CALL_PAL_UNPRIV(vector) \
134 . = (PAL_CALL_PAL_UNPRIV_ENTRY+((vector&0x3F)<<6))
135
136 /*
137 ** Implements a load "immediate" longword function
138 */
139 #define LDLI(reg,val) \
140 ldah reg, ((val+0x8000) >> 16)(zero); \
141 lda reg, (val&0xffff)(reg)
142
143
144
145 #endif