Mercurial > ecos
annotate packages/hal/mips/arch/current/include/mips-regs.h @ 64:c38311975d4f ecos-sw-2000-01-28
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
| author | jlarmour |
|---|---|
| date | Fri, 28 Jan 2000 04:59:39 +0000 |
| parents | 4741a3c3496a |
| children | bf00f99aec69 |
| rev | line source |
|---|---|
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
1 #ifndef CYGONCE_HAL_MIPS_REGS_H |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
2 #define CYGONCE_HAL_MIPS_REGS_H |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
3 //======================================================================== |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
4 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
5 // mips-regs.h |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
6 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
7 // Register defines for MIPS processors |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
8 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
9 //======================================================================== |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
10 //####COPYRIGHTBEGIN#### |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
11 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
12 // ------------------------------------------- |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
13 // The contents of this file are subject to the Red Hat eCos Public License |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
14 // Version 1.0 (the "License"); you may not use this file except in |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
15 // compliance with the License. You may obtain a copy of the License at |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
16 // http://sourceware.cygnus.com/ecos |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
17 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
18 // Software distributed under the License is distributed on an |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
19 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
20 // License for the specific language governing rights and limitations under |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
21 // the License. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
22 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
23 // The Original Code is eCos - Embedded Configurable Operating System, |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
24 // released September 30, 1998. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
25 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
26 // The Initial Developer of the Original Code is Red Hat. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
27 // Portions created by Red Hat are |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
28 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
29 // All Rights Reserved. |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
30 // ------------------------------------------- |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
31 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
32 //####COPYRIGHTEND#### |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
33 //======================================================================== |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
34 //#####DESCRIPTIONBEGIN#### |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
35 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
36 // Author(s): Red Hat, nickg |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
37 // Contributors: Red Hat, nickg |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
38 // Date: 1998-06-08 |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
39 // Purpose: |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
40 // Description: Register defines for MIPS processors |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
41 // Usage: |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
42 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
43 //####DESCRIPTIONEND#### |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
44 // |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
45 //======================================================================== |
| 0 | 46 |
| 2 | 47 #include <pkgconf/hal.h> |
| 48 | |
| 49 #ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS | |
| 0 | 50 |
| 51 /* This value must agree with NUMREGS in mips-stub.h. */ | |
| 52 | |
| 53 #define NUM_REGS 90 | |
| 54 | |
| 55 #ifdef __mips64 | |
| 56 #define REG_SIZE 8 | |
| 57 #else | |
| 58 #define REG_SIZE 4 | |
| 59 #endif | |
| 60 | |
| 61 /* General register names for assembly code. */ | |
| 62 | |
| 2 | 63 #define zero $0 |
| 64 #define at $1 /* assembler temporary */ | |
| 65 #define v0 $2 /* value holders */ | |
| 66 #define v1 $3 | |
| 67 #define a0 $4 /* arguments */ | |
| 68 #define a1 $5 | |
| 69 #define a2 $6 | |
| 70 #define a3 $7 | |
| 71 #define t0 $8 /* temporaries */ | |
| 72 #define t1 $9 | |
| 73 #define t2 $10 | |
| 74 #define t3 $11 | |
| 75 #define t4 $12 | |
| 76 #define t5 $13 | |
| 77 #define t6 $14 | |
| 78 #define t7 $15 | |
| 79 #define s0 $16 /* saved registers */ | |
| 80 #define s1 $17 | |
| 81 #define s2 $18 | |
| 82 #define s3 $19 | |
| 83 #define s4 $20 | |
| 84 #define s5 $21 | |
| 85 #define s6 $22 | |
| 86 #define s7 $23 | |
| 87 #define t8 $24 /* temporaries */ | |
| 88 #define t9 $25 | |
| 89 #define k0 $26 /* kernel registers */ | |
| 90 #define k1 $27 | |
| 91 #define gp $28 /* global pointer */ | |
| 92 #define sp $29 /* stack pointer */ | |
| 93 #define s8 $30 /* saved register */ | |
| 94 #define fp $30 /* frame pointer (obsolete usage) */ | |
| 95 #define ra $31 /* return address */ | |
| 0 | 96 |
| 97 /* MIPS registers, numbered in the order in which gdb expects to see them. */ | |
| 2 | 98 #define ZERO 0 |
| 99 #define AT 1 | |
| 100 #define V0 2 | |
| 101 #define V1 3 | |
| 102 #define A0 4 | |
| 103 #define A1 5 | |
| 104 #define A2 6 | |
| 105 #define A3 7 | |
| 0 | 106 |
| 2 | 107 #define T0 8 |
| 108 #define T1 9 | |
| 109 #define T2 10 | |
| 110 #define T3 11 | |
| 111 #define T4 12 | |
| 112 #define T5 13 | |
| 113 #define T6 14 | |
| 114 #define T7 15 | |
| 0 | 115 |
| 2 | 116 #define S0 16 |
| 117 #define S1 17 | |
| 118 #define S2 18 | |
| 119 #define S3 19 | |
| 120 #define S4 20 | |
| 121 #define S5 21 | |
| 122 #define S6 22 | |
| 123 #define S7 23 | |
| 0 | 124 |
| 2 | 125 #define T8 24 |
| 126 #define T9 25 | |
| 127 #define K0 26 | |
| 128 #define K1 27 | |
| 129 #define GP 28 | |
| 130 #define SP 29 | |
| 131 #define S8 30 | |
| 132 #define RA 31 | |
| 0 | 133 |
| 2 | 134 #define SR 32 |
| 135 #define LO 33 | |
| 136 #define HI 34 | |
| 137 #define BAD_VA 35 | |
| 138 #define CAUSE 36 | |
| 139 #define PC 37 | |
| 0 | 140 |
|
26
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
141 #define F0 38 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
142 #define F1 39 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
143 #define F2 40 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
144 #define F3 41 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
145 #define F4 42 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
146 #define F5 43 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
147 #define F6 44 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
148 #define F7 45 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
149 #define F8 46 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
150 #define F9 47 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
151 #define F10 48 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
152 #define F11 49 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
153 #define F12 50 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
154 #define F13 51 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
155 #define F14 52 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
156 #define F15 53 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
157 #define F16 54 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
158 #define F17 55 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
159 #define F18 56 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
160 #define F19 57 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
161 #define F20 58 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
162 #define F21 59 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
163 #define F22 60 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
164 #define F23 61 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
165 #define F24 62 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
166 #define F25 63 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
167 #define F26 64 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
168 #define F27 65 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
169 #define F28 66 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
170 #define F29 67 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
171 #define F30 68 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
172 #define F31 69 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
173 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
174 #define FCR31 70 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
175 |
| 0 | 176 /* System Control Coprocessor (CP0) exception processing registers */ |
| 2 | 177 #define C0_CONTEXT $4 /* Context */ |
| 178 #define C0_BADVADDR $8 /* Bad Virtual Address */ | |
| 179 #define C0_COUNT $9 /* Count */ | |
| 180 #define C0_COMPARE $11 /* Compare */ | |
| 181 #define C0_STATUS $12 /* Processor Status */ | |
| 182 #define C0_CAUSE $13 /* Exception Cause */ | |
| 183 #define C0_EPC $14 /* Exception PC */ | |
| 184 #define C0_XCONTEXT $20 /* XContext */ | |
| 185 #define C0_ECC $26 /* ECC */ | |
| 186 #define C0_CACHEERR $27 /* CacheErr */ | |
| 187 #define C0_ERROREPC $30 /* ErrorEPC */ | |
| 0 | 188 |
| 189 /* Status register fields */ | |
| 2 | 190 #define SR_CUMASK 0xf0000000 /* Coprocessor usable bits */ |
| 191 #define SR_CU3 0x80000000 /* Coprocessor 3 usable */ | |
| 192 #define SR_CU2 0x40000000 /* coprocessor 2 usable */ | |
| 193 #define SR_CU1 0x20000000 /* Coprocessor 1 usable */ | |
| 194 #define SR_CU0 0x10000000 /* Coprocessor 0 usable */ | |
| 0 | 195 |
| 2 | 196 #define SR_FR 0x04000000 /* Enable 32 floating-point registers */ |
| 197 #define SR_RE 0x02000000 /* Reverse Endian in user mode */ | |
| 0 | 198 |
| 2 | 199 #define SR_BEV 0x00400000 /* Bootstrap Exception Vector */ |
| 200 #define SR_TS 0x00200000 /* TLB shutdown (reserved on R4600) */ | |
| 201 #define SR_SR 0x00100000 /* Soft Reset */ | |
| 0 | 202 |
| 2 | 203 #define SR_CH 0x00040000 /* Cache Hit */ |
| 204 #define SR_CE 0x00020000 /* ECC register modifies check bits */ | |
| 205 #define SR_DE 0x00010000 /* Disable cache errors */ | |
| 0 | 206 |
| 2 | 207 #define SR_IMASK 0x0000ff00 /* Interrupt Mask */ |
| 208 #define SR_IMASK8 0x00000000 /* Interrupt Mask level=8 */ | |
| 209 #define SR_IMASK7 0x00008000 /* Interrupt Mask level=7 */ | |
| 210 #define SR_IMASK6 0x0000c000 /* Interrupt Mask level=6 */ | |
| 211 #define SR_IMASK5 0x0000e000 /* Interrupt Mask level=5 */ | |
| 212 #define SR_IMASK4 0x0000f000 /* Interrupt Mask level=4 */ | |
| 213 #define SR_IMASK3 0x0000f800 /* Interrupt Mask level=3 */ | |
| 214 #define SR_IMASK2 0x0000fc00 /* Interrupt Mask level=2 */ | |
| 215 #define SR_IMASK1 0x0000fe00 /* Interrupt Mask level=1 */ | |
| 216 #define SR_IMASK0 0x0000ff00 /* Interrupt Mask level=0 */ | |
| 0 | 217 |
| 2 | 218 #define SR_IBIT8 0x00008000 /* (Intr5) */ |
| 219 #define SR_IBIT7 0x00004000 /* (Intr4) */ | |
| 220 #define SR_IBIT6 0x00002000 /* (Intr3) */ | |
| 221 #define SR_IBIT5 0x00001000 /* (Intr2) */ | |
| 222 #define SR_IBIT4 0x00000800 /* (Intr1) */ | |
| 223 #define SR_IBIT3 0x00000400 /* (Intr0) */ | |
| 224 #define SR_IBIT2 0x00000200 /* (Software Interrupt 1) */ | |
| 225 #define SR_IBIT1 0x00000100 /* (Software Interrupt 0) */ | |
| 0 | 226 |
| 2 | 227 #define SR_KX 0x00000080 /* xtlb in kernel mode */ |
| 228 #define SR_SX 0x00000040 /* mips3 & xtlb in supervisor mode */ | |
| 229 #define SR_UX 0x00000020 /* mips3 & xtlb in user mode */ | |
| 0 | 230 |
| 2 | 231 #define SR_KSU_MASK 0x00000018 /* ksu mode mask */ |
| 232 #define SR_KSU_USER 0x00000010 /* user mode */ | |
| 233 #define SR_KSU_SUPV 0x00000008 /* supervisor mode */ | |
| 234 #define SR_KSU_KERN 0x00000000 /* kernel mode */ | |
| 0 | 235 |
| 2 | 236 #define SR_ERL 0x00000004 /* error level */ |
| 237 #define SR_EXL 0x00000002 /* exception level */ | |
| 238 #define SR_IE 0x00000001 /* interrupt enable */ | |
| 0 | 239 |
|
26
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
240 /* Floating-point unit control/status register (FCR31) */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
241 #define FCR31_FS 0x01000000 /* Flush denormalized to zero */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
242 #define FCR31_C 0x00800000 /* FP compare result */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
243 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
244 #define FCR31_CAUSE_E 0x00020000 /* Cause - unimplemented operation */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
245 #define FCR31_CAUSE_V 0x00010000 /* Cause - invalid operation */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
246 #define FCR31_CAUSE_Z 0x00008000 /* Cause - division by zero */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
247 #define FCR31_CAUSE_O 0x00004000 /* Cause - overflow */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
248 #define FCR31_CAUSE_U 0x00002000 /* Cause - underflow */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
249 #define FCR31_CAUSE_I 0x00001000 /* Cause - inexact operation */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
250 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
251 #define FCR31_ENABLES_V 0x00000800 /* Enables - invalid operation */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
252 #define FCR31_ENABLES_Z 0x00000400 /* Enables - division by zero */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
253 #define FCR31_ENABLES_O 0x00000200 /* Enables - overflow */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
254 #define FCR31_ENABLES_U 0x00000100 /* Enables - underflow */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
255 #define FCR31_ENABLES_I 0x00000080 /* Enables - inexact operation */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
256 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
257 #define FCR31_FLAGS_V 0x00000040 /* Flags - invalid operation */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
258 #define FCR31_FLAGS_Z 0x00000020 /* Flags - division by zero */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
259 #define FCR31_FLAGS_O 0x00000010 /* Flags - overflow */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
260 #define FCR31_FLAGS_U 0x00000008 /* Flags - underflow */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
261 #define FCR31_FLAGS_I 0x00000004 /* Flags - inexact operation */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
262 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
263 #define FCR31_RMMASK 0x00000002 /* Rounding mode mask */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
264 #define FCR31_RM_RN 0 /* Round to nearest */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
265 #define FCR31_RM_RZ 1 /* Round to zero */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
266 #define FCR31_RM_RP 2 /* Round to +infinity */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
267 #define FCR31_RM_RM 3 /* Round to -infinity */ |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
268 |
|
4741a3c3496a
Merge from eCos master repository on 1999-07-23-05:47:06-BST
jlarmour
parents:
2
diff
changeset
|
269 |
| 0 | 270 /* Cause register fields */ |
| 2 | 271 #define CAUSE_BD 0x80000000 /* Branch Delay */ |
| 272 #define CAUSE_CEMASK 0x30000000 /* Coprocessor Error */ | |
| 273 #define CAUSE_CESHIFT 28 /* Right justify CE */ | |
| 274 #define CAUSE_IPMASK 0x0000ff00 /* Interrupt Pending */ | |
| 275 #define CAUSE_IPSHIFT 8 /* Right justify IP */ | |
| 276 #define CAUSE_IP8 0x00008000 /* (Intr5) */ | |
| 277 #define CAUSE_IP7 0x00004000 /* (Intr4) */ | |
| 278 #define CAUSE_IP6 0x00002000 /* (Intr3) */ | |
| 279 #define CAUSE_IP5 0x00001000 /* (Intr2) */ | |
| 280 #define CAUSE_IP4 0x00000800 /* (Intr1) */ | |
| 281 #define CAUSE_IP3 0x00000400 /* (Intr0) */ | |
| 282 #define CAUSE_SW2 0x00000200 /* (Software Interrupt 1) */ | |
| 283 #define CAUSE_SW1 0x00000100 /* (Software Interrupt 0) */ | |
| 284 #define CAUSE_EXCMASK 0x0000007c /* Exception Code */ | |
| 285 #define CAUSE_EXCSHIFT 2 /* Right justify EXC */ | |
| 0 | 286 |
| 287 /* Exception Codes */ | |
| 2 | 288 #define EXC_INT 0 /* External interrupt */ |
| 289 #define EXC_MOD 1 /* TLB modification exception */ | |
| 290 #define EXC_TLBL 2 /* TLB miss (Load or Ifetch) */ | |
| 291 #define EXC_TLBS 3 /* TLB miss (Store) */ | |
| 292 #define EXC_ADEL 4 /* Address error (Load or Ifetch) */ | |
| 293 #define EXC_ADES 5 /* Address error (Store) */ | |
| 294 #define EXC_IBE 6 /* Bus error (Ifetch) */ | |
| 295 #define EXC_DBE 7 /* Bus error (data load or store) */ | |
| 296 #define EXC_SYS 8 /* System call */ | |
| 297 #define EXC_BP 9 /* Break point */ | |
| 298 #define EXC_RI 10 /* Reserved instruction */ | |
| 299 #define EXC_CPU 11 /* Coprocessor unusable */ | |
| 300 #define EXC_OVF 12 /* Arithmetic overflow */ | |
| 301 #define EXC_TRAP 13 /* Trap exception */ | |
| 302 #define EXC_FPE 15 /* Floating Point Exception */ | |
| 0 | 303 |
| 2 | 304 #endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS |
|
64
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
305 |
|
c38311975d4f
Merge from eCos master repository on 2000-01-28-04:28:11-GMT
jlarmour
parents:
26
diff
changeset
|
306 #endif // ifndef CYGONCE_HAL_MIPS_REGS_H |
