Home | History | Annotate | Line # | Download | only in include
asm.h revision 1.1
      1  1.1  fredette /*	$NetBSD: asm.h,v 1.1 2002/06/05 01:04:21 fredette Exp $	*/
      2  1.1  fredette 
      3  1.1  fredette /*	$OpenBSD: asm.h,v 1.12 2001/03/29 02:15:57 mickey Exp $	*/
      4  1.1  fredette 
      5  1.1  fredette /*
      6  1.1  fredette  * Copyright (c) 1990,1991,1994 The University of Utah and
      7  1.1  fredette  * the Computer Systems Laboratory (CSL).  All rights reserved.
      8  1.1  fredette  *
      9  1.1  fredette  * Permission to use, copy, modify and distribute this software is hereby
     10  1.1  fredette  * granted provided that (1) source code retains these copyright, permission,
     11  1.1  fredette  * and disclaimer notices, and (2) redistributions including binaries
     12  1.1  fredette  * reproduce the notices in supporting documentation, and (3) all advertising
     13  1.1  fredette  * materials mentioning features or use of this software display the following
     14  1.1  fredette  * acknowledgement: ``This product includes software developed by the
     15  1.1  fredette  * Computer Systems Laboratory at the University of Utah.''
     16  1.1  fredette  *
     17  1.1  fredette  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
     18  1.1  fredette  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
     19  1.1  fredette  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
     20  1.1  fredette  *
     21  1.1  fredette  * CSL requests users of this software to return to csl-dist (at) cs.utah.edu any
     22  1.1  fredette  * improvements that they make and grant CSL redistribution rights.
     23  1.1  fredette  *
     24  1.1  fredette  *	Utah $Hdr: asm.h 1.8 94/12/14$
     25  1.1  fredette  */
     26  1.1  fredette 
     27  1.1  fredette #ifndef _HPPA_ASM_H_
     28  1.1  fredette #define _HPPA_ASM_H_
     29  1.1  fredette 
     30  1.1  fredette /*
     31  1.1  fredette  *	hppa assembler definitions
     32  1.1  fredette  */
     33  1.1  fredette 
     34  1.1  fredette /*
     35  1.1  fredette  * Hardware General Registers
     36  1.1  fredette  */
     37  1.1  fredette r0	.reg	%r0
     38  1.1  fredette r1	.reg	%r1
     39  1.1  fredette r2	.reg	%r2
     40  1.1  fredette r3	.reg	%r3
     41  1.1  fredette r4	.reg	%r4
     42  1.1  fredette r5	.reg	%r5
     43  1.1  fredette r6	.reg	%r6
     44  1.1  fredette r7	.reg	%r7
     45  1.1  fredette r8	.reg	%r8
     46  1.1  fredette r9	.reg	%r9
     47  1.1  fredette r10	.reg	%r10
     48  1.1  fredette r11	.reg	%r11
     49  1.1  fredette r12	.reg	%r12
     50  1.1  fredette r13	.reg	%r13
     51  1.1  fredette r14	.reg	%r14
     52  1.1  fredette r15	.reg	%r15
     53  1.1  fredette r16	.reg	%r16
     54  1.1  fredette r17	.reg	%r17
     55  1.1  fredette r18	.reg	%r18
     56  1.1  fredette r19	.reg	%r19
     57  1.1  fredette r20	.reg	%r20
     58  1.1  fredette r21	.reg	%r21
     59  1.1  fredette r22	.reg	%r22
     60  1.1  fredette r23	.reg	%r23
     61  1.1  fredette r24	.reg	%r24
     62  1.1  fredette r25	.reg	%r25
     63  1.1  fredette r26	.reg	%r26
     64  1.1  fredette r27	.reg	%r27
     65  1.1  fredette r28	.reg	%r28
     66  1.1  fredette r29	.reg	%r29
     67  1.1  fredette r30	.reg	%r30
     68  1.1  fredette r31	.reg	%r31
     69  1.1  fredette 
     70  1.1  fredette /*
     71  1.1  fredette  * Hardware Space Registers
     72  1.1  fredette  */
     73  1.1  fredette sr0	.reg	%sr0
     74  1.1  fredette sr1	.reg	%sr1
     75  1.1  fredette sr2	.reg	%sr2
     76  1.1  fredette sr3	.reg	%sr3
     77  1.1  fredette sr4	.reg	%sr4
     78  1.1  fredette sr5	.reg	%sr5
     79  1.1  fredette sr6	.reg	%sr6
     80  1.1  fredette sr7	.reg	%sr7
     81  1.1  fredette 
     82  1.1  fredette /*
     83  1.1  fredette  * Hardware Floating Point Registers
     84  1.1  fredette  */
     85  1.1  fredette fr0	.reg	%fr0
     86  1.1  fredette fr1	.reg	%fr1
     87  1.1  fredette fr2	.reg	%fr2
     88  1.1  fredette fr3	.reg	%fr3
     89  1.1  fredette fr4	.reg	%fr4
     90  1.1  fredette fr5	.reg	%fr5
     91  1.1  fredette fr6	.reg	%fr6
     92  1.1  fredette fr7	.reg	%fr7
     93  1.1  fredette fr8	.reg	%fr8
     94  1.1  fredette fr9	.reg	%fr9
     95  1.1  fredette fr10	.reg	%fr10
     96  1.1  fredette fr11	.reg	%fr11
     97  1.1  fredette fr12	.reg	%fr12
     98  1.1  fredette fr13	.reg	%fr13
     99  1.1  fredette fr14	.reg	%fr14
    100  1.1  fredette fr15	.reg	%fr15
    101  1.1  fredette fr16	.reg	%fr16
    102  1.1  fredette fr17	.reg	%fr17
    103  1.1  fredette fr18	.reg	%fr18
    104  1.1  fredette fr19	.reg	%fr19
    105  1.1  fredette fr20	.reg	%fr20
    106  1.1  fredette fr21	.reg	%fr21
    107  1.1  fredette fr22	.reg	%fr22
    108  1.1  fredette fr23	.reg	%fr23
    109  1.1  fredette fr24	.reg	%fr24
    110  1.1  fredette fr25	.reg	%fr25
    111  1.1  fredette fr26	.reg	%fr26
    112  1.1  fredette fr27	.reg	%fr27
    113  1.1  fredette fr28	.reg	%fr28
    114  1.1  fredette fr29	.reg	%fr29
    115  1.1  fredette fr30	.reg	%fr30
    116  1.1  fredette fr31	.reg	%fr31
    117  1.1  fredette 
    118  1.1  fredette /*
    119  1.1  fredette  * Hardware Control Registers
    120  1.1  fredette  */
    121  1.1  fredette cr0	.reg	%cr0
    122  1.1  fredette cr8	.reg	%cr8
    123  1.1  fredette cr9	.reg	%cr9
    124  1.1  fredette cr10	.reg	%cr10
    125  1.1  fredette cr11	.reg	%cr11
    126  1.1  fredette cr12	.reg	%cr12
    127  1.1  fredette cr13	.reg	%cr13
    128  1.1  fredette cr14	.reg	%cr14
    129  1.1  fredette cr15	.reg	%cr15
    130  1.1  fredette cr16	.reg	%cr16
    131  1.1  fredette cr17	.reg	%cr17
    132  1.1  fredette cr18	.reg	%cr18
    133  1.1  fredette cr19	.reg	%cr19
    134  1.1  fredette cr20	.reg	%cr20
    135  1.1  fredette cr21	.reg	%cr21
    136  1.1  fredette cr22	.reg	%cr22
    137  1.1  fredette cr23	.reg	%cr23
    138  1.1  fredette cr24	.reg	%cr24
    139  1.1  fredette cr25	.reg	%cr25
    140  1.1  fredette cr26	.reg	%cr26
    141  1.1  fredette cr27	.reg	%cr27
    142  1.1  fredette cr28	.reg	%cr28
    143  1.1  fredette cr29	.reg	%cr29
    144  1.1  fredette cr30	.reg	%cr30
    145  1.1  fredette cr31	.reg	%cr31
    146  1.1  fredette 
    147  1.1  fredette rctr	.reg	%cr0
    148  1.1  fredette pidr1	.reg	%cr8
    149  1.1  fredette pidr2	.reg	%cr9
    150  1.1  fredette ccr	.reg	%cr10
    151  1.1  fredette sar	.reg	%cr11
    152  1.1  fredette pidr3	.reg	%cr12
    153  1.1  fredette pidr4	.reg	%cr13
    154  1.1  fredette iva	.reg	%cr14
    155  1.1  fredette eiem	.reg	%cr15
    156  1.1  fredette itmr	.reg	%cr16
    157  1.1  fredette pcsq	.reg	%cr17
    158  1.1  fredette pcoq	.reg	%cr18
    159  1.1  fredette iir	.reg	%cr19
    160  1.1  fredette isr	.reg	%cr20
    161  1.1  fredette ior	.reg	%cr21
    162  1.1  fredette ipsw	.reg	%cr22
    163  1.1  fredette eirr	.reg	%cr23
    164  1.1  fredette hptmask	.reg	%cr24
    165  1.1  fredette tr0	.reg	%cr24
    166  1.1  fredette vtop	.reg	%cr25
    167  1.1  fredette tr1	.reg	%cr25
    168  1.1  fredette tr2	.reg	%cr26
    169  1.1  fredette tr3	.reg	%cr27
    170  1.1  fredette tr4	.reg	%cr28
    171  1.1  fredette tr5	.reg	%cr29
    172  1.1  fredette tr6	.reg	%cr30
    173  1.1  fredette tr7	.reg	%cr31
    174  1.1  fredette 
    175  1.1  fredette /*
    176  1.1  fredette  * Calling Convention
    177  1.1  fredette  */
    178  1.1  fredette rp	.reg	%r2
    179  1.1  fredette arg3	.reg	%r23
    180  1.1  fredette arg2	.reg	%r24
    181  1.1  fredette arg1	.reg	%r25
    182  1.1  fredette arg0	.reg	%r26
    183  1.1  fredette dp	.reg	%r27
    184  1.1  fredette ret0	.reg	%r28
    185  1.1  fredette ret1	.reg	%r29
    186  1.1  fredette sl	.reg	%r29
    187  1.1  fredette sp	.reg	%r30
    188  1.1  fredette 
    189  1.1  fredette /*
    190  1.1  fredette  * Temporary registers
    191  1.1  fredette  */
    192  1.1  fredette t1	.reg	%r22
    193  1.1  fredette t2	.reg	%r21
    194  1.1  fredette t3	.reg	%r20
    195  1.1  fredette t4	.reg	%r19
    196  1.1  fredette 
    197  1.1  fredette /*
    198  1.1  fredette  * Temporary space registers
    199  1.1  fredette  */
    200  1.1  fredette ts1	.reg	%sr2
    201  1.1  fredette 
    202  1.1  fredette /*
    203  1.1  fredette  * Space Registers - SW Conventions
    204  1.1  fredette  */
    205  1.1  fredette sret	.reg	%sr1	; return value
    206  1.1  fredette sarg	.reg	%sr1	; argument
    207  1.1  fredette 
    208  1.1  fredette /*
    209  1.1  fredette  * Floating Point Registers - SW Conventions
    210  1.1  fredette  */
    211  1.1  fredette farg0	.reg	%fr5
    212  1.1  fredette farg1	.reg	%fr6
    213  1.1  fredette farg2	.reg	%fr7
    214  1.1  fredette farg3	.reg	%fr8
    215  1.1  fredette fret	.reg	%fr4
    216  1.1  fredette 
    217  1.1  fredette /*
    218  1.1  fredette  * Temporary floating point registers
    219  1.1  fredette  */
    220  1.1  fredette tf1	.reg	%fr11
    221  1.1  fredette tf2	.reg	%fr10
    222  1.1  fredette tf3	.reg	%fr9
    223  1.1  fredette tf4	.reg	%fr8
    224  1.1  fredette 
    225  1.1  fredette #ifdef __STDC__
    226  1.1  fredette #define	__CONCAT(a,b)	a ## b
    227  1.1  fredette #else
    228  1.1  fredette #define	__CONCAT(a,b)	a/**/b
    229  1.1  fredette #endif
    230  1.1  fredette 
    231  1.1  fredette #ifdef PROF
    232  1.1  fredette #define	_PROF_PROLOGUE !\
    233  1.1  fredette 	stw rp, HPPA_FRAME_CRP(sr0,sp)	!\
    234  1.1  fredette 	ldil L%_mcount,r1		!\
    235  1.1  fredette 	ble R%_mcount(sr0,r1)		!\
    236  1.1  fredette 	ldo HPPA_FRAME_SIZE(sp),sp	!\
    237  1.1  fredette 	ldw HPPA_FRAME_CRP(sr0,sp),rp
    238  1.1  fredette #else
    239  1.1  fredette #define	_PROF_PROLOGUE
    240  1.1  fredette #endif
    241  1.1  fredette 
    242  1.1  fredette #define	LEAF_ENTRY(x) ! .text ! .align	4	!\
    243  1.1  fredette 	.export	x, entry ! .label x ! .proc	!\
    244  1.1  fredette 	.callinfo frame=0,no_calls,save_rp	!\
    245  1.1  fredette 	.entry ! _PROF_PROLOGUE
    246  1.1  fredette 
    247  1.1  fredette #define	ENTRY(x,n) ! .text ! .align 4			!\
    248  1.1  fredette 	.export	x, entry ! .label x ! .proc		!\
    249  1.1  fredette 	.callinfo frame=n,calls, save_rp, save_sp	!\
    250  1.1  fredette 	.entry ! _PROF_PROLOGUE
    251  1.1  fredette 
    252  1.1  fredette #define ALTENTRY(x) ! .export x, entry ! .label  x
    253  1.1  fredette #define EXIT(x) ! .exit ! .procend
    254  1.1  fredette 
    255  1.1  fredette #define RCSID(x)	.text			!	\
    256  1.1  fredette 			.asciz x		!	\
    257  1.1  fredette 			.align	4
    258  1.1  fredette 
    259  1.1  fredette #define WEAK_ALIAS(alias,sym)				\
    260  1.1  fredette 	.weak alias !					\
    261  1.1  fredette 	alias = sym
    262  1.1  fredette 
    263  1.1  fredette /* XXX unimplemented */
    264  1.1  fredette #define WARN_REFERENCES(sym, msg)
    265  1.1  fredette 
    266  1.1  fredette #endif /* _HPPA_ASM_H_ */
    267