regnum.h revision 1.11 1 1.11 matt /* $NetBSD: regnum.h,v 1.11 2011/08/16 06:58:15 matt Exp $ */
2 1.1 jonathan
3 1.1 jonathan /*
4 1.10 rmind * Copyright (c) 1988 University of Utah.
5 1.1 jonathan * Copyright (c) 1992, 1993
6 1.1 jonathan * The Regents of the University of California. All rights reserved.
7 1.6 agc *
8 1.6 agc * This code is derived from software contributed to Berkeley by
9 1.6 agc * the Systems Programming Group of the University of Utah Computer
10 1.6 agc * Science Department and Ralph Campbell.
11 1.6 agc *
12 1.6 agc * Redistribution and use in source and binary forms, with or without
13 1.6 agc * modification, are permitted provided that the following conditions
14 1.6 agc * are met:
15 1.6 agc * 1. Redistributions of source code must retain the above copyright
16 1.6 agc * notice, this list of conditions and the following disclaimer.
17 1.6 agc * 2. Redistributions in binary form must reproduce the above copyright
18 1.6 agc * notice, this list of conditions and the following disclaimer in the
19 1.6 agc * documentation and/or other materials provided with the distribution.
20 1.6 agc * 3. Neither the name of the University nor the names of its contributors
21 1.6 agc * may be used to endorse or promote products derived from this software
22 1.6 agc * without specific prior written permission.
23 1.6 agc *
24 1.6 agc * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25 1.6 agc * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 1.6 agc * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 1.6 agc * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28 1.6 agc * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 1.6 agc * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 1.6 agc * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 1.6 agc * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 1.6 agc * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 1.6 agc * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 1.6 agc * SUCH DAMAGE.
35 1.6 agc *
36 1.6 agc * from: Utah Hdr: reg.h 1.1 90/07/09
37 1.6 agc *
38 1.6 agc * @(#)reg.h 8.2 (Berkeley) 1/11/94
39 1.6 agc */
40 1.1 jonathan
41 1.1 jonathan /*
42 1.1 jonathan * Location of the users' stored
43 1.1 jonathan * registers relative to ZERO.
44 1.1 jonathan * Usage is p->p_regs[XX].
45 1.1 jonathan */
46 1.9 matt #define _R_ZERO 0 /* hardware zero */
47 1.9 matt #define _R_AST 1 /* caller-saved */
48 1.9 matt #define _R_V0 2 /* caller-saved */
49 1.9 matt #define _R_V1 3 /* caller-saved */
50 1.9 matt #define _R_A0 4 /* caller-saved */
51 1.9 matt #define _R_A1 5 /* caller-saved */
52 1.9 matt #define _R_A2 6 /* caller-saved */
53 1.9 matt #define _R_A3 7 /* caller-saved */
54 1.4 thorpej #if defined(__mips_n32) || defined(__mips_n64)
55 1.9 matt #define _R_A4 8 /* caller-saved */
56 1.9 matt #define _R_A5 9 /* caller-saved */
57 1.9 matt #define _R_A6 10 /* caller-saved */
58 1.9 matt #define _R_A7 11 /* caller-saved */
59 1.9 matt #define _R_T0 12 /* caller-saved */
60 1.9 matt #define _R_T1 13 /* caller-saved */
61 1.9 matt #define _R_T2 14 /* caller-saved */
62 1.9 matt #define _R_T3 15 /* caller-saved */
63 1.4 thorpej #else
64 1.9 matt #define _R_T0 8 /* caller-saved */
65 1.9 matt #define _R_T1 9 /* caller-saved */
66 1.9 matt #define _R_T2 10 /* caller-saved */
67 1.9 matt #define _R_T3 11 /* caller-saved */
68 1.9 matt #define _R_T4 12 /* caller-saved */
69 1.9 matt #define _R_T5 13 /* caller-saved */
70 1.9 matt #define _R_T6 14 /* caller-saved */
71 1.9 matt #define _R_T7 15 /* caller-saved */
72 1.4 thorpej #endif /* __mips_n32 || __mips_n64 */
73 1.9 matt #define _R_S0 16 /* CALLEE-saved */
74 1.9 matt #define _R_S1 17 /* CALLEE-saved */
75 1.9 matt #define _R_S2 18 /* CALLEE-saved */
76 1.9 matt #define _R_S3 19 /* CALLEE-saved */
77 1.9 matt #define _R_S4 20 /* CALLEE-saved */
78 1.9 matt #define _R_S5 21 /* CALLEE-saved */
79 1.9 matt #define _R_S6 22 /* CALLEE-saved */
80 1.9 matt #define _R_S7 23 /* CALLEE-saved */
81 1.9 matt #define _R_T8 24 /* caller-saved */
82 1.9 matt #define _R_T9 25 /* caller-saved */
83 1.9 matt #define _R_K0 26 /* kernel reserved */
84 1.9 matt #define _R_K1 27 /* kernel reserved */
85 1.9 matt #define _R_GP 28 /* CALLEE-saved */
86 1.9 matt #define _R_SP 29 /* CALLEE-saved */
87 1.9 matt #define _R_S8 30 /* CALLEE-saved */
88 1.9 matt #define _R_RA 31 /* caller-saved */
89 1.7 he #define _R_SR 32
90 1.7 he #define _R_PS _R_SR /* alias for SR */
91 1.5 thorpej
92 1.5 thorpej /* See <mips/regdef.h> for an explanation. */
93 1.5 thorpej #if defined(__mips_n32) || defined(__mips_n64)
94 1.7 he #define _R_TA0 8
95 1.7 he #define _R_TA1 9
96 1.7 he #define _R_TA2 10
97 1.7 he #define _R_TA3 11
98 1.5 thorpej #else
99 1.7 he #define _R_TA0 12
100 1.7 he #define _R_TA1 13
101 1.7 he #define _R_TA2 14
102 1.7 he #define _R_TA3 15
103 1.5 thorpej #endif /* __mips_n32 || __mips_n64 */
104 1.3 jonathan
105 1.7 he #define _R_MULLO 33
106 1.7 he #define _R_MULHI 34
107 1.7 he #define _R_BADVADDR 35
108 1.7 he #define _R_CAUSE 36
109 1.7 he #define _R_PC 37
110 1.1 jonathan
111 1.11 matt #define _FPBASE (_R_PC + 1)
112 1.7 he #define _R_F0 (_FPBASE+0)
113 1.7 he #define _R_F1 (_FPBASE+1)
114 1.7 he #define _R_F2 (_FPBASE+2)
115 1.7 he #define _R_F3 (_FPBASE+3)
116 1.7 he #define _R_F4 (_FPBASE+4)
117 1.7 he #define _R_F5 (_FPBASE+5)
118 1.7 he #define _R_F6 (_FPBASE+6)
119 1.7 he #define _R_F7 (_FPBASE+7)
120 1.7 he #define _R_F8 (_FPBASE+8)
121 1.7 he #define _R_F9 (_FPBASE+9)
122 1.7 he #define _R_F10 (_FPBASE+10)
123 1.7 he #define _R_F11 (_FPBASE+11)
124 1.7 he #define _R_F12 (_FPBASE+12)
125 1.7 he #define _R_F13 (_FPBASE+13)
126 1.7 he #define _R_F14 (_FPBASE+14)
127 1.7 he #define _R_F15 (_FPBASE+15)
128 1.7 he #define _R_F16 (_FPBASE+16)
129 1.7 he #define _R_F17 (_FPBASE+17)
130 1.7 he #define _R_F18 (_FPBASE+18)
131 1.7 he #define _R_F19 (_FPBASE+19)
132 1.7 he #define _R_F20 (_FPBASE+20)
133 1.7 he #define _R_F21 (_FPBASE+21)
134 1.7 he #define _R_F22 (_FPBASE+22)
135 1.7 he #define _R_F23 (_FPBASE+23)
136 1.7 he #define _R_F24 (_FPBASE+24)
137 1.7 he #define _R_F25 (_FPBASE+25)
138 1.7 he #define _R_F26 (_FPBASE+26)
139 1.7 he #define _R_F27 (_FPBASE+27)
140 1.7 he #define _R_F28 (_FPBASE+28)
141 1.7 he #define _R_F29 (_FPBASE+29)
142 1.7 he #define _R_F30 (_FPBASE+30)
143 1.7 he #define _R_F31 (_FPBASE+31)
144 1.7 he #define _R_FSR (_FPBASE+32)
145 1.11 matt
146 1.11 matt #define _R_DSPBASE (_R_FSR + 1)
147 1.11 matt #define _R_MULLO1 (_R_DSPBASE + 0)
148 1.11 matt #define _R_MULHI1 (_R_DSPBASE + 1)
149 1.11 matt #define _R_MULLO2 (_R_DSPBASE + 2)
150 1.11 matt #define _R_MULHI2 (_R_DSPBASE + 3)
151 1.11 matt #define _R_MULLO3 (_R_DSPBASE + 4)
152 1.11 matt #define _R_MULHI3 (_R_DSPBASE + 5)
153 1.11 matt #define _R_DSPCTL (_R_DSPBASE + 6)
154