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