2 * Copyright (c) 2010-2013, 2015-2017 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/miscregs.hh"
46 #include "arch/arm/isa.hh"
47 #include "base/logging.hh"
48 #include "cpu/thread_context.hh"
49 #include "sim/full_system.hh"
55 decodeCP14Reg(unsigned crn
, unsigned opc1
, unsigned crm
, unsigned opc2
)
65 return MISCREG_DBGDIDR
;
67 return MISCREG_DBGDSCRint
;
91 return MISCREG_TEEHBR
;
101 return MISCREG_JOSCR
;
123 // If we get here then it must be a register that we haven't implemented
124 warn("CP14 unimplemented crn[%d], opc1[%d], crm[%d], opc2[%d]",
125 crn
, opc1
, crm
, opc2
);
126 return MISCREG_CP14_UNIMPL
;
131 bitset
<NUM_MISCREG_INFOS
> miscRegInfo
[NUM_MISCREGS
] = {
133 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
135 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
137 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
139 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
141 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
143 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
145 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
147 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
149 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
151 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
153 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
155 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
157 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
159 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
161 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
165 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
167 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
169 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
171 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
173 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
175 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
176 // MISCREG_PRRR_MAIR0
177 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000011001")),
178 // MISCREG_PRRR_MAIR0_NS
179 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
180 // MISCREG_PRRR_MAIR0_S
181 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
182 // MISCREG_NMRR_MAIR1
183 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000011001")),
184 // MISCREG_NMRR_MAIR1_NS
185 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
186 // MISCREG_NMRR_MAIR1_S
187 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000101001")),
188 // MISCREG_PMXEVTYPER_PMCCFILTR
189 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000001001")),
191 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
192 // MISCREG_SEV_MAILBOX
193 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
195 // AArch32 CP14 registers
197 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
198 // MISCREG_DBGDSCRint
199 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
201 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
202 // MISCREG_DBGDTRTXint
203 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
204 // MISCREG_DBGDTRRXint
205 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
207 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
209 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
210 // MISCREG_DBGDTRRXext
211 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
212 // MISCREG_DBGDSCRext
213 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000100")),
214 // MISCREG_DBGDTRTXext
215 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
217 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
219 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
221 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
223 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
225 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
227 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
229 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
231 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
233 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
235 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
237 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
239 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
241 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
243 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
245 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
247 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
249 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
251 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
253 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
255 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
257 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
259 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
261 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
263 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
265 bitset
<NUM_MISCREG_INFOS
>(string("10101111111111000000")),
267 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
269 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
271 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
273 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
274 // MISCREG_DBGCLAIMSET
275 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
276 // MISCREG_DBGCLAIMCLR
277 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
278 // MISCREG_DBGAUTHSTATUS
279 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
281 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
283 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
285 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000000")),
287 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
289 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
291 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
293 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
295 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
297 // AArch32 CP15 registers
299 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
301 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
303 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
305 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
307 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
309 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000100")),
311 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
313 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
315 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
317 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
319 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
321 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
323 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
325 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
327 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
329 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
331 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
333 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
335 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
337 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
339 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
341 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
343 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
345 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
347 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
349 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
351 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
353 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
355 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
357 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
359 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
361 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
363 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
365 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
367 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
369 bitset
<NUM_MISCREG_INFOS
>(string("11110011000000000001")),
371 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
373 bitset
<NUM_MISCREG_INFOS
>(string("11110111010000000001")),
375 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
377 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
379 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
381 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
383 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
385 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
387 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000100")),
389 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
391 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
393 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
395 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
397 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
399 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
401 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
403 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
405 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
407 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
409 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
411 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
413 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
415 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
417 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
419 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
421 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
423 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
425 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
427 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
429 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010100")),
431 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100100")),
433 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100100")),
435 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010100")),
437 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100100")),
439 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100100")),
441 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
443 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
445 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
447 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
449 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
451 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
453 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
455 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
457 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
459 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
461 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
463 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
465 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
467 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
469 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
471 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
473 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
475 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
477 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
479 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
481 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
483 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
485 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
487 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
489 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
491 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
493 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
495 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
496 // MISCREG_ATS12NSOPR
497 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
498 // MISCREG_ATS12NSOPW
499 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
500 // MISCREG_ATS12NSOUR
501 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
502 // MISCREG_ATS12NSOUW
503 bitset
<NUM_MISCREG_INFOS
>(string("10101010000000000001")),
505 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
507 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
509 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
511 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
513 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
515 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
517 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000100")),
519 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
521 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
523 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
525 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
526 // MISCREG_TLBIASIDIS
527 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
528 // MISCREG_TLBIMVAAIS
529 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
530 // MISCREG_TLBIMVALIS
531 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
532 // MISCREG_TLBIMVAALIS
533 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
535 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
537 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
539 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
541 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
543 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
545 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
547 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
549 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
551 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
553 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
555 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
557 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
558 // MISCREG_TLBIIPAS2IS
559 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
560 // MISCREG_TLBIIPAS2LIS
561 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
562 // MISCREG_TLBIALLHIS
563 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
564 // MISCREG_TLBIMVAHIS
565 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
566 // MISCREG_TLBIALLNSNHIS
567 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
568 // MISCREG_TLBIMVALHIS
569 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
571 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
572 // MISCREG_TLBIIPAS2L
573 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
575 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
577 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
578 // MISCREG_TLBIALLNSNH
579 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
581 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000000")),
583 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
584 // MISCREG_PMCNTENSET
585 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
586 // MISCREG_PMCNTENCLR
587 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
589 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
591 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
593 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
595 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
597 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
599 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
600 // MISCREG_PMXEVTYPER
601 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
603 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
605 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
607 bitset
<NUM_MISCREG_INFOS
>(string("11111111110101000001")),
608 // MISCREG_PMINTENSET
609 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
610 // MISCREG_PMINTENCLR
611 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
613 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000000")),
615 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
617 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
619 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
621 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
623 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
625 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
627 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
629 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
631 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
633 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
635 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
637 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
639 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
641 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
643 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
645 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
647 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
649 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
651 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
653 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
655 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
657 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
659 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000100")),
661 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000100")),
663 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
665 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
667 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
669 bitset
<NUM_MISCREG_INFOS
>(string("11110011000000000001")),
671 bitset
<NUM_MISCREG_INFOS
>(string("11110011000000000000")),
673 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
675 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
677 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000100")),
678 // MISCREG_CONTEXTIDR
679 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
680 // MISCREG_CONTEXTIDR_NS
681 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
682 // MISCREG_CONTEXTIDR_S
683 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
685 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
686 // MISCREG_TPIDRURW_NS
687 bitset
<NUM_MISCREG_INFOS
>(string("11001111111111100001")),
688 // MISCREG_TPIDRURW_S
689 bitset
<NUM_MISCREG_INFOS
>(string("00110011001100100001")),
691 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
692 // MISCREG_TPIDRURO_NS
693 bitset
<NUM_MISCREG_INFOS
>(string("11001111110101100001")),
694 // MISCREG_TPIDRURO_S
695 bitset
<NUM_MISCREG_INFOS
>(string("00110011000100100001")),
697 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
698 // MISCREG_TPIDRPRW_NS
699 bitset
<NUM_MISCREG_INFOS
>(string("11001111110000100001")),
700 // MISCREG_TPIDRPRW_S
701 bitset
<NUM_MISCREG_INFOS
>(string("00110011000000100001")),
703 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
705 bitset
<NUM_MISCREG_INFOS
>(string("11110101010101000011")),
707 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
709 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
710 // MISCREG_CNTP_TVAL_NS
711 bitset
<NUM_MISCREG_INFOS
>(string("11001111111111100001")),
712 // MISCREG_CNTP_TVAL_S
713 bitset
<NUM_MISCREG_INFOS
>(string("00110011001111100000")),
715 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
716 // MISCREG_CNTP_CTL_NS
717 bitset
<NUM_MISCREG_INFOS
>(string("11001111111111100001")),
718 // MISCREG_CNTP_CTL_S
719 bitset
<NUM_MISCREG_INFOS
>(string("00110011001111100000")),
721 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
723 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
725 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
726 // MISCREG_CNTHP_TVAL
727 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
729 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
731 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
733 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
735 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
737 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
739 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
741 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
743 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
745 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
747 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
749 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000000")),
751 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
753 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000000")),
755 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
757 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
759 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
761 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000011")),
763 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000010001")),
764 // MISCREG_CNTP_CVAL_NS
765 bitset
<NUM_MISCREG_INFOS
>(string("11001111111111100001")),
766 // MISCREG_CNTP_CVAL_S
767 bitset
<NUM_MISCREG_INFOS
>(string("00110011001111100000")),
769 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
771 bitset
<NUM_MISCREG_INFOS
>(string("11001100000000000001")),
772 // MISCREG_CNTHP_CVAL
773 bitset
<NUM_MISCREG_INFOS
>(string("01001000000000000000")),
775 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000000")),
777 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000100")),
779 // AArch64 registers (Op0=2)
780 // MISCREG_MDCCINT_EL1
781 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
782 // MISCREG_OSDTRRX_EL1
783 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
785 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
786 // MISCREG_OSDTRTX_EL1
787 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
788 // MISCREG_OSECCR_EL1
789 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
790 // MISCREG_DBGBVR0_EL1
791 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
792 // MISCREG_DBGBVR1_EL1
793 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
794 // MISCREG_DBGBVR2_EL1
795 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
796 // MISCREG_DBGBVR3_EL1
797 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
798 // MISCREG_DBGBVR4_EL1
799 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
800 // MISCREG_DBGBVR5_EL1
801 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
802 // MISCREG_DBGBCR0_EL1
803 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
804 // MISCREG_DBGBCR1_EL1
805 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
806 // MISCREG_DBGBCR2_EL1
807 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
808 // MISCREG_DBGBCR3_EL1
809 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
810 // MISCREG_DBGBCR4_EL1
811 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
812 // MISCREG_DBGBCR5_EL1
813 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
814 // MISCREG_DBGWVR0_EL1
815 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
816 // MISCREG_DBGWVR1_EL1
817 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
818 // MISCREG_DBGWVR2_EL1
819 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
820 // MISCREG_DBGWVR3_EL1
821 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
822 // MISCREG_DBGWCR0_EL1
823 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
824 // MISCREG_DBGWCR1_EL1
825 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
826 // MISCREG_DBGWCR2_EL1
827 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
828 // MISCREG_DBGWCR3_EL1
829 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
830 // MISCREG_MDCCSR_EL0
831 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
833 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
834 // MISCREG_MDDTRTX_EL0
835 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
836 // MISCREG_MDDTRRX_EL0
837 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
838 // MISCREG_DBGVCR32_EL2
839 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
841 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
843 bitset
<NUM_MISCREG_INFOS
>(string("10101111111111000001")),
845 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
847 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
848 // MISCREG_DBGPRCR_EL1
849 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
850 // MISCREG_DBGCLAIMSET_EL1
851 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
852 // MISCREG_DBGCLAIMCLR_EL1
853 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
854 // MISCREG_DBGAUTHSTATUS_EL1
855 bitset
<NUM_MISCREG_INFOS
>(string("01011111111111000001")),
856 // MISCREG_TEECR32_EL1
857 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000001")),
858 // MISCREG_TEEHBR32_EL1
859 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000001")),
861 // AArch64 registers (Op0=1,3)
863 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
865 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
866 // MISCREG_REVIDR_EL1
867 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
868 // MISCREG_ID_PFR0_EL1
869 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
870 // MISCREG_ID_PFR1_EL1
871 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
872 // MISCREG_ID_DFR0_EL1
873 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
874 // MISCREG_ID_AFR0_EL1
875 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
876 // MISCREG_ID_MMFR0_EL1
877 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
878 // MISCREG_ID_MMFR1_EL1
879 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
880 // MISCREG_ID_MMFR2_EL1
881 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
882 // MISCREG_ID_MMFR3_EL1
883 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
884 // MISCREG_ID_ISAR0_EL1
885 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
886 // MISCREG_ID_ISAR1_EL1
887 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
888 // MISCREG_ID_ISAR2_EL1
889 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
890 // MISCREG_ID_ISAR3_EL1
891 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
892 // MISCREG_ID_ISAR4_EL1
893 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
894 // MISCREG_ID_ISAR5_EL1
895 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
897 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
899 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
901 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
902 // MISCREG_ID_AA64PFR0_EL1
903 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
904 // MISCREG_ID_AA64PFR1_EL1
905 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
906 // MISCREG_ID_AA64DFR0_EL1
907 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
908 // MISCREG_ID_AA64DFR1_EL1
909 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
910 // MISCREG_ID_AA64AFR0_EL1
911 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
912 // MISCREG_ID_AA64AFR1_EL1
913 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
914 // MISCREG_ID_AA64ISAR0_EL1
915 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
916 // MISCREG_ID_AA64ISAR1_EL1
917 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
918 // MISCREG_ID_AA64MMFR0_EL1
919 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
920 // MISCREG_ID_AA64MMFR1_EL1
921 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
922 // MISCREG_CCSIDR_EL1
923 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
925 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
927 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
928 // MISCREG_CSSELR_EL1
929 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
931 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
933 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
935 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
936 // MISCREG_VMPIDR_EL2
937 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
939 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
941 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
943 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
945 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
947 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
949 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
951 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
953 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
955 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
957 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
959 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
961 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
963 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
964 // MISCREG_SDER32_EL3
965 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
967 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
969 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
971 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
973 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
975 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
977 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
979 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
981 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
983 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
985 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
987 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
988 // MISCREG_DACR32_EL2
989 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
991 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
993 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
995 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
997 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
999 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1001 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1003 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1005 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1007 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1008 // MISCREG_DSPSR_EL0
1009 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1011 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1013 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1015 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1017 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1018 // MISCREG_SPSR_IRQ_AA64
1019 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1020 // MISCREG_SPSR_ABT_AA64
1021 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1022 // MISCREG_SPSR_UND_AA64
1023 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1024 // MISCREG_SPSR_FIQ_AA64
1025 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1027 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1029 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1031 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1032 // MISCREG_AFSR0_EL1
1033 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1034 // MISCREG_AFSR1_EL1
1035 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1037 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1038 // MISCREG_IFSR32_EL2
1039 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1040 // MISCREG_AFSR0_EL2
1041 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1042 // MISCREG_AFSR1_EL2
1043 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1045 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1046 // MISCREG_FPEXC32_EL2
1047 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1048 // MISCREG_AFSR0_EL3
1049 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1050 // MISCREG_AFSR1_EL3
1051 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1053 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1055 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1057 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1058 // MISCREG_HPFAR_EL2
1059 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1061 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1062 // MISCREG_IC_IALLUIS
1063 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1065 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1067 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1068 // MISCREG_DC_IVAC_Xt
1069 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000101")),
1070 // MISCREG_DC_ISW_Xt
1071 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1072 // MISCREG_AT_S1E1R_Xt
1073 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1074 // MISCREG_AT_S1E1W_Xt
1075 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1076 // MISCREG_AT_S1E0R_Xt
1077 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1078 // MISCREG_AT_S1E0W_Xt
1079 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1080 // MISCREG_DC_CSW_Xt
1081 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1082 // MISCREG_DC_CISW_Xt
1083 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000101")),
1084 // MISCREG_DC_ZVA_Xt
1085 bitset
<NUM_MISCREG_INFOS
>(string("10101010100010000101")),
1086 // MISCREG_IC_IVAU_Xt
1087 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000001")),
1088 // MISCREG_DC_CVAC_Xt
1089 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000101")),
1090 // MISCREG_DC_CVAU_Xt
1091 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000101")),
1092 // MISCREG_DC_CIVAC_Xt
1093 bitset
<NUM_MISCREG_INFOS
>(string("10101010101010000101")),
1094 // MISCREG_AT_S1E2R_Xt
1095 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1096 // MISCREG_AT_S1E2W_Xt
1097 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1098 // MISCREG_AT_S12E1R_Xt
1099 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1100 // MISCREG_AT_S12E1W_Xt
1101 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1102 // MISCREG_AT_S12E0R_Xt
1103 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1104 // MISCREG_AT_S12E0W_Xt
1105 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1106 // MISCREG_AT_S1E3R_Xt
1107 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1108 // MISCREG_AT_S1E3W_Xt
1109 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1110 // MISCREG_TLBI_VMALLE1IS
1111 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1112 // MISCREG_TLBI_VAE1IS_Xt
1113 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1114 // MISCREG_TLBI_ASIDE1IS_Xt
1115 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1116 // MISCREG_TLBI_VAAE1IS_Xt
1117 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1118 // MISCREG_TLBI_VALE1IS_Xt
1119 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1120 // MISCREG_TLBI_VAALE1IS_Xt
1121 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1122 // MISCREG_TLBI_VMALLE1
1123 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1124 // MISCREG_TLBI_VAE1_Xt
1125 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1126 // MISCREG_TLBI_ASIDE1_Xt
1127 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1128 // MISCREG_TLBI_VAAE1_Xt
1129 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1130 // MISCREG_TLBI_VALE1_Xt
1131 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1132 // MISCREG_TLBI_VAALE1_Xt
1133 bitset
<NUM_MISCREG_INFOS
>(string("10101010100000000001")),
1134 // MISCREG_TLBI_IPAS2E1IS_Xt
1135 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1136 // MISCREG_TLBI_IPAS2LE1IS_Xt
1137 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1138 // MISCREG_TLBI_ALLE2IS
1139 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1140 // MISCREG_TLBI_VAE2IS_Xt
1141 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1142 // MISCREG_TLBI_ALLE1IS
1143 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1144 // MISCREG_TLBI_VALE2IS_Xt
1145 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1146 // MISCREG_TLBI_VMALLS12E1IS
1147 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1148 // MISCREG_TLBI_IPAS2E1_Xt
1149 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1150 // MISCREG_TLBI_IPAS2LE1_Xt
1151 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1152 // MISCREG_TLBI_ALLE2
1153 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1154 // MISCREG_TLBI_VAE2_Xt
1155 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1156 // MISCREG_TLBI_ALLE1
1157 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1158 // MISCREG_TLBI_VALE2_Xt
1159 bitset
<NUM_MISCREG_INFOS
>(string("10001000000000000001")),
1160 // MISCREG_TLBI_VMALLS12E1
1161 bitset
<NUM_MISCREG_INFOS
>(string("10101000000000000001")),
1162 // MISCREG_TLBI_ALLE3IS
1163 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1164 // MISCREG_TLBI_VAE3IS_Xt
1165 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1166 // MISCREG_TLBI_VALE3IS_Xt
1167 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1168 // MISCREG_TLBI_ALLE3
1169 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1170 // MISCREG_TLBI_VAE3_Xt
1171 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1172 // MISCREG_TLBI_VALE3_Xt
1173 bitset
<NUM_MISCREG_INFOS
>(string("10100000000000000001")),
1174 // MISCREG_PMINTENSET_EL1
1175 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1176 // MISCREG_PMINTENCLR_EL1
1177 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1179 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1180 // MISCREG_PMCNTENSET_EL0
1181 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1182 // MISCREG_PMCNTENCLR_EL0
1183 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1184 // MISCREG_PMOVSCLR_EL0
1185 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1186 // MISCREG_PMSWINC_EL0
1187 bitset
<NUM_MISCREG_INFOS
>(string("10101010101111000001")),
1188 // MISCREG_PMSELR_EL0
1189 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1190 // MISCREG_PMCEID0_EL0
1191 bitset
<NUM_MISCREG_INFOS
>(string("01010101011111000001")),
1192 // MISCREG_PMCEID1_EL0
1193 bitset
<NUM_MISCREG_INFOS
>(string("01010101011111000001")),
1194 // MISCREG_PMCCNTR_EL0
1195 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1196 // MISCREG_PMXEVTYPER_EL0
1197 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1198 // MISCREG_PMCCFILTR_EL0
1199 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1200 // MISCREG_PMXEVCNTR_EL0
1201 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1202 // MISCREG_PMUSERENR_EL0
1203 bitset
<NUM_MISCREG_INFOS
>(string("11111111110101000001")),
1204 // MISCREG_PMOVSSET_EL0
1205 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1207 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1208 // MISCREG_AMAIR_EL1
1209 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1211 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1212 // MISCREG_AMAIR_EL2
1213 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1215 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1216 // MISCREG_AMAIR_EL3
1217 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1218 // MISCREG_L2CTLR_EL1
1219 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1220 // MISCREG_L2ECTLR_EL1
1221 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1223 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1224 // MISCREG_RVBAR_EL1
1225 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1227 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1229 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1230 // MISCREG_RVBAR_EL2
1231 bitset
<NUM_MISCREG_INFOS
>(string("01010100000000000001")),
1233 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1234 // MISCREG_RVBAR_EL3
1235 bitset
<NUM_MISCREG_INFOS
>(string("01010000000000000001")),
1237 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1238 // MISCREG_CONTEXTIDR_EL1
1239 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1240 // MISCREG_TPIDR_EL1
1241 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1242 // MISCREG_TPIDR_EL0
1243 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1244 // MISCREG_TPIDRRO_EL0
1245 bitset
<NUM_MISCREG_INFOS
>(string("11111111110101000001")),
1246 // MISCREG_TPIDR_EL2
1247 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1248 // MISCREG_TPIDR_EL3
1249 bitset
<NUM_MISCREG_INFOS
>(string("11110000000000000001")),
1250 // MISCREG_CNTKCTL_EL1
1251 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1252 // MISCREG_CNTFRQ_EL0
1253 bitset
<NUM_MISCREG_INFOS
>(string("11110101010101000001")),
1254 // MISCREG_CNTPCT_EL0
1255 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000001")),
1256 // MISCREG_CNTVCT_EL0
1257 bitset
<NUM_MISCREG_INFOS
>(string("01010101010101000011")),
1258 // MISCREG_CNTP_TVAL_EL0
1259 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1260 // MISCREG_CNTP_CTL_EL0
1261 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1262 // MISCREG_CNTP_CVAL_EL0
1263 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1264 // MISCREG_CNTV_TVAL_EL0
1265 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1266 // MISCREG_CNTV_CTL_EL0
1267 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1268 // MISCREG_CNTV_CVAL_EL0
1269 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1270 // MISCREG_PMEVCNTR0_EL0
1271 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1272 // MISCREG_PMEVCNTR1_EL0
1273 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1274 // MISCREG_PMEVCNTR2_EL0
1275 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1276 // MISCREG_PMEVCNTR3_EL0
1277 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1278 // MISCREG_PMEVCNTR4_EL0
1279 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1280 // MISCREG_PMEVCNTR5_EL0
1281 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1282 // MISCREG_PMEVTYPER0_EL0
1283 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1284 // MISCREG_PMEVTYPER1_EL0
1285 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1286 // MISCREG_PMEVTYPER2_EL0
1287 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1288 // MISCREG_PMEVTYPER3_EL0
1289 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1290 // MISCREG_PMEVTYPER4_EL0
1291 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1292 // MISCREG_PMEVTYPER5_EL0
1293 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1294 // MISCREG_CNTVOFF_EL2
1295 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1296 // MISCREG_CNTHCTL_EL2
1297 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000100")),
1298 // MISCREG_CNTHP_TVAL_EL2
1299 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1300 // MISCREG_CNTHP_CTL_EL2
1301 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1302 // MISCREG_CNTHP_CVAL_EL2
1303 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1304 // MISCREG_CNTPS_TVAL_EL1
1305 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1306 // MISCREG_CNTPS_CTL_EL1
1307 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1308 // MISCREG_CNTPS_CVAL_EL1
1309 bitset
<NUM_MISCREG_INFOS
>(string("01111000000000000000")),
1310 // MISCREG_IL1DATA0_EL1
1311 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1312 // MISCREG_IL1DATA1_EL1
1313 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1314 // MISCREG_IL1DATA2_EL1
1315 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1316 // MISCREG_IL1DATA3_EL1
1317 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1318 // MISCREG_DL1DATA0_EL1
1319 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1320 // MISCREG_DL1DATA1_EL1
1321 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1322 // MISCREG_DL1DATA2_EL1
1323 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1324 // MISCREG_DL1DATA3_EL1
1325 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1326 // MISCREG_DL1DATA4_EL1
1327 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1328 // MISCREG_L2ACTLR_EL1
1329 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1330 // MISCREG_CPUACTLR_EL1
1331 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1332 // MISCREG_CPUECTLR_EL1
1333 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1334 // MISCREG_CPUMERRSR_EL1
1335 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000001")),
1336 // MISCREG_L2MERRSR_EL1
1337 bitset
<NUM_MISCREG_INFOS
>(string("11111111110000000100")),
1339 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1340 // MISCREG_CONTEXTIDR_EL2
1341 bitset
<NUM_MISCREG_INFOS
>(string("11111100000000000001")),
1345 bitset
<NUM_MISCREG_INFOS
>(string("11111111111111000001")),
1347 bitset
<NUM_MISCREG_INFOS
>(string("01010101010000000001")),
1348 // MISCREG_CP14_UNIMPL
1349 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000100")),
1350 // MISCREG_CP15_UNIMPL
1351 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000100")),
1352 // MISCREG_A64_UNIMPL
1353 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000100")),
1355 bitset
<NUM_MISCREG_INFOS
>(string("00000000000000000001"))
1359 decodeCP15Reg(unsigned crn
, unsigned opc1
, unsigned crm
, unsigned opc2
)
1371 return MISCREG_TCMTR
;
1373 return MISCREG_TLBTR
;
1375 return MISCREG_MPIDR
;
1377 return MISCREG_REVIDR
;
1379 return MISCREG_MIDR
;
1385 return MISCREG_ID_PFR0
;
1387 return MISCREG_ID_PFR1
;
1389 return MISCREG_ID_DFR0
;
1391 return MISCREG_ID_AFR0
;
1393 return MISCREG_ID_MMFR0
;
1395 return MISCREG_ID_MMFR1
;
1397 return MISCREG_ID_MMFR2
;
1399 return MISCREG_ID_MMFR3
;
1405 return MISCREG_ID_ISAR0
;
1407 return MISCREG_ID_ISAR1
;
1409 return MISCREG_ID_ISAR2
;
1411 return MISCREG_ID_ISAR3
;
1413 return MISCREG_ID_ISAR4
;
1415 return MISCREG_ID_ISAR5
;
1418 return MISCREG_RAZ
; // read as zero
1422 return MISCREG_RAZ
; // read as zero
1429 return MISCREG_CCSIDR
;
1431 return MISCREG_CLIDR
;
1433 return MISCREG_AIDR
;
1438 if (crm
== 0 && opc2
== 0) {
1439 return MISCREG_CSSELR
;
1445 return MISCREG_VPIDR
;
1447 return MISCREG_VMPIDR
;
1457 return MISCREG_SCTLR
;
1459 return MISCREG_ACTLR
;
1461 return MISCREG_CPACR
;
1463 } else if (crm
== 1) {
1468 return MISCREG_SDER
;
1470 return MISCREG_NSACR
;
1473 } else if (opc1
== 4) {
1476 return MISCREG_HSCTLR
;
1478 return MISCREG_HACTLR
;
1479 } else if (crm
== 1) {
1484 return MISCREG_HDCR
;
1486 return MISCREG_HCPTR
;
1488 return MISCREG_HSTR
;
1490 return MISCREG_HACR
;
1496 if (opc1
== 0 && crm
== 0) {
1499 return MISCREG_TTBR0
;
1501 return MISCREG_TTBR1
;
1503 return MISCREG_TTBCR
;
1505 } else if (opc1
== 4) {
1506 if (crm
== 0 && opc2
== 2)
1507 return MISCREG_HTCR
;
1508 else if (crm
== 1 && opc2
== 2)
1509 return MISCREG_VTCR
;
1513 if (opc1
== 0 && crm
== 0 && opc2
== 0) {
1514 return MISCREG_DACR
;
1521 return MISCREG_DFSR
;
1522 } else if (opc2
== 1) {
1523 return MISCREG_IFSR
;
1525 } else if (crm
== 1) {
1527 return MISCREG_ADFSR
;
1528 } else if (opc2
== 1) {
1529 return MISCREG_AIFSR
;
1532 } else if (opc1
== 4) {
1535 return MISCREG_HADFSR
;
1537 return MISCREG_HAIFSR
;
1538 } else if (crm
== 2 && opc2
== 0) {
1544 if (opc1
== 0 && crm
== 0) {
1547 return MISCREG_DFAR
;
1549 return MISCREG_IFAR
;
1551 } else if (opc1
== 4 && crm
== 0) {
1554 return MISCREG_HDFAR
;
1556 return MISCREG_HIFAR
;
1558 return MISCREG_HPFAR
;
1573 return MISCREG_ICIALLUIS
;
1575 return MISCREG_BPIALLIS
;
1586 return MISCREG_ICIALLU
;
1588 return MISCREG_ICIMVAU
;
1590 return MISCREG_CP15ISB
;
1592 return MISCREG_BPIALL
;
1594 return MISCREG_BPIMVA
;
1599 return MISCREG_DCIMVAC
;
1600 } else if (opc2
== 2) {
1601 return MISCREG_DCISW
;
1607 return MISCREG_ATS1CPR
;
1609 return MISCREG_ATS1CPW
;
1611 return MISCREG_ATS1CUR
;
1613 return MISCREG_ATS1CUW
;
1615 return MISCREG_ATS12NSOPR
;
1617 return MISCREG_ATS12NSOPW
;
1619 return MISCREG_ATS12NSOUR
;
1621 return MISCREG_ATS12NSOUW
;
1627 return MISCREG_DCCMVAC
;
1629 return MISCREG_DCCSW
;
1631 return MISCREG_CP15DSB
;
1633 return MISCREG_CP15DMB
;
1638 return MISCREG_DCCMVAU
;
1648 return MISCREG_DCCIMVAC
;
1649 } else if (opc2
== 2) {
1650 return MISCREG_DCCISW
;
1654 } else if (opc1
== 4 && crm
== 8) {
1656 return MISCREG_ATS1HR
;
1658 return MISCREG_ATS1HW
;
1667 return MISCREG_TLBIALLIS
;
1669 return MISCREG_TLBIMVAIS
;
1671 return MISCREG_TLBIASIDIS
;
1673 return MISCREG_TLBIMVAAIS
;
1679 return MISCREG_ITLBIALL
;
1681 return MISCREG_ITLBIMVA
;
1683 return MISCREG_ITLBIASID
;
1689 return MISCREG_DTLBIALL
;
1691 return MISCREG_DTLBIMVA
;
1693 return MISCREG_DTLBIASID
;
1699 return MISCREG_TLBIALL
;
1701 return MISCREG_TLBIMVA
;
1703 return MISCREG_TLBIASID
;
1705 return MISCREG_TLBIMVAA
;
1709 } else if (opc1
== 4) {
1713 return MISCREG_TLBIALLHIS
;
1715 return MISCREG_TLBIMVAHIS
;
1717 return MISCREG_TLBIALLNSNHIS
;
1719 } else if (crm
== 7) {
1722 return MISCREG_TLBIALLH
;
1724 return MISCREG_TLBIMVAH
;
1726 return MISCREG_TLBIALLNSNH
;
1737 return MISCREG_PMCR
;
1739 return MISCREG_PMCNTENSET
;
1741 return MISCREG_PMCNTENCLR
;
1743 return MISCREG_PMOVSR
;
1745 return MISCREG_PMSWINC
;
1747 return MISCREG_PMSELR
;
1749 return MISCREG_PMCEID0
;
1751 return MISCREG_PMCEID1
;
1757 return MISCREG_PMCCNTR
;
1759 // Selector is PMSELR.SEL
1760 return MISCREG_PMXEVTYPER_PMCCFILTR
;
1762 return MISCREG_PMXEVCNTR
;
1768 return MISCREG_PMUSERENR
;
1770 return MISCREG_PMINTENSET
;
1772 return MISCREG_PMINTENCLR
;
1774 return MISCREG_PMOVSSET
;
1778 } else if (opc1
== 1) {
1782 case 2: // L2CTLR, L2 Control Register
1783 return MISCREG_L2CTLR
;
1785 return MISCREG_L2ECTLR
;
1794 // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown
1795 if (crm
== 2) { // TEX Remap Registers
1797 // Selector is TTBCR.EAE
1798 return MISCREG_PRRR_MAIR0
;
1799 } else if (opc2
== 1) {
1800 // Selector is TTBCR.EAE
1801 return MISCREG_NMRR_MAIR1
;
1803 } else if (crm
== 3) {
1805 return MISCREG_AMAIR0
;
1806 } else if (opc2
== 1) {
1807 return MISCREG_AMAIR1
;
1810 } else if (opc1
== 4) {
1811 // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown
1814 return MISCREG_HMAIR0
;
1816 return MISCREG_HMAIR1
;
1817 } else if (crm
== 3) {
1819 return MISCREG_HAMAIR0
;
1821 return MISCREG_HAMAIR1
;
1838 // Reserved for DMA operations for TCM access
1847 return MISCREG_VBAR
;
1848 } else if (opc2
== 1) {
1849 return MISCREG_MVBAR
;
1851 } else if (crm
== 1) {
1856 } else if (opc1
== 4) {
1857 if (crm
== 0 && opc2
== 0)
1858 return MISCREG_HVBAR
;
1866 return MISCREG_FCSEIDR
;
1868 return MISCREG_CONTEXTIDR
;
1870 return MISCREG_TPIDRURW
;
1872 return MISCREG_TPIDRURO
;
1874 return MISCREG_TPIDRPRW
;
1877 } else if (opc1
== 4) {
1878 if (crm
== 0 && opc2
== 2)
1879 return MISCREG_HTPIDR
;
1887 return MISCREG_CNTFRQ
;
1891 return MISCREG_CNTKCTL
;
1895 return MISCREG_CNTP_TVAL
;
1897 return MISCREG_CNTP_CTL
;
1901 return MISCREG_CNTV_TVAL
;
1903 return MISCREG_CNTV_CTL
;
1906 } else if (opc1
== 4) {
1907 if (crm
== 1 && opc2
== 0) {
1908 return MISCREG_CNTHCTL
;
1909 } else if (crm
== 2) {
1911 return MISCREG_CNTHP_TVAL
;
1913 return MISCREG_CNTHP_CTL
;
1918 // Implementation defined
1919 return MISCREG_CP15_UNIMPL
;
1921 // Unrecognized register
1922 return MISCREG_CP15_UNIMPL
;
1926 decodeCP15Reg64(unsigned crm
, unsigned opc1
)
1932 return MISCREG_TTBR0
;
1934 return MISCREG_TTBR1
;
1936 return MISCREG_HTTBR
;
1938 return MISCREG_VTTBR
;
1948 return MISCREG_CNTPCT
;
1950 return MISCREG_CNTVCT
;
1952 return MISCREG_CNTP_CVAL
;
1954 return MISCREG_CNTV_CVAL
;
1956 return MISCREG_CNTVOFF
;
1958 return MISCREG_CNTHP_CVAL
;
1963 return MISCREG_CPUMERRSR
;
1965 return MISCREG_L2MERRSR
;
1968 // Unrecognized register
1969 return MISCREG_CP15_UNIMPL
;
1972 std::tuple
<bool, bool>
1973 canReadCoprocReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
)
1975 bool secure
= !scr
.ns
;
1976 bool canRead
= false;
1977 bool undefined
= false;
1979 switch (cpsr
.mode
) {
1981 canRead
= secure
? miscRegInfo
[reg
][MISCREG_USR_S_RD
] :
1982 miscRegInfo
[reg
][MISCREG_USR_NS_RD
];
1988 case MODE_UNDEFINED
:
1990 canRead
= secure
? miscRegInfo
[reg
][MISCREG_PRI_S_RD
] :
1991 miscRegInfo
[reg
][MISCREG_PRI_NS_RD
];
1994 canRead
= secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_RD
] :
1995 miscRegInfo
[reg
][MISCREG_MON_NS1_RD
];
1998 canRead
= miscRegInfo
[reg
][MISCREG_HYP_RD
];
2003 // can't do permissions checkes on the root of a banked pair of regs
2004 assert(!miscRegInfo
[reg
][MISCREG_BANKED
]);
2005 return std::make_tuple(canRead
, undefined
);
2008 std::tuple
<bool, bool>
2009 canWriteCoprocReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
)
2011 bool secure
= !scr
.ns
;
2012 bool canWrite
= false;
2013 bool undefined
= false;
2015 switch (cpsr
.mode
) {
2017 canWrite
= secure
? miscRegInfo
[reg
][MISCREG_USR_S_WR
] :
2018 miscRegInfo
[reg
][MISCREG_USR_NS_WR
];
2024 case MODE_UNDEFINED
:
2026 canWrite
= secure
? miscRegInfo
[reg
][MISCREG_PRI_S_WR
] :
2027 miscRegInfo
[reg
][MISCREG_PRI_NS_WR
];
2030 canWrite
= secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_WR
] :
2031 miscRegInfo
[reg
][MISCREG_MON_NS1_WR
];
2034 canWrite
= miscRegInfo
[reg
][MISCREG_HYP_WR
];
2039 // can't do permissions checkes on the root of a banked pair of regs
2040 assert(!miscRegInfo
[reg
][MISCREG_BANKED
]);
2041 return std::make_tuple(canWrite
, undefined
);
2045 flattenMiscRegNsBanked(MiscRegIndex reg
, ThreadContext
*tc
)
2047 SCR scr
= tc
->readMiscReg(MISCREG_SCR
);
2048 return flattenMiscRegNsBanked(reg
, tc
, scr
.ns
);
2052 flattenMiscRegNsBanked(MiscRegIndex reg
, ThreadContext
*tc
, bool ns
)
2054 int reg_as_int
= static_cast<int>(reg
);
2055 if (miscRegInfo
[reg
][MISCREG_BANKED
]) {
2056 reg_as_int
+= (ArmSystem::haveSecurity(tc
) &&
2057 !ArmSystem::highestELIs64(tc
) && !ns
) ? 2 : 1;
2064 * If the reg is a child reg of a banked set, then the parent is the last
2065 * banked one in the list. This is messy, and the wish is to eventually have
2066 * the bitmap replaced with a better data structure. the preUnflatten function
2067 * initializes a lookup table to speed up the search for these banked
2071 int unflattenResultMiscReg
[NUM_MISCREGS
];
2074 preUnflattenMiscReg()
2077 for (int i
= 0 ; i
< NUM_MISCREGS
; i
++){
2078 if (miscRegInfo
[i
][MISCREG_BANKED
])
2080 if (miscRegInfo
[i
][MISCREG_BANKED_CHILD
])
2081 unflattenResultMiscReg
[i
] = reg
;
2083 unflattenResultMiscReg
[i
] = i
;
2084 // if this assert fails, no parent was found, and something is broken
2085 assert(unflattenResultMiscReg
[i
] > -1);
2090 unflattenMiscReg(int reg
)
2092 return unflattenResultMiscReg
[reg
];
2096 canReadAArch64SysReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
, ThreadContext
*tc
)
2098 // Check for SP_EL0 access while SPSEL == 0
2099 if ((reg
== MISCREG_SP_EL0
) && (tc
->readMiscReg(MISCREG_SPSEL
) == 0))
2102 // Check for RVBAR access
2103 if (reg
== MISCREG_RVBAR_EL1
) {
2104 ExceptionLevel highest_el
= ArmSystem::highestEL(tc
);
2105 if (highest_el
== EL2
|| highest_el
== EL3
)
2108 if (reg
== MISCREG_RVBAR_EL2
) {
2109 ExceptionLevel highest_el
= ArmSystem::highestEL(tc
);
2110 if (highest_el
== EL3
)
2114 bool secure
= ArmSystem::haveSecurity(tc
) && !scr
.ns
;
2116 switch (opModeToEL((OperatingMode
) (uint8_t) cpsr
.mode
)) {
2118 return secure
? miscRegInfo
[reg
][MISCREG_USR_S_RD
] :
2119 miscRegInfo
[reg
][MISCREG_USR_NS_RD
];
2121 return secure
? miscRegInfo
[reg
][MISCREG_PRI_S_RD
] :
2122 miscRegInfo
[reg
][MISCREG_PRI_NS_RD
];
2124 return miscRegInfo
[reg
][MISCREG_HYP_RD
];
2126 return secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_RD
] :
2127 miscRegInfo
[reg
][MISCREG_MON_NS1_RD
];
2129 panic("Invalid exception level");
2134 canWriteAArch64SysReg(MiscRegIndex reg
, SCR scr
, CPSR cpsr
, ThreadContext
*tc
)
2136 // Check for SP_EL0 access while SPSEL == 0
2137 if ((reg
== MISCREG_SP_EL0
) && (tc
->readMiscReg(MISCREG_SPSEL
) == 0))
2139 ExceptionLevel el
= opModeToEL((OperatingMode
) (uint8_t) cpsr
.mode
);
2140 if (reg
== MISCREG_DAIF
) {
2141 SCTLR sctlr
= tc
->readMiscReg(MISCREG_SCTLR_EL1
);
2142 if (el
== EL0
&& !sctlr
.uma
)
2145 if (FullSystem
&& reg
== MISCREG_DC_ZVA_Xt
) {
2146 // In syscall-emulation mode, this test is skipped and DCZVA is always
2148 SCTLR sctlr
= tc
->readMiscReg(MISCREG_SCTLR_EL1
);
2149 if (el
== EL0
&& !sctlr
.dze
)
2152 if (reg
== MISCREG_DC_CVAC_Xt
|| reg
== MISCREG_DC_CIVAC_Xt
||
2153 reg
== MISCREG_DC_IVAC_Xt
) {
2154 SCTLR sctlr
= tc
->readMiscReg(MISCREG_SCTLR_EL1
);
2155 if (el
== EL0
&& !sctlr
.uci
)
2159 bool secure
= ArmSystem::haveSecurity(tc
) && !scr
.ns
;
2163 return secure
? miscRegInfo
[reg
][MISCREG_USR_S_WR
] :
2164 miscRegInfo
[reg
][MISCREG_USR_NS_WR
];
2166 return secure
? miscRegInfo
[reg
][MISCREG_PRI_S_WR
] :
2167 miscRegInfo
[reg
][MISCREG_PRI_NS_WR
];
2169 return miscRegInfo
[reg
][MISCREG_HYP_WR
];
2171 return secure
? miscRegInfo
[reg
][MISCREG_MON_NS0_WR
] :
2172 miscRegInfo
[reg
][MISCREG_MON_NS1_WR
];
2174 panic("Invalid exception level");
2179 decodeAArch64SysReg(unsigned op0
, unsigned op1
,
2180 unsigned crn
, unsigned crm
,
2193 return MISCREG_IC_IALLUIS
;
2199 return MISCREG_IC_IALLU
;
2205 return MISCREG_DC_IVAC_Xt
;
2207 return MISCREG_DC_ISW_Xt
;
2213 return MISCREG_AT_S1E1R_Xt
;
2215 return MISCREG_AT_S1E1W_Xt
;
2217 return MISCREG_AT_S1E0R_Xt
;
2219 return MISCREG_AT_S1E0W_Xt
;
2225 return MISCREG_DC_CSW_Xt
;
2231 return MISCREG_DC_CISW_Xt
;
2241 return MISCREG_DC_ZVA_Xt
;
2247 return MISCREG_IC_IVAU_Xt
;
2253 return MISCREG_DC_CVAC_Xt
;
2259 return MISCREG_DC_CVAU_Xt
;
2265 return MISCREG_DC_CIVAC_Xt
;
2275 return MISCREG_AT_S1E2R_Xt
;
2277 return MISCREG_AT_S1E2W_Xt
;
2279 return MISCREG_AT_S12E1R_Xt
;
2281 return MISCREG_AT_S12E1W_Xt
;
2283 return MISCREG_AT_S12E0R_Xt
;
2285 return MISCREG_AT_S12E0W_Xt
;
2295 return MISCREG_AT_S1E3R_Xt
;
2297 return MISCREG_AT_S1E3W_Xt
;
2311 return MISCREG_TLBI_VMALLE1IS
;
2313 return MISCREG_TLBI_VAE1IS_Xt
;
2315 return MISCREG_TLBI_ASIDE1IS_Xt
;
2317 return MISCREG_TLBI_VAAE1IS_Xt
;
2319 return MISCREG_TLBI_VALE1IS_Xt
;
2321 return MISCREG_TLBI_VAALE1IS_Xt
;
2327 return MISCREG_TLBI_VMALLE1
;
2329 return MISCREG_TLBI_VAE1_Xt
;
2331 return MISCREG_TLBI_ASIDE1_Xt
;
2333 return MISCREG_TLBI_VAAE1_Xt
;
2335 return MISCREG_TLBI_VALE1_Xt
;
2337 return MISCREG_TLBI_VAALE1_Xt
;
2347 return MISCREG_TLBI_IPAS2E1IS_Xt
;
2349 return MISCREG_TLBI_IPAS2LE1IS_Xt
;
2355 return MISCREG_TLBI_ALLE2IS
;
2357 return MISCREG_TLBI_VAE2IS_Xt
;
2359 return MISCREG_TLBI_ALLE1IS
;
2361 return MISCREG_TLBI_VALE2IS_Xt
;
2363 return MISCREG_TLBI_VMALLS12E1IS
;
2369 return MISCREG_TLBI_IPAS2E1_Xt
;
2371 return MISCREG_TLBI_IPAS2LE1_Xt
;
2377 return MISCREG_TLBI_ALLE2
;
2379 return MISCREG_TLBI_VAE2_Xt
;
2381 return MISCREG_TLBI_ALLE1
;
2383 return MISCREG_TLBI_VALE2_Xt
;
2385 return MISCREG_TLBI_VMALLS12E1
;
2395 return MISCREG_TLBI_ALLE3IS
;
2397 return MISCREG_TLBI_VAE3IS_Xt
;
2399 return MISCREG_TLBI_VALE3IS_Xt
;
2405 return MISCREG_TLBI_ALLE3
;
2407 return MISCREG_TLBI_VAE3_Xt
;
2409 return MISCREG_TLBI_VALE3_Xt
;
2427 return MISCREG_OSDTRRX_EL1
;
2429 return MISCREG_DBGBVR0_EL1
;
2431 return MISCREG_DBGBCR0_EL1
;
2433 return MISCREG_DBGWVR0_EL1
;
2435 return MISCREG_DBGWCR0_EL1
;
2441 return MISCREG_DBGBVR1_EL1
;
2443 return MISCREG_DBGBCR1_EL1
;
2445 return MISCREG_DBGWVR1_EL1
;
2447 return MISCREG_DBGWCR1_EL1
;
2453 return MISCREG_MDCCINT_EL1
;
2455 return MISCREG_MDSCR_EL1
;
2457 return MISCREG_DBGBVR2_EL1
;
2459 return MISCREG_DBGBCR2_EL1
;
2461 return MISCREG_DBGWVR2_EL1
;
2463 return MISCREG_DBGWCR2_EL1
;
2469 return MISCREG_OSDTRTX_EL1
;
2471 return MISCREG_DBGBVR3_EL1
;
2473 return MISCREG_DBGBCR3_EL1
;
2475 return MISCREG_DBGWVR3_EL1
;
2477 return MISCREG_DBGWCR3_EL1
;
2483 return MISCREG_DBGBVR4_EL1
;
2485 return MISCREG_DBGBCR4_EL1
;
2491 return MISCREG_DBGBVR5_EL1
;
2493 return MISCREG_DBGBCR5_EL1
;
2499 return MISCREG_OSECCR_EL1
;
2509 return MISCREG_TEECR32_EL1
;
2519 return MISCREG_MDCCSR_EL0
;
2525 return MISCREG_MDDTR_EL0
;
2531 return MISCREG_MDDTRRX_EL0
;
2541 return MISCREG_DBGVCR32_EL2
;
2555 return MISCREG_MDRAR_EL1
;
2557 return MISCREG_OSLAR_EL1
;
2563 return MISCREG_OSLSR_EL1
;
2569 return MISCREG_OSDLR_EL1
;
2575 return MISCREG_DBGPRCR_EL1
;
2585 return MISCREG_TEEHBR32_EL1
;
2599 return MISCREG_DBGCLAIMSET_EL1
;
2605 return MISCREG_DBGCLAIMCLR_EL1
;
2611 return MISCREG_DBGAUTHSTATUS_EL1
;
2629 return MISCREG_MIDR_EL1
;
2631 return MISCREG_MPIDR_EL1
;
2633 return MISCREG_REVIDR_EL1
;
2639 return MISCREG_ID_PFR0_EL1
;
2641 return MISCREG_ID_PFR1_EL1
;
2643 return MISCREG_ID_DFR0_EL1
;
2645 return MISCREG_ID_AFR0_EL1
;
2647 return MISCREG_ID_MMFR0_EL1
;
2649 return MISCREG_ID_MMFR1_EL1
;
2651 return MISCREG_ID_MMFR2_EL1
;
2653 return MISCREG_ID_MMFR3_EL1
;
2659 return MISCREG_ID_ISAR0_EL1
;
2661 return MISCREG_ID_ISAR1_EL1
;
2663 return MISCREG_ID_ISAR2_EL1
;
2665 return MISCREG_ID_ISAR3_EL1
;
2667 return MISCREG_ID_ISAR4_EL1
;
2669 return MISCREG_ID_ISAR5_EL1
;
2675 return MISCREG_MVFR0_EL1
;
2677 return MISCREG_MVFR1_EL1
;
2679 return MISCREG_MVFR2_EL1
;
2687 return MISCREG_ID_AA64PFR0_EL1
;
2689 return MISCREG_ID_AA64PFR1_EL1
;
2697 return MISCREG_ID_AA64DFR0_EL1
;
2699 return MISCREG_ID_AA64DFR1_EL1
;
2701 return MISCREG_ID_AA64AFR0_EL1
;
2703 return MISCREG_ID_AA64AFR1_EL1
;
2714 return MISCREG_ID_AA64ISAR0_EL1
;
2716 return MISCREG_ID_AA64ISAR1_EL1
;
2724 return MISCREG_ID_AA64MMFR0_EL1
;
2726 return MISCREG_ID_AA64MMFR1_EL1
;
2738 return MISCREG_CCSIDR_EL1
;
2740 return MISCREG_CLIDR_EL1
;
2742 return MISCREG_AIDR_EL1
;
2752 return MISCREG_CSSELR_EL1
;
2762 return MISCREG_CTR_EL0
;
2764 return MISCREG_DCZID_EL0
;
2774 return MISCREG_VPIDR_EL2
;
2776 return MISCREG_VMPIDR_EL2
;
2790 return MISCREG_SCTLR_EL1
;
2792 return MISCREG_ACTLR_EL1
;
2794 return MISCREG_CPACR_EL1
;
2804 return MISCREG_SCTLR_EL2
;
2806 return MISCREG_ACTLR_EL2
;
2812 return MISCREG_HCR_EL2
;
2814 return MISCREG_MDCR_EL2
;
2816 return MISCREG_CPTR_EL2
;
2818 return MISCREG_HSTR_EL2
;
2820 return MISCREG_HACR_EL2
;
2830 return MISCREG_SCTLR_EL3
;
2832 return MISCREG_ACTLR_EL3
;
2838 return MISCREG_SCR_EL3
;
2840 return MISCREG_SDER32_EL3
;
2842 return MISCREG_CPTR_EL3
;
2848 return MISCREG_MDCR_EL3
;
2862 return MISCREG_TTBR0_EL1
;
2864 return MISCREG_TTBR1_EL1
;
2866 return MISCREG_TCR_EL1
;
2876 return MISCREG_TTBR0_EL2
;
2878 return MISCREG_TCR_EL2
;
2884 return MISCREG_VTTBR_EL2
;
2886 return MISCREG_VTCR_EL2
;
2896 return MISCREG_TTBR0_EL3
;
2898 return MISCREG_TCR_EL3
;
2912 return MISCREG_DACR32_EL2
;
2926 return MISCREG_SPSR_EL1
;
2928 return MISCREG_ELR_EL1
;
2934 return MISCREG_SP_EL0
;
2940 return MISCREG_SPSEL
;
2942 return MISCREG_CURRENTEL
;
2952 return MISCREG_NZCV
;
2954 return MISCREG_DAIF
;
2960 return MISCREG_FPCR
;
2962 return MISCREG_FPSR
;
2968 return MISCREG_DSPSR_EL0
;
2970 return MISCREG_DLR_EL0
;
2980 return MISCREG_SPSR_EL2
;
2982 return MISCREG_ELR_EL2
;
2988 return MISCREG_SP_EL1
;
2994 return MISCREG_SPSR_IRQ_AA64
;
2996 return MISCREG_SPSR_ABT_AA64
;
2998 return MISCREG_SPSR_UND_AA64
;
3000 return MISCREG_SPSR_FIQ_AA64
;
3010 return MISCREG_SPSR_EL3
;
3012 return MISCREG_ELR_EL3
;
3018 return MISCREG_SP_EL2
;
3032 return MISCREG_AFSR0_EL1
;
3034 return MISCREG_AFSR1_EL1
;
3040 return MISCREG_ESR_EL1
;
3050 return MISCREG_IFSR32_EL2
;
3056 return MISCREG_AFSR0_EL2
;
3058 return MISCREG_AFSR1_EL2
;
3064 return MISCREG_ESR_EL2
;
3070 return MISCREG_FPEXC32_EL2
;
3080 return MISCREG_AFSR0_EL3
;
3082 return MISCREG_AFSR1_EL3
;
3088 return MISCREG_ESR_EL3
;
3102 return MISCREG_FAR_EL1
;
3112 return MISCREG_FAR_EL2
;
3114 return MISCREG_HPFAR_EL2
;
3124 return MISCREG_FAR_EL3
;
3138 return MISCREG_PAR_EL1
;
3152 return MISCREG_PMINTENSET_EL1
;
3154 return MISCREG_PMINTENCLR_EL1
;
3164 return MISCREG_PMCR_EL0
;
3166 return MISCREG_PMCNTENSET_EL0
;
3168 return MISCREG_PMCNTENCLR_EL0
;
3170 return MISCREG_PMOVSCLR_EL0
;
3172 return MISCREG_PMSWINC_EL0
;
3174 return MISCREG_PMSELR_EL0
;
3176 return MISCREG_PMCEID0_EL0
;
3178 return MISCREG_PMCEID1_EL0
;
3184 return MISCREG_PMCCNTR_EL0
;
3186 return MISCREG_PMXEVTYPER_EL0
;
3188 return MISCREG_PMXEVCNTR_EL0
;
3194 return MISCREG_PMUSERENR_EL0
;
3196 return MISCREG_PMOVSSET_EL0
;
3210 return MISCREG_MAIR_EL1
;
3216 return MISCREG_AMAIR_EL1
;
3226 return MISCREG_MAIR_EL2
;
3232 return MISCREG_AMAIR_EL2
;
3242 return MISCREG_MAIR_EL3
;
3248 return MISCREG_AMAIR_EL3
;
3262 return MISCREG_L2CTLR_EL1
;
3264 return MISCREG_L2ECTLR_EL1
;
3278 return MISCREG_VBAR_EL1
;
3280 return MISCREG_RVBAR_EL1
;
3286 return MISCREG_ISR_EL1
;
3296 return MISCREG_VBAR_EL2
;
3298 return MISCREG_RVBAR_EL2
;
3308 return MISCREG_VBAR_EL3
;
3310 return MISCREG_RVBAR_EL3
;
3312 return MISCREG_RMR_EL3
;
3326 return MISCREG_CONTEXTIDR_EL1
;
3328 return MISCREG_TPIDR_EL1
;
3338 return MISCREG_TPIDR_EL0
;
3340 return MISCREG_TPIDRRO_EL0
;
3350 return MISCREG_CONTEXTIDR_EL2
;
3352 return MISCREG_TPIDR_EL2
;
3362 return MISCREG_TPIDR_EL3
;
3376 return MISCREG_CNTKCTL_EL1
;
3386 return MISCREG_CNTFRQ_EL0
;
3388 return MISCREG_CNTPCT_EL0
;
3390 return MISCREG_CNTVCT_EL0
;
3396 return MISCREG_CNTP_TVAL_EL0
;
3398 return MISCREG_CNTP_CTL_EL0
;
3400 return MISCREG_CNTP_CVAL_EL0
;
3406 return MISCREG_CNTV_TVAL_EL0
;
3408 return MISCREG_CNTV_CTL_EL0
;
3410 return MISCREG_CNTV_CVAL_EL0
;
3416 return MISCREG_PMEVCNTR0_EL0
;
3418 return MISCREG_PMEVCNTR1_EL0
;
3420 return MISCREG_PMEVCNTR2_EL0
;
3422 return MISCREG_PMEVCNTR3_EL0
;
3424 return MISCREG_PMEVCNTR4_EL0
;
3426 return MISCREG_PMEVCNTR5_EL0
;
3432 return MISCREG_PMEVTYPER0_EL0
;
3434 return MISCREG_PMEVTYPER1_EL0
;
3436 return MISCREG_PMEVTYPER2_EL0
;
3438 return MISCREG_PMEVTYPER3_EL0
;
3440 return MISCREG_PMEVTYPER4_EL0
;
3442 return MISCREG_PMEVTYPER5_EL0
;
3448 return MISCREG_PMCCFILTR_EL0
;
3457 return MISCREG_CNTVOFF_EL2
;
3463 return MISCREG_CNTHCTL_EL2
;
3469 return MISCREG_CNTHP_TVAL_EL2
;
3471 return MISCREG_CNTHP_CTL_EL2
;
3473 return MISCREG_CNTHP_CVAL_EL2
;
3483 return MISCREG_CNTPS_TVAL_EL1
;
3485 return MISCREG_CNTPS_CTL_EL1
;
3487 return MISCREG_CNTPS_CVAL_EL1
;
3501 return MISCREG_IL1DATA0_EL1
;
3503 return MISCREG_IL1DATA1_EL1
;
3505 return MISCREG_IL1DATA2_EL1
;
3507 return MISCREG_IL1DATA3_EL1
;
3513 return MISCREG_DL1DATA0_EL1
;
3515 return MISCREG_DL1DATA1_EL1
;
3517 return MISCREG_DL1DATA2_EL1
;
3519 return MISCREG_DL1DATA3_EL1
;
3521 return MISCREG_DL1DATA4_EL1
;
3531 return MISCREG_L2ACTLR_EL1
;
3537 return MISCREG_CPUACTLR_EL1
;
3539 return MISCREG_CPUECTLR_EL1
;
3541 return MISCREG_CPUMERRSR_EL1
;
3543 return MISCREG_L2MERRSR_EL1
;
3549 return MISCREG_CBAR_EL1
;
3561 return MISCREG_UNKNOWN
;
3564 } // namespace ArmISA