2 * Copyright (c) 2010-2013, 2015 ARM Limited
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions are
16 * met: redistributions of source code must retain the above copyright
17 * notice, this list of conditions and the following disclaimer;
18 * redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions and the following disclaimer in the
20 * documentation and/or other materials provided with the distribution;
21 * neither the name of the copyright holders nor the names of its
22 * contributors may be used to endorse or promote products derived from
23 * this software without specific prior written permission.
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 #include "arch/arm/isa.hh"
43 #include "arch/arm/miscregs.hh"
44 #include "base/misc.hh"
45 #include "cpu/thread_context.hh"
46 #include "sim/full_system.hh"
52 decodeCP14Reg(unsigned crn
, unsigned opc1
, unsigned crm
, unsigned opc2
)
62 return MISCREG_DBGDIDR
;
64 return MISCREG_DBGDSCRint
;
88 return MISCREG_TEEHBR
;
120 // If we get here then it must be a register that we haven't implemented
121 warn("CP14 unimplemented crn[%d], opc1[%d], crm[%d], opc2[%d]",
122 crn
, opc1
, crm
, opc2
);
123 return MISCREG_CP14_UNIMPL
;
128 bitset
<NUM_MISCREG_INFOS
> miscRegInfo
[NUM_MISCREGS
] = {
130 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
132 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
134 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
136 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
138 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
140 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
142 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
144 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
146 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
148 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
150 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
152 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
154 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
156 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
158 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
162 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
164 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
166 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
168 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
170 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
172 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
173 // MISCREG_PRRR_MAIR0
174 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000011001")),
175 // MISCREG_PRRR_MAIR0_NS
176 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
177 // MISCREG_PRRR_MAIR0_S
178 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
179 // MISCREG_NMRR_MAIR1
180 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000011001")),
181 // MISCREG_NMRR_MAIR1_NS
182 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
183 // MISCREG_NMRR_MAIR1_S
184 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
185 // MISCREG_PMXEVTYPER_PMCCFILTR
186 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000001001")),
188 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
189 // MISCREG_SEV_MAILBOX
190 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
192 // AArch32 CP14 registers
194 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
195 // MISCREG_DBGDSCRint
196 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
198 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
199 // MISCREG_DBGDTRTXint
200 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
201 // MISCREG_DBGDTRRXint
202 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
204 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
206 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
207 // MISCREG_DBGDTRRXext
208 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
209 // MISCREG_DBGDSCRext
210 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000100")),
211 // MISCREG_DBGDTRTXext
212 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
214 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
216 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
218 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
220 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
222 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
224 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
226 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
228 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
230 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
232 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
234 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
236 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
238 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
240 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
242 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
244 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
246 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
248 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
250 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
252 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
254 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
256 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
258 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
260 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
262 bitset
<NUM_MISCREG_INFOS
>(string("10101111111111000000")),
264 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
266 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
268 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
270 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
271 // MISCREG_DBGCLAIMSET
272 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
273 // MISCREG_DBGCLAIMCLR
274 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
275 // MISCREG_DBGAUTHSTATUS
276 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
278 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
280 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
282 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
284 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
286 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
288 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
290 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
292 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
294 // AArch32 CP15 registers
296 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
298 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
300 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
302 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
304 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
306 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000100")),
308 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
310 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
312 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
314 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
316 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
318 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
320 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
322 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
324 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
326 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
328 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
330 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
332 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
334 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
336 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
338 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
340 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
342 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
344 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
346 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
348 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
350 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
352 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
354 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
356 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
358 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
360 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
362 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
364 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
366 bitset
<NUM_MISCREG_INFOS
>(string("11110011000000000001")),
368 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
370 bitset
<NUM_MISCREG_INFOS
>(string("11110111010000000001")),
372 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
374 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
376 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
378 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
380 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
382 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
384 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000100")),
386 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
388 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
390 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
392 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
394 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
396 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
398 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
400 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
402 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
404 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
406 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
408 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
410 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
412 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
414 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
416 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
418 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
420 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
422 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
424 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
426 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010100")),
428 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100100")),
430 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100100")),
432 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010100")),
434 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100100")),
436 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100100")),
438 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
440 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
442 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
444 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
446 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
448 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
450 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
452 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
454 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
456 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
458 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
460 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
462 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
464 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
466 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
468 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
470 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
472 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
474 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
476 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
478 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
480 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
482 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
484 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
486 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
488 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
490 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
492 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
493 // MISCREG_ATS12NSOPR
494 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
495 // MISCREG_ATS12NSOPW
496 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
497 // MISCREG_ATS12NSOUR
498 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
499 // MISCREG_ATS12NSOUW
500 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
502 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
504 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
506 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
508 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
510 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
512 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
514 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
516 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
518 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
520 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
522 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
523 // MISCREG_TLBIASIDIS
524 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
525 // MISCREG_TLBIMVAAIS
526 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
527 // MISCREG_TLBIMVALIS
528 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
529 // MISCREG_TLBIMVAALIS
530 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
532 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
534 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
536 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
538 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
540 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
542 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
544 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
546 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
548 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
550 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
552 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
554 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
555 // MISCREG_TLBIIPAS2IS
556 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
557 // MISCREG_TLBIIPAS2LIS
558 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
559 // MISCREG_TLBIALLHIS
560 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
561 // MISCREG_TLBIMVAHIS
562 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
563 // MISCREG_TLBIALLNSNHIS
564 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
565 // MISCREG_TLBIMVALHIS
566 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
568 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
569 // MISCREG_TLBIIPAS2L
570 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
572 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
574 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
575 // MISCREG_TLBIALLNSNH
576 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
578 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
580 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
581 // MISCREG_PMCNTENSET
582 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
583 // MISCREG_PMCNTENCLR
584 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
586 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
588 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
590 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
592 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
594 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
596 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
597 // MISCREG_PMXEVTYPER
598 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
600 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
602 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
604 bitset
<NUM_MISCREG_INFOS
>(string("11111111110101000001")),
605 // MISCREG_PMINTENSET
606 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
607 // MISCREG_PMINTENCLR
608 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
610 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
612 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
614 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
616 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
618 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
620 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
622 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
624 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
626 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
628 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
630 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
632 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
634 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
636 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
638 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
640 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
642 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
644 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
646 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
648 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
650 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
652 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
654 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
656 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000100")),
658 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000100")),
660 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
662 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
664 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
666 bitset
<NUM_MISCREG_INFOS
>(string("11110011000000000001")),
668 bitset
<NUM_MISCREG_INFOS
>(string("11110011000000000000")),
670 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
672 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
674 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000100")),
675 // MISCREG_CONTEXTIDR
676 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
677 // MISCREG_CONTEXTIDR_NS
678 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
679 // MISCREG_CONTEXTIDR_S
680 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
682 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
683 // MISCREG_TPIDRURW_NS
684 bitset
<NUM_MISCREG_INFOS
>(string("11001100111111100001")),
685 // MISCREG_TPIDRURW_S
686 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
688 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
689 // MISCREG_TPIDRURO_NS
690 bitset
<NUM_MISCREG_INFOS
>(string("11001100110101100001")),
691 // MISCREG_TPIDRURO_S
692 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
694 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
695 // MISCREG_TPIDRPRW_NS
696 bitset
<NUM_MISCREG_INFOS
>(string("11001100110000100001")),
697 // MISCREG_TPIDRPRW_S
698 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
700 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
702 bitset
<NUM_MISCREG_INFOS
>(string("11110101010101000011")),
704 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
706 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
707 // MISCREG_CNTP_TVAL_NS
708 bitset
<NUM_MISCREG_INFOS
>(string("11001100111111100001")),
709 // MISCREG_CNTP_TVAL_S
710 bitset
<NUM_MISCREG_INFOS
>(string("00110011001111100000")),
712 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
713 // MISCREG_CNTP_CTL_NS
714 bitset
<NUM_MISCREG_INFOS
>(string("11001100111111100001")),
715 // MISCREG_CNTP_CTL_S
716 bitset
<NUM_MISCREG_INFOS
>(string("00110011001111100000")),
718 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
720 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
722 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
723 // MISCREG_CNTHP_TVAL
724 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
726 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
728 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
730 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
732 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
734 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
736 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
738 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
740 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
742 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
744 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
746 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
748 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
750 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000000")),
752 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
754 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
756 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
758 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000011")),
760 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
761 // MISCREG_CNTP_CVAL_NS
762 bitset
<NUM_MISCREG_INFOS
>(string("11001100111111100001")),
763 // MISCREG_CNTP_CVAL_S
764 bitset
<NUM_MISCREG_INFOS
>(string("00110011001111100000")),
766 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
768 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
769 // MISCREG_CNTHP_CVAL
770 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
772 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
774 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000100")),
776 // AArch64 registers (Op0=2)
777 // MISCREG_MDCCINT_EL1
778 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
779 // MISCREG_OSDTRRX_EL1
780 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
782 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
783 // MISCREG_OSDTRTX_EL1
784 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
785 // MISCREG_OSECCR_EL1
786 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
787 // MISCREG_DBGBVR0_EL1
788 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
789 // MISCREG_DBGBVR1_EL1
790 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
791 // MISCREG_DBGBVR2_EL1
792 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
793 // MISCREG_DBGBVR3_EL1
794 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
795 // MISCREG_DBGBVR4_EL1
796 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
797 // MISCREG_DBGBVR5_EL1
798 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
799 // MISCREG_DBGBCR0_EL1
800 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
801 // MISCREG_DBGBCR1_EL1
802 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
803 // MISCREG_DBGBCR2_EL1
804 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
805 // MISCREG_DBGBCR3_EL1
806 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
807 // MISCREG_DBGBCR4_EL1
808 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
809 // MISCREG_DBGBCR5_EL1
810 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
811 // MISCREG_DBGWVR0_EL1
812 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
813 // MISCREG_DBGWVR1_EL1
814 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
815 // MISCREG_DBGWVR2_EL1
816 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
817 // MISCREG_DBGWVR3_EL1
818 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
819 // MISCREG_DBGWCR0_EL1
820 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
821 // MISCREG_DBGWCR1_EL1
822 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
823 // MISCREG_DBGWCR2_EL1
824 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
825 // MISCREG_DBGWCR3_EL1
826 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
827 // MISCREG_MDCCSR_EL0
828 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
830 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
831 // MISCREG_MDDTRTX_EL0
832 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
833 // MISCREG_MDDTRRX_EL0
834 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
835 // MISCREG_DBGVCR32_EL2
836 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
838 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
840 bitset
<NUM_MISCREG_INFOS
>(string("10101111111111000001")),
842 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
844 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
845 // MISCREG_DBGPRCR_EL1
846 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
847 // MISCREG_DBGCLAIMSET_EL1
848 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
849 // MISCREG_DBGCLAIMCLR_EL1
850 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
851 // MISCREG_DBGAUTHSTATUS_EL1
852 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
853 // MISCREG_TEECR32_EL1
854 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000001")),
855 // MISCREG_TEEHBR32_EL1
856 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000001")),
858 // AArch64 registers (Op0=1,3)
860 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
862 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
863 // MISCREG_REVIDR_EL1
864 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
865 // MISCREG_ID_PFR0_EL1
866 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
867 // MISCREG_ID_PFR1_EL1
868 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
869 // MISCREG_ID_DFR0_EL1
870 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
871 // MISCREG_ID_AFR0_EL1
872 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
873 // MISCREG_ID_MMFR0_EL1
874 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
875 // MISCREG_ID_MMFR1_EL1
876 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
877 // MISCREG_ID_MMFR2_EL1
878 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
879 // MISCREG_ID_MMFR3_EL1
880 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
881 // MISCREG_ID_ISAR0_EL1
882 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
883 // MISCREG_ID_ISAR1_EL1
884 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
885 // MISCREG_ID_ISAR2_EL1
886 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
887 // MISCREG_ID_ISAR3_EL1
888 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
889 // MISCREG_ID_ISAR4_EL1
890 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
891 // MISCREG_ID_ISAR5_EL1
892 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
894 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
896 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
898 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
899 // MISCREG_ID_AA64PFR0_EL1
900 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
901 // MISCREG_ID_AA64PFR1_EL1
902 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
903 // MISCREG_ID_AA64DFR0_EL1
904 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
905 // MISCREG_ID_AA64DFR1_EL1
906 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
907 // MISCREG_ID_AA64AFR0_EL1
908 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
909 // MISCREG_ID_AA64AFR1_EL1
910 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
911 // MISCREG_ID_AA64ISAR0_EL1
912 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
913 // MISCREG_ID_AA64ISAR1_EL1
914 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
915 // MISCREG_ID_AA64MMFR0_EL1
916 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
917 // MISCREG_ID_AA64MMFR1_EL1
918 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
919 // MISCREG_CCSIDR_EL1
920 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
922 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
924 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
925 // MISCREG_CSSELR_EL1
926 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
928 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
930 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
932 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
933 // MISCREG_VMPIDR_EL2
934 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
936 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
938 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
940 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
942 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
944 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
946 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
948 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
950 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
952 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
954 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
956 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
958 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
960 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
961 // MISCREG_SDER32_EL3
962 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
964 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
966 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
968 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
970 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
972 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
974 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
976 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
978 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
980 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
982 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
984 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
985 // MISCREG_DACR32_EL2
986 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
988 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
990 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
992 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
994 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
996 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
998 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1000 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1002 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1004 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1005 // MISCREG_DSPSR_EL0
1006 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1008 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1010 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1012 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1014 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1015 // MISCREG_SPSR_IRQ_AA64
1016 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1017 // MISCREG_SPSR_ABT_AA64
1018 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1019 // MISCREG_SPSR_UND_AA64
1020 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1021 // MISCREG_SPSR_FIQ_AA64
1022 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1024 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1026 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1028 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1029 // MISCREG_AFSR0_EL1
1030 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1031 // MISCREG_AFSR1_EL1
1032 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1034 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1035 // MISCREG_IFSR32_EL2
1036 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1037 // MISCREG_AFSR0_EL2
1038 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1039 // MISCREG_AFSR1_EL2
1040 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1042 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1043 // MISCREG_FPEXC32_EL2
1044 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1045 // MISCREG_AFSR0_EL3
1046 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1047 // MISCREG_AFSR1_EL3
1048 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1050 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1052 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1054 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1055 // MISCREG_HPFAR_EL2
1056 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1058 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1059 // MISCREG_IC_IALLUIS
1060 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1062 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1064 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1065 // MISCREG_DC_IVAC_Xt
1066 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1067 // MISCREG_DC_ISW_Xt
1068 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1069 // MISCREG_AT_S1E1R_Xt
1070 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1071 // MISCREG_AT_S1E1W_Xt
1072 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1073 // MISCREG_AT_S1E0R_Xt
1074 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1075 // MISCREG_AT_S1E0W_Xt
1076 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1077 // MISCREG_DC_CSW_Xt
1078 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1079 // MISCREG_DC_CISW_Xt
1080 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1081 // MISCREG_DC_ZVA_Xt
1082 bitset
<NUM_MISCREG_INFOS
>(string("10101010100010000101")),
1083 // MISCREG_IC_IVAU_Xt
1084 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
1085 // MISCREG_DC_CVAC_Xt
1086 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000101")),
1087 // MISCREG_DC_CVAU_Xt
1088 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000101")),
1089 // MISCREG_DC_CIVAC_Xt
1090 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000101")),
1091 // MISCREG_AT_S1E2R_Xt
1092 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1093 // MISCREG_AT_S1E2W_Xt
1094 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1095 // MISCREG_AT_S12E1R_Xt
1096 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1097 // MISCREG_AT_S12E1W_Xt
1098 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1099 // MISCREG_AT_S12E0R_Xt
1100 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1101 // MISCREG_AT_S12E0W_Xt
1102 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1103 // MISCREG_AT_S1E3R_Xt
1104 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1105 // MISCREG_AT_S1E3W_Xt
1106 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1107 // MISCREG_TLBI_VMALLE1IS
1108 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1109 // MISCREG_TLBI_VAE1IS_Xt
1110 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1111 // MISCREG_TLBI_ASIDE1IS_Xt
1112 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1113 // MISCREG_TLBI_VAAE1IS_Xt
1114 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1115 // MISCREG_TLBI_VALE1IS_Xt
1116 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1117 // MISCREG_TLBI_VAALE1IS_Xt
1118 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1119 // MISCREG_TLBI_VMALLE1
1120 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1121 // MISCREG_TLBI_VAE1_Xt
1122 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1123 // MISCREG_TLBI_ASIDE1_Xt
1124 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1125 // MISCREG_TLBI_VAAE1_Xt
1126 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1127 // MISCREG_TLBI_VALE1_Xt
1128 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1129 // MISCREG_TLBI_VAALE1_Xt
1130 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1131 // MISCREG_TLBI_IPAS2E1IS_Xt
1132 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1133 // MISCREG_TLBI_IPAS2LE1IS_Xt
1134 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1135 // MISCREG_TLBI_ALLE2IS
1136 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1137 // MISCREG_TLBI_VAE2IS_Xt
1138 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1139 // MISCREG_TLBI_ALLE1IS
1140 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1141 // MISCREG_TLBI_VALE2IS_Xt
1142 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1143 // MISCREG_TLBI_VMALLS12E1IS
1144 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1145 // MISCREG_TLBI_IPAS2E1_Xt
1146 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1147 // MISCREG_TLBI_IPAS2LE1_Xt
1148 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1149 // MISCREG_TLBI_ALLE2
1150 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1151 // MISCREG_TLBI_VAE2_Xt
1152 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1153 // MISCREG_TLBI_ALLE1
1154 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1155 // MISCREG_TLBI_VALE2_Xt
1156 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1157 // MISCREG_TLBI_VMALLS12E1
1158 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1159 // MISCREG_TLBI_ALLE3IS
1160 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1161 // MISCREG_TLBI_VAE3IS_Xt
1162 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1163 // MISCREG_TLBI_VALE3IS_Xt
1164 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1165 // MISCREG_TLBI_ALLE3
1166 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1167 // MISCREG_TLBI_VAE3_Xt
1168 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1169 // MISCREG_TLBI_VALE3_Xt
1170 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1171 // MISCREG_PMINTENSET_EL1
1172 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1173 // MISCREG_PMINTENCLR_EL1
1174 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1176 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1177 // MISCREG_PMCNTENSET_EL0
1178 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1179 // MISCREG_PMCNTENCLR_EL0
1180 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1181 // MISCREG_PMOVSCLR_EL0
1182 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1183 // MISCREG_PMSWINC_EL0
1184 bitset
<NUM_MISCREG_INFOS
>(string("10101010101111000001")),
1185 // MISCREG_PMSELR_EL0
1186 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1187 // MISCREG_PMCEID0_EL0
1188 bitset
<NUM_MISCREG_INFOS
>(string("01010101011111000001")),
1189 // MISCREG_PMCEID1_EL0
1190 bitset
<NUM_MISCREG_INFOS
>(string("01010101011111000001")),
1191 // MISCREG_PMCCNTR_EL0
1192 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1193 // MISCREG_PMXEVTYPER_EL0
1194 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1195 // MISCREG_PMCCFILTR_EL0
1196 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1197 // MISCREG_PMXEVCNTR_EL0
1198 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1199 // MISCREG_PMUSERENR_EL0
1200 bitset
<NUM_MISCREG_INFOS
>(string("11111111110101000001")),
1201 // MISCREG_PMOVSSET_EL0
1202 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1204 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1205 // MISCREG_AMAIR_EL1
1206 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1208 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1209 // MISCREG_AMAIR_EL2
1210 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1212 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1213 // MISCREG_AMAIR_EL3
1214 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1215 // MISCREG_L2CTLR_EL1
1216 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1217 // MISCREG_L2ECTLR_EL1
1218 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1220 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1221 // MISCREG_RVBAR_EL1
1222 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1224 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1226 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1227 // MISCREG_RVBAR_EL2
1228 bitset
<NUM_MISCREG_INFOS
>(string("01010100000000000001")),
1230 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1231 // MISCREG_RVBAR_EL3
1232 bitset
<NUM_MISCREG_INFOS
>(string("01010000000000000001")),
1234 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1235 // MISCREG_CONTEXTIDR_EL1
1236 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1237 // MISCREG_TPIDR_EL1
1238 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1239 // MISCREG_TPIDR_EL0
1240 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1241 // MISCREG_TPIDRRO_EL0
1242 bitset
<NUM_MISCREG_INFOS
>(string("11111111110101000001")),
1243 // MISCREG_TPIDR_EL2
1244 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1245 // MISCREG_TPIDR_EL3
1246 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1247 // MISCREG_CNTKCTL_EL1
1248 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1249 // MISCREG_CNTFRQ_EL0
1250 bitset
<NUM_MISCREG_INFOS
>(string("11110101010101000001")),
1251 // MISCREG_CNTPCT_EL0
1252 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
1253 // MISCREG_CNTVCT_EL0
1254 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000011")),
1255 // MISCREG_CNTP_TVAL_EL0
1256 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1257 // MISCREG_CNTP_CTL_EL0
1258 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1259 // MISCREG_CNTP_CVAL_EL0
1260 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1261 // MISCREG_CNTV_TVAL_EL0
1262 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1263 // MISCREG_CNTV_CTL_EL0
1264 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1265 // MISCREG_CNTV_CVAL_EL0
1266 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1267 // MISCREG_PMEVCNTR0_EL0
1268 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1269 // MISCREG_PMEVCNTR1_EL0
1270 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1271 // MISCREG_PMEVCNTR2_EL0
1272 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1273 // MISCREG_PMEVCNTR3_EL0
1274 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1275 // MISCREG_PMEVCNTR4_EL0
1276 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1277 // MISCREG_PMEVCNTR5_EL0
1278 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1279 // MISCREG_PMEVTYPER0_EL0
1280 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1281 // MISCREG_PMEVTYPER1_EL0
1282 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1283 // MISCREG_PMEVTYPER2_EL0
1284 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1285 // MISCREG_PMEVTYPER3_EL0
1286 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1287 // MISCREG_PMEVTYPER4_EL0
1288 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1289 // MISCREG_PMEVTYPER5_EL0
1290 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1291 // MISCREG_CNTVOFF_EL2
1292 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1293 // MISCREG_CNTHCTL_EL2
1294 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1295 // MISCREG_CNTHP_TVAL_EL2
1296 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1297 // MISCREG_CNTHP_CTL_EL2
1298 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1299 // MISCREG_CNTHP_CVAL_EL2
1300 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1301 // MISCREG_CNTPS_TVAL_EL1
1302 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1303 // MISCREG_CNTPS_CTL_EL1
1304 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1305 // MISCREG_CNTPS_CVAL_EL1
1306 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1307 // MISCREG_IL1DATA0_EL1
1308 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1309 // MISCREG_IL1DATA1_EL1
1310 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1311 // MISCREG_IL1DATA2_EL1
1312 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1313 // MISCREG_IL1DATA3_EL1
1314 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1315 // MISCREG_DL1DATA0_EL1
1316 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1317 // MISCREG_DL1DATA1_EL1
1318 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1319 // MISCREG_DL1DATA2_EL1
1320 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1321 // MISCREG_DL1DATA3_EL1
1322 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1323 // MISCREG_DL1DATA4_EL1
1324 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1325 // MISCREG_L2ACTLR_EL1
1326 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1327 // MISCREG_CPUACTLR_EL1
1328 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1329 // MISCREG_CPUECTLR_EL1
1330 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1331 // MISCREG_CPUMERRSR_EL1
1332 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1333 // MISCREG_L2MERRSR_EL1
1334 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000100")),
1336 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1340 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1342 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1343 // MISCREG_CP14_UNIMPL
1344 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000100")),
1345 // MISCREG_CP15_UNIMPL
1346 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000100")),
1347 // MISCREG_A64_UNIMPL
1348 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000100")),
1350 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000001"))
1354 decodeCP15Reg(unsigned crn
, unsigned opc1
, unsigned crm
, unsigned opc2
)
1366 return MISCREG_TCMTR
;
1368 return MISCREG_TLBTR
;
1370 return MISCREG_MPIDR
;
1372 return MISCREG_REVIDR
;
1374 return MISCREG_MIDR
;
1380 return MISCREG_ID_PFR0
;
1382 return MISCREG_ID_PFR1
;
1384 return MISCREG_ID_DFR0
;
1386 return MISCREG_ID_AFR0
;
1388 return MISCREG_ID_MMFR0
;
1390 return MISCREG_ID_MMFR1
;
1392 return MISCREG_ID_MMFR2
;
1394 return MISCREG_ID_MMFR3
;
1400 return MISCREG_ID_ISAR0
;
1402 return MISCREG_ID_ISAR1
;
1404 return MISCREG_ID_ISAR2
;
1406 return MISCREG_ID_ISAR3
;
1408 return MISCREG_ID_ISAR4
;
1410 return MISCREG_ID_ISAR5
;
1413 return MISCREG_RAZ
; // read as zero
1417 return MISCREG_RAZ
; // read as zero
1424 return MISCREG_CCSIDR
;
1426 return MISCREG_CLIDR
;
1428 return MISCREG_AIDR
;
1433 if (crm
== 0 && opc2
== 0) {
1434 return MISCREG_CSSELR
;
1440 return MISCREG_VPIDR
;
1442 return MISCREG_VMPIDR
;
1452 return MISCREG_SCTLR
;
1454 return MISCREG_ACTLR
;
1456 return MISCREG_CPACR
;
1458 } else if (crm
== 1) {
1463 return MISCREG_SDER
;
1465 return MISCREG_NSACR
;
1468 } else if (opc1
== 4) {
1471 return MISCREG_HSCTLR
;
1473 return MISCREG_HACTLR
;
1474 } else if (crm
== 1) {
1479 return MISCREG_HDCR
;
1481 return MISCREG_HCPTR
;
1483 return MISCREG_HSTR
;
1485 return MISCREG_HACR
;
1491 if (opc1
== 0 && crm
== 0) {
1494 return MISCREG_TTBR0
;
1496 return MISCREG_TTBR1
;
1498 return MISCREG_TTBCR
;
1500 } else if (opc1
== 4) {
1501 if (crm
== 0 && opc2
== 2)
1502 return MISCREG_HTCR
;
1503 else if (crm
== 1 && opc2
== 2)
1504 return MISCREG_VTCR
;
1508 if (opc1
== 0 && crm
== 0 && opc2
== 0) {
1509 return MISCREG_DACR
;
1516 return MISCREG_DFSR
;
1517 } else if (opc2
== 1) {
1518 return MISCREG_IFSR
;
1520 } else if (crm
== 1) {
1522 return MISCREG_ADFSR
;
1523 } else if (opc2
== 1) {
1524 return MISCREG_AIFSR
;
1527 } else if (opc1
== 4) {
1530 return MISCREG_HADFSR
;
1532 return MISCREG_HAIFSR
;
1533 } else if (crm
== 2 && opc2
== 0) {
1539 if (opc1
== 0 && crm
== 0) {
1542 return MISCREG_DFAR
;
1544 return MISCREG_IFAR
;
1546 } else if (opc1
== 4 && crm
== 0) {
1549 return MISCREG_HDFAR
;
1551 return MISCREG_HIFAR
;
1553 return MISCREG_HPFAR
;
1568 return MISCREG_ICIALLUIS
;
1570 return MISCREG_BPIALLIS
;
1581 return MISCREG_ICIALLU
;
1583 return MISCREG_ICIMVAU
;
1585 return MISCREG_CP15ISB
;
1587 return MISCREG_BPIALL
;
1589 return MISCREG_BPIMVA
;
1594 return MISCREG_DCIMVAC
;
1595 } else if (opc2
== 2) {
1596 return MISCREG_DCISW
;
1602 return MISCREG_ATS1CPR
;
1604 return MISCREG_ATS1CPW
;
1606 return MISCREG_ATS1CUR
;
1608 return MISCREG_ATS1CUW
;
1610 return MISCREG_ATS12NSOPR
;
1612 return MISCREG_ATS12NSOPW
;
1614 return MISCREG_ATS12NSOUR
;
1616 return MISCREG_ATS12NSOUW
;
1622 return MISCREG_DCCMVAC
;
1624 return MISCREG_DCCSW
;
1626 return MISCREG_CP15DSB
;
1628 return MISCREG_CP15DMB
;
1633 return MISCREG_DCCMVAU
;
1643 return MISCREG_DCCIMVAC
;
1644 } else if (opc2
== 2) {
1645 return MISCREG_DCCISW
;
1649 } else if (opc1
== 4 && crm
== 8) {
1651 return MISCREG_ATS1HR
;
1653 return MISCREG_ATS1HW
;
1662 return MISCREG_TLBIALLIS
;
1664 return MISCREG_TLBIMVAIS
;
1666 return MISCREG_TLBIASIDIS
;
1668 return MISCREG_TLBIMVAAIS
;
1674 return MISCREG_ITLBIALL
;
1676 return MISCREG_ITLBIMVA
;
1678 return MISCREG_ITLBIASID
;
1684 return MISCREG_DTLBIALL
;
1686 return MISCREG_DTLBIMVA
;
1688 return MISCREG_DTLBIASID
;
1694 return MISCREG_TLBIALL
;
1696 return MISCREG_TLBIMVA
;
1698 return MISCREG_TLBIASID
;
1700 return MISCREG_TLBIMVAA
;
1704 } else if (opc1
== 4) {
1708 return MISCREG_TLBIALLHIS
;
1710 return MISCREG_TLBIMVAHIS
;
1712 return MISCREG_TLBIALLNSNHIS
;
1714 } else if (crm
== 7) {
1717 return MISCREG_TLBIALLH
;
1719 return MISCREG_TLBIMVAH
;
1721 return MISCREG_TLBIALLNSNH
;
1732 return MISCREG_PMCR
;
1734 return MISCREG_PMCNTENSET
;
1736 return MISCREG_PMCNTENCLR
;
1738 return MISCREG_PMOVSR
;
1740 return MISCREG_PMSWINC
;
1742 return MISCREG_PMSELR
;
1744 return MISCREG_PMCEID0
;
1746 return MISCREG_PMCEID1
;
1752 return MISCREG_PMCCNTR
;
1754 // Selector is PMSELR.SEL
1755 return MISCREG_PMXEVTYPER_PMCCFILTR
;
1757 return MISCREG_PMXEVCNTR
;
1763 return MISCREG_PMUSERENR
;
1765 return MISCREG_PMINTENSET
;
1767 return MISCREG_PMINTENCLR
;
1769 return MISCREG_PMOVSSET
;
1773 } else if (opc1
== 1) {
1777 case 2: // L2CTLR, L2 Control Register
1778 return MISCREG_L2CTLR
;
1780 return MISCREG_L2ECTLR
;
1789 // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown
1790 if (crm
== 2) { // TEX Remap Registers
1792 // Selector is TTBCR.EAE
1793 return MISCREG_PRRR_MAIR0
;
1794 } else if (opc2
== 1) {
1795 // Selector is TTBCR.EAE
1796 return MISCREG_NMRR_MAIR1
;
1798 } else if (crm
== 3) {
1800 return MISCREG_AMAIR0
;
1801 } else if (opc2
== 1) {
1802 return MISCREG_AMAIR1
;
1805 } else if (opc1
== 4) {
1806 // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown
1809 return MISCREG_HMAIR0
;
1811 return MISCREG_HMAIR1
;
1812 } else if (crm
== 3) {
1814 return MISCREG_HAMAIR0
;
1816 return MISCREG_HAMAIR1
;
1833 // Reserved for DMA operations for TCM access
1842 return MISCREG_VBAR
;
1843 } else if (opc2
== 1) {
1844 return MISCREG_MVBAR
;
1846 } else if (crm
== 1) {
1851 } else if (opc1
== 4) {
1852 if (crm
== 0 && opc2
== 0)
1853 return MISCREG_HVBAR
;
1861 return MISCREG_FCSEIDR
;
1863 return MISCREG_CONTEXTIDR
;
1865 return MISCREG_TPIDRURW
;
1867 return MISCREG_TPIDRURO
;
1869 return MISCREG_TPIDRPRW
;
1872 } else if (opc1
== 4) {
1873 if (crm
== 0 && opc2
== 2)
1874 return MISCREG_HTPIDR
;
1882 return MISCREG_CNTFRQ
;
1886 return MISCREG_CNTKCTL
;
1890 return MISCREG_CNTP_TVAL
;
1892 return MISCREG_CNTP_CTL
;
1896 return MISCREG_CNTV_TVAL
;
1898 return MISCREG_CNTV_CTL
;
1901 } else if (opc1
== 4) {
1902 if (crm
== 1 && opc2
== 0) {
1903 return MISCREG_CNTHCTL
;
1904 } else if (crm
== 2) {
1906 return MISCREG_CNTHP_TVAL
;
1908 return MISCREG_CNTHP_CTL
;
1913 // Implementation defined
1914 return MISCREG_CP15_UNIMPL
;
1916 // Unrecognized register
1917 return MISCREG_CP15_UNIMPL
;
1921 decodeCP15Reg64(unsigned crm
, unsigned opc1
)
1927 return MISCREG_TTBR0
;
1929 return MISCREG_TTBR1
;
1931 return MISCREG_HTTBR
;
1933 return MISCREG_VTTBR
;
1943 return MISCREG_CNTPCT
;
1945 return MISCREG_CNTVCT
;
1947 return MISCREG_CNTP_CVAL
;
1949 return MISCREG_CNTV_CVAL
;
1951 return MISCREG_CNTVOFF
;
1953 return MISCREG_CNTHP_CVAL
;
1958 return MISCREG_CPUMERRSR
;
1960 return MISCREG_L2MERRSR
;
1963 // Unrecognized register
1964 return MISCREG_CP15_UNIMPL
;
1968 canReadCoprocReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
, ThreadContext
*tc
)
1970 bool secure
= !scr
.ns
;
1973 switch (cpsr
.mode
) {
1975 canRead
= secure
? miscRegInfo
[reg
][MISCREG_USR_S_RD
] :
1976 miscRegInfo
[reg
][MISCREG_USR_NS_RD
];
1982 case MODE_UNDEFINED
:
1984 canRead
= secure
? miscRegInfo
[reg
][MISCREG_PRI_S_RD
] :
1985 miscRegInfo
[reg
][MISCREG_PRI_NS_RD
];
1988 canRead
= secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_RD
] :
1989 miscRegInfo
[reg
][MISCREG_MON_NS1_RD
];
1992 canRead
= miscRegInfo
[reg
][MISCREG_HYP_RD
];
1995 panic("Unrecognized mode setting in CPSR.\n");
1997 // can't do permissions checkes on the root of a banked pair of regs
1998 assert(!miscRegInfo
[reg
][MISCREG_BANKED
]);
2003 canWriteCoprocReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
, ThreadContext
*tc
)
2005 bool secure
= !scr
.ns
;
2008 switch (cpsr
.mode
) {
2010 canWrite
= secure
? miscRegInfo
[reg
][MISCREG_USR_S_WR
] :
2011 miscRegInfo
[reg
][MISCREG_USR_NS_WR
];
2017 case MODE_UNDEFINED
:
2019 canWrite
= secure
? miscRegInfo
[reg
][MISCREG_PRI_S_WR
] :
2020 miscRegInfo
[reg
][MISCREG_PRI_NS_WR
];
2023 canWrite
= secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_WR
] :
2024 miscRegInfo
[reg
][MISCREG_MON_NS1_WR
];
2027 canWrite
= miscRegInfo
[reg
][MISCREG_HYP_WR
];
2030 panic("Unrecognized mode setting in CPSR.\n");
2032 // can't do permissions checkes on the root of a banked pair of regs
2033 assert(!miscRegInfo
[reg
][MISCREG_BANKED
]);
2038 flattenMiscRegNsBanked(MiscRegIndex reg
, ThreadContext
*tc
)
2040 int reg_as_int
= static_cast<int>(reg
);
2041 if (miscRegInfo
[reg
][MISCREG_BANKED
]) {
2042 SCR scr
= tc
->readMiscReg(MISCREG_SCR
);
2043 reg_as_int
+= (ArmSystem::haveSecurity(tc
) && !scr
.ns
) ? 2 : 1;
2049 flattenMiscRegNsBanked(MiscRegIndex reg
, ThreadContext
*tc
, bool ns
)
2051 int reg_as_int
= static_cast<int>(reg
);
2052 if (miscRegInfo
[reg
][MISCREG_BANKED
]) {
2053 reg_as_int
+= (ArmSystem::haveSecurity(tc
) && !ns
) ? 2 : 1;
2060 * If the reg is a child reg of a banked set, then the parent is the last
2061 * banked one in the list. This is messy, and the wish is to eventually have
2062 * the bitmap replaced with a better data structure. the preUnflatten function
2063 * initializes a lookup table to speed up the search for these banked
2067 int unflattenResultMiscReg
[NUM_MISCREGS
];
2070 preUnflattenMiscReg()
2073 for (int i
= 0 ; i
< NUM_MISCREGS
; i
++){
2074 if (miscRegInfo
[i
][MISCREG_BANKED
])
2076 if (miscRegInfo
[i
][MISCREG_BANKED_CHILD
])
2077 unflattenResultMiscReg
[i
] = reg
;
2079 unflattenResultMiscReg
[i
] = i
;
2080 // if this assert fails, no parent was found, and something is broken
2081 assert(unflattenResultMiscReg
[i
] > -1);
2086 unflattenMiscReg(int reg
)
2088 return unflattenResultMiscReg
[reg
];
2092 canReadAArch64SysReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
, ThreadContext
*tc
)
2094 // Check for SP_EL0 access while SPSEL == 0
2095 if ((reg
== MISCREG_SP_EL0
) && (tc
->readMiscReg(MISCREG_SPSEL
) == 0))
2098 // Check for RVBAR access
2099 if (reg
== MISCREG_RVBAR_EL1
) {
2100 ExceptionLevel highest_el
= ArmSystem::highestEL(tc
);
2101 if (highest_el
== EL2
|| highest_el
== EL3
)
2104 if (reg
== MISCREG_RVBAR_EL2
) {
2105 ExceptionLevel highest_el
= ArmSystem::highestEL(tc
);
2106 if (highest_el
== EL3
)
2110 bool secure
= ArmSystem::haveSecurity(tc
) && !scr
.ns
;
2112 switch (opModeToEL((OperatingMode
) (uint8_t) cpsr
.mode
)) {
2114 return secure
? miscRegInfo
[reg
][MISCREG_USR_S_RD
] :
2115 miscRegInfo
[reg
][MISCREG_USR_NS_RD
];
2117 return secure
? miscRegInfo
[reg
][MISCREG_PRI_S_RD
] :
2118 miscRegInfo
[reg
][MISCREG_PRI_NS_RD
];
2119 // @todo: uncomment this to enable Virtualization
2121 // return miscRegInfo[reg][MISCREG_HYP_RD];
2123 return secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_RD
] :
2124 miscRegInfo
[reg
][MISCREG_MON_NS1_RD
];
2126 panic("Invalid exception level");
2131 canWriteAArch64SysReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
, ThreadContext
*tc
)
2133 // Check for SP_EL0 access while SPSEL == 0
2134 if ((reg
== MISCREG_SP_EL0
) && (tc
->readMiscReg(MISCREG_SPSEL
) == 0))
2136 ExceptionLevel el
= opModeToEL((OperatingMode
) (uint8_t) cpsr
.mode
);
2137 if (reg
== MISCREG_DAIF
) {
2138 SCTLR sctlr
= tc
->readMiscReg(MISCREG_SCTLR_EL1
);
2139 if (el
== EL0
&& !sctlr
.uma
)
2142 if (FullSystem
&& reg
== MISCREG_DC_ZVA_Xt
) {
2143 // In syscall-emulation mode, this test is skipped and DCZVA is always
2145 SCTLR sctlr
= tc
->readMiscReg(MISCREG_SCTLR_EL1
);
2146 if (el
== EL0
&& !sctlr
.dze
)
2149 if (reg
== MISCREG_DC_CVAC_Xt
|| reg
== MISCREG_DC_CIVAC_Xt
) {
2150 SCTLR sctlr
= tc
->readMiscReg(MISCREG_SCTLR_EL1
);
2151 if (el
== EL0
&& !sctlr
.uci
)
2155 bool secure
= ArmSystem::haveSecurity(tc
) && !scr
.ns
;
2159 return secure
? miscRegInfo
[reg
][MISCREG_USR_S_WR
] :
2160 miscRegInfo
[reg
][MISCREG_USR_NS_WR
];
2162 return secure
? miscRegInfo
[reg
][MISCREG_PRI_S_WR
] :
2163 miscRegInfo
[reg
][MISCREG_PRI_NS_WR
];
2164 // @todo: uncomment this to enable Virtualization
2166 // return miscRegInfo[reg][MISCREG_HYP_WR];
2168 return secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_WR
] :
2169 miscRegInfo
[reg
][MISCREG_MON_NS1_WR
];
2171 panic("Invalid exception level");
2176 decodeAArch64SysReg(unsigned op0
, unsigned op1
,
2177 unsigned crn
, unsigned crm
,
2190 return MISCREG_IC_IALLUIS
;
2196 return MISCREG_IC_IALLU
;
2202 return MISCREG_DC_IVAC_Xt
;
2204 return MISCREG_DC_ISW_Xt
;
2210 return MISCREG_AT_S1E1R_Xt
;
2212 return MISCREG_AT_S1E1W_Xt
;
2214 return MISCREG_AT_S1E0R_Xt
;
2216 return MISCREG_AT_S1E0W_Xt
;
2222 return MISCREG_DC_CSW_Xt
;
2228 return MISCREG_DC_CISW_Xt
;
2238 return MISCREG_DC_ZVA_Xt
;
2244 return MISCREG_IC_IVAU_Xt
;
2250 return MISCREG_DC_CVAC_Xt
;
2256 return MISCREG_DC_CVAU_Xt
;
2262 return MISCREG_DC_CIVAC_Xt
;
2272 return MISCREG_AT_S1E2R_Xt
;
2274 return MISCREG_AT_S1E2W_Xt
;
2276 return MISCREG_AT_S12E1R_Xt
;
2278 return MISCREG_AT_S12E1W_Xt
;
2280 return MISCREG_AT_S12E0R_Xt
;
2282 return MISCREG_AT_S12E0W_Xt
;
2292 return MISCREG_AT_S1E3R_Xt
;
2294 return MISCREG_AT_S1E3W_Xt
;
2308 return MISCREG_TLBI_VMALLE1IS
;
2310 return MISCREG_TLBI_VAE1IS_Xt
;
2312 return MISCREG_TLBI_ASIDE1IS_Xt
;
2314 return MISCREG_TLBI_VAAE1IS_Xt
;
2316 return MISCREG_TLBI_VALE1IS_Xt
;
2318 return MISCREG_TLBI_VAALE1IS_Xt
;
2324 return MISCREG_TLBI_VMALLE1
;
2326 return MISCREG_TLBI_VAE1_Xt
;
2328 return MISCREG_TLBI_ASIDE1_Xt
;
2330 return MISCREG_TLBI_VAAE1_Xt
;
2332 return MISCREG_TLBI_VALE1_Xt
;
2334 return MISCREG_TLBI_VAALE1_Xt
;
2344 return MISCREG_TLBI_IPAS2E1IS_Xt
;
2346 return MISCREG_TLBI_IPAS2LE1IS_Xt
;
2352 return MISCREG_TLBI_ALLE2IS
;
2354 return MISCREG_TLBI_VAE2IS_Xt
;
2356 return MISCREG_TLBI_ALLE1IS
;
2358 return MISCREG_TLBI_VALE2IS_Xt
;
2360 return MISCREG_TLBI_VMALLS12E1IS
;
2366 return MISCREG_TLBI_IPAS2E1_Xt
;
2368 return MISCREG_TLBI_IPAS2LE1_Xt
;
2374 return MISCREG_TLBI_ALLE2
;
2376 return MISCREG_TLBI_VAE2_Xt
;
2378 return MISCREG_TLBI_ALLE1
;
2380 return MISCREG_TLBI_VALE2_Xt
;
2382 return MISCREG_TLBI_VMALLS12E1
;
2392 return MISCREG_TLBI_ALLE3IS
;
2394 return MISCREG_TLBI_VAE3IS_Xt
;
2396 return MISCREG_TLBI_VALE3IS_Xt
;
2402 return MISCREG_TLBI_ALLE3
;
2404 return MISCREG_TLBI_VAE3_Xt
;
2406 return MISCREG_TLBI_VALE3_Xt
;
2424 return MISCREG_OSDTRRX_EL1
;
2426 return MISCREG_DBGBVR0_EL1
;
2428 return MISCREG_DBGBCR0_EL1
;
2430 return MISCREG_DBGWVR0_EL1
;
2432 return MISCREG_DBGWCR0_EL1
;
2438 return MISCREG_DBGBVR1_EL1
;
2440 return MISCREG_DBGBCR1_EL1
;
2442 return MISCREG_DBGWVR1_EL1
;
2444 return MISCREG_DBGWCR1_EL1
;
2450 return MISCREG_MDCCINT_EL1
;
2452 return MISCREG_MDSCR_EL1
;
2454 return MISCREG_DBGBVR2_EL1
;
2456 return MISCREG_DBGBCR2_EL1
;
2458 return MISCREG_DBGWVR2_EL1
;
2460 return MISCREG_DBGWCR2_EL1
;
2466 return MISCREG_OSDTRTX_EL1
;
2468 return MISCREG_DBGBVR3_EL1
;
2470 return MISCREG_DBGBCR3_EL1
;
2472 return MISCREG_DBGWVR3_EL1
;
2474 return MISCREG_DBGWCR3_EL1
;
2480 return MISCREG_DBGBVR4_EL1
;
2482 return MISCREG_DBGBCR4_EL1
;
2488 return MISCREG_DBGBVR5_EL1
;
2490 return MISCREG_DBGBCR5_EL1
;
2496 return MISCREG_OSECCR_EL1
;
2506 return MISCREG_TEECR32_EL1
;
2516 return MISCREG_MDCCSR_EL0
;
2522 return MISCREG_MDDTR_EL0
;
2528 return MISCREG_MDDTRRX_EL0
;
2538 return MISCREG_DBGVCR32_EL2
;
2552 return MISCREG_MDRAR_EL1
;
2554 return MISCREG_OSLAR_EL1
;
2560 return MISCREG_OSLSR_EL1
;
2566 return MISCREG_OSDLR_EL1
;
2572 return MISCREG_DBGPRCR_EL1
;
2582 return MISCREG_TEEHBR32_EL1
;
2596 return MISCREG_DBGCLAIMSET_EL1
;
2602 return MISCREG_DBGCLAIMCLR_EL1
;
2608 return MISCREG_DBGAUTHSTATUS_EL1
;
2626 return MISCREG_MIDR_EL1
;
2628 return MISCREG_MPIDR_EL1
;
2630 return MISCREG_REVIDR_EL1
;
2636 return MISCREG_ID_PFR0_EL1
;
2638 return MISCREG_ID_PFR1_EL1
;
2640 return MISCREG_ID_DFR0_EL1
;
2642 return MISCREG_ID_AFR0_EL1
;
2644 return MISCREG_ID_MMFR0_EL1
;
2646 return MISCREG_ID_MMFR1_EL1
;
2648 return MISCREG_ID_MMFR2_EL1
;
2650 return MISCREG_ID_MMFR3_EL1
;
2656 return MISCREG_ID_ISAR0_EL1
;
2658 return MISCREG_ID_ISAR1_EL1
;
2660 return MISCREG_ID_ISAR2_EL1
;
2662 return MISCREG_ID_ISAR3_EL1
;
2664 return MISCREG_ID_ISAR4_EL1
;
2666 return MISCREG_ID_ISAR5_EL1
;
2672 return MISCREG_MVFR0_EL1
;
2674 return MISCREG_MVFR1_EL1
;
2676 return MISCREG_MVFR2_EL1
;
2684 return MISCREG_ID_AA64PFR0_EL1
;
2686 return MISCREG_ID_AA64PFR1_EL1
;
2694 return MISCREG_ID_AA64DFR0_EL1
;
2696 return MISCREG_ID_AA64DFR1_EL1
;
2698 return MISCREG_ID_AA64AFR0_EL1
;
2700 return MISCREG_ID_AA64AFR1_EL1
;
2711 return MISCREG_ID_AA64ISAR0_EL1
;
2713 return MISCREG_ID_AA64ISAR1_EL1
;
2721 return MISCREG_ID_AA64MMFR0_EL1
;
2723 return MISCREG_ID_AA64MMFR1_EL1
;
2735 return MISCREG_CCSIDR_EL1
;
2737 return MISCREG_CLIDR_EL1
;
2739 return MISCREG_AIDR_EL1
;
2749 return MISCREG_CSSELR_EL1
;
2759 return MISCREG_CTR_EL0
;
2761 return MISCREG_DCZID_EL0
;
2771 return MISCREG_VPIDR_EL2
;
2773 return MISCREG_VMPIDR_EL2
;
2787 return MISCREG_SCTLR_EL1
;
2789 return MISCREG_ACTLR_EL1
;
2791 return MISCREG_CPACR_EL1
;
2801 return MISCREG_SCTLR_EL2
;
2803 return MISCREG_ACTLR_EL2
;
2809 return MISCREG_HCR_EL2
;
2811 return MISCREG_MDCR_EL2
;
2813 return MISCREG_CPTR_EL2
;
2815 return MISCREG_HSTR_EL2
;
2817 return MISCREG_HACR_EL2
;
2827 return MISCREG_SCTLR_EL3
;
2829 return MISCREG_ACTLR_EL3
;
2835 return MISCREG_SCR_EL3
;
2837 return MISCREG_SDER32_EL3
;
2839 return MISCREG_CPTR_EL3
;
2845 return MISCREG_MDCR_EL3
;
2859 return MISCREG_TTBR0_EL1
;
2861 return MISCREG_TTBR1_EL1
;
2863 return MISCREG_TCR_EL1
;
2873 return MISCREG_TTBR0_EL2
;
2875 return MISCREG_TCR_EL2
;
2881 return MISCREG_VTTBR_EL2
;
2883 return MISCREG_VTCR_EL2
;
2893 return MISCREG_TTBR0_EL3
;
2895 return MISCREG_TCR_EL3
;
2909 return MISCREG_DACR32_EL2
;
2923 return MISCREG_SPSR_EL1
;
2925 return MISCREG_ELR_EL1
;
2931 return MISCREG_SP_EL0
;
2937 return MISCREG_SPSEL
;
2939 return MISCREG_CURRENTEL
;
2949 return MISCREG_NZCV
;
2951 return MISCREG_DAIF
;
2957 return MISCREG_FPCR
;
2959 return MISCREG_FPSR
;
2965 return MISCREG_DSPSR_EL0
;
2967 return MISCREG_DLR_EL0
;
2977 return MISCREG_SPSR_EL2
;
2979 return MISCREG_ELR_EL2
;
2985 return MISCREG_SP_EL1
;
2991 return MISCREG_SPSR_IRQ_AA64
;
2993 return MISCREG_SPSR_ABT_AA64
;
2995 return MISCREG_SPSR_UND_AA64
;
2997 return MISCREG_SPSR_FIQ_AA64
;
3007 return MISCREG_SPSR_EL3
;
3009 return MISCREG_ELR_EL3
;
3015 return MISCREG_SP_EL2
;
3029 return MISCREG_AFSR0_EL1
;
3031 return MISCREG_AFSR1_EL1
;
3037 return MISCREG_ESR_EL1
;
3047 return MISCREG_IFSR32_EL2
;
3053 return MISCREG_AFSR0_EL2
;
3055 return MISCREG_AFSR1_EL2
;
3061 return MISCREG_ESR_EL2
;
3067 return MISCREG_FPEXC32_EL2
;
3077 return MISCREG_AFSR0_EL3
;
3079 return MISCREG_AFSR1_EL3
;
3085 return MISCREG_ESR_EL3
;
3099 return MISCREG_FAR_EL1
;
3109 return MISCREG_FAR_EL2
;
3111 return MISCREG_HPFAR_EL2
;
3121 return MISCREG_FAR_EL3
;
3135 return MISCREG_PAR_EL1
;
3149 return MISCREG_PMINTENSET_EL1
;
3151 return MISCREG_PMINTENCLR_EL1
;
3161 return MISCREG_PMCR_EL0
;
3163 return MISCREG_PMCNTENSET_EL0
;
3165 return MISCREG_PMCNTENCLR_EL0
;
3167 return MISCREG_PMOVSCLR_EL0
;
3169 return MISCREG_PMSWINC_EL0
;
3171 return MISCREG_PMSELR_EL0
;
3173 return MISCREG_PMCEID0_EL0
;
3175 return MISCREG_PMCEID1_EL0
;
3181 return MISCREG_PMCCNTR_EL0
;
3183 return MISCREG_PMXEVTYPER_EL0
;
3185 return MISCREG_PMXEVCNTR_EL0
;
3191 return MISCREG_PMUSERENR_EL0
;
3193 return MISCREG_PMOVSSET_EL0
;
3207 return MISCREG_MAIR_EL1
;
3213 return MISCREG_AMAIR_EL1
;
3223 return MISCREG_MAIR_EL2
;
3229 return MISCREG_AMAIR_EL2
;
3239 return MISCREG_MAIR_EL3
;
3245 return MISCREG_AMAIR_EL3
;
3259 return MISCREG_L2CTLR_EL1
;
3261 return MISCREG_L2ECTLR_EL1
;
3275 return MISCREG_VBAR_EL1
;
3277 return MISCREG_RVBAR_EL1
;
3283 return MISCREG_ISR_EL1
;
3293 return MISCREG_VBAR_EL2
;
3295 return MISCREG_RVBAR_EL2
;
3305 return MISCREG_VBAR_EL3
;
3307 return MISCREG_RVBAR_EL3
;
3309 return MISCREG_RMR_EL3
;
3323 return MISCREG_CONTEXTIDR_EL1
;
3325 return MISCREG_TPIDR_EL1
;
3335 return MISCREG_TPIDR_EL0
;
3337 return MISCREG_TPIDRRO_EL0
;
3347 return MISCREG_TPIDR_EL2
;
3357 return MISCREG_TPIDR_EL3
;
3371 return MISCREG_CNTKCTL_EL1
;
3381 return MISCREG_CNTFRQ_EL0
;
3383 return MISCREG_CNTPCT_EL0
;
3385 return MISCREG_CNTVCT_EL0
;
3391 return MISCREG_CNTP_TVAL_EL0
;
3393 return MISCREG_CNTP_CTL_EL0
;
3395 return MISCREG_CNTP_CVAL_EL0
;
3401 return MISCREG_CNTV_TVAL_EL0
;
3403 return MISCREG_CNTV_CTL_EL0
;
3405 return MISCREG_CNTV_CVAL_EL0
;
3411 return MISCREG_PMEVCNTR0_EL0
;
3413 return MISCREG_PMEVCNTR1_EL0
;
3415 return MISCREG_PMEVCNTR2_EL0
;
3417 return MISCREG_PMEVCNTR3_EL0
;
3419 return MISCREG_PMEVCNTR4_EL0
;
3421 return MISCREG_PMEVCNTR5_EL0
;
3427 return MISCREG_PMEVTYPER0_EL0
;
3429 return MISCREG_PMEVTYPER1_EL0
;
3431 return MISCREG_PMEVTYPER2_EL0
;
3433 return MISCREG_PMEVTYPER3_EL0
;
3435 return MISCREG_PMEVTYPER4_EL0
;
3437 return MISCREG_PMEVTYPER5_EL0
;
3443 return MISCREG_PMCCFILTR_EL0
;
3452 return MISCREG_CNTVOFF_EL2
;
3458 return MISCREG_CNTHCTL_EL2
;
3464 return MISCREG_CNTHP_TVAL_EL2
;
3466 return MISCREG_CNTHP_CTL_EL2
;
3468 return MISCREG_CNTHP_CVAL_EL2
;
3478 return MISCREG_CNTPS_TVAL_EL1
;
3480 return MISCREG_CNTPS_CTL_EL1
;
3482 return MISCREG_CNTPS_CVAL_EL1
;
3496 return MISCREG_IL1DATA0_EL1
;
3498 return MISCREG_IL1DATA1_EL1
;
3500 return MISCREG_IL1DATA2_EL1
;
3502 return MISCREG_IL1DATA3_EL1
;
3508 return MISCREG_DL1DATA0_EL1
;
3510 return MISCREG_DL1DATA1_EL1
;
3512 return MISCREG_DL1DATA2_EL1
;
3514 return MISCREG_DL1DATA3_EL1
;
3516 return MISCREG_DL1DATA4_EL1
;
3526 return MISCREG_L2ACTLR_EL1
;
3532 return MISCREG_CPUACTLR_EL1
;
3534 return MISCREG_CPUECTLR_EL1
;
3536 return MISCREG_CPUMERRSR_EL1
;
3538 return MISCREG_L2MERRSR_EL1
;
3544 return MISCREG_CBAR_EL1
;
3556 return MISCREG_UNKNOWN
;
3559 } // namespace ArmISA