1;
2;  (c) Copyright 1986 HEWLETT-PACKARD COMPANY
3;
4;  To anyone who acknowledges that this file is provided "AS IS"
5;  without any express or implied warranty:
6;      permission to use, copy, modify, and distribute this file
7;  for any purpose is hereby granted without fee, provided that
8;  the above copyright notice and this notice appears in all
9;  copies, and that the name of Hewlett-Packard Company not be
10;  used in advertising or publicity pertaining to distribution
11;  of the software without specific, written prior permission.
12;  Hewlett-Packard Company makes no representations about the
13;  suitability of this software for any purpose.
14;
15
16; Standard Hardware Register Definitions for Use with Assembler
17; version A.08.06
18;	- fr16-31 added at Utah
19;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20; Hardware General Registers
21r0: .equ	0
22
23r1: .equ	1
24
25r2: .equ	2
26
27r3: .equ	3
28
29r4: .equ	4
30
31r5: .equ	5
32
33r6: .equ	6
34
35r7: .equ	7
36
37r8: .equ	8
38
39r9: .equ	9
40
41r10: .equ	10
42
43r11: .equ	11
44
45r12: .equ	12
46
47r13: .equ	13
48
49r14: .equ	14
50
51r15: .equ	15
52
53r16: .equ	16
54
55r17: .equ	17
56
57r18: .equ	18
58
59r19: .equ	19
60
61r20: .equ	20
62
63r21: .equ	21
64
65r22: .equ	22
66
67r23: .equ	23
68
69r24: .equ	24
70
71r25: .equ	25
72
73r26: .equ	26
74
75r27: .equ	27
76
77r28: .equ	28
78
79r29: .equ	29
80
81r30: .equ	30
82
83r31: .equ	31
84
85; Hardware Space Registers
86sr0: .equ	0
87
88sr1: .equ	1
89
90sr2: .equ	2
91
92sr3: .equ	3
93
94sr4: .equ	4
95
96sr5: .equ	5
97
98sr6: .equ	6
99
100sr7: .equ	7
101
102; Hardware Floating Point Registers
103fr0: .equ	0
104
105fr1: .equ	1
106
107fr2: .equ	2
108
109fr3: .equ	3
110
111fr4: .equ	4
112
113fr5: .equ	5
114
115fr6: .equ	6
116
117fr7: .equ	7
118
119fr8: .equ	8
120
121fr9: .equ	9
122
123fr10: .equ	10
124
125fr11: .equ	11
126
127fr12: .equ	12
128
129fr13: .equ	13
130
131fr14: .equ	14
132
133fr15: .equ	15
134
135fr16: .equ	16
136
137fr17: .equ	17
138
139fr18: .equ	18
140
141fr19: .equ	19
142
143fr20: .equ	20
144
145fr21: .equ	21
146
147fr22: .equ	22
148
149fr23: .equ	23
150
151fr24: .equ	24
152
153fr25: .equ	25
154
155fr26: .equ	26
156
157fr27: .equ	27
158
159fr28: .equ	28
160
161fr29: .equ	29
162
163fr30: .equ	30
164
165fr31: .equ	31
166
167; Hardware Control Registers
168cr0: .equ	0
169
170rctr: .equ	0			; Recovery Counter Register
171
172
173cr8: .equ	8			; Protection ID 1
174
175pidr1: .equ	8
176
177
178cr9: .equ	9			; Protection ID 2
179
180pidr2: .equ	9
181
182
183cr10: .equ	10
184
185ccr: .equ	10			; Coprocessor Confiquration Register
186
187
188cr11: .equ	11
189
190sar: .equ	11			; Shift Amount Register
191
192
193cr12: .equ	12
194
195pidr3: .equ	12			; Protection ID 3
196
197
198cr13: .equ	13
199
200pidr4: .equ	13			; Protection ID 4
201
202
203cr14: .equ	14
204
205iva: .equ	14			; Interrupt Vector Address
206
207
208cr15: .equ	15
209
210eiem: .equ	15			; External Interrupt Enable Mask
211
212
213cr16: .equ	16
214
215itmr: .equ	16			; Interval Timer
216
217
218cr17: .equ	17
219
220pcsq: .equ	17			; Program Counter Space queue
221
222
223cr18: .equ	18
224
225pcoq: .equ	18			; Program Counter Offset queue
226
227
228cr19: .equ	19
229
230iir: .equ	19			; Interruption Instruction Register
231
232
233cr20: .equ	20
234
235isr: .equ	20			; Interruption Space Register
236
237
238cr21: .equ	21
239
240ior: .equ	21			; Interruption Offset Register
241
242
243cr22: .equ	22
244
245ipsw: .equ	22			; Interrpution Processor Status Word
246
247
248cr23: .equ	23
249
250eirr: .equ	23			; External Interrupt Request
251
252
253cr24: .equ	24
254
255ppda: .equ	24			; Physcial Page Directory Address
256
257tr0: .equ	24			; Temporary register 0
258
259
260cr25: .equ	25
261
262hta: .equ	25			; Hash Table Address
263
264tr1: .equ	25			; Temporary register 1
265
266
267cr26: .equ	26
268
269tr2: .equ	26			; Temporary register 2
270
271
272cr27: .equ	27
273
274tr3: .equ	27			; Temporary register 3
275
276
277cr28: .equ	28
278
279tr4: .equ	28			; Temporary register 4
280
281
282cr29: .equ	29
283
284tr5: .equ	29			; Temporary register 5
285
286
287cr30: .equ	30
288
289tr6: .equ	30			; Temporary register 6
290
291
292cr31: .equ	31
293
294tr7: .equ	31			; Temporary register 7
295
296;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
297; Procedure Call Convention                                                  ~
298; Register Definitions for Use with Assembler                                ~
299; version A.08.06
300;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301; Software Architecture General Registers
302rp: .equ    r2	; return pointer
303
304mrp: .equ	r31	; millicode return pointer
305
306ret0: .equ    r28	; return value
307
308ret1: .equ    r29	; return value (high part of double)
309
310sl: .equ    r29	; static link
311
312sp: .equ 	r30	; stack pointer
313
314dp: .equ	r27	; data pointer
315
316arg0: .equ	r26	; argument
317
318arg1: .equ	r25	; argument or high part of double argument
319
320arg2: .equ	r24	; argument
321
322arg3: .equ	r23	; argument or high part of double argument
323
324;_____________________________________________________________________________
325; Software Architecture Space Registers
326;		sr0	; return link form BLE
327sret: .equ	sr1	; return value
328
329sarg: .equ	sr1	; argument
330
331;		sr4	; PC SPACE tracker
332;		sr5	; process private data
333;_____________________________________________________________________________
334; Software Architecture Pseudo Registers
335previous_sp: .equ	64	; old stack pointer (locates previous frame)
336
337#if 0
338;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
339;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340; Standard space and subspace definitions.  version A.08.06
341; These are generally suitable for programs on HP_UX and HPE.
342; Statements commented out are used when building such things as operating
343; system kernels.
344;;;;;;;;;;;;;;;;
345	.SPACE	$TEXT$,		SPNUM=0,SORT=8
346;	.subspa $FIRST$,	QUAD=0,ALIGN=2048,ACCESS=0x2c,SORT=4,FIRST
347;	.subspa $REAL$,		QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=4,FIRST,LOCK
348	.subspa $MILLICODE$,	QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=8
349	.subspa $LIT$,		QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16
350	.subspa $CODE$,		QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=24
351;	.subspa $UNWIND$,	QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=64
352;	.subspa $RECOVER$,	QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=80
353;	.subspa $RESERVED$,	QUAD=0,ALIGN=8,ACCESS=0x73,SORT=82
354;	.subspa $GATE$,		QUAD=0,ALIGN=8,ACCESS=0x4c,SORT=84,CODE_ONLY
355; Additional code subspaces should have ALIGN=8 for an interspace BV
356; and should have SORT=24.
357;
358; For an incomplete executable (program bound to shared libraries),
359; sort keys $GLOBAL$ -1 and $GLOBAL$ -2 are reserved for the $DLT$
360; and $PLT$ subspaces respectively.
361;;;;;;;;;;;;;;;
362	.SPACE $PRIVATE$,	SPNUM=1,PRIVATE,SORT=16
363	.subspa $GLOBAL$,	QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=40
364	.import $global$
365	.subspa $SHORTDATA$,	QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=24
366	.subspa $DATA$,		QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=16
367	.subspa $PFA_COUNTER$,	QUAD=1,ALIGN=4,ACCESS=0x1f,SORT=8
368	.subspa $SHORTBSS$,     QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=80,ZERO
369	.subspa $BSS$,		QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82,ZERO
370;	.subspa $PCB$,		QUAD=1,ALIGN=8,ACCESS=0x10,SORT=82
371;	.subspa	$STACK$,	QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82
372;	.subspa	$HEAP$,		QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82
373;;;;;;;;;;;;;;;;
374;	.SPACE	$PFA$,		SPNUM=0,PRIVATE,UNLOADABLE,SORT=64
375;	.subspa	$PFA_ADDRESS$,	ALIGN=4,ACCESS=0x2c,UNLOADABLE
376;;;;;;;;;;;;;;;;
377;	.SPACE	$DEBUG$,	SPNUM=2,PRIVATE,UNLOADABLE,SORT=80
378;	.subspa $HEADER$,	ALIGN=4,ACCESS=0,UNLOADABLE,FIRST
379;	.subspa	$GNTT$,		ALIGN=4,ACCESS=0,UNLOADABLE
380;	.subspa $LNTT$,		ALIGN=4,ACCESS=0,UNLOADABLE
381;	.subspa	$SLT$,		ALIGN=4,ACCESS=0,UNLOADABLE
382;	.subspa $VT$,		ALIGN=4,ACCESS=0,UNLOADABLE
383
384; To satisfy the copyright terms each .o will have a reference
385; the the actual copyright.  This will force the actual copyright
386; message to be brought in from libgloss/hp-milli.s
387        .space $PRIVATE$
388        .subspa $DATA$
389#else
390	.data
391#endif
392        .import ___hp_free_copyright,data
393L$copyright .word ___hp_free_copyright
394