2 ;
(c
) Copyright
1986 HEWLETT-PACKARD COMPANY
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.
16 ; Standard Hardware Register Definitions for Use with Assembler
18 ;
- fr16-
31 added at Utah
19 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 ; Hardware General Registers
85 ; Hardware Space Registers
102 ; Hardware Floating Point Registers
167 ; Hardware Control Registers
170 rctr
: .equ 0 ; Recovery Counter Register
173 cr8
: .equ 8 ; Protection ID 1
178 cr9
: .equ 9 ; Protection ID 2
185 ccr
: .equ 10 ; Coprocessor Confiquration Register
190 sar
: .equ 11 ; Shift Amount Register
195 pidr3
: .equ 12 ; Protection ID 3
200 pidr4
: .equ 13 ; Protection ID 4
205 iva
: .equ 14 ; Interrupt Vector Address
210 eiem
: .equ 15 ; External Interrupt Enable Mask
215 itmr
: .equ 16 ; Interval Timer
220 pcsq
: .equ 17 ; Program Counter Space queue
225 pcoq
: .equ 18 ; Program Counter Offset queue
230 iir
: .equ 19 ; Interruption Instruction Register
235 isr
: .equ 20 ; Interruption Space Register
240 ior
: .equ 21 ; Interruption Offset Register
245 ipsw
: .equ 22 ; Interrpution Processor Status Word
250 eirr
: .equ 23 ; External Interrupt Request
255 ppda
: .equ 24 ; Physcial Page Directory Address
257 tr0
: .equ 24 ; Temporary register 0
262 hta
: .equ 25 ; Hash Table Address
264 tr1
: .equ 25 ; Temporary register 1
269 tr2
: .equ 26 ; Temporary register 2
274 tr3
: .equ 27 ; Temporary register 3
279 tr4
: .equ 28 ; Temporary register 4
284 tr5
: .equ 29 ; Temporary register 5
289 tr6
: .equ 30 ; Temporary register 6
294 tr7
: .equ 31 ; Temporary register 7
296 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
297 ; Procedure Call Convention ~
298 ; Register Definitions for Use with Assembler ~
300 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301 ; Software Architecture General Registers
302 rp
: .equ r2 ; return pointer
304 mrp
: .equ r31 ; millicode return pointer
306 ret0
: .equ r28 ; return value
308 ret1
: .equ r29 ; return value (high part of double)
310 sl: .equ r29 ; static link
312 sp
: .equ r30 ; stack pointer
314 dp
: .equ r27 ; data pointer
316 arg0
: .equ r26 ; argument
318 arg1
: .equ r25 ; argument or high part of double argument
320 arg2
: .equ r24 ; argument
322 arg3
: .equ r23 ; argument or high part of double argument
324 ;_____________________________________________________________________________
325 ; Software Architecture Space Registers
326 ;
sr0 ; return link form
BLE
327 sret
: .equ sr1 ; return value
329 sarg
: .equ sr1 ; argument
331 ;
sr4 ; PC SPACE tracker
332 ;
sr5 ; process private data
333 ;_____________________________________________________________________________
334 ; Software Architecture Pseudo Registers
335 previous_sp
: .equ 64 ; old stack pointer (locates previous frame)
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
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.
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.
362 .SPACE $PRIVATE$, SPNUM=1,PRIVATE,SORT=16
363 .subspa $GLOBAL$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=40
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
374 ;
.SPACE $PFA$, SPNUM=0,PRIVATE,UNLOADABLE,SORT=64
375 ;
.subspa $PFA_ADDRESS$, ALIGN=4,ACCESS=0x2c,UNLOADABLE
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
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
392 .import ___hp_free_copyright,data
393 L$copyright
.word ___hp_free_copyright