]> granicus.if.org Git - esp-idf/blob - components/esp32/include/xtensa/specreg.h
Initial public version
[esp-idf] / components / esp32 / include / xtensa / specreg.h
1 /*
2  * Xtensa Special Register symbolic names
3  */
4
5 /* $Id: //depot/rel/Eaglenest/Xtensa/OS/include/xtensa/specreg.h#2 $ */
6
7 /*
8  * Copyright (c) 2005-2011 Tensilica Inc.
9  *
10  * Permission is hereby granted, free of charge, to any person obtaining
11  * a copy of this software and associated documentation files (the
12  * "Software"), to deal in the Software without restriction, including
13  * without limitation the rights to use, copy, modify, merge, publish,
14  * distribute, sublicense, and/or sell copies of the Software, and to
15  * permit persons to whom the Software is furnished to do so, subject to
16  * the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included
19  * in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
25  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
26  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28  */
29
30 #ifndef XTENSA_SPECREG_H
31 #define XTENSA_SPECREG_H
32
33 /*  Special registers:  */
34 #define LBEG            0
35 #define LEND            1
36 #define LCOUNT          2
37 #define SAR             3
38 #define BR              4
39 #define LITBASE         5
40 #define SCOMPARE1       12
41 #define ACCLO           16
42 #define ACCHI           17
43 #define MR_0            32
44 #define MR_1            33
45 #define MR_2            34
46 #define MR_3            35
47 #define PREFCTL         40
48 #define WINDOWBASE      72
49 #define WINDOWSTART     73
50 #define PTEVADDR        83
51 #define RASID           90
52 #define ITLBCFG         91
53 #define DTLBCFG         92
54 #define IBREAKENABLE    96
55 #define MEMCTL          97
56 #define CACHEATTR       98
57 #define ATOMCTL         99
58 #define DDR             104
59 #define MECR            110
60 #define IBREAKA_0       128
61 #define IBREAKA_1       129
62 #define DBREAKA_0       144
63 #define DBREAKA_1       145
64 #define DBREAKC_0       160
65 #define DBREAKC_1       161
66 #define CONFIGID0       176
67 #define EPC_1           177
68 #define EPC_2           178
69 #define EPC_3           179
70 #define EPC_4           180
71 #define EPC_5           181
72 #define EPC_6           182
73 #define EPC_7           183
74 #define DEPC            192
75 #define EPS_2           194
76 #define EPS_3           195
77 #define EPS_4           196
78 #define EPS_5           197
79 #define EPS_6           198
80 #define EPS_7           199
81 #define CONFIGID1       208
82 #define EXCSAVE_1       209
83 #define EXCSAVE_2       210
84 #define EXCSAVE_3       211
85 #define EXCSAVE_4       212
86 #define EXCSAVE_5       213
87 #define EXCSAVE_6       214
88 #define EXCSAVE_7       215
89 #define CPENABLE        224
90 #define INTERRUPT       226
91 #define INTREAD         INTERRUPT       /* alternate name for backward compatibility */
92 #define INTSET          INTERRUPT       /* alternate name for backward compatibility */
93 #define INTCLEAR        227
94 #define INTENABLE       228
95 #define PS              230
96 #define VECBASE         231
97 #define EXCCAUSE        232
98 #define DEBUGCAUSE      233
99 #define CCOUNT          234
100 #define PRID            235
101 #define ICOUNT          236
102 #define ICOUNTLEVEL     237
103 #define EXCVADDR        238
104 #define CCOMPARE_0      240
105 #define CCOMPARE_1      241
106 #define CCOMPARE_2      242
107 #define MISC_REG_0      244
108 #define MISC_REG_1      245
109 #define MISC_REG_2      246
110 #define MISC_REG_3      247
111
112 /*  Special cases (bases of special register series):  */
113 #define MR              32
114 #define IBREAKA         128
115 #define DBREAKA         144
116 #define DBREAKC         160
117 #define EPC             176
118 #define EPS             192
119 #define EXCSAVE         208
120 #define CCOMPARE        240
121 #define MISC_REG        244
122
123 /*  Tensilica-defined user registers:  */
124 #if 0
125 /*#define ...    21..24 */      /* (545CK) */
126 /*#define ...   140..143 */     /* (545CK) */
127 #define EXPSTATE        230     /* Diamond */
128 #define THREADPTR       231     /* threadptr option */
129 #define FCR             232     /* FPU */
130 #define FSR             233     /* FPU */
131 #define AE_OVF_SAR      240     /* HiFi2 */
132 #define AE_BITHEAD      241     /* HiFi2 */
133 #define AE_TS_FTS_BU_BP 242     /* HiFi2 */
134 #define AE_SD_NO        243     /* HiFi2 */
135 #define VSAR            240     /* VectraLX */
136 #define ROUND_LO        242     /* VectraLX */
137 #define ROUND_HI        243     /* VectraLX */
138 #define CBEGIN          246     /* VectraLX */
139 #define CEND            247     /* VectraLX */
140 #endif
141
142 #endif /* XTENSA_SPECREG_H */
143