gem5  v20.0.0.3
asi.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006 The Regents of The University of Michigan
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met: redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer;
9  * redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution;
12  * neither the name of the copyright holders nor the names of its
13  * contributors may be used to endorse or promote products derived from
14  * this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 #include "arch/sparc/asi.hh"
30 
31 namespace SparcISA
32 {
33 
34 bool
36 {
37  return asi == ASI_BLK_AIUP ||
38  asi == ASI_BLK_AIUS ||
39  asi == ASI_BLK_AIUP_L ||
40  asi == ASI_BLK_AIUS_L ||
41  asi == ASI_BLK_P ||
42  asi == ASI_BLK_S ||
43  asi == ASI_BLK_PL ||
44  asi == ASI_BLK_SL;
45 }
46 
47 bool
49 {
50  return asi == ASI_AIUP ||
51  asi == ASI_BLK_AIUP ||
52  asi == ASI_AIUP_L ||
53  asi == ASI_BLK_AIUP_L ||
54  asi == ASI_LDTX_AIUP ||
55  asi == ASI_LDTX_AIUP_L ||
56  asi == ASI_P ||
57  asi == ASI_PNF ||
58  asi == ASI_PL ||
59  asi == ASI_PNFL ||
60  asi == ASI_PST8_P ||
61  asi == ASI_PST16_P ||
62  asi == ASI_PST32_P ||
63  asi == ASI_PST8_PL ||
64  asi == ASI_PST16_PL ||
65  asi == ASI_PST32_PL ||
66  asi == ASI_FL8_P ||
67  asi == ASI_FL16_P ||
68  asi == ASI_FL8_PL ||
69  asi == ASI_FL16_PL ||
70  asi == ASI_LDTX_P ||
71  asi == ASI_LDTX_PL ||
72  asi == ASI_BLK_P ||
73  asi == ASI_BLK_PL;
74 }
75 
76 bool
78 {
79  return asi == ASI_AIUS ||
80  asi == ASI_BLK_AIUS ||
81  asi == ASI_AIUS_L ||
82  asi == ASI_BLK_AIUS_L ||
83  asi == ASI_LDTX_AIUS ||
84  asi == ASI_LDTX_AIUS_L ||
85  asi == ASI_S ||
86  asi == ASI_SNF ||
87  asi == ASI_SL ||
88  asi == ASI_SNFL ||
89  asi == ASI_PST8_S ||
90  asi == ASI_PST16_S ||
91  asi == ASI_PST32_S ||
92  asi == ASI_PST8_SL ||
93  asi == ASI_PST16_SL ||
94  asi == ASI_PST32_SL ||
95  asi == ASI_FL8_S ||
96  asi == ASI_FL16_S ||
97  asi == ASI_FL8_SL ||
98  asi == ASI_FL16_SL ||
99  asi == ASI_LDTX_S ||
100  asi == ASI_LDTX_SL ||
101  asi == ASI_BLK_S ||
102  asi == ASI_BLK_SL;
103 }
104 
105 bool
107 {
108  return asi == ASI_N ||
109  asi == ASI_NL ||
110  asi == ASI_LDTX_N ||
111  asi == ASI_LDTX_NL;
112 }
113 
114 bool
116 {
117  return asi == ASI_AIUP ||
118  asi == ASI_AIUS ||
119  asi == ASI_BLK_AIUP ||
120  asi == ASI_BLK_AIUS ||
121  asi == ASI_AIUP_L ||
122  asi == ASI_AIUS_L ||
123  asi == ASI_BLK_AIUP_L ||
124  asi == ASI_BLK_AIUS_L ||
125  asi == ASI_LDTX_AIUP ||
126  asi == ASI_LDTX_AIUS ||
127  asi == ASI_LDTX_AIUP_L ||
128  asi == ASI_LDTX_AIUS_L;
129 }
130 
131 bool
133 {
134  return asi == ASI_REAL_IO ||
135  asi == ASI_REAL_IO_L;
136 }
137 
138 bool
140 {
141  return asi == ASI_REAL ||
142  asi == ASI_REAL_IO ||
143  asi == ASI_REAL_L ||
144  asi == ASI_REAL_IO_L ||
145  asi == ASI_LDTX_REAL ||
146  asi == ASI_LDTX_REAL_L;
147 }
148 
149 bool
151 {
152  return asi == ASI_NL ||
153  asi == ASI_AIUP_L ||
154  asi == ASI_AIUS_L ||
155  asi == ASI_REAL_L ||
156  asi == ASI_REAL_IO_L ||
157  asi == ASI_BLK_AIUP_L ||
158  asi == ASI_BLK_AIUS_L ||
159  asi == ASI_LDTX_AIUP_L ||
160  asi == ASI_LDTX_AIUS_L ||
161  asi == ASI_LDTX_REAL_L ||
162  asi == ASI_LDTX_NL ||
163  asi == ASI_PL ||
164  asi == ASI_SL ||
165  asi == ASI_PNFL ||
166  asi == ASI_SNFL ||
167  asi == ASI_PST8_PL ||
168  asi == ASI_PST8_SL ||
169  asi == ASI_PST16_PL ||
170  asi == ASI_PST16_SL ||
171  asi == ASI_PST32_PL ||
172  asi == ASI_PST32_SL ||
173  asi == ASI_FL8_PL ||
174  asi == ASI_FL8_SL ||
175  asi == ASI_FL16_PL ||
176  asi == ASI_FL16_SL ||
177  asi == ASI_LDTX_PL ||
178  asi == ASI_LDTX_SL ||
179  asi == ASI_BLK_PL ||
180  asi == ASI_BLK_SL ||
181  asi == ASI_LTX_L;
182 }
183 
184 bool
186 {
187  return (asi >= ASI_LDTX_AIUP &&
188  asi <= ASI_LDTX_N &&
189  asi != ASI_QUEUE) ||
190  (asi >= ASI_LDTX_AIUP_L &&
191  asi <= ASI_LDTX_NL &&
192  asi != 0x2D) ||
193  asi == ASI_LDTX_P ||
194  asi == ASI_LDTX_S ||
195  asi == ASI_LDTX_PL ||
196  asi == ASI_LDTX_SL;
197 }
198 
199 bool
201 {
202  return asi == ASI_PST8_P ||
203  asi == ASI_PST8_S ||
204  asi == ASI_PST16_P ||
205  asi == ASI_PST16_S ||
206  asi == ASI_PST32_P ||
207  asi == ASI_PST32_S ||
208  asi == ASI_PST8_PL ||
209  asi == ASI_PST8_SL ||
210  asi == ASI_PST16_PL ||
211  asi == ASI_PST16_SL ||
212  asi == ASI_PST32_PL ||
213  asi == ASI_PST32_SL;
214 }
215 
216 bool
218 {
219  return asi == ASI_FL8_P ||
220  asi == ASI_FL8_S ||
221  asi == ASI_FL16_P ||
222  asi == ASI_FL16_S ||
223  asi == ASI_FL8_PL ||
224  asi == ASI_FL8_SL ||
225  asi == ASI_FL16_PL ||
226  asi == ASI_FL16_SL;
227 }
228 
229 bool
231 {
232  return asi == ASI_PNF ||
233  asi == ASI_SNF ||
234  asi == ASI_PNFL ||
235  asi == ASI_SNFL;
236 }
237 
238 bool
240 {
241  return asi == ASI_SCRATCHPAD ||
242  asi == ASI_HYP_SCRATCHPAD;
243 }
244 
245 bool
247 {
248  return asi == ASI_CMT_PER_STRAND ||
249  asi == ASI_CMT_SHARED;
250 }
251 
252 bool
254 {
255  return asi == ASI_QUEUE;
256 }
257 
258 bool
260 {
261  return asi == ASI_SWVR_INTR_RECEIVE ||
262  asi == ASI_SWVR_UDB_INTR_W ||
263  asi == ASI_SWVR_UDB_INTR_R ;
264 }
265 
266 bool
268 {
269  return asi == ASI_MMU ||
270  asi == ASI_LSU_CONTROL_REG ||
272  asi <= ASI_IMMU_CTXT_ZERO_CONFIG) ||
275  (asi >= ASI_IMMU &&
276  asi <= ASI_IMMU_TSB_PS1_PTR_REG) ||
277  (asi >= ASI_ITLB_DATA_IN_REG &&
278  asi <= ASI_TLB_INVALIDATE_ALL);
279 }
280 
281 bool
283 {
284  return asi >= 0x80;
285 }
286 
287 bool
289 {
290  return asi <= 0x2f;
291 }
292 
293 
294 bool
296 {
297  return asi >= 0x30 && asi <= 0x7f;
298 }
299 
300 bool
302 {
303  return asiIsMmu(asi) || asiIsScratchPad(asi) ||
304  asiIsSparcError(asi) || asiIsInterrupt(asi)
305  || asiIsCmt(asi);
306 }
307 
308 bool
310 {
311  return asi == ASI_SPARC_ERROR_EN_REG ||
313 }
314 
315 }
bool asiIsReal(ASI asi)
Definition: asi.cc:139
bool asiIsSparcError(ASI asi)
Definition: asi.cc:309
bool asiIsFloatingLoad(ASI asi)
Definition: asi.cc:217
bool asiIsPriv(ASI asi)
Definition: asi.cc:288
bool asiIsIO(ASI asi)
Definition: asi.cc:132
bool asiIsQueue(ASI asi)
Definition: asi.cc:253
bool asiIsPrimary(ASI asi)
Definition: asi.cc:48
bool asiIsBlock(ASI asi)
Definition: asi.cc:35
bool asiIsReg(ASI asi)
Definition: asi.cc:301
bool asiIsHPriv(ASI asi)
Definition: asi.cc:295
bool asiIsScratchPad(ASI asi)
Definition: asi.cc:239
bool asiIsNoFault(ASI asi)
Definition: asi.cc:230
Definition: asi.cc:31
bool asiIsUnPriv(ASI asi)
Definition: asi.cc:282
bool asiIsCmt(ASI asi)
Definition: asi.cc:246
bool asiIsTwin(ASI asi)
Definition: asi.cc:185
bool asiIsInterrupt(ASI asi)
Definition: asi.cc:259
bool asiIsMmu(ASI asi)
Definition: asi.cc:267
bool asiIsAsIfUser(ASI asi)
Definition: asi.cc:115
bool asiIsLittle(ASI asi)
Definition: asi.cc:150
bool asiIsNucleus(ASI asi)
Definition: asi.cc:106
bool asiIsSecondary(ASI asi)
Definition: asi.cc:77
ASI
Definition: asi.hh:35
bool asiIsPartialStore(ASI asi)
Definition: asi.cc:200

Generated on Fri Jul 3 2020 15:52:58 for gem5 by doxygen 1.8.13