1#ifdef GET_ATValues_DECL
2enum ATValues {
3 S1E1R = 960,
4 S1E2R = 9152,
5 S1E3R = 13248,
6 S1E1W = 961,
7 S1E2W = 9153,
8 S1E3W = 13249,
9 S1E0R = 962,
10 S1E0W = 963,
11 S12E1R = 9156,
12 S12E1W = 9157,
13 S12E0R = 9158,
14 S12E0W = 9159,
15 S1E1RP = 968,
16 S1E1WP = 969,
17 S1E1A = 970,
18 S1E2A = 9162,
19 S1E3A = 13258,
20};
21#endif
22
23#ifdef GET_BTIValues_DECL
24enum BTIValues {
25 r = 0,
26 c = 2,
27 j = 4,
28 jc = 6,
29};
30#endif
31
32#ifdef GET_DBValues_DECL
33enum DBValues {
34 oshld = 1,
35 oshst = 2,
36 osh = 3,
37 nshld = 5,
38 nshst = 6,
39 nsh = 7,
40 ishld = 9,
41 ishst = 10,
42 ish = 11,
43 ld = 13,
44 st = 14,
45 sy = 15,
46};
47#endif
48
49#ifdef GET_DBnXSValues_DECL
50enum DBnXSValues {
51 oshnxs = 3,
52 nshnxs = 7,
53 ishnxs = 11,
54 synxs = 15,
55};
56#endif
57
58#ifdef GET_DCValues_DECL
59enum DCValues {
60 ZVA = 7073,
61 IVAC = 945,
62 ISW = 946,
63 CVAC = 7121,
64 CSW = 978,
65 CVAU = 7129,
66 CIVAC = 7153,
67 CISW = 1010,
68 CVAP = 7137,
69 CVADP = 7145,
70 IGVAC = 947,
71 IGSW = 948,
72 CGSW = 980,
73 CIGSW = 1012,
74 CGVAC = 7123,
75 CGVAP = 7139,
76 CGVADP = 7147,
77 CIGVAC = 7155,
78 GVA = 7075,
79 IGDVAC = 949,
80 IGDSW = 950,
81 CGDSW = 982,
82 CIGDSW = 1014,
83 CGDVAC = 7125,
84 CGDVAP = 7141,
85 CGDVADP = 7149,
86 CIGDVAC = 7157,
87 GZVA = 7076,
88 ZGBVA = 7077,
89 GBVA = 7079,
90 CIPAE = 9200,
91 CIGDPAE = 9207,
92 CIGDPAPA = 13301,
93 CIPAPA = 13297,
94 CIVAOC = 7160,
95 CVAOC = 7128,
96 CIGDVAOC = 7167,
97 CGDVAOC = 7135,
98 CIVAPS = 1017,
99 CIGDVAPS = 1021,
100};
101#endif
102
103#ifdef GET_ExactFPImmValues_DECL
104enum ExactFPImmValues {
105 zero = 0,
106 half = 1,
107 one = 2,
108 two = 3,
109};
110#endif
111
112#ifdef GET_ICValues_DECL
113enum ICValues {
114 IALLUIS = 904,
115 IALLU = 936,
116 IVAU = 7081,
117};
118#endif
119
120#ifdef GET_ISBValues_DECL
121enum ISBValues {
122 sy = 15,
123};
124#endif
125
126#ifdef GET_PHintValues_DECL
127enum PHintValues {
128 keep = 0,
129 strm = 1,
130};
131#endif
132
133#ifdef GET_PRFMValues_DECL
134enum PRFMValues {
135 pldl1keep = 0,
136 pldl1strm = 1,
137 pldl2keep = 2,
138 pldl2strm = 3,
139 pldl3keep = 4,
140 pldl3strm = 5,
141 pldslckeep = 6,
142 pldslcstrm = 7,
143 plil1keep = 8,
144 plil1strm = 9,
145 plil2keep = 10,
146 plil2strm = 11,
147 plil3keep = 12,
148 plil3strm = 13,
149 plislckeep = 14,
150 plislcstrm = 15,
151 pstl1keep = 16,
152 pstl1strm = 17,
153 pstl2keep = 18,
154 pstl2strm = 19,
155 pstl3keep = 20,
156 pstl3strm = 21,
157 pstslckeep = 22,
158 pstslcstrm = 23,
159 ir = 24,
160};
161#endif
162
163#ifdef GET_PSBValues_DECL
164enum PSBValues {
165 csync = 17,
166};
167#endif
168
169#ifdef GET_PStateImm0_1Values_DECL
170enum PStateImm0_1Values {
171 ALLINT = 8,
172 PM = 72,
173};
174#endif
175
176#ifdef GET_PStateImm0_15Values_DECL
177enum PStateImm0_15Values {
178 SPSel = 5,
179 DAIFSet = 30,
180 DAIFClr = 31,
181 PAN = 4,
182 UAO = 3,
183 DIT = 26,
184 SSBS = 25,
185 TCO = 28,
186};
187#endif
188
189#ifdef GET_RPRFMValues_DECL
190enum RPRFMValues {
191 pldkeep = 0,
192 pstkeep = 1,
193 pldstrm = 4,
194 pststrm = 5,
195};
196#endif
197
198#ifdef GET_SVCRValues_DECL
199enum SVCRValues {
200 SVCRSM = 1,
201 SVCRZA = 2,
202 SVCRSMZA = 3,
203};
204#endif
205
206#ifdef GET_SVEPREDPATValues_DECL
207enum SVEPREDPATValues {
208 pow2 = 0,
209 vl1 = 1,
210 vl2 = 2,
211 vl3 = 3,
212 vl4 = 4,
213 vl5 = 5,
214 vl6 = 6,
215 vl7 = 7,
216 vl8 = 8,
217 vl16 = 9,
218 vl32 = 10,
219 vl64 = 11,
220 vl128 = 12,
221 vl256 = 13,
222 mul4 = 29,
223 mul3 = 30,
224 all = 31,
225};
226#endif
227
228#ifdef GET_SVEPRFMValues_DECL
229enum SVEPRFMValues {
230 pldl1keep = 0,
231 pldl1strm = 1,
232 pldl2keep = 2,
233 pldl2strm = 3,
234 pldl3keep = 4,
235 pldl3strm = 5,
236 pstl1keep = 8,
237 pstl1strm = 9,
238 pstl2keep = 10,
239 pstl2strm = 11,
240 pstl3keep = 12,
241 pstl3strm = 13,
242};
243#endif
244
245#ifdef GET_SVEVECLENSPECIFIERValues_DECL
246enum SVEVECLENSPECIFIERValues {
247 vlx2 = 0,
248 vlx4 = 1,
249};
250#endif
251
252#ifdef GET_SysAliasRegUse_DECL
253enum SysAliasRegUse {
254 REG_NONE = 0,
255 REG_OPTIONAL = 1,
256 REG_REQUIRED = 2,
257};
258#endif
259
260#ifdef GET_SysRegValues_DECL
261enum SysRegValues {
262 MDCCSR_EL0 = 38920,
263 DBGDTRRX_EL0 = 38952,
264 MDRAR_EL1 = 32896,
265 OSLSR_EL1 = 32908,
266 DBGAUTHSTATUS_EL1 = 33782,
267 PMCEID0_EL0 = 56550,
268 PMCEID1_EL0 = 56551,
269 PMMIR_EL1 = 50422,
270 MIDR_EL1 = 49152,
271 CCSIDR_EL1 = 51200,
272 CCSIDR2_EL1 = 51202,
273 CLIDR_EL1 = 51201,
274 CTR_EL0 = 55297,
275 MPIDR_EL1 = 49157,
276 REVIDR_EL1 = 49158,
277 AIDR_EL1 = 51207,
278 DCZID_EL0 = 55303,
279 ID_PFR0_EL1 = 49160,
280 ID_PFR1_EL1 = 49161,
281 ID_PFR2_EL1 = 49180,
282 ID_DFR0_EL1 = 49162,
283 ID_DFR1_EL1 = 49181,
284 ID_AFR0_EL1 = 49163,
285 ID_MMFR0_EL1 = 49164,
286 ID_MMFR1_EL1 = 49165,
287 ID_MMFR2_EL1 = 49166,
288 ID_MMFR3_EL1 = 49167,
289 ID_ISAR0_EL1 = 49168,
290 ID_ISAR1_EL1 = 49169,
291 ID_ISAR2_EL1 = 49170,
292 ID_ISAR3_EL1 = 49171,
293 ID_ISAR4_EL1 = 49172,
294 ID_ISAR5_EL1 = 49173,
295 ID_ISAR6_EL1 = 49175,
296 ID_AA64PFR0_EL1 = 49184,
297 ID_AA64PFR1_EL1 = 49185,
298 ID_AA64PFR2_EL1 = 49186,
299 ID_AA64DFR0_EL1 = 49192,
300 ID_AA64DFR1_EL1 = 49193,
301 ID_AA64DFR2_EL1 = 49194,
302 ID_AA64AFR0_EL1 = 49196,
303 ID_AA64AFR1_EL1 = 49197,
304 ID_AA64ISAR0_EL1 = 49200,
305 ID_AA64ISAR1_EL1 = 49201,
306 ID_AA64ISAR2_EL1 = 49202,
307 ID_AA64ISAR3_EL1 = 49203,
308 ID_AA64MMFR0_EL1 = 49208,
309 ID_AA64MMFR1_EL1 = 49209,
310 ID_AA64MMFR2_EL1 = 49210,
311 ID_AA64MMFR3_EL1 = 49211,
312 ID_AA64MMFR4_EL1 = 49212,
313 MVFR0_EL1 = 49176,
314 MVFR1_EL1 = 49177,
315 MVFR2_EL1 = 49178,
316 RVBAR_EL1 = 50689,
317 RVBAR_EL2 = 58881,
318 RVBAR_EL3 = 62977,
319 ISR_EL1 = 50696,
320 CNTPCT_EL0 = 57089,
321 CNTVCT_EL0 = 57090,
322 ID_MMFR4_EL1 = 49174,
323 ID_MMFR5_EL1 = 49182,
324 TRCSTATR = 34840,
325 TRCIDR8 = 34822,
326 TRCIDR9 = 34830,
327 TRCIDR10 = 34838,
328 TRCIDR11 = 34846,
329 TRCIDR12 = 34854,
330 TRCIDR13 = 34862,
331 TRCIDR0 = 34887,
332 TRCIDR1 = 34895,
333 TRCIDR2 = 34903,
334 TRCIDR3 = 34911,
335 TRCIDR4 = 34919,
336 TRCIDR5 = 34927,
337 TRCIDR6 = 34935,
338 TRCIDR7 = 34943,
339 TRCOSLSR = 34956,
340 TRCPDSR = 34988,
341 TRCDEVAFF0 = 35798,
342 TRCDEVAFF1 = 35806,
343 TRCLSR = 35822,
344 TRCAUTHSTATUS = 35830,
345 TRCDEVARCH = 35838,
346 TRCDEVID = 35735,
347 TRCDEVTYPE = 35743,
348 TRCPIDR4 = 35751,
349 TRCPIDR5 = 35759,
350 TRCPIDR6 = 35767,
351 TRCPIDR7 = 35775,
352 TRCPIDR0 = 35783,
353 TRCPIDR1 = 35791,
354 TRCPIDR2 = 35799,
355 TRCPIDR3 = 35807,
356 TRCCIDR0 = 35815,
357 TRCCIDR1 = 35823,
358 TRCCIDR2 = 35831,
359 TRCCIDR3 = 35839,
360 ICC_IAR1_EL1 = 50784,
361 ICC_IAR0_EL1 = 50752,
362 ICC_HPPIR1_EL1 = 50786,
363 ICC_HPPIR0_EL1 = 50754,
364 ICC_RPR_EL1 = 50779,
365 ICH_VTR_EL2 = 58969,
366 ICH_EISR_EL2 = 58971,
367 ICH_ELRSR_EL2 = 58973,
368 ID_AA64ZFR0_EL1 = 49188,
369 LORID_EL1 = 50471,
370 ERRIDR_EL1 = 49816,
371 ERXFR_EL1 = 49824,
372 RNDR = 55584,
373 RNDRRS = 55585,
374 SCXTNUM_EL0 = 56967,
375 SCXTNUM_EL1 = 50823,
376 SCXTNUM_EL2 = 59015,
377 SCXTNUM_EL3 = 63111,
378 SCXTNUM_EL12 = 61063,
379 GPCCR_EL3 = 61710,
380 GPTBR_EL3 = 61708,
381 MFAR_EL3 = 62213,
382 MECIDR_EL2 = 58695,
383 MECID_P0_EL2 = 58688,
384 MECID_A0_EL2 = 58689,
385 MECID_P1_EL2 = 58690,
386 MECID_A1_EL2 = 58691,
387 VMECID_P_EL2 = 58696,
388 VMECID_A_EL2 = 58697,
389 MECID_RL_A_EL3 = 62801,
390 ID_AA64SMFR0_EL1 = 49189,
391 DBGDTRTX_EL0 = 38952,
392 OSLAR_EL1 = 32900,
393 PMSWINC_EL0 = 56548,
394 TRCOSLAR = 34948,
395 TRCLAR = 35814,
396 ICC_EOIR1_EL1 = 50785,
397 ICC_EOIR0_EL1 = 50753,
398 ICC_DIR_EL1 = 50777,
399 ICC_SGI1R_EL1 = 50781,
400 ICC_ASGI1R_EL1 = 50782,
401 ICC_SGI0R_EL1 = 50783,
402 OSDTRRX_EL1 = 32770,
403 OSDTRTX_EL1 = 32794,
404 TEECR32_EL1 = 36864,
405 MDCCINT_EL1 = 32784,
406 MDSCR_EL1 = 32786,
407 DBGDTR_EL0 = 38944,
408 OSECCR_EL1 = 32818,
409 DBGVCR32_EL2 = 41016,
410 DBGBVR0_EL1 = 32772,
411 DBGBCR0_EL1 = 32773,
412 DBGWVR0_EL1 = 32774,
413 DBGWCR0_EL1 = 32775,
414 DBGBVR1_EL1 = 32780,
415 DBGBCR1_EL1 = 32781,
416 DBGWVR1_EL1 = 32782,
417 DBGWCR1_EL1 = 32783,
418 DBGBVR2_EL1 = 32788,
419 DBGBCR2_EL1 = 32789,
420 DBGWVR2_EL1 = 32790,
421 DBGWCR2_EL1 = 32791,
422 DBGBVR3_EL1 = 32796,
423 DBGBCR3_EL1 = 32797,
424 DBGWVR3_EL1 = 32798,
425 DBGWCR3_EL1 = 32799,
426 DBGBVR4_EL1 = 32804,
427 DBGBCR4_EL1 = 32805,
428 DBGWVR4_EL1 = 32806,
429 DBGWCR4_EL1 = 32807,
430 DBGBVR5_EL1 = 32812,
431 DBGBCR5_EL1 = 32813,
432 DBGWVR5_EL1 = 32814,
433 DBGWCR5_EL1 = 32815,
434 DBGBVR6_EL1 = 32820,
435 DBGBCR6_EL1 = 32821,
436 DBGWVR6_EL1 = 32822,
437 DBGWCR6_EL1 = 32823,
438 DBGBVR7_EL1 = 32828,
439 DBGBCR7_EL1 = 32829,
440 DBGWVR7_EL1 = 32830,
441 DBGWCR7_EL1 = 32831,
442 DBGBVR8_EL1 = 32836,
443 DBGBCR8_EL1 = 32837,
444 DBGWVR8_EL1 = 32838,
445 DBGWCR8_EL1 = 32839,
446 DBGBVR9_EL1 = 32844,
447 DBGBCR9_EL1 = 32845,
448 DBGWVR9_EL1 = 32846,
449 DBGWCR9_EL1 = 32847,
450 DBGBVR10_EL1 = 32852,
451 DBGBCR10_EL1 = 32853,
452 DBGWVR10_EL1 = 32854,
453 DBGWCR10_EL1 = 32855,
454 DBGBVR11_EL1 = 32860,
455 DBGBCR11_EL1 = 32861,
456 DBGWVR11_EL1 = 32862,
457 DBGWCR11_EL1 = 32863,
458 DBGBVR12_EL1 = 32868,
459 DBGBCR12_EL1 = 32869,
460 DBGWVR12_EL1 = 32870,
461 DBGWCR12_EL1 = 32871,
462 DBGBVR13_EL1 = 32876,
463 DBGBCR13_EL1 = 32877,
464 DBGWVR13_EL1 = 32878,
465 DBGWCR13_EL1 = 32879,
466 DBGBVR14_EL1 = 32884,
467 DBGBCR14_EL1 = 32885,
468 DBGWVR14_EL1 = 32886,
469 DBGWCR14_EL1 = 32887,
470 DBGBVR15_EL1 = 32892,
471 DBGBCR15_EL1 = 32893,
472 DBGWVR15_EL1 = 32894,
473 DBGWCR15_EL1 = 32895,
474 TEEHBR32_EL1 = 36992,
475 OSDLR_EL1 = 32924,
476 DBGPRCR_EL1 = 32932,
477 DBGCLAIMSET_EL1 = 33734,
478 DBGCLAIMCLR_EL1 = 33742,
479 CSSELR_EL1 = 53248,
480 VPIDR_EL2 = 57344,
481 VMPIDR_EL2 = 57349,
482 CPACR_EL1 = 49282,
483 SCTLR_EL1 = 49280,
484 SCTLR_EL2 = 57472,
485 SCTLR_EL3 = 61568,
486 ACTLR_EL1 = 49281,
487 ACTLR_EL12 = 59521,
488 ACTLR_EL2 = 57473,
489 ACTLR_EL3 = 61569,
490 HCR_EL2 = 57480,
491 HCRX_EL2 = 57490,
492 SCR_EL3 = 61576,
493 MDCR_EL2 = 57481,
494 SDER32_EL3 = 61577,
495 CPTR_EL2 = 57482,
496 CPTR_EL3 = 61578,
497 HSTR_EL2 = 57483,
498 HACR_EL2 = 57487,
499 MDCR_EL3 = 61593,
500 TTBR0_EL1 = 49408,
501 TTBR0_EL3 = 61696,
502 TTBR0_EL2 = 57600,
503 VTTBR_EL2 = 57608,
504 TTBR1_EL1 = 49409,
505 TCR_EL1 = 49410,
506 TCR_EL2 = 57602,
507 TCR_EL3 = 61698,
508 VTCR_EL2 = 57610,
509 DACR32_EL2 = 57728,
510 SPSR_EL1 = 49664,
511 SPSR_EL2 = 57856,
512 SPSR_EL3 = 61952,
513 ELR_EL1 = 49665,
514 ELR_EL2 = 57857,
515 ELR_EL3 = 61953,
516 SP_EL0 = 49672,
517 SP_EL1 = 57864,
518 SP_EL2 = 61960,
519 SPSel = 49680,
520 NZCV = 55824,
521 DAIF = 55825,
522 CurrentEL = 49682,
523 SPSR_irq = 57880,
524 SPSR_abt = 57881,
525 SPSR_und = 57882,
526 SPSR_fiq = 57883,
527 FPCR = 55840,
528 FPSR = 55841,
529 DSPSR_EL0 = 55848,
530 DLR_EL0 = 55849,
531 IFSR32_EL2 = 57985,
532 AFSR0_EL1 = 49800,
533 AFSR0_EL2 = 57992,
534 AFSR0_EL3 = 62088,
535 AFSR1_EL1 = 49801,
536 AFSR1_EL2 = 57993,
537 AFSR1_EL3 = 62089,
538 ESR_EL1 = 49808,
539 ESR_EL2 = 58000,
540 ESR_EL3 = 62096,
541 FPEXC32_EL2 = 58008,
542 FAR_EL1 = 49920,
543 FAR_EL2 = 58112,
544 FAR_EL3 = 62208,
545 HPFAR_EL2 = 58116,
546 PAR_EL1 = 50080,
547 PMCR_EL0 = 56544,
548 PMCNTENSET_EL0 = 56545,
549 PMCNTENCLR_EL0 = 56546,
550 PMOVSCLR_EL0 = 56547,
551 PMSELR_EL0 = 56549,
552 PMCCNTR_EL0 = 56552,
553 PMXEVTYPER_EL0 = 56553,
554 PMXEVCNTR_EL0 = 56554,
555 PMUSERENR_EL0 = 56560,
556 PMINTENSET_EL1 = 50417,
557 PMINTENCLR_EL1 = 50418,
558 PMOVSSET_EL0 = 56563,
559 MAIR_EL1 = 50448,
560 MAIR_EL2 = 58640,
561 MAIR_EL3 = 62736,
562 AMAIR_EL1 = 50456,
563 AMAIR_EL2 = 58648,
564 AMAIR_EL3 = 62744,
565 VBAR_EL1 = 50688,
566 VBAR_EL2 = 58880,
567 VBAR_EL3 = 62976,
568 RMR_EL1 = 50690,
569 RMR_EL2 = 58882,
570 RMR_EL3 = 62978,
571 CONTEXTIDR_EL1 = 50817,
572 TPIDR_EL0 = 56962,
573 TPIDR_EL2 = 59010,
574 TPIDR_EL3 = 63106,
575 TPIDRRO_EL0 = 56963,
576 TPIDR_EL1 = 50820,
577 CNTFRQ_EL0 = 57088,
578 CNTVOFF_EL2 = 59139,
579 CNTKCTL_EL1 = 50952,
580 CNTHCTL_EL2 = 59144,
581 CNTP_TVAL_EL0 = 57104,
582 CNTHP_TVAL_EL2 = 59152,
583 CNTPS_TVAL_EL1 = 65296,
584 CNTP_CTL_EL0 = 57105,
585 CNTHP_CTL_EL2 = 59153,
586 CNTPS_CTL_EL1 = 65297,
587 CNTP_CVAL_EL0 = 57106,
588 CNTHP_CVAL_EL2 = 59154,
589 CNTPS_CVAL_EL1 = 65298,
590 CNTV_TVAL_EL0 = 57112,
591 CNTV_CTL_EL0 = 57113,
592 CNTV_CVAL_EL0 = 57114,
593 PMEVCNTR0_EL0 = 57152,
594 PMEVCNTR1_EL0 = 57153,
595 PMEVCNTR2_EL0 = 57154,
596 PMEVCNTR3_EL0 = 57155,
597 PMEVCNTR4_EL0 = 57156,
598 PMEVCNTR5_EL0 = 57157,
599 PMEVCNTR6_EL0 = 57158,
600 PMEVCNTR7_EL0 = 57159,
601 PMEVCNTR8_EL0 = 57160,
602 PMEVCNTR9_EL0 = 57161,
603 PMEVCNTR10_EL0 = 57162,
604 PMEVCNTR11_EL0 = 57163,
605 PMEVCNTR12_EL0 = 57164,
606 PMEVCNTR13_EL0 = 57165,
607 PMEVCNTR14_EL0 = 57166,
608 PMEVCNTR15_EL0 = 57167,
609 PMEVCNTR16_EL0 = 57168,
610 PMEVCNTR17_EL0 = 57169,
611 PMEVCNTR18_EL0 = 57170,
612 PMEVCNTR19_EL0 = 57171,
613 PMEVCNTR20_EL0 = 57172,
614 PMEVCNTR21_EL0 = 57173,
615 PMEVCNTR22_EL0 = 57174,
616 PMEVCNTR23_EL0 = 57175,
617 PMEVCNTR24_EL0 = 57176,
618 PMEVCNTR25_EL0 = 57177,
619 PMEVCNTR26_EL0 = 57178,
620 PMEVCNTR27_EL0 = 57179,
621 PMEVCNTR28_EL0 = 57180,
622 PMEVCNTR29_EL0 = 57181,
623 PMEVCNTR30_EL0 = 57182,
624 PMCCFILTR_EL0 = 57215,
625 PMEVTYPER0_EL0 = 57184,
626 PMEVTYPER1_EL0 = 57185,
627 PMEVTYPER2_EL0 = 57186,
628 PMEVTYPER3_EL0 = 57187,
629 PMEVTYPER4_EL0 = 57188,
630 PMEVTYPER5_EL0 = 57189,
631 PMEVTYPER6_EL0 = 57190,
632 PMEVTYPER7_EL0 = 57191,
633 PMEVTYPER8_EL0 = 57192,
634 PMEVTYPER9_EL0 = 57193,
635 PMEVTYPER10_EL0 = 57194,
636 PMEVTYPER11_EL0 = 57195,
637 PMEVTYPER12_EL0 = 57196,
638 PMEVTYPER13_EL0 = 57197,
639 PMEVTYPER14_EL0 = 57198,
640 PMEVTYPER15_EL0 = 57199,
641 PMEVTYPER16_EL0 = 57200,
642 PMEVTYPER17_EL0 = 57201,
643 PMEVTYPER18_EL0 = 57202,
644 PMEVTYPER19_EL0 = 57203,
645 PMEVTYPER20_EL0 = 57204,
646 PMEVTYPER21_EL0 = 57205,
647 PMEVTYPER22_EL0 = 57206,
648 PMEVTYPER23_EL0 = 57207,
649 PMEVTYPER24_EL0 = 57208,
650 PMEVTYPER25_EL0 = 57209,
651 PMEVTYPER26_EL0 = 57210,
652 PMEVTYPER27_EL0 = 57211,
653 PMEVTYPER28_EL0 = 57212,
654 PMEVTYPER29_EL0 = 57213,
655 PMEVTYPER30_EL0 = 57214,
656 TRCPRGCTLR = 34824,
657 TRCPROCSELR = 34832,
658 TRCCONFIGR = 34848,
659 TRCAUXCTLR = 34864,
660 TRCEVENTCTL0R = 34880,
661 TRCEVENTCTL1R = 34888,
662 TRCSTALLCTLR = 34904,
663 TRCTSCTLR = 34912,
664 TRCSYNCPR = 34920,
665 TRCCCCTLR = 34928,
666 TRCBBCTLR = 34936,
667 TRCTRACEIDR = 34817,
668 TRCQCTLR = 34825,
669 TRCVICTLR = 34818,
670 TRCVIIECTLR = 34826,
671 TRCVISSCTLR = 34834,
672 TRCVIPCSSCTLR = 34842,
673 TRCVDCTLR = 34882,
674 TRCVDSACCTLR = 34890,
675 TRCVDARCCTLR = 34898,
676 TRCSEQEVR0 = 34820,
677 TRCSEQEVR1 = 34828,
678 TRCSEQEVR2 = 34836,
679 TRCSEQRSTEVR = 34868,
680 TRCSEQSTR = 34876,
681 TRCEXTINSELR = 34884,
682 TRCCNTRLDVR0 = 34821,
683 TRCCNTRLDVR1 = 34829,
684 TRCCNTRLDVR2 = 34837,
685 TRCCNTRLDVR3 = 34845,
686 TRCCNTCTLR0 = 34853,
687 TRCCNTCTLR1 = 34861,
688 TRCCNTCTLR2 = 34869,
689 TRCCNTCTLR3 = 34877,
690 TRCCNTVR0 = 34885,
691 TRCCNTVR1 = 34893,
692 TRCCNTVR2 = 34901,
693 TRCCNTVR3 = 34909,
694 TRCIMSPEC0 = 34823,
695 TRCIMSPEC1 = 34831,
696 TRCIMSPEC2 = 34839,
697 TRCIMSPEC3 = 34847,
698 TRCIMSPEC4 = 34855,
699 TRCIMSPEC5 = 34863,
700 TRCIMSPEC6 = 34871,
701 TRCIMSPEC7 = 34879,
702 TRCRSCTLR2 = 34960,
703 TRCRSCTLR3 = 34968,
704 TRCRSCTLR4 = 34976,
705 TRCRSCTLR5 = 34984,
706 TRCRSCTLR6 = 34992,
707 TRCRSCTLR7 = 35000,
708 TRCRSCTLR8 = 35008,
709 TRCRSCTLR9 = 35016,
710 TRCRSCTLR10 = 35024,
711 TRCRSCTLR11 = 35032,
712 TRCRSCTLR12 = 35040,
713 TRCRSCTLR13 = 35048,
714 TRCRSCTLR14 = 35056,
715 TRCRSCTLR15 = 35064,
716 TRCRSCTLR16 = 34945,
717 TRCRSCTLR17 = 34953,
718 TRCRSCTLR18 = 34961,
719 TRCRSCTLR19 = 34969,
720 TRCRSCTLR20 = 34977,
721 TRCRSCTLR21 = 34985,
722 TRCRSCTLR22 = 34993,
723 TRCRSCTLR23 = 35001,
724 TRCRSCTLR24 = 35009,
725 TRCRSCTLR25 = 35017,
726 TRCRSCTLR26 = 35025,
727 TRCRSCTLR27 = 35033,
728 TRCRSCTLR28 = 35041,
729 TRCRSCTLR29 = 35049,
730 TRCRSCTLR30 = 35057,
731 TRCRSCTLR31 = 35065,
732 TRCSSCCR0 = 34946,
733 TRCSSCCR1 = 34954,
734 TRCSSCCR2 = 34962,
735 TRCSSCCR3 = 34970,
736 TRCSSCCR4 = 34978,
737 TRCSSCCR5 = 34986,
738 TRCSSCCR6 = 34994,
739 TRCSSCCR7 = 35002,
740 TRCSSCSR0 = 35010,
741 TRCSSCSR1 = 35018,
742 TRCSSCSR2 = 35026,
743 TRCSSCSR3 = 35034,
744 TRCSSCSR4 = 35042,
745 TRCSSCSR5 = 35050,
746 TRCSSCSR6 = 35058,
747 TRCSSCSR7 = 35066,
748 TRCSSPCICR0 = 34947,
749 TRCSSPCICR1 = 34955,
750 TRCSSPCICR2 = 34963,
751 TRCSSPCICR3 = 34971,
752 TRCSSPCICR4 = 34979,
753 TRCSSPCICR5 = 34987,
754 TRCSSPCICR6 = 34995,
755 TRCSSPCICR7 = 35003,
756 TRCPDCR = 34980,
757 TRCACVR0 = 35072,
758 TRCACVR1 = 35088,
759 TRCACVR2 = 35104,
760 TRCACVR3 = 35120,
761 TRCACVR4 = 35136,
762 TRCACVR5 = 35152,
763 TRCACVR6 = 35168,
764 TRCACVR7 = 35184,
765 TRCACVR8 = 35073,
766 TRCACVR9 = 35089,
767 TRCACVR10 = 35105,
768 TRCACVR11 = 35121,
769 TRCACVR12 = 35137,
770 TRCACVR13 = 35153,
771 TRCACVR14 = 35169,
772 TRCACVR15 = 35185,
773 TRCACATR0 = 35074,
774 TRCACATR1 = 35090,
775 TRCACATR2 = 35106,
776 TRCACATR3 = 35122,
777 TRCACATR4 = 35138,
778 TRCACATR5 = 35154,
779 TRCACATR6 = 35170,
780 TRCACATR7 = 35186,
781 TRCACATR8 = 35075,
782 TRCACATR9 = 35091,
783 TRCACATR10 = 35107,
784 TRCACATR11 = 35123,
785 TRCACATR12 = 35139,
786 TRCACATR13 = 35155,
787 TRCACATR14 = 35171,
788 TRCACATR15 = 35187,
789 TRCDVCVR0 = 35076,
790 TRCDVCVR1 = 35108,
791 TRCDVCVR2 = 35140,
792 TRCDVCVR3 = 35172,
793 TRCDVCVR4 = 35077,
794 TRCDVCVR5 = 35109,
795 TRCDVCVR6 = 35141,
796 TRCDVCVR7 = 35173,
797 TRCDVCMR0 = 35078,
798 TRCDVCMR1 = 35110,
799 TRCDVCMR2 = 35142,
800 TRCDVCMR3 = 35174,
801 TRCDVCMR4 = 35079,
802 TRCDVCMR5 = 35111,
803 TRCDVCMR6 = 35143,
804 TRCDVCMR7 = 35175,
805 TRCCIDCVR0 = 35200,
806 TRCCIDCVR1 = 35216,
807 TRCCIDCVR2 = 35232,
808 TRCCIDCVR3 = 35248,
809 TRCCIDCVR4 = 35264,
810 TRCCIDCVR5 = 35280,
811 TRCCIDCVR6 = 35296,
812 TRCCIDCVR7 = 35312,
813 TRCVMIDCVR0 = 35201,
814 TRCVMIDCVR1 = 35217,
815 TRCVMIDCVR2 = 35233,
816 TRCVMIDCVR3 = 35249,
817 TRCVMIDCVR4 = 35265,
818 TRCVMIDCVR5 = 35281,
819 TRCVMIDCVR6 = 35297,
820 TRCVMIDCVR7 = 35313,
821 TRCCIDCCTLR0 = 35202,
822 TRCCIDCCTLR1 = 35210,
823 TRCVMIDCCTLR0 = 35218,
824 TRCVMIDCCTLR1 = 35226,
825 TRCITCTRL = 35716,
826 TRCCLAIMSET = 35782,
827 TRCCLAIMCLR = 35790,
828 ICC_BPR1_EL1 = 50787,
829 ICC_BPR0_EL1 = 50755,
830 ICC_PMR_EL1 = 49712,
831 ICC_CTLR_EL1 = 50788,
832 ICC_CTLR_EL3 = 63076,
833 ICC_SRE_EL1 = 50789,
834 ICC_SRE_EL2 = 58957,
835 ICC_SRE_EL3 = 63077,
836 ICC_IGRPEN0_EL1 = 50790,
837 ICC_IGRPEN1_EL1 = 50791,
838 ICC_IGRPEN1_EL3 = 63079,
839 ICC_AP0R0_EL1 = 50756,
840 ICC_AP0R1_EL1 = 50757,
841 ICC_AP0R2_EL1 = 50758,
842 ICC_AP0R3_EL1 = 50759,
843 ICC_AP1R0_EL1 = 50760,
844 ICC_AP1R1_EL1 = 50761,
845 ICC_AP1R2_EL1 = 50762,
846 ICC_AP1R3_EL1 = 50763,
847 ICH_AP0R0_EL2 = 58944,
848 ICH_AP0R1_EL2 = 58945,
849 ICH_AP0R2_EL2 = 58946,
850 ICH_AP0R3_EL2 = 58947,
851 ICH_AP1R0_EL2 = 58952,
852 ICH_AP1R1_EL2 = 58953,
853 ICH_AP1R2_EL2 = 58954,
854 ICH_AP1R3_EL2 = 58955,
855 ICH_HCR_EL2 = 58968,
856 ICH_MISR_EL2 = 58970,
857 ICH_VMCR_EL2 = 58975,
858 ICH_LR0_EL2 = 58976,
859 ICH_LR1_EL2 = 58977,
860 ICH_LR2_EL2 = 58978,
861 ICH_LR3_EL2 = 58979,
862 ICH_LR4_EL2 = 58980,
863 ICH_LR5_EL2 = 58981,
864 ICH_LR6_EL2 = 58982,
865 ICH_LR7_EL2 = 58983,
866 ICH_LR8_EL2 = 58984,
867 ICH_LR9_EL2 = 58985,
868 ICH_LR10_EL2 = 58986,
869 ICH_LR11_EL2 = 58987,
870 ICH_LR12_EL2 = 58988,
871 ICH_LR13_EL2 = 58989,
872 ICH_LR14_EL2 = 58990,
873 ICH_LR15_EL2 = 58991,
874 VSCTLR_EL2 = 57600,
875 MPUIR_EL1 = 49156,
876 MPUIR_EL2 = 57348,
877 PRENR_EL1 = 49929,
878 PRENR_EL2 = 58121,
879 PRSELR_EL1 = 49937,
880 PRSELR_EL2 = 58129,
881 PRBAR_EL1 = 49984,
882 PRBAR_EL2 = 58176,
883 PRLAR_EL1 = 49985,
884 PRLAR_EL2 = 58177,
885 PRBAR1_EL1 = 49988,
886 PRLAR1_EL1 = 49989,
887 PRBAR1_EL2 = 58180,
888 PRLAR1_EL2 = 58181,
889 PRBAR2_EL1 = 49992,
890 PRLAR2_EL1 = 49993,
891 PRBAR2_EL2 = 58184,
892 PRLAR2_EL2 = 58185,
893 PRBAR3_EL1 = 49996,
894 PRLAR3_EL1 = 49997,
895 PRBAR3_EL2 = 58188,
896 PRLAR3_EL2 = 58189,
897 PRBAR4_EL1 = 50000,
898 PRLAR4_EL1 = 50001,
899 PRBAR4_EL2 = 58192,
900 PRLAR4_EL2 = 58193,
901 PRBAR5_EL1 = 50004,
902 PRLAR5_EL1 = 50005,
903 PRBAR5_EL2 = 58196,
904 PRLAR5_EL2 = 58197,
905 PRBAR6_EL1 = 50008,
906 PRLAR6_EL1 = 50009,
907 PRBAR6_EL2 = 58200,
908 PRLAR6_EL2 = 58201,
909 PRBAR7_EL1 = 50012,
910 PRLAR7_EL1 = 50013,
911 PRBAR7_EL2 = 58204,
912 PRLAR7_EL2 = 58205,
913 PRBAR8_EL1 = 50016,
914 PRLAR8_EL1 = 50017,
915 PRBAR8_EL2 = 58208,
916 PRLAR8_EL2 = 58209,
917 PRBAR9_EL1 = 50020,
918 PRLAR9_EL1 = 50021,
919 PRBAR9_EL2 = 58212,
920 PRLAR9_EL2 = 58213,
921 PRBAR10_EL1 = 50024,
922 PRLAR10_EL1 = 50025,
923 PRBAR10_EL2 = 58216,
924 PRLAR10_EL2 = 58217,
925 PRBAR11_EL1 = 50028,
926 PRLAR11_EL1 = 50029,
927 PRBAR11_EL2 = 58220,
928 PRLAR11_EL2 = 58221,
929 PRBAR12_EL1 = 50032,
930 PRLAR12_EL1 = 50033,
931 PRBAR12_EL2 = 58224,
932 PRLAR12_EL2 = 58225,
933 PRBAR13_EL1 = 50036,
934 PRLAR13_EL1 = 50037,
935 PRBAR13_EL2 = 58228,
936 PRLAR13_EL2 = 58229,
937 PRBAR14_EL1 = 50040,
938 PRLAR14_EL1 = 50041,
939 PRBAR14_EL2 = 58232,
940 PRLAR14_EL2 = 58233,
941 PRBAR15_EL1 = 50044,
942 PRLAR15_EL1 = 50045,
943 PRBAR15_EL2 = 58236,
944 PRLAR15_EL2 = 58237,
945 PAN = 49683,
946 LORSA_EL1 = 50464,
947 LOREA_EL1 = 50465,
948 LORN_EL1 = 50466,
949 LORC_EL1 = 50467,
950 TTBR1_EL2 = 57601,
951 CNTHV_TVAL_EL2 = 59160,
952 CNTHV_CVAL_EL2 = 59162,
953 CNTHV_CTL_EL2 = 59161,
954 SCTLR_EL12 = 59520,
955 CPACR_EL12 = 59522,
956 TTBR0_EL12 = 59648,
957 TTBR1_EL12 = 59649,
958 TCR_EL12 = 59650,
959 AFSR0_EL12 = 60040,
960 AFSR1_EL12 = 60041,
961 ESR_EL12 = 60048,
962 FAR_EL12 = 60160,
963 MAIR_EL12 = 60688,
964 AMAIR_EL12 = 60696,
965 VBAR_EL12 = 60928,
966 CONTEXTIDR_EL12 = 61057,
967 CNTKCTL_EL12 = 61192,
968 CNTP_TVAL_EL02 = 61200,
969 CNTP_CTL_EL02 = 61201,
970 CNTP_CVAL_EL02 = 61202,
971 CNTV_TVAL_EL02 = 61208,
972 CNTV_CTL_EL02 = 61209,
973 CNTV_CVAL_EL02 = 61210,
974 SPSR_EL12 = 59904,
975 ELR_EL12 = 59905,
976 CONTEXTIDR_EL2 = 59009,
977 UAO = 49684,
978 PMBLIMITR_EL1 = 50384,
979 PMBPTR_EL1 = 50385,
980 PMBSR_EL1 = 50387,
981 PMBIDR_EL1 = 50391,
982 PMSCR_EL2 = 58568,
983 PMSCR_EL12 = 60616,
984 PMSCR_EL1 = 50376,
985 PMSICR_EL1 = 50378,
986 PMSIRR_EL1 = 50379,
987 PMSFCR_EL1 = 50380,
988 PMSEVFR_EL1 = 50381,
989 PMSLATFR_EL1 = 50382,
990 PMSIDR_EL1 = 50383,
991 ERRSELR_EL1 = 49817,
992 ERXCTLR_EL1 = 49825,
993 ERXSTATUS_EL1 = 49826,
994 ERXADDR_EL1 = 49827,
995 ERXMISC0_EL1 = 49832,
996 ERXMISC1_EL1 = 49833,
997 DISR_EL1 = 50697,
998 VDISR_EL2 = 58889,
999 VSESR_EL2 = 58003,
1000 APIAKeyLo_EL1 = 49416,
1001 APIAKeyHi_EL1 = 49417,
1002 APIBKeyLo_EL1 = 49418,
1003 APIBKeyHi_EL1 = 49419,
1004 APDAKeyLo_EL1 = 49424,
1005 APDAKeyHi_EL1 = 49425,
1006 APDBKeyLo_EL1 = 49426,
1007 APDBKeyHi_EL1 = 49427,
1008 APGAKeyLo_EL1 = 49432,
1009 APGAKeyHi_EL1 = 49433,
1010 VSTCR_EL2 = 57650,
1011 VSTTBR_EL2 = 57648,
1012 CNTHVS_TVAL_EL2 = 59168,
1013 CNTHVS_CVAL_EL2 = 59170,
1014 CNTHVS_CTL_EL2 = 59169,
1015 CNTHPS_TVAL_EL2 = 59176,
1016 CNTHPS_CVAL_EL2 = 59178,
1017 CNTHPS_CTL_EL2 = 59177,
1018 SDER32_EL2 = 57497,
1019 ERXPFGCTL_EL1 = 49829,
1020 ERXPFGCDN_EL1 = 49830,
1021 ERXMISC2_EL1 = 49834,
1022 ERXMISC3_EL1 = 49835,
1023 ERXPFGF_EL1 = 49828,
1024 MPAMVPMV_EL2 = 58657,
1025 MPAMVPM0_EL2 = 58672,
1026 MPAMVPM1_EL2 = 58673,
1027 MPAMVPM2_EL2 = 58674,
1028 MPAMVPM3_EL2 = 58675,
1029 MPAMVPM4_EL2 = 58676,
1030 MPAMVPM5_EL2 = 58677,
1031 MPAMVPM6_EL2 = 58678,
1032 MPAMVPM7_EL2 = 58679,
1033 AMCR_EL0 = 56976,
1034 AMCFGR_EL0 = 56977,
1035 AMCGCR_EL0 = 56978,
1036 AMUSERENR_EL0 = 56979,
1037 AMCNTENCLR0_EL0 = 56980,
1038 AMCNTENSET0_EL0 = 56981,
1039 AMEVCNTR00_EL0 = 56992,
1040 AMEVCNTR01_EL0 = 56993,
1041 AMEVCNTR02_EL0 = 56994,
1042 AMEVCNTR03_EL0 = 56995,
1043 AMEVTYPER00_EL0 = 57008,
1044 AMEVTYPER01_EL0 = 57009,
1045 AMEVTYPER02_EL0 = 57010,
1046 AMEVTYPER03_EL0 = 57011,
1047 AMCNTENCLR1_EL0 = 56984,
1048 AMCNTENSET1_EL0 = 56985,
1049 AMEVCNTR10_EL0 = 57056,
1050 AMEVCNTR11_EL0 = 57057,
1051 AMEVCNTR12_EL0 = 57058,
1052 AMEVCNTR13_EL0 = 57059,
1053 AMEVCNTR14_EL0 = 57060,
1054 AMEVCNTR15_EL0 = 57061,
1055 AMEVCNTR16_EL0 = 57062,
1056 AMEVCNTR17_EL0 = 57063,
1057 AMEVCNTR18_EL0 = 57064,
1058 AMEVCNTR19_EL0 = 57065,
1059 AMEVCNTR110_EL0 = 57066,
1060 AMEVCNTR111_EL0 = 57067,
1061 AMEVCNTR112_EL0 = 57068,
1062 AMEVCNTR113_EL0 = 57069,
1063 AMEVCNTR114_EL0 = 57070,
1064 AMEVCNTR115_EL0 = 57071,
1065 AMEVTYPER10_EL0 = 57072,
1066 AMEVTYPER11_EL0 = 57073,
1067 AMEVTYPER12_EL0 = 57074,
1068 AMEVTYPER13_EL0 = 57075,
1069 AMEVTYPER14_EL0 = 57076,
1070 AMEVTYPER15_EL0 = 57077,
1071 AMEVTYPER16_EL0 = 57078,
1072 AMEVTYPER17_EL0 = 57079,
1073 AMEVTYPER18_EL0 = 57080,
1074 AMEVTYPER19_EL0 = 57081,
1075 AMEVTYPER110_EL0 = 57082,
1076 AMEVTYPER111_EL0 = 57083,
1077 AMEVTYPER112_EL0 = 57084,
1078 AMEVTYPER113_EL0 = 57085,
1079 AMEVTYPER114_EL0 = 57086,
1080 AMEVTYPER115_EL0 = 57087,
1081 TRFCR_EL1 = 49297,
1082 TRFCR_EL2 = 57489,
1083 TRFCR_EL12 = 59537,
1084 DIT = 55829,
1085 VNCR_EL2 = 57616,
1086 ZCR_EL1 = 49296,
1087 ZCR_EL2 = 57488,
1088 ZCR_EL3 = 61584,
1089 ZCR_EL12 = 59536,
1090 SSBS = 55830,
1091 TCO = 55831,
1092 GCR_EL1 = 49286,
1093 RGSR_EL1 = 49285,
1094 TFSR_EL1 = 49840,
1095 TFSR_EL2 = 58032,
1096 TFSR_EL3 = 62128,
1097 TFSR_EL12 = 60080,
1098 TFSRE0_EL1 = 49841,
1099 GMID_EL1 = 51204,
1100 TRCRSR = 34896,
1101 TRCEXTINSELR0 = 34884,
1102 TRCEXTINSELR1 = 34892,
1103 TRCEXTINSELR2 = 34900,
1104 TRCEXTINSELR3 = 34908,
1105 TRBLIMITR_EL1 = 50392,
1106 TRBPTR_EL1 = 50393,
1107 TRBBASER_EL1 = 50394,
1108 TRBSR_EL1 = 50395,
1109 TRBMAR_EL1 = 50396,
1110 TRBMPAM_EL1 = 50397,
1111 TRBTRG_EL1 = 50398,
1112 TRBIDR_EL1 = 50399,
1113 AMCG1IDR_EL0 = 56982,
1114 AMEVCNTVOFF00_EL2 = 59072,
1115 AMEVCNTVOFF10_EL2 = 59088,
1116 AMEVCNTVOFF01_EL2 = 59073,
1117 AMEVCNTVOFF11_EL2 = 59089,
1118 AMEVCNTVOFF02_EL2 = 59074,
1119 AMEVCNTVOFF12_EL2 = 59090,
1120 AMEVCNTVOFF03_EL2 = 59075,
1121 AMEVCNTVOFF13_EL2 = 59091,
1122 AMEVCNTVOFF04_EL2 = 59076,
1123 AMEVCNTVOFF14_EL2 = 59092,
1124 AMEVCNTVOFF05_EL2 = 59077,
1125 AMEVCNTVOFF15_EL2 = 59093,
1126 AMEVCNTVOFF06_EL2 = 59078,
1127 AMEVCNTVOFF16_EL2 = 59094,
1128 AMEVCNTVOFF07_EL2 = 59079,
1129 AMEVCNTVOFF17_EL2 = 59095,
1130 AMEVCNTVOFF08_EL2 = 59080,
1131 AMEVCNTVOFF18_EL2 = 59096,
1132 AMEVCNTVOFF09_EL2 = 59081,
1133 AMEVCNTVOFF19_EL2 = 59097,
1134 AMEVCNTVOFF010_EL2 = 59082,
1135 AMEVCNTVOFF110_EL2 = 59098,
1136 AMEVCNTVOFF011_EL2 = 59083,
1137 AMEVCNTVOFF111_EL2 = 59099,
1138 AMEVCNTVOFF012_EL2 = 59084,
1139 AMEVCNTVOFF112_EL2 = 59100,
1140 AMEVCNTVOFF013_EL2 = 59085,
1141 AMEVCNTVOFF113_EL2 = 59101,
1142 AMEVCNTVOFF014_EL2 = 59086,
1143 AMEVCNTVOFF114_EL2 = 59102,
1144 AMEVCNTVOFF015_EL2 = 59087,
1145 AMEVCNTVOFF115_EL2 = 59103,
1146 HFGRTR_EL2 = 57484,
1147 HFGWTR_EL2 = 57485,
1148 HFGITR_EL2 = 57486,
1149 HDFGRTR_EL2 = 57740,
1150 HDFGWTR_EL2 = 57741,
1151 HAFGRTR_EL2 = 57742,
1152 HDFGRTR2_EL2 = 57736,
1153 HDFGWTR2_EL2 = 57737,
1154 HFGRTR2_EL2 = 57738,
1155 HFGWTR2_EL2 = 57739,
1156 HFGITR2_EL2 = 57743,
1157 CNTSCALE_EL2 = 59140,
1158 CNTISCALE_EL2 = 59141,
1159 CNTPOFF_EL2 = 59142,
1160 CNTVFRQ_EL2 = 59143,
1161 CNTPCTSS_EL0 = 57093,
1162 CNTVCTSS_EL0 = 57094,
1163 ACCDATA_EL1 = 50821,
1164 BRBCR_EL1 = 35968,
1165 BRBCR_EL12 = 44160,
1166 BRBCR_EL2 = 42112,
1167 BRBFCR_EL1 = 35969,
1168 BRBIDR0_EL1 = 35984,
1169 BRBINFINJ_EL1 = 35976,
1170 BRBSRCINJ_EL1 = 35977,
1171 BRBTGTINJ_EL1 = 35978,
1172 BRBTS_EL1 = 35970,
1173 BRBINF0_EL1 = 35840,
1174 BRBSRC0_EL1 = 35841,
1175 BRBTGT0_EL1 = 35842,
1176 BRBINF1_EL1 = 35848,
1177 BRBSRC1_EL1 = 35849,
1178 BRBTGT1_EL1 = 35850,
1179 BRBINF2_EL1 = 35856,
1180 BRBSRC2_EL1 = 35857,
1181 BRBTGT2_EL1 = 35858,
1182 BRBINF3_EL1 = 35864,
1183 BRBSRC3_EL1 = 35865,
1184 BRBTGT3_EL1 = 35866,
1185 BRBINF4_EL1 = 35872,
1186 BRBSRC4_EL1 = 35873,
1187 BRBTGT4_EL1 = 35874,
1188 BRBINF5_EL1 = 35880,
1189 BRBSRC5_EL1 = 35881,
1190 BRBTGT5_EL1 = 35882,
1191 BRBINF6_EL1 = 35888,
1192 BRBSRC6_EL1 = 35889,
1193 BRBTGT6_EL1 = 35890,
1194 BRBINF7_EL1 = 35896,
1195 BRBSRC7_EL1 = 35897,
1196 BRBTGT7_EL1 = 35898,
1197 BRBINF8_EL1 = 35904,
1198 BRBSRC8_EL1 = 35905,
1199 BRBTGT8_EL1 = 35906,
1200 BRBINF9_EL1 = 35912,
1201 BRBSRC9_EL1 = 35913,
1202 BRBTGT9_EL1 = 35914,
1203 BRBINF10_EL1 = 35920,
1204 BRBSRC10_EL1 = 35921,
1205 BRBTGT10_EL1 = 35922,
1206 BRBINF11_EL1 = 35928,
1207 BRBSRC11_EL1 = 35929,
1208 BRBTGT11_EL1 = 35930,
1209 BRBINF12_EL1 = 35936,
1210 BRBSRC12_EL1 = 35937,
1211 BRBTGT12_EL1 = 35938,
1212 BRBINF13_EL1 = 35944,
1213 BRBSRC13_EL1 = 35945,
1214 BRBTGT13_EL1 = 35946,
1215 BRBINF14_EL1 = 35952,
1216 BRBSRC14_EL1 = 35953,
1217 BRBTGT14_EL1 = 35954,
1218 BRBINF15_EL1 = 35960,
1219 BRBSRC15_EL1 = 35961,
1220 BRBTGT15_EL1 = 35962,
1221 BRBINF16_EL1 = 35844,
1222 BRBSRC16_EL1 = 35845,
1223 BRBTGT16_EL1 = 35846,
1224 BRBINF17_EL1 = 35852,
1225 BRBSRC17_EL1 = 35853,
1226 BRBTGT17_EL1 = 35854,
1227 BRBINF18_EL1 = 35860,
1228 BRBSRC18_EL1 = 35861,
1229 BRBTGT18_EL1 = 35862,
1230 BRBINF19_EL1 = 35868,
1231 BRBSRC19_EL1 = 35869,
1232 BRBTGT19_EL1 = 35870,
1233 BRBINF20_EL1 = 35876,
1234 BRBSRC20_EL1 = 35877,
1235 BRBTGT20_EL1 = 35878,
1236 BRBINF21_EL1 = 35884,
1237 BRBSRC21_EL1 = 35885,
1238 BRBTGT21_EL1 = 35886,
1239 BRBINF22_EL1 = 35892,
1240 BRBSRC22_EL1 = 35893,
1241 BRBTGT22_EL1 = 35894,
1242 BRBINF23_EL1 = 35900,
1243 BRBSRC23_EL1 = 35901,
1244 BRBTGT23_EL1 = 35902,
1245 BRBINF24_EL1 = 35908,
1246 BRBSRC24_EL1 = 35909,
1247 BRBTGT24_EL1 = 35910,
1248 BRBINF25_EL1 = 35916,
1249 BRBSRC25_EL1 = 35917,
1250 BRBTGT25_EL1 = 35918,
1251 BRBINF26_EL1 = 35924,
1252 BRBSRC26_EL1 = 35925,
1253 BRBTGT26_EL1 = 35926,
1254 BRBINF27_EL1 = 35932,
1255 BRBSRC27_EL1 = 35933,
1256 BRBTGT27_EL1 = 35934,
1257 BRBINF28_EL1 = 35940,
1258 BRBSRC28_EL1 = 35941,
1259 BRBTGT28_EL1 = 35942,
1260 BRBINF29_EL1 = 35948,
1261 BRBSRC29_EL1 = 35949,
1262 BRBTGT29_EL1 = 35950,
1263 BRBINF30_EL1 = 35956,
1264 BRBSRC30_EL1 = 35957,
1265 BRBTGT30_EL1 = 35958,
1266 BRBINF31_EL1 = 35964,
1267 BRBSRC31_EL1 = 35965,
1268 BRBTGT31_EL1 = 35966,
1269 PMSNEVFR_EL1 = 50377,
1270 SMCR_EL1 = 49302,
1271 SMCR_EL2 = 57494,
1272 SMCR_EL3 = 61590,
1273 SMCR_EL12 = 59542,
1274 SVCR = 55826,
1275 SMPRI_EL1 = 49300,
1276 SMPRIMAP_EL2 = 57493,
1277 SMIDR_EL1 = 51206,
1278 TPIDR2_EL0 = 56965,
1279 MPAMSM_EL1 = 50475,
1280 ALLINT = 49688,
1281 ICC_NMIAR1_EL1 = 50765,
1282 GCSCR_EL1 = 49448,
1283 GCSPR_EL1 = 49449,
1284 GCSCRE0_EL1 = 49450,
1285 GCSPR_EL0 = 55593,
1286 GCSCR_EL2 = 57640,
1287 GCSPR_EL2 = 57641,
1288 GCSCR_EL12 = 59688,
1289 GCSPR_EL12 = 59689,
1290 GCSCR_EL3 = 61736,
1291 GCSPR_EL3 = 61737,
1292 AMAIR2_EL1 = 50457,
1293 AMAIR2_EL12 = 60697,
1294 AMAIR2_EL2 = 58649,
1295 AMAIR2_EL3 = 62745,
1296 MAIR2_EL1 = 50449,
1297 MAIR2_EL12 = 60689,
1298 MAIR2_EL2 = 58633,
1299 MAIR2_EL3 = 62729,
1300 PIRE0_EL1 = 50450,
1301 PIRE0_EL12 = 60690,
1302 PIRE0_EL2 = 58642,
1303 PIR_EL1 = 50451,
1304 PIR_EL12 = 60691,
1305 PIR_EL2 = 58643,
1306 PIR_EL3 = 62739,
1307 S2PIR_EL2 = 58645,
1308 POR_EL0 = 56596,
1309 POR_EL1 = 50452,
1310 POR_EL12 = 60692,
1311 POR_EL2 = 58644,
1312 POR_EL3 = 62740,
1313 S2POR_EL1 = 50453,
1314 SCTLR2_EL1 = 49283,
1315 SCTLR2_EL12 = 59523,
1316 SCTLR2_EL2 = 57475,
1317 SCTLR2_EL3 = 61571,
1318 TCR2_EL1 = 49411,
1319 TCR2_EL12 = 59651,
1320 TCR2_EL2 = 57603,
1321 RCWMASK_EL1 = 50822,
1322 RCWSMASK_EL1 = 50819,
1323 MDSELR_EL1 = 32802,
1324 PMUACR_EL1 = 50420,
1325 PMCCNTSVR_EL1 = 34655,
1326 PMICNTSVR_EL1 = 34656,
1327 PMSSCR_EL1 = 50411,
1328 PMEVCNTSVR0_EL1 = 34624,
1329 PMEVCNTSVR1_EL1 = 34625,
1330 PMEVCNTSVR2_EL1 = 34626,
1331 PMEVCNTSVR3_EL1 = 34627,
1332 PMEVCNTSVR4_EL1 = 34628,
1333 PMEVCNTSVR5_EL1 = 34629,
1334 PMEVCNTSVR6_EL1 = 34630,
1335 PMEVCNTSVR7_EL1 = 34631,
1336 PMEVCNTSVR8_EL1 = 34632,
1337 PMEVCNTSVR9_EL1 = 34633,
1338 PMEVCNTSVR10_EL1 = 34634,
1339 PMEVCNTSVR11_EL1 = 34635,
1340 PMEVCNTSVR12_EL1 = 34636,
1341 PMEVCNTSVR13_EL1 = 34637,
1342 PMEVCNTSVR14_EL1 = 34638,
1343 PMEVCNTSVR15_EL1 = 34639,
1344 PMEVCNTSVR16_EL1 = 34640,
1345 PMEVCNTSVR17_EL1 = 34641,
1346 PMEVCNTSVR18_EL1 = 34642,
1347 PMEVCNTSVR19_EL1 = 34643,
1348 PMEVCNTSVR20_EL1 = 34644,
1349 PMEVCNTSVR21_EL1 = 34645,
1350 PMEVCNTSVR22_EL1 = 34646,
1351 PMEVCNTSVR23_EL1 = 34647,
1352 PMEVCNTSVR24_EL1 = 34648,
1353 PMEVCNTSVR25_EL1 = 34649,
1354 PMEVCNTSVR26_EL1 = 34650,
1355 PMEVCNTSVR27_EL1 = 34651,
1356 PMEVCNTSVR28_EL1 = 34652,
1357 PMEVCNTSVR29_EL1 = 34653,
1358 PMEVCNTSVR30_EL1 = 34654,
1359 PMICNTR_EL0 = 56480,
1360 PMICFILTR_EL0 = 56496,
1361 PMZR_EL0 = 56556,
1362 PMECR_EL1 = 50421,
1363 PMIAR_EL1 = 50423,
1364 SPMACCESSR_EL1 = 34027,
1365 SPMACCESSR_EL12 = 44267,
1366 SPMACCESSR_EL2 = 42219,
1367 SPMACCESSR_EL3 = 46315,
1368 SPMCNTENCLR_EL0 = 40162,
1369 SPMCNTENSET_EL0 = 40161,
1370 SPMCR_EL0 = 40160,
1371 SPMDEVAFF_EL1 = 34030,
1372 SPMDEVARCH_EL1 = 34029,
1373 SPMEVCNTR0_EL0 = 40704,
1374 SPMEVFILT2R0_EL0 = 40752,
1375 SPMEVFILTR0_EL0 = 40736,
1376 SPMEVTYPER0_EL0 = 40720,
1377 SPMEVCNTR1_EL0 = 40705,
1378 SPMEVFILT2R1_EL0 = 40753,
1379 SPMEVFILTR1_EL0 = 40737,
1380 SPMEVTYPER1_EL0 = 40721,
1381 SPMEVCNTR2_EL0 = 40706,
1382 SPMEVFILT2R2_EL0 = 40754,
1383 SPMEVFILTR2_EL0 = 40738,
1384 SPMEVTYPER2_EL0 = 40722,
1385 SPMEVCNTR3_EL0 = 40707,
1386 SPMEVFILT2R3_EL0 = 40755,
1387 SPMEVFILTR3_EL0 = 40739,
1388 SPMEVTYPER3_EL0 = 40723,
1389 SPMEVCNTR4_EL0 = 40708,
1390 SPMEVFILT2R4_EL0 = 40756,
1391 SPMEVFILTR4_EL0 = 40740,
1392 SPMEVTYPER4_EL0 = 40724,
1393 SPMEVCNTR5_EL0 = 40709,
1394 SPMEVFILT2R5_EL0 = 40757,
1395 SPMEVFILTR5_EL0 = 40741,
1396 SPMEVTYPER5_EL0 = 40725,
1397 SPMEVCNTR6_EL0 = 40710,
1398 SPMEVFILT2R6_EL0 = 40758,
1399 SPMEVFILTR6_EL0 = 40742,
1400 SPMEVTYPER6_EL0 = 40726,
1401 SPMEVCNTR7_EL0 = 40711,
1402 SPMEVFILT2R7_EL0 = 40759,
1403 SPMEVFILTR7_EL0 = 40743,
1404 SPMEVTYPER7_EL0 = 40727,
1405 SPMEVCNTR8_EL0 = 40712,
1406 SPMEVFILT2R8_EL0 = 40760,
1407 SPMEVFILTR8_EL0 = 40744,
1408 SPMEVTYPER8_EL0 = 40728,
1409 SPMEVCNTR9_EL0 = 40713,
1410 SPMEVFILT2R9_EL0 = 40761,
1411 SPMEVFILTR9_EL0 = 40745,
1412 SPMEVTYPER9_EL0 = 40729,
1413 SPMEVCNTR10_EL0 = 40714,
1414 SPMEVFILT2R10_EL0 = 40762,
1415 SPMEVFILTR10_EL0 = 40746,
1416 SPMEVTYPER10_EL0 = 40730,
1417 SPMEVCNTR11_EL0 = 40715,
1418 SPMEVFILT2R11_EL0 = 40763,
1419 SPMEVFILTR11_EL0 = 40747,
1420 SPMEVTYPER11_EL0 = 40731,
1421 SPMEVCNTR12_EL0 = 40716,
1422 SPMEVFILT2R12_EL0 = 40764,
1423 SPMEVFILTR12_EL0 = 40748,
1424 SPMEVTYPER12_EL0 = 40732,
1425 SPMEVCNTR13_EL0 = 40717,
1426 SPMEVFILT2R13_EL0 = 40765,
1427 SPMEVFILTR13_EL0 = 40749,
1428 SPMEVTYPER13_EL0 = 40733,
1429 SPMEVCNTR14_EL0 = 40718,
1430 SPMEVFILT2R14_EL0 = 40766,
1431 SPMEVFILTR14_EL0 = 40750,
1432 SPMEVTYPER14_EL0 = 40734,
1433 SPMEVCNTR15_EL0 = 40719,
1434 SPMEVFILT2R15_EL0 = 40767,
1435 SPMEVFILTR15_EL0 = 40751,
1436 SPMEVTYPER15_EL0 = 40735,
1437 SPMIIDR_EL1 = 34028,
1438 SPMINTENCLR_EL1 = 34034,
1439 SPMINTENSET_EL1 = 34033,
1440 SPMOVSCLR_EL0 = 40163,
1441 SPMOVSSET_EL0 = 40179,
1442 SPMSELR_EL0 = 40165,
1443 SPMCGCR0_EL1 = 34024,
1444 SPMCGCR1_EL1 = 34025,
1445 SPMCFGR_EL1 = 34031,
1446 SPMROOTCR_EL3 = 46327,
1447 SPMSCR_EL1 = 48375,
1448 TRCITEEDCR = 34833,
1449 TRCITECR_EL1 = 49299,
1450 TRCITECR_EL12 = 59539,
1451 TRCITECR_EL2 = 57491,
1452 PMSDSFR_EL1 = 50388,
1453 ERXGSR_EL1 = 49818,
1454 PFAR_EL1 = 49925,
1455 PFAR_EL12 = 60165,
1456 PFAR_EL2 = 58117,
1457 PM = 49689,
1458 ID_AA64FPFR0_EL1 = 49191,
1459 FPMR = 55842,
1460 MDSTEPOP_EL1 = 32810,
1461 SPMZR_EL0 = 40164,
1462 VDISR_EL3 = 62985,
1463 VSESR_EL3 = 62099,
1464 HDBSSBR_EL2 = 57626,
1465 HDBSSPROD_EL2 = 57627,
1466 HACDBSBR_EL2 = 57628,
1467 HACDBSCONS_EL2 = 57629,
1468 FGWTE3_EL3 = 61581,
1469 MPAMBWIDR_EL1 = 50469,
1470 MPAMBW3_EL3 = 62764,
1471 MPAMBW2_EL2 = 58668,
1472 MPAMBW1_EL1 = 50476,
1473 MPAMBW1_EL12 = 60716,
1474 MPAMBW0_EL1 = 50477,
1475 MPAMBWCAP_EL2 = 58670,
1476 MPAMBWSM_EL1 = 50479,
1477 MPAM0_EL1 = 50473,
1478 MPAM1_EL1 = 50472,
1479 MPAM1_EL12 = 60712,
1480 MPAM2_EL2 = 58664,
1481 MPAM3_EL3 = 62760,
1482 MPAMHCR_EL2 = 58656,
1483 MPAMIDR_EL1 = 50468,
1484 MPAMCTL_EL1 = 50474,
1485 MPAMCTL_EL12 = 60714,
1486 MPAMCTL_EL2 = 58666,
1487 MPAMCTL_EL3 = 62762,
1488 SCR2_EL3 = 61586,
1489 SCTLRMASK_EL1 = 49312,
1490 SCTLRMASK_EL2 = 57504,
1491 SCTLRMASK_EL12 = 59552,
1492 CPACRMASK_EL1 = 49314,
1493 CPTRMASK_EL2 = 57506,
1494 CPACRMASK_EL12 = 59554,
1495 SCTLR2MASK_EL1 = 49315,
1496 SCTLR2MASK_EL2 = 57507,
1497 SCTLR2MASK_EL12 = 59555,
1498 CPACRALIAS_EL1 = 49316,
1499 SCTLRALIAS_EL1 = 49318,
1500 SCTLR2ALIAS_EL1 = 49319,
1501 TCRMASK_EL1 = 49466,
1502 TCRMASK_EL2 = 57658,
1503 TCRMASK_EL12 = 59706,
1504 TCR2MASK_EL1 = 49467,
1505 TCR2MASK_EL2 = 57659,
1506 TCR2MASK_EL12 = 59707,
1507 TCRALIAS_EL1 = 49470,
1508 TCR2ALIAS_EL1 = 49471,
1509 ACTLRMASK_EL1 = 49313,
1510 ACTLRMASK_EL2 = 57505,
1511 ACTLRMASK_EL12 = 59553,
1512 ACTLRALIAS_EL1 = 49317,
1513 GPCBW_EL3 = 61709,
1514 PMBMAR_EL1 = 50389,
1515 PMBSR_EL12 = 60627,
1516 PMBSR_EL2 = 58579,
1517 PMBSR_EL3 = 62675,
1518 TRBSR_EL12 = 60635,
1519 TRBSR_EL2 = 58587,
1520 TRBSR_EL3 = 62683,
1521 VTLBID0_EL2 = 57664,
1522 VTLBID1_EL2 = 57665,
1523 VTLBID2_EL2 = 57666,
1524 VTLBID3_EL2 = 57667,
1525 VTLBIDOS0_EL2 = 57672,
1526 VTLBIDOS1_EL2 = 57673,
1527 VTLBIDOS2_EL2 = 57674,
1528 VTLBIDOS3_EL2 = 57675,
1529 TLBIDIDR_EL1 = 50470,
1530 ICC_APR_EL1 = 52736,
1531 ICC_APR_EL3 = 63040,
1532 ICC_CR0_EL1 = 52737,
1533 ICC_CR0_EL3 = 63048,
1534 ICC_DOMHPPIR_EL3 = 63042,
1535 ICC_HAPR_EL1 = 52739,
1536 ICC_HPPIR_EL1 = 50771,
1537 ICC_HPPIR_EL3 = 63049,
1538 ICC_IAFFIDR_EL1 = 50773,
1539 ICC_ICSR_EL1 = 50772,
1540 ICC_IDR0_EL1 = 50770,
1541 ICC_PCR_EL1 = 52738,
1542 ICC_PCR_EL3 = 63041,
1543 ICV_APR_EL1 = 52736,
1544 ICV_CR0_EL1 = 52737,
1545 ICV_HAPR_EL1 = 52739,
1546 ICV_HPPIR_EL1 = 50771,
1547 ICV_PCR_EL1 = 52738,
1548 ICC_PPI_DOMAINR0_EL3 = 63044,
1549 ICC_PPI_DOMAINR1_EL3 = 63045,
1550 ICC_PPI_DOMAINR2_EL3 = 63046,
1551 ICC_PPI_DOMAINR3_EL3 = 63047,
1552 ICC_PPI_PRIORITYR0_EL1 = 50800,
1553 ICC_PPI_PRIORITYR1_EL1 = 50801,
1554 ICC_PPI_PRIORITYR2_EL1 = 50802,
1555 ICC_PPI_PRIORITYR3_EL1 = 50803,
1556 ICC_PPI_PRIORITYR4_EL1 = 50804,
1557 ICC_PPI_PRIORITYR5_EL1 = 50805,
1558 ICC_PPI_PRIORITYR6_EL1 = 50806,
1559 ICC_PPI_PRIORITYR7_EL1 = 50807,
1560 ICC_PPI_PRIORITYR8_EL1 = 50808,
1561 ICC_PPI_PRIORITYR9_EL1 = 50809,
1562 ICC_PPI_PRIORITYR10_EL1 = 50810,
1563 ICC_PPI_PRIORITYR11_EL1 = 50811,
1564 ICC_PPI_PRIORITYR12_EL1 = 50812,
1565 ICC_PPI_PRIORITYR13_EL1 = 50813,
1566 ICC_PPI_PRIORITYR14_EL1 = 50814,
1567 ICC_PPI_PRIORITYR15_EL1 = 50815,
1568 ICC_PPI_CACTIVER0_EL1 = 50792,
1569 ICC_PPI_CPENDR0_EL1 = 50796,
1570 ICC_PPI_ENABLER0_EL1 = 50774,
1571 ICC_PPI_SACTIVER0_EL1 = 50794,
1572 ICC_PPI_SPENDR0_EL1 = 50798,
1573 ICC_PPI_HMR0_EL1 = 50768,
1574 ICC_PPI_CACTIVER1_EL1 = 50793,
1575 ICC_PPI_CPENDR1_EL1 = 50797,
1576 ICC_PPI_ENABLER1_EL1 = 50775,
1577 ICC_PPI_SACTIVER1_EL1 = 50795,
1578 ICC_PPI_SPENDR1_EL1 = 50799,
1579 ICC_PPI_HMR1_EL1 = 50769,
1580 ICV_PPI_CACTIVER0_EL1 = 50792,
1581 ICV_PPI_CPENDR0_EL1 = 50796,
1582 ICV_PPI_ENABLER0_EL1 = 50774,
1583 ICV_PPI_SACTIVER0_EL1 = 50794,
1584 ICV_PPI_SPENDR0_EL1 = 50798,
1585 ICV_PPI_HMR0_EL1 = 50768,
1586 ICV_PPI_CACTIVER1_EL1 = 50793,
1587 ICV_PPI_CPENDR1_EL1 = 50797,
1588 ICV_PPI_ENABLER1_EL1 = 50775,
1589 ICV_PPI_SACTIVER1_EL1 = 50795,
1590 ICV_PPI_SPENDR1_EL1 = 50799,
1591 ICV_PPI_HMR1_EL1 = 50769,
1592 ICV_PPI_PRIORITYR0_EL1 = 50800,
1593 ICV_PPI_PRIORITYR1_EL1 = 50801,
1594 ICV_PPI_PRIORITYR2_EL1 = 50802,
1595 ICV_PPI_PRIORITYR3_EL1 = 50803,
1596 ICV_PPI_PRIORITYR4_EL1 = 50804,
1597 ICV_PPI_PRIORITYR5_EL1 = 50805,
1598 ICV_PPI_PRIORITYR6_EL1 = 50806,
1599 ICV_PPI_PRIORITYR7_EL1 = 50807,
1600 ICV_PPI_PRIORITYR8_EL1 = 50808,
1601 ICV_PPI_PRIORITYR9_EL1 = 50809,
1602 ICV_PPI_PRIORITYR10_EL1 = 50810,
1603 ICV_PPI_PRIORITYR11_EL1 = 50811,
1604 ICV_PPI_PRIORITYR12_EL1 = 50812,
1605 ICV_PPI_PRIORITYR13_EL1 = 50813,
1606 ICV_PPI_PRIORITYR14_EL1 = 50814,
1607 ICV_PPI_PRIORITYR15_EL1 = 50815,
1608 ICH_APR_EL2 = 58948,
1609 ICH_CONTEXTR_EL2 = 58974,
1610 ICH_HFGITR_EL2 = 58959,
1611 ICH_HFGRTR_EL2 = 58956,
1612 ICH_HFGWTR_EL2 = 58958,
1613 ICH_HPPIR_EL2 = 58949,
1614 ICH_VCTLR_EL2 = 58972,
1615 ICH_PPI_ACTIVER0_EL2 = 58966,
1616 ICH_PPI_DVIR0_EL2 = 58960,
1617 ICH_PPI_ENABLER0_EL2 = 58962,
1618 ICH_PPI_HVIR0_EL2 = 58936,
1619 ICH_PPI_PENDR0_EL2 = 58964,
1620 ICH_PPI_ACTIVER1_EL2 = 58967,
1621 ICH_PPI_DVIR1_EL2 = 58961,
1622 ICH_PPI_ENABLER1_EL2 = 58963,
1623 ICH_PPI_HVIR1_EL2 = 58937,
1624 ICH_PPI_PENDR1_EL2 = 58965,
1625 ICH_PPI_PRIORITYR0_EL2 = 58992,
1626 ICH_PPI_PRIORITYR1_EL2 = 58993,
1627 ICH_PPI_PRIORITYR2_EL2 = 58994,
1628 ICH_PPI_PRIORITYR3_EL2 = 58995,
1629 ICH_PPI_PRIORITYR4_EL2 = 58996,
1630 ICH_PPI_PRIORITYR5_EL2 = 58997,
1631 ICH_PPI_PRIORITYR6_EL2 = 58998,
1632 ICH_PPI_PRIORITYR7_EL2 = 58999,
1633 ICH_PPI_PRIORITYR8_EL2 = 59000,
1634 ICH_PPI_PRIORITYR9_EL2 = 59001,
1635 ICH_PPI_PRIORITYR10_EL2 = 59002,
1636 ICH_PPI_PRIORITYR11_EL2 = 59003,
1637 ICH_PPI_PRIORITYR12_EL2 = 59004,
1638 ICH_PPI_PRIORITYR13_EL2 = 59005,
1639 ICH_PPI_PRIORITYR14_EL2 = 59006,
1640 ICH_PPI_PRIORITYR15_EL2 = 59007,
1641 DPOTBR0_EL1 = 49414,
1642 DPOTBR0_EL12 = 59654,
1643 DPOTBR1_EL1 = 49415,
1644 DPOTBR1_EL12 = 59655,
1645 DPOTBR0_EL2 = 57606,
1646 DPOTBR1_EL2 = 57607,
1647 DPOTBR0_EL3 = 61702,
1648 IRTBRU_EL1 = 49412,
1649 IRTBRU_EL12 = 59652,
1650 IRTBRP_EL1 = 49413,
1651 IRTBRP_EL12 = 59653,
1652 IRTBRU_EL2 = 57604,
1653 IRTBRP_EL2 = 57605,
1654 IRTBRP_EL3 = 61701,
1655 TTTBRU_EL1 = 50454,
1656 TTTBRU_EL12 = 60694,
1657 TTTBRP_EL1 = 50455,
1658 TTTBRP_EL12 = 60695,
1659 TTTBRU_EL2 = 58646,
1660 TTTBRP_EL2 = 58647,
1661 TTTBRP_EL3 = 62743,
1662 FGDTP0_EL1 = 49552,
1663 FGDTP0_EL2 = 57744,
1664 FGDTP0_EL12 = 59792,
1665 FGDTP0_EL3 = 61840,
1666 FGDTU0_EL1 = 49568,
1667 FGDTU0_EL2 = 57760,
1668 FGDTU0_EL12 = 59808,
1669 FGDTP1_EL1 = 49553,
1670 FGDTP1_EL2 = 57745,
1671 FGDTP1_EL12 = 59793,
1672 FGDTP1_EL3 = 61841,
1673 FGDTU1_EL1 = 49569,
1674 FGDTU1_EL2 = 57761,
1675 FGDTU1_EL12 = 59809,
1676 FGDTP2_EL1 = 49554,
1677 FGDTP2_EL2 = 57746,
1678 FGDTP2_EL12 = 59794,
1679 FGDTP2_EL3 = 61842,
1680 FGDTU2_EL1 = 49570,
1681 FGDTU2_EL2 = 57762,
1682 FGDTU2_EL12 = 59810,
1683 FGDTP3_EL1 = 49555,
1684 FGDTP3_EL2 = 57747,
1685 FGDTP3_EL12 = 59795,
1686 FGDTP3_EL3 = 61843,
1687 FGDTU3_EL1 = 49571,
1688 FGDTU3_EL2 = 57763,
1689 FGDTU3_EL12 = 59811,
1690 FGDTP4_EL1 = 49556,
1691 FGDTP4_EL2 = 57748,
1692 FGDTP4_EL12 = 59796,
1693 FGDTP4_EL3 = 61844,
1694 FGDTU4_EL1 = 49572,
1695 FGDTU4_EL2 = 57764,
1696 FGDTU4_EL12 = 59812,
1697 FGDTP5_EL1 = 49557,
1698 FGDTP5_EL2 = 57749,
1699 FGDTP5_EL12 = 59797,
1700 FGDTP5_EL3 = 61845,
1701 FGDTU5_EL1 = 49573,
1702 FGDTU5_EL2 = 57765,
1703 FGDTU5_EL12 = 59813,
1704 FGDTP6_EL1 = 49558,
1705 FGDTP6_EL2 = 57750,
1706 FGDTP6_EL12 = 59798,
1707 FGDTP6_EL3 = 61846,
1708 FGDTU6_EL1 = 49574,
1709 FGDTU6_EL2 = 57766,
1710 FGDTU6_EL12 = 59814,
1711 FGDTP7_EL1 = 49559,
1712 FGDTP7_EL2 = 57751,
1713 FGDTP7_EL12 = 59799,
1714 FGDTP7_EL3 = 61847,
1715 FGDTU7_EL1 = 49575,
1716 FGDTU7_EL2 = 57767,
1717 FGDTU7_EL12 = 59815,
1718 FGDTP8_EL1 = 49560,
1719 FGDTP8_EL2 = 57752,
1720 FGDTP8_EL12 = 59800,
1721 FGDTP8_EL3 = 61848,
1722 FGDTU8_EL1 = 49576,
1723 FGDTU8_EL2 = 57768,
1724 FGDTU8_EL12 = 59816,
1725 FGDTP9_EL1 = 49561,
1726 FGDTP9_EL2 = 57753,
1727 FGDTP9_EL12 = 59801,
1728 FGDTP9_EL3 = 61849,
1729 FGDTU9_EL1 = 49577,
1730 FGDTU9_EL2 = 57769,
1731 FGDTU9_EL12 = 59817,
1732 FGDTP10_EL1 = 49562,
1733 FGDTP10_EL2 = 57754,
1734 FGDTP10_EL12 = 59802,
1735 FGDTP10_EL3 = 61850,
1736 FGDTU10_EL1 = 49578,
1737 FGDTU10_EL2 = 57770,
1738 FGDTU10_EL12 = 59818,
1739 FGDTP11_EL1 = 49563,
1740 FGDTP11_EL2 = 57755,
1741 FGDTP11_EL12 = 59803,
1742 FGDTP11_EL3 = 61851,
1743 FGDTU11_EL1 = 49579,
1744 FGDTU11_EL2 = 57771,
1745 FGDTU11_EL12 = 59819,
1746 FGDTP12_EL1 = 49564,
1747 FGDTP12_EL2 = 57756,
1748 FGDTP12_EL12 = 59804,
1749 FGDTP12_EL3 = 61852,
1750 FGDTU12_EL1 = 49580,
1751 FGDTU12_EL2 = 57772,
1752 FGDTU12_EL12 = 59820,
1753 FGDTP13_EL1 = 49565,
1754 FGDTP13_EL2 = 57757,
1755 FGDTP13_EL12 = 59805,
1756 FGDTP13_EL3 = 61853,
1757 FGDTU13_EL1 = 49581,
1758 FGDTU13_EL2 = 57773,
1759 FGDTU13_EL12 = 59821,
1760 FGDTP14_EL1 = 49566,
1761 FGDTP14_EL2 = 57758,
1762 FGDTP14_EL12 = 59806,
1763 FGDTP14_EL3 = 61854,
1764 FGDTU14_EL1 = 49582,
1765 FGDTU14_EL2 = 57774,
1766 FGDTU14_EL12 = 59822,
1767 FGDTP15_EL1 = 49567,
1768 FGDTP15_EL2 = 57759,
1769 FGDTP15_EL12 = 59807,
1770 FGDTP15_EL3 = 61855,
1771 FGDTU15_EL1 = 49583,
1772 FGDTU15_EL2 = 57775,
1773 FGDTU15_EL12 = 59823,
1774 LDSTT_EL1 = 49423,
1775 LDSTT_EL12 = 59663,
1776 LDSTT_EL2 = 57615,
1777 TINDEX_EL0 = 55811,
1778 TINDEX_EL1 = 49667,
1779 TINDEX_EL2 = 57859,
1780 TINDEX_EL12 = 59907,
1781 TINDEX_EL3 = 61955,
1782 STINDEX_EL1 = 49666,
1783 STINDEX_EL2 = 57858,
1784 STINDEX_EL12 = 59906,
1785 STINDEX_EL3 = 61954,
1786 TPIDR3_EL0 = 56960,
1787 TPIDR3_EL1 = 50816,
1788 TPIDR3_EL12 = 61056,
1789 TPIDR3_EL2 = 59008,
1790 TPIDR3_EL3 = 63104,
1791 VNCCR_EL2 = 57617,
1792 DPOCR_EL0 = 55850,
1793 AFGDTP0_EL1 = 49584,
1794 AFGDTU0_EL1 = 49600,
1795 AFGDTP0_EL2 = 57776,
1796 AFGDTU0_EL2 = 57792,
1797 AFGDTP0_EL12 = 59824,
1798 AFGDTU0_EL12 = 59840,
1799 AFGDTP0_EL3 = 61872,
1800 AFGDTP1_EL1 = 49585,
1801 AFGDTU1_EL1 = 49601,
1802 AFGDTP1_EL2 = 57777,
1803 AFGDTU1_EL2 = 57793,
1804 AFGDTP1_EL12 = 59825,
1805 AFGDTU1_EL12 = 59841,
1806 AFGDTP1_EL3 = 61873,
1807 AFGDTP2_EL1 = 49586,
1808 AFGDTU2_EL1 = 49602,
1809 AFGDTP2_EL2 = 57778,
1810 AFGDTU2_EL2 = 57794,
1811 AFGDTP2_EL12 = 59826,
1812 AFGDTU2_EL12 = 59842,
1813 AFGDTP2_EL3 = 61874,
1814 AFGDTP3_EL1 = 49587,
1815 AFGDTU3_EL1 = 49603,
1816 AFGDTP3_EL2 = 57779,
1817 AFGDTU3_EL2 = 57795,
1818 AFGDTP3_EL12 = 59827,
1819 AFGDTU3_EL12 = 59843,
1820 AFGDTP3_EL3 = 61875,
1821 AFGDTP4_EL1 = 49588,
1822 AFGDTU4_EL1 = 49604,
1823 AFGDTP4_EL2 = 57780,
1824 AFGDTU4_EL2 = 57796,
1825 AFGDTP4_EL12 = 59828,
1826 AFGDTU4_EL12 = 59844,
1827 AFGDTP4_EL3 = 61876,
1828 AFGDTP5_EL1 = 49589,
1829 AFGDTU5_EL1 = 49605,
1830 AFGDTP5_EL2 = 57781,
1831 AFGDTU5_EL2 = 57797,
1832 AFGDTP5_EL12 = 59829,
1833 AFGDTU5_EL12 = 59845,
1834 AFGDTP5_EL3 = 61877,
1835 AFGDTP6_EL1 = 49590,
1836 AFGDTU6_EL1 = 49606,
1837 AFGDTP6_EL2 = 57782,
1838 AFGDTU6_EL2 = 57798,
1839 AFGDTP6_EL12 = 59830,
1840 AFGDTU6_EL12 = 59846,
1841 AFGDTP6_EL3 = 61878,
1842 AFGDTP7_EL1 = 49591,
1843 AFGDTU7_EL1 = 49607,
1844 AFGDTP7_EL2 = 57783,
1845 AFGDTU7_EL2 = 57799,
1846 AFGDTP7_EL12 = 59831,
1847 AFGDTU7_EL12 = 59847,
1848 AFGDTP7_EL3 = 61879,
1849 AFGDTP8_EL1 = 49592,
1850 AFGDTU8_EL1 = 49608,
1851 AFGDTP8_EL2 = 57784,
1852 AFGDTU8_EL2 = 57800,
1853 AFGDTP8_EL12 = 59832,
1854 AFGDTU8_EL12 = 59848,
1855 AFGDTP8_EL3 = 61880,
1856 AFGDTP9_EL1 = 49593,
1857 AFGDTU9_EL1 = 49609,
1858 AFGDTP9_EL2 = 57785,
1859 AFGDTU9_EL2 = 57801,
1860 AFGDTP9_EL12 = 59833,
1861 AFGDTU9_EL12 = 59849,
1862 AFGDTP9_EL3 = 61881,
1863 AFGDTP10_EL1 = 49594,
1864 AFGDTU10_EL1 = 49610,
1865 AFGDTP10_EL2 = 57786,
1866 AFGDTU10_EL2 = 57802,
1867 AFGDTP10_EL12 = 59834,
1868 AFGDTU10_EL12 = 59850,
1869 AFGDTP10_EL3 = 61882,
1870 AFGDTP11_EL1 = 49595,
1871 AFGDTU11_EL1 = 49611,
1872 AFGDTP11_EL2 = 57787,
1873 AFGDTU11_EL2 = 57803,
1874 AFGDTP11_EL12 = 59835,
1875 AFGDTU11_EL12 = 59851,
1876 AFGDTP11_EL3 = 61883,
1877 AFGDTP12_EL1 = 49596,
1878 AFGDTU12_EL1 = 49612,
1879 AFGDTP12_EL2 = 57788,
1880 AFGDTU12_EL2 = 57804,
1881 AFGDTP12_EL12 = 59836,
1882 AFGDTU12_EL12 = 59852,
1883 AFGDTP12_EL3 = 61884,
1884 AFGDTP13_EL1 = 49597,
1885 AFGDTU13_EL1 = 49613,
1886 AFGDTP13_EL2 = 57789,
1887 AFGDTU13_EL2 = 57805,
1888 AFGDTP13_EL12 = 59837,
1889 AFGDTU13_EL12 = 59853,
1890 AFGDTP13_EL3 = 61885,
1891 AFGDTP14_EL1 = 49598,
1892 AFGDTU14_EL1 = 49614,
1893 AFGDTP14_EL2 = 57790,
1894 AFGDTU14_EL2 = 57806,
1895 AFGDTP14_EL12 = 59838,
1896 AFGDTU14_EL12 = 59854,
1897 AFGDTP14_EL3 = 61886,
1898 AFGDTP15_EL1 = 49599,
1899 AFGDTU15_EL1 = 49615,
1900 AFGDTP15_EL2 = 57791,
1901 AFGDTU15_EL2 = 57807,
1902 AFGDTP15_EL12 = 59839,
1903 AFGDTU15_EL12 = 59855,
1904 AFGDTP15_EL3 = 61887,
1905 HCRMASK_EL2 = 57518,
1906 HCRXMASK_EL2 = 57519,
1907 NVHCR_EL2 = 57512,
1908 NVHCRX_EL2 = 57513,
1909 NVHCRMASK_EL2 = 57516,
1910 NVHCRXMASK_EL2 = 57517,
1911 TPMIN0_EL0 = 55572,
1912 TPMAX0_EL0 = 55573,
1913 TPMIN0_EL1 = 49428,
1914 TPMAX0_EL1 = 49429,
1915 TPMIN0_EL2 = 57620,
1916 TPMAX0_EL2 = 57621,
1917 TPMIN0_EL12 = 59668,
1918 TPMAX0_EL12 = 59669,
1919 TPMIN1_EL0 = 55574,
1920 TPMAX1_EL0 = 55575,
1921 TPMIN1_EL1 = 49430,
1922 TPMAX1_EL1 = 49431,
1923 TPMIN1_EL2 = 57622,
1924 TPMAX1_EL2 = 57623,
1925 TPMIN1_EL12 = 59670,
1926 TPMAX1_EL12 = 59671,
1927};
1928#endif
1929
1930#ifdef GET_TSBValues_DECL
1931enum TSBValues {
1932 csync = 2,
1933};
1934#endif
1935
1936#ifdef GET_CMHPRIORITYHINT_DECL
1937enum CMHPriorityHintValues {
1938 ph = 1,
1939};
1940#endif
1941
1942#ifdef GET_TINDEX_DECL
1943enum TIndexValues {
1944 nb = 1,
1945};
1946#endif
1947
1948#ifdef GET_ATsList_DECL
1949const AT *lookupATByEncoding(uint16_t Encoding);
1950const AT *lookupATByName(StringRef Name);
1951StringRef getATStr(StringTable::Offset);
1952#endif
1953
1954#ifdef GET_ATsList_IMPL
1955constexpr AT ATsList[] = {
1956 { 1 /* "S1E1R" */, 0x3C0, {} }, // 0
1957 { 7 /* "S1E1W" */, 0x3C1, {} }, // 1
1958 { 13 /* "S1E0R" */, 0x3C2, {} }, // 2
1959 { 19 /* "S1E0W" */, 0x3C3, {} }, // 3
1960 { 25 /* "S1E1RP" */, 0x3C8, {AArch64::FeaturePAN_RWV} }, // 4
1961 { 32 /* "S1E1WP" */, 0x3C9, {AArch64::FeaturePAN_RWV} }, // 5
1962 { 39 /* "S1E1A" */, 0x3CA, {} }, // 6
1963 { 45 /* "S1E2R" */, 0x23C0, {} }, // 7
1964 { 51 /* "S1E2W" */, 0x23C1, {} }, // 8
1965 { 57 /* "S12E1R" */, 0x23C4, {} }, // 9
1966 { 64 /* "S12E1W" */, 0x23C5, {} }, // 10
1967 { 71 /* "S12E0R" */, 0x23C6, {} }, // 11
1968 { 78 /* "S12E0W" */, 0x23C7, {} }, // 12
1969 { 85 /* "S1E2A" */, 0x23CA, {} }, // 13
1970 { 91 /* "S1E3R" */, 0x33C0, {} }, // 14
1971 { 97 /* "S1E3W" */, 0x33C1, {} }, // 15
1972 { 103 /* "S1E3A" */, 0x33CA, {} }, // 16
1973 };
1974
1975#ifdef __GNUC__
1976#pragma GCC diagnostic push
1977#pragma GCC diagnostic ignored "-Woverlength-strings"
1978#endif
1979static constexpr char ATsListStringsStorage[] =
1980 "\0"
1981 "S1E1R\0"
1982 "S1E1W\0"
1983 "S1E0R\0"
1984 "S1E0W\0"
1985 "S1E1RP\0"
1986 "S1E1WP\0"
1987 "S1E1A\0"
1988 "S1E2R\0"
1989 "S1E2W\0"
1990 "S12E1R\0"
1991 "S12E1W\0"
1992 "S12E0R\0"
1993 "S12E0W\0"
1994 "S1E2A\0"
1995 "S1E3R\0"
1996 "S1E3W\0"
1997 "S1E3A\0"
1998 ;
1999#ifdef __GNUC__
2000#pragma GCC diagnostic pop
2001#endif
2002
2003static constexpr llvm::StringTable
2004ATsListStrings = ATsListStringsStorage;
2005
2006StringRef getATStr(StringTable::Offset Offset) {
2007 return ATsListStrings[Offset];
2008}
2009
2010const AT *lookupATByEncoding(uint16_t Encoding) {
2011 struct KeyType {
2012 uint16_t Encoding;
2013 };
2014 KeyType Key = {Encoding};
2015 struct Comp {
2016 bool operator()(const AT &LHS, const KeyType &RHS) const {
2017 if (LHS.Encoding < RHS.Encoding)
2018 return true;
2019 if (LHS.Encoding > RHS.Encoding)
2020 return false;
2021 return false;
2022 }
2023 };
2024 auto Table = ArrayRef(ATsList);
2025 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2026 if (Idx == Table.end() ||
2027 Key.Encoding != Idx->Encoding)
2028 return nullptr;
2029
2030 return &*Idx;
2031}
2032
2033const AT *lookupATByName(StringRef Name) {
2034 struct IndexType {
2035 unsigned Name;
2036 unsigned _index;
2037 };
2038 static const struct IndexType Index[] = {
2039 { 71 /* "S12E0R" */, 11 },
2040 { 78 /* "S12E0W" */, 12 },
2041 { 57 /* "S12E1R" */, 9 },
2042 { 64 /* "S12E1W" */, 10 },
2043 { 13 /* "S1E0R" */, 2 },
2044 { 19 /* "S1E0W" */, 3 },
2045 { 39 /* "S1E1A" */, 6 },
2046 { 1 /* "S1E1R" */, 0 },
2047 { 25 /* "S1E1RP" */, 4 },
2048 { 7 /* "S1E1W" */, 1 },
2049 { 32 /* "S1E1WP" */, 5 },
2050 { 85 /* "S1E2A" */, 13 },
2051 { 45 /* "S1E2R" */, 7 },
2052 { 51 /* "S1E2W" */, 8 },
2053 { 103 /* "S1E3A" */, 16 },
2054 { 91 /* "S1E3R" */, 14 },
2055 { 97 /* "S1E3W" */, 15 },
2056 };
2057
2058 struct KeyType {
2059 std::string Name;
2060 };
2061 KeyType Key = {Name.upper()};
2062 struct Comp {
2063 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2064 StringRef LHSStr = ATsListStrings[LHS.Name];
2065 StringRef RHSStr = RHS.Name;
2066 int CmpName = LHSStr.compare(RHSStr);
2067 if (CmpName < 0) return true;
2068 if (CmpName > 0) return false;
2069 return false;
2070 }
2071 };
2072 auto Table = ArrayRef(Index);
2073 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2074 if (Idx == Table.end() ||
2075 Key.Name != ATsListStrings[Idx->Name])
2076 return nullptr;
2077
2078 return &ATsList[Idx->_index];
2079}
2080#endif
2081
2082#ifdef GET_BTIsList_DECL
2083const BTI *lookupBTIByEncoding(uint8_t Encoding);
2084const BTI *lookupBTIByName(StringRef Name);
2085StringRef getBTIStr(StringTable::Offset);
2086#endif
2087
2088#ifdef GET_BTIsList_IMPL
2089constexpr BTI BTIsList[] = {
2090 { 1 /* "r" */, 0x0 }, // 0
2091 { 3 /* "c" */, 0x2 }, // 1
2092 { 5 /* "j" */, 0x4 }, // 2
2093 { 7 /* "jc" */, 0x6 }, // 3
2094 };
2095
2096#ifdef __GNUC__
2097#pragma GCC diagnostic push
2098#pragma GCC diagnostic ignored "-Woverlength-strings"
2099#endif
2100static constexpr char BTIsListStringsStorage[] =
2101 "\0"
2102 "r\0"
2103 "c\0"
2104 "j\0"
2105 "jc\0"
2106 "C\0"
2107 "J\0"
2108 "JC\0"
2109 "R\0"
2110 ;
2111#ifdef __GNUC__
2112#pragma GCC diagnostic pop
2113#endif
2114
2115static constexpr llvm::StringTable
2116BTIsListStrings = BTIsListStringsStorage;
2117
2118StringRef getBTIStr(StringTable::Offset Offset) {
2119 return BTIsListStrings[Offset];
2120}
2121
2122const BTI *lookupBTIByEncoding(uint8_t Encoding) {
2123 struct KeyType {
2124 uint8_t Encoding;
2125 };
2126 KeyType Key = {Encoding};
2127 struct Comp {
2128 bool operator()(const BTI &LHS, const KeyType &RHS) const {
2129 if (LHS.Encoding < RHS.Encoding)
2130 return true;
2131 if (LHS.Encoding > RHS.Encoding)
2132 return false;
2133 return false;
2134 }
2135 };
2136 auto Table = ArrayRef(BTIsList);
2137 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2138 if (Idx == Table.end() ||
2139 Key.Encoding != Idx->Encoding)
2140 return nullptr;
2141
2142 return &*Idx;
2143}
2144
2145const BTI *lookupBTIByName(StringRef Name) {
2146 struct IndexType {
2147 unsigned Name;
2148 unsigned _index;
2149 };
2150 static const struct IndexType Index[] = {
2151 { 10 /* "C" */, 1 },
2152 { 12 /* "J" */, 2 },
2153 { 14 /* "JC" */, 3 },
2154 { 17 /* "R" */, 0 },
2155 };
2156
2157 struct KeyType {
2158 std::string Name;
2159 };
2160 KeyType Key = {Name.upper()};
2161 struct Comp {
2162 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2163 StringRef LHSStr = BTIsListStrings[LHS.Name];
2164 StringRef RHSStr = RHS.Name;
2165 int CmpName = LHSStr.compare(RHSStr);
2166 if (CmpName < 0) return true;
2167 if (CmpName > 0) return false;
2168 return false;
2169 }
2170 };
2171 auto Table = ArrayRef(Index);
2172 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2173 if (Idx == Table.end() ||
2174 Key.Name != BTIsListStrings[Idx->Name])
2175 return nullptr;
2176
2177 return &BTIsList[Idx->_index];
2178}
2179#endif
2180
2181#ifdef GET_DBnXSsList_DECL
2182const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding);
2183const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue);
2184const DBnXS *lookupDBnXSByName(StringRef Name);
2185StringRef getDBnXSStr(StringTable::Offset);
2186#endif
2187
2188#ifdef GET_DBnXSsList_IMPL
2189constexpr DBnXS DBnXSsList[] = {
2190 { 1 /* "oshnxs" */, 0x3, 0x10, {AArch64::FeatureXS} }, // 0
2191 { 8 /* "nshnxs" */, 0x7, 0x14, {AArch64::FeatureXS} }, // 1
2192 { 15 /* "ishnxs" */, 0xB, 0x18, {AArch64::FeatureXS} }, // 2
2193 { 22 /* "synxs" */, 0xF, 0x1C, {AArch64::FeatureXS} }, // 3
2194 };
2195
2196#ifdef __GNUC__
2197#pragma GCC diagnostic push
2198#pragma GCC diagnostic ignored "-Woverlength-strings"
2199#endif
2200static constexpr char DBnXSsListStringsStorage[] =
2201 "\0"
2202 "oshnxs\0"
2203 "nshnxs\0"
2204 "ishnxs\0"
2205 "synxs\0"
2206 "ISHNXS\0"
2207 "NSHNXS\0"
2208 "OSHNXS\0"
2209 "SYNXS\0"
2210 ;
2211#ifdef __GNUC__
2212#pragma GCC diagnostic pop
2213#endif
2214
2215static constexpr llvm::StringTable
2216DBnXSsListStrings = DBnXSsListStringsStorage;
2217
2218StringRef getDBnXSStr(StringTable::Offset Offset) {
2219 return DBnXSsListStrings[Offset];
2220}
2221
2222const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding) {
2223 struct KeyType {
2224 uint8_t Encoding;
2225 };
2226 KeyType Key = {Encoding};
2227 struct Comp {
2228 bool operator()(const DBnXS &LHS, const KeyType &RHS) const {
2229 if (LHS.Encoding < RHS.Encoding)
2230 return true;
2231 if (LHS.Encoding > RHS.Encoding)
2232 return false;
2233 return false;
2234 }
2235 };
2236 auto Table = ArrayRef(DBnXSsList);
2237 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2238 if (Idx == Table.end() ||
2239 Key.Encoding != Idx->Encoding)
2240 return nullptr;
2241
2242 return &*Idx;
2243}
2244
2245const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue) {
2246 struct IndexType {
2247 uint8_t ImmValue;
2248 unsigned _index;
2249 };
2250 static const struct IndexType Index[] = {
2251 { 0x10, 0 },
2252 { 0x14, 1 },
2253 { 0x18, 2 },
2254 { 0x1C, 3 },
2255 };
2256
2257 struct KeyType {
2258 uint8_t ImmValue;
2259 };
2260 KeyType Key = {ImmValue};
2261 struct Comp {
2262 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2263 if (LHS.ImmValue < RHS.ImmValue)
2264 return true;
2265 if (LHS.ImmValue > RHS.ImmValue)
2266 return false;
2267 return false;
2268 }
2269 };
2270 auto Table = ArrayRef(Index);
2271 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2272 if (Idx == Table.end() ||
2273 Key.ImmValue != Idx->ImmValue)
2274 return nullptr;
2275
2276 return &DBnXSsList[Idx->_index];
2277}
2278
2279const DBnXS *lookupDBnXSByName(StringRef Name) {
2280 struct IndexType {
2281 unsigned Name;
2282 unsigned _index;
2283 };
2284 static const struct IndexType Index[] = {
2285 { 28 /* "ISHNXS" */, 2 },
2286 { 35 /* "NSHNXS" */, 1 },
2287 { 42 /* "OSHNXS" */, 0 },
2288 { 49 /* "SYNXS" */, 3 },
2289 };
2290
2291 struct KeyType {
2292 std::string Name;
2293 };
2294 KeyType Key = {Name.upper()};
2295 struct Comp {
2296 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2297 StringRef LHSStr = DBnXSsListStrings[LHS.Name];
2298 StringRef RHSStr = RHS.Name;
2299 int CmpName = LHSStr.compare(RHSStr);
2300 if (CmpName < 0) return true;
2301 if (CmpName > 0) return false;
2302 return false;
2303 }
2304 };
2305 auto Table = ArrayRef(Index);
2306 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2307 if (Idx == Table.end() ||
2308 Key.Name != DBnXSsListStrings[Idx->Name])
2309 return nullptr;
2310
2311 return &DBnXSsList[Idx->_index];
2312}
2313#endif
2314
2315#ifdef GET_DBsList_DECL
2316const DB *lookupDBByEncoding(uint8_t Encoding);
2317const DB *lookupDBByName(StringRef Name);
2318StringRef getDBStr(StringTable::Offset);
2319#endif
2320
2321#ifdef GET_DBsList_IMPL
2322constexpr DB DBsList[] = {
2323 { 1 /* "oshld" */, 0x1 }, // 0
2324 { 7 /* "oshst" */, 0x2 }, // 1
2325 { 13 /* "osh" */, 0x3 }, // 2
2326 { 17 /* "nshld" */, 0x5 }, // 3
2327 { 23 /* "nshst" */, 0x6 }, // 4
2328 { 29 /* "nsh" */, 0x7 }, // 5
2329 { 33 /* "ishld" */, 0x9 }, // 6
2330 { 39 /* "ishst" */, 0xA }, // 7
2331 { 45 /* "ish" */, 0xB }, // 8
2332 { 49 /* "ld" */, 0xD }, // 9
2333 { 52 /* "st" */, 0xE }, // 10
2334 { 55 /* "sy" */, 0xF }, // 11
2335 };
2336
2337#ifdef __GNUC__
2338#pragma GCC diagnostic push
2339#pragma GCC diagnostic ignored "-Woverlength-strings"
2340#endif
2341static constexpr char DBsListStringsStorage[] =
2342 "\0"
2343 "oshld\0"
2344 "oshst\0"
2345 "osh\0"
2346 "nshld\0"
2347 "nshst\0"
2348 "nsh\0"
2349 "ishld\0"
2350 "ishst\0"
2351 "ish\0"
2352 "ld\0"
2353 "st\0"
2354 "sy\0"
2355 "ISH\0"
2356 "ISHLD\0"
2357 "ISHST\0"
2358 "LD\0"
2359 "NSH\0"
2360 "NSHLD\0"
2361 "NSHST\0"
2362 "OSH\0"
2363 "OSHLD\0"
2364 "OSHST\0"
2365 "ST\0"
2366 "SY\0"
2367 ;
2368#ifdef __GNUC__
2369#pragma GCC diagnostic pop
2370#endif
2371
2372static constexpr llvm::StringTable
2373DBsListStrings = DBsListStringsStorage;
2374
2375StringRef getDBStr(StringTable::Offset Offset) {
2376 return DBsListStrings[Offset];
2377}
2378
2379const DB *lookupDBByEncoding(uint8_t Encoding) {
2380 struct KeyType {
2381 uint8_t Encoding;
2382 };
2383 KeyType Key = {Encoding};
2384 struct Comp {
2385 bool operator()(const DB &LHS, const KeyType &RHS) const {
2386 if (LHS.Encoding < RHS.Encoding)
2387 return true;
2388 if (LHS.Encoding > RHS.Encoding)
2389 return false;
2390 return false;
2391 }
2392 };
2393 auto Table = ArrayRef(DBsList);
2394 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2395 if (Idx == Table.end() ||
2396 Key.Encoding != Idx->Encoding)
2397 return nullptr;
2398
2399 return &*Idx;
2400}
2401
2402const DB *lookupDBByName(StringRef Name) {
2403 struct IndexType {
2404 unsigned Name;
2405 unsigned _index;
2406 };
2407 static const struct IndexType Index[] = {
2408 { 58 /* "ISH" */, 8 },
2409 { 62 /* "ISHLD" */, 6 },
2410 { 68 /* "ISHST" */, 7 },
2411 { 74 /* "LD" */, 9 },
2412 { 77 /* "NSH" */, 5 },
2413 { 81 /* "NSHLD" */, 3 },
2414 { 87 /* "NSHST" */, 4 },
2415 { 93 /* "OSH" */, 2 },
2416 { 97 /* "OSHLD" */, 0 },
2417 { 103 /* "OSHST" */, 1 },
2418 { 109 /* "ST" */, 10 },
2419 { 112 /* "SY" */, 11 },
2420 };
2421
2422 struct KeyType {
2423 std::string Name;
2424 };
2425 KeyType Key = {Name.upper()};
2426 struct Comp {
2427 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2428 StringRef LHSStr = DBsListStrings[LHS.Name];
2429 StringRef RHSStr = RHS.Name;
2430 int CmpName = LHSStr.compare(RHSStr);
2431 if (CmpName < 0) return true;
2432 if (CmpName > 0) return false;
2433 return false;
2434 }
2435 };
2436 auto Table = ArrayRef(Index);
2437 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2438 if (Idx == Table.end() ||
2439 Key.Name != DBsListStrings[Idx->Name])
2440 return nullptr;
2441
2442 return &DBsList[Idx->_index];
2443}
2444#endif
2445
2446#ifdef GET_DCsList_DECL
2447const DC *lookupDCByEncoding(uint16_t Encoding);
2448const DC *lookupDCByName(StringRef Name);
2449StringRef getDCStr(StringTable::Offset);
2450#endif
2451
2452#ifdef GET_DCsList_IMPL
2453constexpr DC DCsList[] = {
2454 { 1 /* "IVAC" */, 0x3B1, {} }, // 0
2455 { 6 /* "ISW" */, 0x3B2, {} }, // 1
2456 { 10 /* "IGVAC" */, 0x3B3, {AArch64::FeatureMTE} }, // 2
2457 { 16 /* "IGSW" */, 0x3B4, {AArch64::FeatureMTE} }, // 3
2458 { 21 /* "IGDVAC" */, 0x3B5, {AArch64::FeatureMTE} }, // 4
2459 { 28 /* "IGDSW" */, 0x3B6, {AArch64::FeatureMTE} }, // 5
2460 { 34 /* "CSW" */, 0x3D2, {} }, // 6
2461 { 38 /* "CGSW" */, 0x3D4, {AArch64::FeatureMTE} }, // 7
2462 { 43 /* "CGDSW" */, 0x3D6, {AArch64::FeatureMTE} }, // 8
2463 { 49 /* "CISW" */, 0x3F2, {} }, // 9
2464 { 54 /* "CIGSW" */, 0x3F4, {AArch64::FeatureMTE} }, // 10
2465 { 60 /* "CIGDSW" */, 0x3F6, {AArch64::FeatureMTE} }, // 11
2466 { 67 /* "CIVAPS" */, 0x3F9, {AArch64::FeaturePoPS} }, // 12
2467 { 74 /* "CIGDVAPS" */, 0x3FD, {AArch64::FeaturePoPS, AArch64::FeatureMTE} }, // 13
2468 { 83 /* "ZVA" */, 0x1BA1, {} }, // 14
2469 { 87 /* "GVA" */, 0x1BA3, {AArch64::FeatureMTE} }, // 15
2470 { 91 /* "GZVA" */, 0x1BA4, {AArch64::FeatureMTE} }, // 16
2471 { 96 /* "ZGBVA" */, 0x1BA5, {AArch64::FeatureMTETC} }, // 17
2472 { 102 /* "GBVA" */, 0x1BA7, {AArch64::FeatureMTETC} }, // 18
2473 { 107 /* "CVAC" */, 0x1BD1, {} }, // 19
2474 { 112 /* "CGVAC" */, 0x1BD3, {AArch64::FeatureMTE} }, // 20
2475 { 118 /* "CGDVAC" */, 0x1BD5, {AArch64::FeatureMTE} }, // 21
2476 { 125 /* "CVAOC" */, 0x1BD8, {AArch64::FeatureOCCMO} }, // 22
2477 { 131 /* "CVAU" */, 0x1BD9, {} }, // 23
2478 { 136 /* "CGDVAOC" */, 0x1BDF, {AArch64::FeatureOCCMO, AArch64::FeatureMTE} }, // 24
2479 { 144 /* "CVAP" */, 0x1BE1, {AArch64::FeatureCCPP} }, // 25
2480 { 149 /* "CGVAP" */, 0x1BE3, {AArch64::FeatureMTE} }, // 26
2481 { 155 /* "CGDVAP" */, 0x1BE5, {AArch64::FeatureMTE} }, // 27
2482 { 162 /* "CVADP" */, 0x1BE9, {AArch64::FeatureCacheDeepPersist} }, // 28
2483 { 168 /* "CGVADP" */, 0x1BEB, {AArch64::FeatureMTE} }, // 29
2484 { 175 /* "CGDVADP" */, 0x1BED, {AArch64::FeatureMTE} }, // 30
2485 { 183 /* "CIVAC" */, 0x1BF1, {} }, // 31
2486 { 189 /* "CIGVAC" */, 0x1BF3, {AArch64::FeatureMTE} }, // 32
2487 { 196 /* "CIGDVAC" */, 0x1BF5, {AArch64::FeatureMTE} }, // 33
2488 { 204 /* "CIVAOC" */, 0x1BF8, {AArch64::FeatureOCCMO} }, // 34
2489 { 211 /* "CIGDVAOC" */, 0x1BFF, {AArch64::FeatureOCCMO, AArch64::FeatureMTE} }, // 35
2490 { 220 /* "CIPAE" */, 0x23F0, {AArch64::FeatureMEC} }, // 36
2491 { 226 /* "CIGDPAE" */, 0x23F7, {AArch64::FeatureMEC} }, // 37
2492 { 234 /* "CIPAPA" */, 0x33F1, {AArch64::FeatureRME} }, // 38
2493 { 241 /* "CIGDPAPA" */, 0x33F5, {AArch64::FeatureRME} }, // 39
2494 };
2495
2496#ifdef __GNUC__
2497#pragma GCC diagnostic push
2498#pragma GCC diagnostic ignored "-Woverlength-strings"
2499#endif
2500static constexpr char DCsListStringsStorage[] =
2501 "\0"
2502 "IVAC\0"
2503 "ISW\0"
2504 "IGVAC\0"
2505 "IGSW\0"
2506 "IGDVAC\0"
2507 "IGDSW\0"
2508 "CSW\0"
2509 "CGSW\0"
2510 "CGDSW\0"
2511 "CISW\0"
2512 "CIGSW\0"
2513 "CIGDSW\0"
2514 "CIVAPS\0"
2515 "CIGDVAPS\0"
2516 "ZVA\0"
2517 "GVA\0"
2518 "GZVA\0"
2519 "ZGBVA\0"
2520 "GBVA\0"
2521 "CVAC\0"
2522 "CGVAC\0"
2523 "CGDVAC\0"
2524 "CVAOC\0"
2525 "CVAU\0"
2526 "CGDVAOC\0"
2527 "CVAP\0"
2528 "CGVAP\0"
2529 "CGDVAP\0"
2530 "CVADP\0"
2531 "CGVADP\0"
2532 "CGDVADP\0"
2533 "CIVAC\0"
2534 "CIGVAC\0"
2535 "CIGDVAC\0"
2536 "CIVAOC\0"
2537 "CIGDVAOC\0"
2538 "CIPAE\0"
2539 "CIGDPAE\0"
2540 "CIPAPA\0"
2541 "CIGDPAPA\0"
2542 ;
2543#ifdef __GNUC__
2544#pragma GCC diagnostic pop
2545#endif
2546
2547static constexpr llvm::StringTable
2548DCsListStrings = DCsListStringsStorage;
2549
2550StringRef getDCStr(StringTable::Offset Offset) {
2551 return DCsListStrings[Offset];
2552}
2553
2554const DC *lookupDCByEncoding(uint16_t Encoding) {
2555 struct KeyType {
2556 uint16_t Encoding;
2557 };
2558 KeyType Key = {Encoding};
2559 struct Comp {
2560 bool operator()(const DC &LHS, const KeyType &RHS) const {
2561 if (LHS.Encoding < RHS.Encoding)
2562 return true;
2563 if (LHS.Encoding > RHS.Encoding)
2564 return false;
2565 return false;
2566 }
2567 };
2568 auto Table = ArrayRef(DCsList);
2569 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2570 if (Idx == Table.end() ||
2571 Key.Encoding != Idx->Encoding)
2572 return nullptr;
2573
2574 return &*Idx;
2575}
2576
2577const DC *lookupDCByName(StringRef Name) {
2578 struct IndexType {
2579 unsigned Name;
2580 unsigned _index;
2581 };
2582 static const struct IndexType Index[] = {
2583 { 43 /* "CGDSW" */, 8 },
2584 { 118 /* "CGDVAC" */, 21 },
2585 { 175 /* "CGDVADP" */, 30 },
2586 { 136 /* "CGDVAOC" */, 24 },
2587 { 155 /* "CGDVAP" */, 27 },
2588 { 38 /* "CGSW" */, 7 },
2589 { 112 /* "CGVAC" */, 20 },
2590 { 168 /* "CGVADP" */, 29 },
2591 { 149 /* "CGVAP" */, 26 },
2592 { 226 /* "CIGDPAE" */, 37 },
2593 { 241 /* "CIGDPAPA" */, 39 },
2594 { 60 /* "CIGDSW" */, 11 },
2595 { 196 /* "CIGDVAC" */, 33 },
2596 { 211 /* "CIGDVAOC" */, 35 },
2597 { 74 /* "CIGDVAPS" */, 13 },
2598 { 54 /* "CIGSW" */, 10 },
2599 { 189 /* "CIGVAC" */, 32 },
2600 { 220 /* "CIPAE" */, 36 },
2601 { 234 /* "CIPAPA" */, 38 },
2602 { 49 /* "CISW" */, 9 },
2603 { 183 /* "CIVAC" */, 31 },
2604 { 204 /* "CIVAOC" */, 34 },
2605 { 67 /* "CIVAPS" */, 12 },
2606 { 34 /* "CSW" */, 6 },
2607 { 107 /* "CVAC" */, 19 },
2608 { 162 /* "CVADP" */, 28 },
2609 { 125 /* "CVAOC" */, 22 },
2610 { 144 /* "CVAP" */, 25 },
2611 { 131 /* "CVAU" */, 23 },
2612 { 102 /* "GBVA" */, 18 },
2613 { 87 /* "GVA" */, 15 },
2614 { 91 /* "GZVA" */, 16 },
2615 { 28 /* "IGDSW" */, 5 },
2616 { 21 /* "IGDVAC" */, 4 },
2617 { 16 /* "IGSW" */, 3 },
2618 { 10 /* "IGVAC" */, 2 },
2619 { 6 /* "ISW" */, 1 },
2620 { 1 /* "IVAC" */, 0 },
2621 { 96 /* "ZGBVA" */, 17 },
2622 { 83 /* "ZVA" */, 14 },
2623 };
2624
2625 struct KeyType {
2626 std::string Name;
2627 };
2628 KeyType Key = {Name.upper()};
2629 struct Comp {
2630 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2631 StringRef LHSStr = DCsListStrings[LHS.Name];
2632 StringRef RHSStr = RHS.Name;
2633 int CmpName = LHSStr.compare(RHSStr);
2634 if (CmpName < 0) return true;
2635 if (CmpName > 0) return false;
2636 return false;
2637 }
2638 };
2639 auto Table = ArrayRef(Index);
2640 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2641 if (Idx == Table.end() ||
2642 Key.Name != DCsListStrings[Idx->Name])
2643 return nullptr;
2644
2645 return &DCsList[Idx->_index];
2646}
2647#endif
2648
2649#ifdef GET_ExactFPImmsList_DECL
2650const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum);
2651StringRef getExactFPImmStr(StringTable::Offset);
2652#endif
2653
2654#ifdef GET_ExactFPImmsList_IMPL
2655constexpr ExactFPImm ExactFPImmsList[] = {
2656 { 0x0, 1 /* "0.0" */ }, // 0
2657 { 0x1, 5 /* "0.5" */ }, // 1
2658 { 0x2, 9 /* "1.0" */ }, // 2
2659 { 0x3, 13 /* "2.0" */ }, // 3
2660 };
2661
2662#ifdef __GNUC__
2663#pragma GCC diagnostic push
2664#pragma GCC diagnostic ignored "-Woverlength-strings"
2665#endif
2666static constexpr char ExactFPImmsListStringsStorage[] =
2667 "\0"
2668 "0.0\0"
2669 "0.5\0"
2670 "1.0\0"
2671 "2.0\0"
2672 ;
2673#ifdef __GNUC__
2674#pragma GCC diagnostic pop
2675#endif
2676
2677static constexpr llvm::StringTable
2678ExactFPImmsListStrings = ExactFPImmsListStringsStorage;
2679
2680StringRef getExactFPImmStr(StringTable::Offset Offset) {
2681 return ExactFPImmsListStrings[Offset];
2682}
2683
2684const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum) {
2685 struct IndexType {
2686 uint8_t Enum;
2687 unsigned _index;
2688 };
2689 static const struct IndexType Index[] = {
2690 { 0x0, 0 },
2691 { 0x1, 1 },
2692 { 0x2, 2 },
2693 { 0x3, 3 },
2694 };
2695
2696 if ((uint8_t)Enum != std::clamp<uint8_t>(Enum, 0x0, 0x3))
2697 return nullptr;
2698
2699 auto Table = ArrayRef(Index);
2700 size_t Idx = Enum - 0x0;
2701 return &ExactFPImmsList[Table[Idx]._index];
2702}
2703#endif
2704
2705#ifdef GET_GICRTable_DECL
2706const GICR *lookupGICRByEncoding(uint16_t Encoding);
2707const GICR *lookupGICRByName(StringRef Name);
2708StringRef getGICRStr(StringTable::Offset);
2709#endif
2710
2711#ifdef GET_GICRTable_IMPL
2712constexpr GICR GICRTable[] = {
2713 { 1 /* "cdia" */, 0x618, true, {AArch64::FeatureGCIE} }, // 0
2714 { 6 /* "cdnmia" */, 0x619, true, {AArch64::FeatureGCIE} }, // 1
2715 };
2716
2717#ifdef __GNUC__
2718#pragma GCC diagnostic push
2719#pragma GCC diagnostic ignored "-Woverlength-strings"
2720#endif
2721static constexpr char GICRTableStringsStorage[] =
2722 "\0"
2723 "cdia\0"
2724 "cdnmia\0"
2725 "CDIA\0"
2726 "CDNMIA\0"
2727 ;
2728#ifdef __GNUC__
2729#pragma GCC diagnostic pop
2730#endif
2731
2732static constexpr llvm::StringTable
2733GICRTableStrings = GICRTableStringsStorage;
2734
2735StringRef getGICRStr(StringTable::Offset Offset) {
2736 return GICRTableStrings[Offset];
2737}
2738
2739const GICR *lookupGICRByEncoding(uint16_t Encoding) {
2740 if ((uint16_t)Encoding != std::clamp<uint16_t>(Encoding, 0x618, 0x619))
2741 return nullptr;
2742
2743 auto Table = ArrayRef(GICRTable);
2744 size_t Idx = Encoding - 0x618;
2745 return &Table[Idx];
2746}
2747
2748const GICR *lookupGICRByName(StringRef Name) {
2749 struct IndexType {
2750 unsigned Name;
2751 unsigned _index;
2752 };
2753 static const struct IndexType Index[] = {
2754 { 13 /* "CDIA" */, 0 },
2755 { 18 /* "CDNMIA" */, 1 },
2756 };
2757
2758 struct KeyType {
2759 std::string Name;
2760 };
2761 KeyType Key = {Name.upper()};
2762 struct Comp {
2763 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2764 StringRef LHSStr = GICRTableStrings[LHS.Name];
2765 StringRef RHSStr = RHS.Name;
2766 int CmpName = LHSStr.compare(RHSStr);
2767 if (CmpName < 0) return true;
2768 if (CmpName > 0) return false;
2769 return false;
2770 }
2771 };
2772 auto Table = ArrayRef(Index);
2773 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2774 if (Idx == Table.end() ||
2775 Key.Name != GICRTableStrings[Idx->Name])
2776 return nullptr;
2777
2778 return &GICRTable[Idx->_index];
2779}
2780#endif
2781
2782#ifdef GET_GICTable_DECL
2783const GIC *lookupGICByEncoding(uint16_t Encoding);
2784const GIC *lookupGICByName(StringRef Name);
2785StringRef getGICStr(StringTable::Offset);
2786#endif
2787
2788#ifdef GET_GICTable_IMPL
2789constexpr GIC GICTable[] = {
2790 { 1 /* "cddis" */, 0x608, true, {AArch64::FeatureGCIE} }, // 0
2791 { 7 /* "cden" */, 0x609, true, {AArch64::FeatureGCIE} }, // 1
2792 { 12 /* "cdpri" */, 0x60A, true, {AArch64::FeatureGCIE} }, // 2
2793 { 18 /* "cdaff" */, 0x60B, true, {AArch64::FeatureGCIE} }, // 3
2794 { 24 /* "cdpend" */, 0x60C, true, {AArch64::FeatureGCIE} }, // 4
2795 { 31 /* "cdrcfg" */, 0x60D, true, {AArch64::FeatureGCIE} }, // 5
2796 { 38 /* "cdeoi" */, 0x60F, false, {AArch64::FeatureGCIE} }, // 6
2797 { 44 /* "cddi" */, 0x610, true, {AArch64::FeatureGCIE} }, // 7
2798 { 49 /* "cdhm" */, 0x611, true, {AArch64::FeatureGCIE} }, // 8
2799 { 54 /* "vddis" */, 0x2608, true, {AArch64::FeatureGCIE} }, // 9
2800 { 60 /* "vden" */, 0x2609, true, {AArch64::FeatureGCIE} }, // 10
2801 { 65 /* "vdpri" */, 0x260A, true, {AArch64::FeatureGCIE} }, // 11
2802 { 71 /* "vdaff" */, 0x260B, true, {AArch64::FeatureGCIE} }, // 12
2803 { 77 /* "vdpend" */, 0x260C, true, {AArch64::FeatureGCIE} }, // 13
2804 { 84 /* "vdrcfg" */, 0x260D, true, {AArch64::FeatureGCIE} }, // 14
2805 { 91 /* "vddi" */, 0x2610, true, {AArch64::FeatureGCIE} }, // 15
2806 { 96 /* "vdhm" */, 0x2611, true, {AArch64::FeatureGCIE} }, // 16
2807 { 101 /* "lddis" */, 0x3608, true, {AArch64::FeatureGCIE} }, // 17
2808 { 107 /* "lden" */, 0x3609, true, {AArch64::FeatureGCIE} }, // 18
2809 { 112 /* "ldpri" */, 0x360A, true, {AArch64::FeatureGCIE} }, // 19
2810 { 118 /* "ldaff" */, 0x360B, true, {AArch64::FeatureGCIE} }, // 20
2811 { 124 /* "ldpend" */, 0x360C, true, {AArch64::FeatureGCIE} }, // 21
2812 { 131 /* "ldrcfg" */, 0x360D, true, {AArch64::FeatureGCIE} }, // 22
2813 { 138 /* "lddi" */, 0x3610, true, {AArch64::FeatureGCIE} }, // 23
2814 { 143 /* "ldhm" */, 0x3611, true, {AArch64::FeatureGCIE} }, // 24
2815 };
2816
2817#ifdef __GNUC__
2818#pragma GCC diagnostic push
2819#pragma GCC diagnostic ignored "-Woverlength-strings"
2820#endif
2821static constexpr char GICTableStringsStorage[] =
2822 "\0"
2823 "cddis\0"
2824 "cden\0"
2825 "cdpri\0"
2826 "cdaff\0"
2827 "cdpend\0"
2828 "cdrcfg\0"
2829 "cdeoi\0"
2830 "cddi\0"
2831 "cdhm\0"
2832 "vddis\0"
2833 "vden\0"
2834 "vdpri\0"
2835 "vdaff\0"
2836 "vdpend\0"
2837 "vdrcfg\0"
2838 "vddi\0"
2839 "vdhm\0"
2840 "lddis\0"
2841 "lden\0"
2842 "ldpri\0"
2843 "ldaff\0"
2844 "ldpend\0"
2845 "ldrcfg\0"
2846 "lddi\0"
2847 "ldhm\0"
2848 "CDAFF\0"
2849 "CDDI\0"
2850 "CDDIS\0"
2851 "CDEN\0"
2852 "CDEOI\0"
2853 "CDHM\0"
2854 "CDPEND\0"
2855 "CDPRI\0"
2856 "CDRCFG\0"
2857 "LDAFF\0"
2858 "LDDI\0"
2859 "LDDIS\0"
2860 "LDEN\0"
2861 "LDHM\0"
2862 "LDPEND\0"
2863 "LDPRI\0"
2864 "LDRCFG\0"
2865 "VDAFF\0"
2866 "VDDI\0"
2867 "VDDIS\0"
2868 "VDEN\0"
2869 "VDHM\0"
2870 "VDPEND\0"
2871 "VDPRI\0"
2872 "VDRCFG\0"
2873 ;
2874#ifdef __GNUC__
2875#pragma GCC diagnostic pop
2876#endif
2877
2878static constexpr llvm::StringTable
2879GICTableStrings = GICTableStringsStorage;
2880
2881StringRef getGICStr(StringTable::Offset Offset) {
2882 return GICTableStrings[Offset];
2883}
2884
2885const GIC *lookupGICByEncoding(uint16_t Encoding) {
2886 struct KeyType {
2887 uint16_t Encoding;
2888 };
2889 KeyType Key = {Encoding};
2890 struct Comp {
2891 bool operator()(const GIC &LHS, const KeyType &RHS) const {
2892 if (LHS.Encoding < RHS.Encoding)
2893 return true;
2894 if (LHS.Encoding > RHS.Encoding)
2895 return false;
2896 return false;
2897 }
2898 };
2899 auto Table = ArrayRef(GICTable);
2900 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2901 if (Idx == Table.end() ||
2902 Key.Encoding != Idx->Encoding)
2903 return nullptr;
2904
2905 return &*Idx;
2906}
2907
2908const GIC *lookupGICByName(StringRef Name) {
2909 struct IndexType {
2910 unsigned Name;
2911 unsigned _index;
2912 };
2913 static const struct IndexType Index[] = {
2914 { 148 /* "CDAFF" */, 3 },
2915 { 154 /* "CDDI" */, 7 },
2916 { 159 /* "CDDIS" */, 0 },
2917 { 165 /* "CDEN" */, 1 },
2918 { 170 /* "CDEOI" */, 6 },
2919 { 176 /* "CDHM" */, 8 },
2920 { 181 /* "CDPEND" */, 4 },
2921 { 188 /* "CDPRI" */, 2 },
2922 { 194 /* "CDRCFG" */, 5 },
2923 { 201 /* "LDAFF" */, 20 },
2924 { 207 /* "LDDI" */, 23 },
2925 { 212 /* "LDDIS" */, 17 },
2926 { 218 /* "LDEN" */, 18 },
2927 { 223 /* "LDHM" */, 24 },
2928 { 228 /* "LDPEND" */, 21 },
2929 { 235 /* "LDPRI" */, 19 },
2930 { 241 /* "LDRCFG" */, 22 },
2931 { 248 /* "VDAFF" */, 12 },
2932 { 254 /* "VDDI" */, 15 },
2933 { 259 /* "VDDIS" */, 9 },
2934 { 265 /* "VDEN" */, 10 },
2935 { 270 /* "VDHM" */, 16 },
2936 { 275 /* "VDPEND" */, 13 },
2937 { 282 /* "VDPRI" */, 11 },
2938 { 288 /* "VDRCFG" */, 14 },
2939 };
2940
2941 struct KeyType {
2942 std::string Name;
2943 };
2944 KeyType Key = {Name.upper()};
2945 struct Comp {
2946 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
2947 StringRef LHSStr = GICTableStrings[LHS.Name];
2948 StringRef RHSStr = RHS.Name;
2949 int CmpName = LHSStr.compare(RHSStr);
2950 if (CmpName < 0) return true;
2951 if (CmpName > 0) return false;
2952 return false;
2953 }
2954 };
2955 auto Table = ArrayRef(Index);
2956 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
2957 if (Idx == Table.end() ||
2958 Key.Name != GICTableStrings[Idx->Name])
2959 return nullptr;
2960
2961 return &GICTable[Idx->_index];
2962}
2963#endif
2964
2965#ifdef GET_GSBTable_DECL
2966const GSB *lookupGSBByEncoding(uint16_t Encoding);
2967const GSB *lookupGSBByName(StringRef Name);
2968StringRef getGSBStr(StringTable::Offset);
2969#endif
2970
2971#ifdef GET_GSBTable_IMPL
2972constexpr GSB GSBTable[] = {
2973 { 1 /* "sys" */, 0x600, {AArch64::FeatureGCIE} }, // 0
2974 { 5 /* "ack" */, 0x601, {AArch64::FeatureGCIE} }, // 1
2975 };
2976
2977#ifdef __GNUC__
2978#pragma GCC diagnostic push
2979#pragma GCC diagnostic ignored "-Woverlength-strings"
2980#endif
2981static constexpr char GSBTableStringsStorage[] =
2982 "\0"
2983 "sys\0"
2984 "ack\0"
2985 "ACK\0"
2986 "SYS\0"
2987 ;
2988#ifdef __GNUC__
2989#pragma GCC diagnostic pop
2990#endif
2991
2992static constexpr llvm::StringTable
2993GSBTableStrings = GSBTableStringsStorage;
2994
2995StringRef getGSBStr(StringTable::Offset Offset) {
2996 return GSBTableStrings[Offset];
2997}
2998
2999const GSB *lookupGSBByEncoding(uint16_t Encoding) {
3000 if ((uint16_t)Encoding != std::clamp<uint16_t>(Encoding, 0x600, 0x601))
3001 return nullptr;
3002
3003 auto Table = ArrayRef(GSBTable);
3004 size_t Idx = Encoding - 0x600;
3005 return &Table[Idx];
3006}
3007
3008const GSB *lookupGSBByName(StringRef Name) {
3009 struct IndexType {
3010 unsigned Name;
3011 unsigned _index;
3012 };
3013 static const struct IndexType Index[] = {
3014 { 9 /* "ACK" */, 1 },
3015 { 13 /* "SYS" */, 0 },
3016 };
3017
3018 struct KeyType {
3019 std::string Name;
3020 };
3021 KeyType Key = {Name.upper()};
3022 struct Comp {
3023 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
3024 StringRef LHSStr = GSBTableStrings[LHS.Name];
3025 StringRef RHSStr = RHS.Name;
3026 int CmpName = LHSStr.compare(RHSStr);
3027 if (CmpName < 0) return true;
3028 if (CmpName > 0) return false;
3029 return false;
3030 }
3031 };
3032 auto Table = ArrayRef(Index);
3033 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3034 if (Idx == Table.end() ||
3035 Key.Name != GSBTableStrings[Idx->Name])
3036 return nullptr;
3037
3038 return &GSBTable[Idx->_index];
3039}
3040#endif
3041
3042#ifdef GET_ICsList_DECL
3043const IC *lookupICByEncoding(uint16_t Encoding);
3044const IC *lookupICByName(StringRef Name);
3045StringRef getICStr(StringTable::Offset);
3046#endif
3047
3048#ifdef GET_ICsList_IMPL
3049constexpr IC ICsList[] = {
3050 { 1 /* "IALLUIS" */, 0x388, false }, // 0
3051 { 9 /* "IALLU" */, 0x3A8, false }, // 1
3052 { 15 /* "IVAU" */, 0x1BA9, true }, // 2
3053 };
3054
3055#ifdef __GNUC__
3056#pragma GCC diagnostic push
3057#pragma GCC diagnostic ignored "-Woverlength-strings"
3058#endif
3059static constexpr char ICsListStringsStorage[] =
3060 "\0"
3061 "IALLUIS\0"
3062 "IALLU\0"
3063 "IVAU\0"
3064 ;
3065#ifdef __GNUC__
3066#pragma GCC diagnostic pop
3067#endif
3068
3069static constexpr llvm::StringTable
3070ICsListStrings = ICsListStringsStorage;
3071
3072StringRef getICStr(StringTable::Offset Offset) {
3073 return ICsListStrings[Offset];
3074}
3075
3076const IC *lookupICByEncoding(uint16_t Encoding) {
3077 struct KeyType {
3078 uint16_t Encoding;
3079 };
3080 KeyType Key = {Encoding};
3081 struct Comp {
3082 bool operator()(const IC &LHS, const KeyType &RHS) const {
3083 if (LHS.Encoding < RHS.Encoding)
3084 return true;
3085 if (LHS.Encoding > RHS.Encoding)
3086 return false;
3087 return false;
3088 }
3089 };
3090 auto Table = ArrayRef(ICsList);
3091 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3092 if (Idx == Table.end() ||
3093 Key.Encoding != Idx->Encoding)
3094 return nullptr;
3095
3096 return &*Idx;
3097}
3098
3099const IC *lookupICByName(StringRef Name) {
3100 struct IndexType {
3101 unsigned Name;
3102 unsigned _index;
3103 };
3104 static const struct IndexType Index[] = {
3105 { 9 /* "IALLU" */, 1 },
3106 { 1 /* "IALLUIS" */, 0 },
3107 { 15 /* "IVAU" */, 2 },
3108 };
3109
3110 struct KeyType {
3111 std::string Name;
3112 };
3113 KeyType Key = {Name.upper()};
3114 struct Comp {
3115 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
3116 StringRef LHSStr = ICsListStrings[LHS.Name];
3117 StringRef RHSStr = RHS.Name;
3118 int CmpName = LHSStr.compare(RHSStr);
3119 if (CmpName < 0) return true;
3120 if (CmpName > 0) return false;
3121 return false;
3122 }
3123 };
3124 auto Table = ArrayRef(Index);
3125 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3126 if (Idx == Table.end() ||
3127 Key.Name != ICsListStrings[Idx->Name])
3128 return nullptr;
3129
3130 return &ICsList[Idx->_index];
3131}
3132#endif
3133
3134#ifdef GET_ISBsList_DECL
3135const ISB *lookupISBByEncoding(uint8_t Encoding);
3136const ISB *lookupISBByName(StringRef Name);
3137StringRef getISBStr(StringTable::Offset);
3138#endif
3139
3140#ifdef GET_ISBsList_IMPL
3141constexpr ISB ISBsList[] = {
3142 { 1 /* "sy" */, 0xF }, // 0
3143 };
3144
3145#ifdef __GNUC__
3146#pragma GCC diagnostic push
3147#pragma GCC diagnostic ignored "-Woverlength-strings"
3148#endif
3149static constexpr char ISBsListStringsStorage[] =
3150 "\0"
3151 "sy\0"
3152 "SY\0"
3153 ;
3154#ifdef __GNUC__
3155#pragma GCC diagnostic pop
3156#endif
3157
3158static constexpr llvm::StringTable
3159ISBsListStrings = ISBsListStringsStorage;
3160
3161StringRef getISBStr(StringTable::Offset Offset) {
3162 return ISBsListStrings[Offset];
3163}
3164
3165const ISB *lookupISBByEncoding(uint8_t Encoding) {
3166 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0xF, 0xF))
3167 return nullptr;
3168
3169 auto Table = ArrayRef(ISBsList);
3170 size_t Idx = Encoding - 0xF;
3171 return &Table[Idx];
3172}
3173
3174const ISB *lookupISBByName(StringRef Name) {
3175 struct IndexType {
3176 unsigned Name;
3177 unsigned _index;
3178 };
3179 static const struct IndexType Index[] = {
3180 { 4 /* "SY" */, 0 },
3181 };
3182
3183 struct KeyType {
3184 std::string Name;
3185 };
3186 KeyType Key = {Name.upper()};
3187 struct Comp {
3188 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
3189 StringRef LHSStr = ISBsListStrings[LHS.Name];
3190 StringRef RHSStr = RHS.Name;
3191 int CmpName = LHSStr.compare(RHSStr);
3192 if (CmpName < 0) return true;
3193 if (CmpName > 0) return false;
3194 return false;
3195 }
3196 };
3197 auto Table = ArrayRef(Index);
3198 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3199 if (Idx == Table.end() ||
3200 Key.Name != ISBsListStrings[Idx->Name])
3201 return nullptr;
3202
3203 return &ISBsList[Idx->_index];
3204}
3205#endif
3206
3207#ifdef GET_LFIVariantTable_DECL
3208const LFIVariantEntry *lookupLFIVariantByOpcode(unsigned Inst);
3209#endif
3210
3211#ifdef GET_LFIVariantTable_IMPL
3212constexpr LFIVariantEntry LFIVariantTable[] = {
3213 { LDRBBpost, 0x4, 0x0, LDRBBroW }, // 0
3214 { LDRBBpre, 0x3, 0x0, LDRBBroW }, // 1
3215 { LDRBBroW, 0x1, 0x0, LDRBBroW }, // 2
3216 { LDRBBroX, 0x2, 0x0, LDRBBroW }, // 3
3217 { LDRBBui, 0x0, 0x0, LDRBBroW }, // 4
3218 { LDRBpost, 0x4, 0x0, LDRBroW }, // 5
3219 { LDRBpre, 0x3, 0x0, LDRBroW }, // 6
3220 { LDRBroW, 0x1, 0x0, LDRBroW }, // 7
3221 { LDRBroX, 0x2, 0x0, LDRBroW }, // 8
3222 { LDRBui, 0x0, 0x0, LDRBroW }, // 9
3223 { LDRDpost, 0x4, 0x3, LDRDroW }, // 10
3224 { LDRDpre, 0x3, 0x3, LDRDroW }, // 11
3225 { LDRDroW, 0x1, 0x3, LDRDroW }, // 12
3226 { LDRDroX, 0x2, 0x3, LDRDroW }, // 13
3227 { LDRDui, 0x0, 0x3, LDRDroW }, // 14
3228 { LDRHHpost, 0x4, 0x1, LDRHHroW }, // 15
3229 { LDRHHpre, 0x3, 0x1, LDRHHroW }, // 16
3230 { LDRHHroW, 0x1, 0x1, LDRHHroW }, // 17
3231 { LDRHHroX, 0x2, 0x1, LDRHHroW }, // 18
3232 { LDRHHui, 0x0, 0x1, LDRHHroW }, // 19
3233 { LDRHpost, 0x4, 0x1, LDRHroW }, // 20
3234 { LDRHpre, 0x3, 0x1, LDRHroW }, // 21
3235 { LDRHroW, 0x1, 0x1, LDRHroW }, // 22
3236 { LDRHroX, 0x2, 0x1, LDRHroW }, // 23
3237 { LDRHui, 0x0, 0x1, LDRHroW }, // 24
3238 { LDRQpost, 0x4, 0x4, LDRQroW }, // 25
3239 { LDRQpre, 0x3, 0x4, LDRQroW }, // 26
3240 { LDRQroW, 0x1, 0x4, LDRQroW }, // 27
3241 { LDRQroX, 0x2, 0x4, LDRQroW }, // 28
3242 { LDRQui, 0x0, 0x4, LDRQroW }, // 29
3243 { LDRSBWpost, 0x4, 0x0, LDRSBWroW }, // 30
3244 { LDRSBWpre, 0x3, 0x0, LDRSBWroW }, // 31
3245 { LDRSBWroW, 0x1, 0x0, LDRSBWroW }, // 32
3246 { LDRSBWroX, 0x2, 0x0, LDRSBWroW }, // 33
3247 { LDRSBWui, 0x0, 0x0, LDRSBWroW }, // 34
3248 { LDRSBXpost, 0x4, 0x0, LDRSBXroW }, // 35
3249 { LDRSBXpre, 0x3, 0x0, LDRSBXroW }, // 36
3250 { LDRSBXroW, 0x1, 0x0, LDRSBXroW }, // 37
3251 { LDRSBXroX, 0x2, 0x0, LDRSBXroW }, // 38
3252 { LDRSBXui, 0x0, 0x0, LDRSBXroW }, // 39
3253 { LDRSHWpost, 0x4, 0x1, LDRSHWroW }, // 40
3254 { LDRSHWpre, 0x3, 0x1, LDRSHWroW }, // 41
3255 { LDRSHWroW, 0x1, 0x1, LDRSHWroW }, // 42
3256 { LDRSHWroX, 0x2, 0x1, LDRSHWroW }, // 43
3257 { LDRSHWui, 0x0, 0x1, LDRSHWroW }, // 44
3258 { LDRSHXpost, 0x4, 0x1, LDRSHXroW }, // 45
3259 { LDRSHXpre, 0x3, 0x1, LDRSHXroW }, // 46
3260 { LDRSHXroW, 0x1, 0x1, LDRSHXroW }, // 47
3261 { LDRSHXroX, 0x2, 0x1, LDRSHXroW }, // 48
3262 { LDRSHXui, 0x0, 0x1, LDRSHXroW }, // 49
3263 { LDRSWpost, 0x4, 0x2, LDRSWroW }, // 50
3264 { LDRSWpre, 0x3, 0x2, LDRSWroW }, // 51
3265 { LDRSWroW, 0x1, 0x2, LDRSWroW }, // 52
3266 { LDRSWroX, 0x2, 0x2, LDRSWroW }, // 53
3267 { LDRSWui, 0x0, 0x2, LDRSWroW }, // 54
3268 { LDRSpost, 0x4, 0x2, LDRSroW }, // 55
3269 { LDRSpre, 0x3, 0x2, LDRSroW }, // 56
3270 { LDRSroW, 0x1, 0x2, LDRSroW }, // 57
3271 { LDRSroX, 0x2, 0x2, LDRSroW }, // 58
3272 { LDRSui, 0x0, 0x2, LDRSroW }, // 59
3273 { LDRWpost, 0x4, 0x2, LDRWroW }, // 60
3274 { LDRWpre, 0x3, 0x2, LDRWroW }, // 61
3275 { LDRWroW, 0x1, 0x2, LDRWroW }, // 62
3276 { LDRWroX, 0x2, 0x2, LDRWroW }, // 63
3277 { LDRWui, 0x0, 0x2, LDRWroW }, // 64
3278 { LDRXpost, 0x4, 0x3, LDRXroW }, // 65
3279 { LDRXpre, 0x3, 0x3, LDRXroW }, // 66
3280 { LDRXroW, 0x1, 0x3, LDRXroW }, // 67
3281 { LDRXroX, 0x2, 0x3, LDRXroW }, // 68
3282 { LDRXui, 0x0, 0x3, LDRXroW }, // 69
3283 { PRFMroW, 0x1, 0x3, PRFMroW }, // 70
3284 { PRFMroX, 0x2, 0x3, PRFMroW }, // 71
3285 { PRFMui, 0x0, 0x3, PRFMroW }, // 72
3286 { STRBBpost, 0x4, 0x0, STRBBroW }, // 73
3287 { STRBBpre, 0x3, 0x0, STRBBroW }, // 74
3288 { STRBBroW, 0x1, 0x0, STRBBroW }, // 75
3289 { STRBBroX, 0x2, 0x0, STRBBroW }, // 76
3290 { STRBBui, 0x0, 0x0, STRBBroW }, // 77
3291 { STRBpost, 0x4, 0x0, STRBroW }, // 78
3292 { STRBpre, 0x3, 0x0, STRBroW }, // 79
3293 { STRBroW, 0x1, 0x0, STRBroW }, // 80
3294 { STRBroX, 0x2, 0x0, STRBroW }, // 81
3295 { STRBui, 0x0, 0x0, STRBroW }, // 82
3296 { STRDpost, 0x4, 0x3, STRDroW }, // 83
3297 { STRDpre, 0x3, 0x3, STRDroW }, // 84
3298 { STRDroW, 0x1, 0x3, STRDroW }, // 85
3299 { STRDroX, 0x2, 0x3, STRDroW }, // 86
3300 { STRDui, 0x0, 0x3, STRDroW }, // 87
3301 { STRHHpost, 0x4, 0x1, STRHHroW }, // 88
3302 { STRHHpre, 0x3, 0x1, STRHHroW }, // 89
3303 { STRHHroW, 0x1, 0x1, STRHHroW }, // 90
3304 { STRHHroX, 0x2, 0x1, STRHHroW }, // 91
3305 { STRHHui, 0x0, 0x1, STRHHroW }, // 92
3306 { STRHpost, 0x4, 0x1, STRHroW }, // 93
3307 { STRHpre, 0x3, 0x1, STRHroW }, // 94
3308 { STRHroW, 0x1, 0x1, STRHroW }, // 95
3309 { STRHroX, 0x2, 0x1, STRHroW }, // 96
3310 { STRHui, 0x0, 0x1, STRHroW }, // 97
3311 { STRQpost, 0x4, 0x4, STRQroW }, // 98
3312 { STRQpre, 0x3, 0x4, STRQroW }, // 99
3313 { STRQroW, 0x1, 0x4, STRQroW }, // 100
3314 { STRQroX, 0x2, 0x4, STRQroW }, // 101
3315 { STRQui, 0x0, 0x4, STRQroW }, // 102
3316 { STRSpost, 0x4, 0x2, STRSroW }, // 103
3317 { STRSpre, 0x3, 0x2, STRSroW }, // 104
3318 { STRSroW, 0x1, 0x2, STRSroW }, // 105
3319 { STRSroX, 0x2, 0x2, STRSroW }, // 106
3320 { STRSui, 0x0, 0x2, STRSroW }, // 107
3321 { STRWpost, 0x4, 0x2, STRWroW }, // 108
3322 { STRWpre, 0x3, 0x2, STRWroW }, // 109
3323 { STRWroW, 0x1, 0x2, STRWroW }, // 110
3324 { STRWroX, 0x2, 0x2, STRWroW }, // 111
3325 { STRWui, 0x0, 0x2, STRWroW }, // 112
3326 { STRXpost, 0x4, 0x3, STRXroW }, // 113
3327 { STRXpre, 0x3, 0x3, STRXroW }, // 114
3328 { STRXroW, 0x1, 0x3, STRXroW }, // 115
3329 { STRXroX, 0x2, 0x3, STRXroW }, // 116
3330 { STRXui, 0x0, 0x3, STRXroW }, // 117
3331 };
3332
3333const LFIVariantEntry *lookupLFIVariantByOpcode(unsigned Inst) {
3334 struct KeyType {
3335 unsigned Inst;
3336 };
3337 KeyType Key = {Inst};
3338 struct Comp {
3339 bool operator()(const LFIVariantEntry &LHS, const KeyType &RHS) const {
3340 if (LHS.Inst < RHS.Inst)
3341 return true;
3342 if (LHS.Inst > RHS.Inst)
3343 return false;
3344 return false;
3345 }
3346 };
3347 auto Table = ArrayRef(LFIVariantTable);
3348 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
3349 if (Idx == Table.end() ||
3350 Key.Inst != Idx->Inst)
3351 return nullptr;
3352
3353 return &*Idx;
3354}
3355#endif
3356
3357#ifdef GET_MemInfoTable_DECL
3358const MemInfoEntry *lookupMemInfoByOpcode(unsigned Inst);
3359#endif
3360
3361#ifdef GET_MemInfoTable_IMPL
3362constexpr MemInfoEntry MemInfoTable[] = {
3363 { CASAB, 0x3, 0x0, false, false, false }, // 0
3364 { CASAH, 0x3, 0x0, false, false, false }, // 1
3365 { CASALB, 0x3, 0x0, false, false, false }, // 2
3366 { CASALH, 0x3, 0x0, false, false, false }, // 3
3367 { CASALW, 0x3, 0x0, false, false, false }, // 4
3368 { CASALX, 0x3, 0x0, false, false, false }, // 5
3369 { CASAW, 0x3, 0x0, false, false, false }, // 6
3370 { CASAX, 0x3, 0x0, false, false, false }, // 7
3371 { CASB, 0x3, 0x0, false, false, false }, // 8
3372 { CASH, 0x3, 0x0, false, false, false }, // 9
3373 { CASLB, 0x3, 0x0, false, false, false }, // 10
3374 { CASLH, 0x3, 0x0, false, false, false }, // 11
3375 { CASLW, 0x3, 0x0, false, false, false }, // 12
3376 { CASLX, 0x3, 0x0, false, false, false }, // 13
3377 { CASPALW, 0x3, 0x0, false, false, false }, // 14
3378 { CASPALX, 0x3, 0x0, false, false, false }, // 15
3379 { CASPAW, 0x3, 0x0, false, false, false }, // 16
3380 { CASPAX, 0x3, 0x0, false, false, false }, // 17
3381 { CASPLW, 0x3, 0x0, false, false, false }, // 18
3382 { CASPLX, 0x3, 0x0, false, false, false }, // 19
3383 { CASPW, 0x3, 0x0, false, false, false }, // 20
3384 { CASPX, 0x3, 0x0, false, false, false }, // 21
3385 { CASW, 0x3, 0x0, false, false, false }, // 22
3386 { CASX, 0x3, 0x0, false, false, false }, // 23
3387 { LD1Fourv16b, 0x1, 0x0, false, false, false }, // 24
3388 { LD1Fourv16b_POST, 0x2, 0x3, true, true, false }, // 25
3389 { LD1Fourv1d, 0x1, 0x0, false, false, false }, // 26
3390 { LD1Fourv1d_POST, 0x2, 0x3, true, true, false }, // 27
3391 { LD1Fourv2d, 0x1, 0x0, false, false, false }, // 28
3392 { LD1Fourv2d_POST, 0x2, 0x3, true, true, false }, // 29
3393 { LD1Fourv2s, 0x1, 0x0, false, false, false }, // 30
3394 { LD1Fourv2s_POST, 0x2, 0x3, true, true, false }, // 31
3395 { LD1Fourv4h, 0x1, 0x0, false, false, false }, // 32
3396 { LD1Fourv4h_POST, 0x2, 0x3, true, true, false }, // 33
3397 { LD1Fourv4s, 0x1, 0x0, false, false, false }, // 34
3398 { LD1Fourv4s_POST, 0x2, 0x3, true, true, false }, // 35
3399 { LD1Fourv8b, 0x1, 0x0, false, false, false }, // 36
3400 { LD1Fourv8b_POST, 0x2, 0x3, true, true, false }, // 37
3401 { LD1Fourv8h, 0x1, 0x0, false, false, false }, // 38
3402 { LD1Fourv8h_POST, 0x2, 0x3, true, true, false }, // 39
3403 { LD1Onev16b, 0x1, 0x0, false, false, false }, // 40
3404 { LD1Onev16b_POST, 0x2, 0x3, true, true, false }, // 41
3405 { LD1Onev1d, 0x1, 0x0, false, false, false }, // 42
3406 { LD1Onev1d_POST, 0x2, 0x3, true, true, false }, // 43
3407 { LD1Onev2d, 0x1, 0x0, false, false, false }, // 44
3408 { LD1Onev2d_POST, 0x2, 0x3, true, true, false }, // 45
3409 { LD1Onev2s, 0x1, 0x0, false, false, false }, // 46
3410 { LD1Onev2s_POST, 0x2, 0x3, true, true, false }, // 47
3411 { LD1Onev4h, 0x1, 0x0, false, false, false }, // 48
3412 { LD1Onev4h_POST, 0x2, 0x3, true, true, false }, // 49
3413 { LD1Onev4s, 0x1, 0x0, false, false, false }, // 50
3414 { LD1Onev4s_POST, 0x2, 0x3, true, true, false }, // 51
3415 { LD1Onev8b, 0x1, 0x0, false, false, false }, // 52
3416 { LD1Onev8b_POST, 0x2, 0x3, true, true, false }, // 53
3417 { LD1Onev8h, 0x1, 0x0, false, false, false }, // 54
3418 { LD1Onev8h_POST, 0x2, 0x3, true, true, false }, // 55
3419 { LD1Rv16b, 0x1, 0x0, false, false, false }, // 56
3420 { LD1Rv16b_POST, 0x2, 0x3, true, true, false }, // 57
3421 { LD1Rv1d, 0x1, 0x0, false, false, false }, // 58
3422 { LD1Rv1d_POST, 0x2, 0x3, true, true, false }, // 59
3423 { LD1Rv2d, 0x1, 0x0, false, false, false }, // 60
3424 { LD1Rv2d_POST, 0x2, 0x3, true, true, false }, // 61
3425 { LD1Rv2s, 0x1, 0x0, false, false, false }, // 62
3426 { LD1Rv2s_POST, 0x2, 0x3, true, true, false }, // 63
3427 { LD1Rv4h, 0x1, 0x0, false, false, false }, // 64
3428 { LD1Rv4h_POST, 0x2, 0x3, true, true, false }, // 65
3429 { LD1Rv4s, 0x1, 0x0, false, false, false }, // 66
3430 { LD1Rv4s_POST, 0x2, 0x3, true, true, false }, // 67
3431 { LD1Rv8b, 0x1, 0x0, false, false, false }, // 68
3432 { LD1Rv8b_POST, 0x2, 0x3, true, true, false }, // 69
3433 { LD1Rv8h, 0x1, 0x0, false, false, false }, // 70
3434 { LD1Rv8h_POST, 0x2, 0x3, true, true, false }, // 71
3435 { LD1Threev16b, 0x1, 0x0, false, false, false }, // 72
3436 { LD1Threev16b_POST, 0x2, 0x3, true, true, false }, // 73
3437 { LD1Threev1d, 0x1, 0x0, false, false, false }, // 74
3438 { LD1Threev1d_POST, 0x2, 0x3, true, true, false }, // 75
3439 { LD1Threev2d, 0x1, 0x0, false, false, false }, // 76
3440 { LD1Threev2d_POST, 0x2, 0x3, true, true, false }, // 77
3441 { LD1Threev2s, 0x1, 0x0, false, false, false }, // 78
3442 { LD1Threev2s_POST, 0x2, 0x3, true, true, false }, // 79
3443 { LD1Threev4h, 0x1, 0x0, false, false, false }, // 80
3444 { LD1Threev4h_POST, 0x2, 0x3, true, true, false }, // 81
3445 { LD1Threev4s, 0x1, 0x0, false, false, false }, // 82
3446 { LD1Threev4s_POST, 0x2, 0x3, true, true, false }, // 83
3447 { LD1Threev8b, 0x1, 0x0, false, false, false }, // 84
3448 { LD1Threev8b_POST, 0x2, 0x3, true, true, false }, // 85
3449 { LD1Threev8h, 0x1, 0x0, false, false, false }, // 86
3450 { LD1Threev8h_POST, 0x2, 0x3, true, true, false }, // 87
3451 { LD1Twov16b, 0x1, 0x0, false, false, false }, // 88
3452 { LD1Twov16b_POST, 0x2, 0x3, true, true, false }, // 89
3453 { LD1Twov1d, 0x1, 0x0, false, false, false }, // 90
3454 { LD1Twov1d_POST, 0x2, 0x3, true, true, false }, // 91
3455 { LD1Twov2d, 0x1, 0x0, false, false, false }, // 92
3456 { LD1Twov2d_POST, 0x2, 0x3, true, true, false }, // 93
3457 { LD1Twov2s, 0x1, 0x0, false, false, false }, // 94
3458 { LD1Twov2s_POST, 0x2, 0x3, true, true, false }, // 95
3459 { LD1Twov4h, 0x1, 0x0, false, false, false }, // 96
3460 { LD1Twov4h_POST, 0x2, 0x3, true, true, false }, // 97
3461 { LD1Twov4s, 0x1, 0x0, false, false, false }, // 98
3462 { LD1Twov4s_POST, 0x2, 0x3, true, true, false }, // 99
3463 { LD1Twov8b, 0x1, 0x0, false, false, false }, // 100
3464 { LD1Twov8b_POST, 0x2, 0x3, true, true, false }, // 101
3465 { LD1Twov8h, 0x1, 0x0, false, false, false }, // 102
3466 { LD1Twov8h_POST, 0x2, 0x3, true, true, false }, // 103
3467 { LD1i16, 0x3, 0x0, false, false, false }, // 104
3468 { LD1i16_POST, 0x4, 0x5, true, true, false }, // 105
3469 { LD1i32, 0x3, 0x0, false, false, false }, // 106
3470 { LD1i32_POST, 0x4, 0x5, true, true, false }, // 107
3471 { LD1i64, 0x3, 0x0, false, false, false }, // 108
3472 { LD1i64_POST, 0x4, 0x5, true, true, false }, // 109
3473 { LD1i8, 0x3, 0x0, false, false, false }, // 110
3474 { LD1i8_POST, 0x4, 0x5, true, true, false }, // 111
3475 { LD2Rv16b, 0x1, 0x0, false, false, false }, // 112
3476 { LD2Rv16b_POST, 0x2, 0x3, true, true, false }, // 113
3477 { LD2Rv1d, 0x1, 0x0, false, false, false }, // 114
3478 { LD2Rv1d_POST, 0x2, 0x3, true, true, false }, // 115
3479 { LD2Rv2d, 0x1, 0x0, false, false, false }, // 116
3480 { LD2Rv2d_POST, 0x2, 0x3, true, true, false }, // 117
3481 { LD2Rv2s, 0x1, 0x0, false, false, false }, // 118
3482 { LD2Rv2s_POST, 0x2, 0x3, true, true, false }, // 119
3483 { LD2Rv4h, 0x1, 0x0, false, false, false }, // 120
3484 { LD2Rv4h_POST, 0x2, 0x3, true, true, false }, // 121
3485 { LD2Rv4s, 0x1, 0x0, false, false, false }, // 122
3486 { LD2Rv4s_POST, 0x2, 0x3, true, true, false }, // 123
3487 { LD2Rv8b, 0x1, 0x0, false, false, false }, // 124
3488 { LD2Rv8b_POST, 0x2, 0x3, true, true, false }, // 125
3489 { LD2Rv8h, 0x1, 0x0, false, false, false }, // 126
3490 { LD2Rv8h_POST, 0x2, 0x3, true, true, false }, // 127
3491 { LD2Twov16b, 0x1, 0x0, false, false, false }, // 128
3492 { LD2Twov16b_POST, 0x2, 0x3, true, true, false }, // 129
3493 { LD2Twov2d, 0x1, 0x0, false, false, false }, // 130
3494 { LD2Twov2d_POST, 0x2, 0x3, true, true, false }, // 131
3495 { LD2Twov2s, 0x1, 0x0, false, false, false }, // 132
3496 { LD2Twov2s_POST, 0x2, 0x3, true, true, false }, // 133
3497 { LD2Twov4h, 0x1, 0x0, false, false, false }, // 134
3498 { LD2Twov4h_POST, 0x2, 0x3, true, true, false }, // 135
3499 { LD2Twov4s, 0x1, 0x0, false, false, false }, // 136
3500 { LD2Twov4s_POST, 0x2, 0x3, true, true, false }, // 137
3501 { LD2Twov8b, 0x1, 0x0, false, false, false }, // 138
3502 { LD2Twov8b_POST, 0x2, 0x3, true, true, false }, // 139
3503 { LD2Twov8h, 0x1, 0x0, false, false, false }, // 140
3504 { LD2Twov8h_POST, 0x2, 0x3, true, true, false }, // 141
3505 { LD2i16, 0x3, 0x0, false, false, false }, // 142
3506 { LD2i16_POST, 0x4, 0x5, true, true, false }, // 143
3507 { LD2i32, 0x3, 0x0, false, false, false }, // 144
3508 { LD2i32_POST, 0x4, 0x5, true, true, false }, // 145
3509 { LD2i64, 0x3, 0x0, false, false, false }, // 146
3510 { LD2i64_POST, 0x4, 0x5, true, true, false }, // 147
3511 { LD2i8, 0x3, 0x0, false, false, false }, // 148
3512 { LD2i8_POST, 0x4, 0x5, true, true, false }, // 149
3513 { LD3Rv16b, 0x1, 0x0, false, false, false }, // 150
3514 { LD3Rv16b_POST, 0x2, 0x3, true, true, false }, // 151
3515 { LD3Rv1d, 0x1, 0x0, false, false, false }, // 152
3516 { LD3Rv1d_POST, 0x2, 0x3, true, true, false }, // 153
3517 { LD3Rv2d, 0x1, 0x0, false, false, false }, // 154
3518 { LD3Rv2d_POST, 0x2, 0x3, true, true, false }, // 155
3519 { LD3Rv2s, 0x1, 0x0, false, false, false }, // 156
3520 { LD3Rv2s_POST, 0x2, 0x3, true, true, false }, // 157
3521 { LD3Rv4h, 0x1, 0x0, false, false, false }, // 158
3522 { LD3Rv4h_POST, 0x2, 0x3, true, true, false }, // 159
3523 { LD3Rv4s, 0x1, 0x0, false, false, false }, // 160
3524 { LD3Rv4s_POST, 0x2, 0x3, true, true, false }, // 161
3525 { LD3Rv8b, 0x1, 0x0, false, false, false }, // 162
3526 { LD3Rv8b_POST, 0x2, 0x3, true, true, false }, // 163
3527 { LD3Rv8h, 0x1, 0x0, false, false, false }, // 164
3528 { LD3Rv8h_POST, 0x2, 0x3, true, true, false }, // 165
3529 { LD3Threev16b, 0x1, 0x0, false, false, false }, // 166
3530 { LD3Threev16b_POST, 0x2, 0x3, true, true, false }, // 167
3531 { LD3Threev2d, 0x1, 0x0, false, false, false }, // 168
3532 { LD3Threev2d_POST, 0x2, 0x3, true, true, false }, // 169
3533 { LD3Threev2s, 0x1, 0x0, false, false, false }, // 170
3534 { LD3Threev2s_POST, 0x2, 0x3, true, true, false }, // 171
3535 { LD3Threev4h, 0x1, 0x0, false, false, false }, // 172
3536 { LD3Threev4h_POST, 0x2, 0x3, true, true, false }, // 173
3537 { LD3Threev4s, 0x1, 0x0, false, false, false }, // 174
3538 { LD3Threev4s_POST, 0x2, 0x3, true, true, false }, // 175
3539 { LD3Threev8b, 0x1, 0x0, false, false, false }, // 176
3540 { LD3Threev8b_POST, 0x2, 0x3, true, true, false }, // 177
3541 { LD3Threev8h, 0x1, 0x0, false, false, false }, // 178
3542 { LD3Threev8h_POST, 0x2, 0x3, true, true, false }, // 179
3543 { LD3i16, 0x3, 0x0, false, false, false }, // 180
3544 { LD3i16_POST, 0x4, 0x5, true, true, false }, // 181
3545 { LD3i32, 0x3, 0x0, false, false, false }, // 182
3546 { LD3i32_POST, 0x4, 0x5, true, true, false }, // 183
3547 { LD3i64, 0x3, 0x0, false, false, false }, // 184
3548 { LD3i64_POST, 0x4, 0x5, true, true, false }, // 185
3549 { LD3i8, 0x3, 0x0, false, false, false }, // 186
3550 { LD3i8_POST, 0x4, 0x5, true, true, false }, // 187
3551 { LD4Fourv16b, 0x1, 0x0, false, false, false }, // 188
3552 { LD4Fourv16b_POST, 0x2, 0x3, true, true, false }, // 189
3553 { LD4Fourv2d, 0x1, 0x0, false, false, false }, // 190
3554 { LD4Fourv2d_POST, 0x2, 0x3, true, true, false }, // 191
3555 { LD4Fourv2s, 0x1, 0x0, false, false, false }, // 192
3556 { LD4Fourv2s_POST, 0x2, 0x3, true, true, false }, // 193
3557 { LD4Fourv4h, 0x1, 0x0, false, false, false }, // 194
3558 { LD4Fourv4h_POST, 0x2, 0x3, true, true, false }, // 195
3559 { LD4Fourv4s, 0x1, 0x0, false, false, false }, // 196
3560 { LD4Fourv4s_POST, 0x2, 0x3, true, true, false }, // 197
3561 { LD4Fourv8b, 0x1, 0x0, false, false, false }, // 198
3562 { LD4Fourv8b_POST, 0x2, 0x3, true, true, false }, // 199
3563 { LD4Fourv8h, 0x1, 0x0, false, false, false }, // 200
3564 { LD4Fourv8h_POST, 0x2, 0x3, true, true, false }, // 201
3565 { LD4Rv16b, 0x1, 0x0, false, false, false }, // 202
3566 { LD4Rv16b_POST, 0x2, 0x3, true, true, false }, // 203
3567 { LD4Rv1d, 0x1, 0x0, false, false, false }, // 204
3568 { LD4Rv1d_POST, 0x2, 0x3, true, true, false }, // 205
3569 { LD4Rv2d, 0x1, 0x0, false, false, false }, // 206
3570 { LD4Rv2d_POST, 0x2, 0x3, true, true, false }, // 207
3571 { LD4Rv2s, 0x1, 0x0, false, false, false }, // 208
3572 { LD4Rv2s_POST, 0x2, 0x3, true, true, false }, // 209
3573 { LD4Rv4h, 0x1, 0x0, false, false, false }, // 210
3574 { LD4Rv4h_POST, 0x2, 0x3, true, true, false }, // 211
3575 { LD4Rv4s, 0x1, 0x0, false, false, false }, // 212
3576 { LD4Rv4s_POST, 0x2, 0x3, true, true, false }, // 213
3577 { LD4Rv8b, 0x1, 0x0, false, false, false }, // 214
3578 { LD4Rv8b_POST, 0x2, 0x3, true, true, false }, // 215
3579 { LD4Rv8h, 0x1, 0x0, false, false, false }, // 216
3580 { LD4Rv8h_POST, 0x2, 0x3, true, true, false }, // 217
3581 { LD4i16, 0x3, 0x0, false, false, false }, // 218
3582 { LD4i16_POST, 0x4, 0x5, true, true, false }, // 219
3583 { LD4i32, 0x3, 0x0, false, false, false }, // 220
3584 { LD4i32_POST, 0x4, 0x5, true, true, false }, // 221
3585 { LD4i64, 0x3, 0x0, false, false, false }, // 222
3586 { LD4i64_POST, 0x4, 0x5, true, true, false }, // 223
3587 { LD4i8, 0x3, 0x0, false, false, false }, // 224
3588 { LD4i8_POST, 0x4, 0x5, true, true, false }, // 225
3589 { LDADDAB, 0x2, 0x0, false, false, false }, // 226
3590 { LDADDAH, 0x2, 0x0, false, false, false }, // 227
3591 { LDADDALB, 0x2, 0x0, false, false, false }, // 228
3592 { LDADDALH, 0x2, 0x0, false, false, false }, // 229
3593 { LDADDALW, 0x2, 0x0, false, false, false }, // 230
3594 { LDADDALX, 0x2, 0x0, false, false, false }, // 231
3595 { LDADDAW, 0x2, 0x0, false, false, false }, // 232
3596 { LDADDAX, 0x2, 0x0, false, false, false }, // 233
3597 { LDADDB, 0x2, 0x0, false, false, false }, // 234
3598 { LDADDH, 0x2, 0x0, false, false, false }, // 235
3599 { LDADDLB, 0x2, 0x0, false, false, false }, // 236
3600 { LDADDLH, 0x2, 0x0, false, false, false }, // 237
3601 { LDADDLW, 0x2, 0x0, false, false, false }, // 238
3602 { LDADDLX, 0x2, 0x0, false, false, false }, // 239
3603 { LDADDW, 0x2, 0x0, false, false, false }, // 240
3604 { LDADDX, 0x2, 0x0, false, false, false }, // 241
3605 { LDAPRB, 0x1, 0x0, false, false, false }, // 242
3606 { LDAPRH, 0x1, 0x0, false, false, false }, // 243
3607 { LDAPRW, 0x1, 0x0, false, false, false }, // 244
3608 { LDAPRX, 0x1, 0x0, false, false, false }, // 245
3609 { LDARB, 0x1, 0x0, false, false, false }, // 246
3610 { LDARH, 0x1, 0x0, false, false, false }, // 247
3611 { LDARW, 0x1, 0x0, false, false, false }, // 248
3612 { LDARX, 0x1, 0x0, false, false, false }, // 249
3613 { LDAXPW, 0x2, 0x0, false, false, false }, // 250
3614 { LDAXPX, 0x2, 0x0, false, false, false }, // 251
3615 { LDAXRB, 0x1, 0x0, false, false, false }, // 252
3616 { LDAXRH, 0x1, 0x0, false, false, false }, // 253
3617 { LDAXRW, 0x1, 0x0, false, false, false }, // 254
3618 { LDAXRX, 0x1, 0x0, false, false, false }, // 255
3619 { LDCLRAB, 0x2, 0x0, false, false, false }, // 256
3620 { LDCLRAH, 0x2, 0x0, false, false, false }, // 257
3621 { LDCLRALB, 0x2, 0x0, false, false, false }, // 258
3622 { LDCLRALH, 0x2, 0x0, false, false, false }, // 259
3623 { LDCLRALW, 0x2, 0x0, false, false, false }, // 260
3624 { LDCLRALX, 0x2, 0x0, false, false, false }, // 261
3625 { LDCLRAW, 0x2, 0x0, false, false, false }, // 262
3626 { LDCLRAX, 0x2, 0x0, false, false, false }, // 263
3627 { LDCLRB, 0x2, 0x0, false, false, false }, // 264
3628 { LDCLRH, 0x2, 0x0, false, false, false }, // 265
3629 { LDCLRLB, 0x2, 0x0, false, false, false }, // 266
3630 { LDCLRLH, 0x2, 0x0, false, false, false }, // 267
3631 { LDCLRLW, 0x2, 0x0, false, false, false }, // 268
3632 { LDCLRLX, 0x2, 0x0, false, false, false }, // 269
3633 { LDCLRW, 0x2, 0x0, false, false, false }, // 270
3634 { LDCLRX, 0x2, 0x0, false, false, false }, // 271
3635 { LDEORAB, 0x2, 0x0, false, false, false }, // 272
3636 { LDEORAH, 0x2, 0x0, false, false, false }, // 273
3637 { LDEORALB, 0x2, 0x0, false, false, false }, // 274
3638 { LDEORALH, 0x2, 0x0, false, false, false }, // 275
3639 { LDEORALW, 0x2, 0x0, false, false, false }, // 276
3640 { LDEORALX, 0x2, 0x0, false, false, false }, // 277
3641 { LDEORAW, 0x2, 0x0, false, false, false }, // 278
3642 { LDEORAX, 0x2, 0x0, false, false, false }, // 279
3643 { LDEORB, 0x2, 0x0, false, false, false }, // 280
3644 { LDEORH, 0x2, 0x0, false, false, false }, // 281
3645 { LDEORLB, 0x2, 0x0, false, false, false }, // 282
3646 { LDEORLH, 0x2, 0x0, false, false, false }, // 283
3647 { LDEORLW, 0x2, 0x0, false, false, false }, // 284
3648 { LDEORLX, 0x2, 0x0, false, false, false }, // 285
3649 { LDEORW, 0x2, 0x0, false, false, false }, // 286
3650 { LDEORX, 0x2, 0x0, false, false, false }, // 287
3651 { LDLARB, 0x1, 0x0, false, false, false }, // 288
3652 { LDLARH, 0x1, 0x0, false, false, false }, // 289
3653 { LDLARW, 0x1, 0x0, false, false, false }, // 290
3654 { LDLARX, 0x1, 0x0, false, false, false }, // 291
3655 { LDNPDi, 0x2, 0x3, true, false, false }, // 292
3656 { LDNPQi, 0x2, 0x3, true, false, false }, // 293
3657 { LDNPSi, 0x2, 0x3, true, false, false }, // 294
3658 { LDNPWi, 0x2, 0x3, true, false, false }, // 295
3659 { LDNPXi, 0x2, 0x3, true, false, false }, // 296
3660 { LDPDi, 0x2, 0x3, true, false, false }, // 297
3661 { LDPDpost, 0x3, 0x4, true, true, false }, // 298
3662 { LDPDpre, 0x3, 0x4, true, true, false }, // 299
3663 { LDPQi, 0x2, 0x3, true, false, false }, // 300
3664 { LDPQpost, 0x3, 0x4, true, true, false }, // 301
3665 { LDPQpre, 0x3, 0x4, true, true, false }, // 302
3666 { LDPSWi, 0x2, 0x3, true, false, false }, // 303
3667 { LDPSWpost, 0x3, 0x4, true, true, false }, // 304
3668 { LDPSWpre, 0x3, 0x4, true, true, false }, // 305
3669 { LDPSi, 0x2, 0x3, true, false, false }, // 306
3670 { LDPSpost, 0x3, 0x4, true, true, false }, // 307
3671 { LDPSpre, 0x3, 0x4, true, true, false }, // 308
3672 { LDPWi, 0x2, 0x3, true, false, false }, // 309
3673 { LDPWpost, 0x3, 0x4, true, true, false }, // 310
3674 { LDPWpre, 0x3, 0x4, true, true, false }, // 311
3675 { LDPXi, 0x2, 0x3, true, false, false }, // 312
3676 { LDPXpost, 0x3, 0x4, true, true, false }, // 313
3677 { LDPXpre, 0x3, 0x4, true, true, false }, // 314
3678 { LDRBBpost, 0x2, 0x3, true, true, false }, // 315
3679 { LDRBBpre, 0x2, 0x3, true, true, false }, // 316
3680 { LDRBBroW, 0x1, 0x2, true, false, false }, // 317
3681 { LDRBBroX, 0x1, 0x2, true, false, false }, // 318
3682 { LDRBBui, 0x1, 0x2, true, false, false }, // 319
3683 { LDRBpost, 0x2, 0x3, true, true, false }, // 320
3684 { LDRBpre, 0x2, 0x3, true, true, false }, // 321
3685 { LDRBroW, 0x1, 0x2, true, false, false }, // 322
3686 { LDRBroX, 0x1, 0x2, true, false, false }, // 323
3687 { LDRBui, 0x1, 0x2, true, false, false }, // 324
3688 { LDRDl, 0x0, 0x0, false, false, true }, // 325
3689 { LDRDpost, 0x2, 0x3, true, true, false }, // 326
3690 { LDRDpre, 0x2, 0x3, true, true, false }, // 327
3691 { LDRDroW, 0x1, 0x2, true, false, false }, // 328
3692 { LDRDroX, 0x1, 0x2, true, false, false }, // 329
3693 { LDRDui, 0x1, 0x2, true, false, false }, // 330
3694 { LDRHHpost, 0x2, 0x3, true, true, false }, // 331
3695 { LDRHHpre, 0x2, 0x3, true, true, false }, // 332
3696 { LDRHHroW, 0x1, 0x2, true, false, false }, // 333
3697 { LDRHHroX, 0x1, 0x2, true, false, false }, // 334
3698 { LDRHHui, 0x1, 0x2, true, false, false }, // 335
3699 { LDRHpost, 0x2, 0x3, true, true, false }, // 336
3700 { LDRHpre, 0x2, 0x3, true, true, false }, // 337
3701 { LDRHroW, 0x1, 0x2, true, false, false }, // 338
3702 { LDRHroX, 0x1, 0x2, true, false, false }, // 339
3703 { LDRHui, 0x1, 0x2, true, false, false }, // 340
3704 { LDRQl, 0x0, 0x0, false, false, true }, // 341
3705 { LDRQpost, 0x2, 0x3, true, true, false }, // 342
3706 { LDRQpre, 0x2, 0x3, true, true, false }, // 343
3707 { LDRQroW, 0x1, 0x2, true, false, false }, // 344
3708 { LDRQroX, 0x1, 0x2, true, false, false }, // 345
3709 { LDRQui, 0x1, 0x2, true, false, false }, // 346
3710 { LDRSBWpost, 0x2, 0x3, true, true, false }, // 347
3711 { LDRSBWpre, 0x2, 0x3, true, true, false }, // 348
3712 { LDRSBWroW, 0x1, 0x2, true, false, false }, // 349
3713 { LDRSBWroX, 0x1, 0x2, true, false, false }, // 350
3714 { LDRSBWui, 0x1, 0x2, true, false, false }, // 351
3715 { LDRSBXpost, 0x2, 0x3, true, true, false }, // 352
3716 { LDRSBXpre, 0x2, 0x3, true, true, false }, // 353
3717 { LDRSBXroW, 0x1, 0x2, true, false, false }, // 354
3718 { LDRSBXroX, 0x1, 0x2, true, false, false }, // 355
3719 { LDRSBXui, 0x1, 0x2, true, false, false }, // 356
3720 { LDRSHWpost, 0x2, 0x3, true, true, false }, // 357
3721 { LDRSHWpre, 0x2, 0x3, true, true, false }, // 358
3722 { LDRSHWroW, 0x1, 0x2, true, false, false }, // 359
3723 { LDRSHWroX, 0x1, 0x2, true, false, false }, // 360
3724 { LDRSHWui, 0x1, 0x2, true, false, false }, // 361
3725 { LDRSHXpost, 0x2, 0x3, true, true, false }, // 362
3726 { LDRSHXpre, 0x2, 0x3, true, true, false }, // 363
3727 { LDRSHXroW, 0x1, 0x2, true, false, false }, // 364
3728 { LDRSHXroX, 0x1, 0x2, true, false, false }, // 365
3729 { LDRSHXui, 0x1, 0x2, true, false, false }, // 366
3730 { LDRSWl, 0x0, 0x0, false, false, true }, // 367
3731 { LDRSWpost, 0x2, 0x3, true, true, false }, // 368
3732 { LDRSWpre, 0x2, 0x3, true, true, false }, // 369
3733 { LDRSWroW, 0x1, 0x2, true, false, false }, // 370
3734 { LDRSWroX, 0x1, 0x2, true, false, false }, // 371
3735 { LDRSWui, 0x1, 0x2, true, false, false }, // 372
3736 { LDRSl, 0x0, 0x0, false, false, true }, // 373
3737 { LDRSpost, 0x2, 0x3, true, true, false }, // 374
3738 { LDRSpre, 0x2, 0x3, true, true, false }, // 375
3739 { LDRSroW, 0x1, 0x2, true, false, false }, // 376
3740 { LDRSroX, 0x1, 0x2, true, false, false }, // 377
3741 { LDRSui, 0x1, 0x2, true, false, false }, // 378
3742 { LDRWl, 0x0, 0x0, false, false, true }, // 379
3743 { LDRWpost, 0x2, 0x3, true, true, false }, // 380
3744 { LDRWpre, 0x2, 0x3, true, true, false }, // 381
3745 { LDRWroW, 0x1, 0x2, true, false, false }, // 382
3746 { LDRWroX, 0x1, 0x2, true, false, false }, // 383
3747 { LDRWui, 0x1, 0x2, true, false, false }, // 384
3748 { LDRXl, 0x0, 0x0, false, false, true }, // 385
3749 { LDRXpost, 0x2, 0x3, true, true, false }, // 386
3750 { LDRXpre, 0x2, 0x3, true, true, false }, // 387
3751 { LDRXroW, 0x1, 0x2, true, false, false }, // 388
3752 { LDRXroX, 0x1, 0x2, true, false, false }, // 389
3753 { LDRXui, 0x1, 0x2, true, false, false }, // 390
3754 { LDSETAB, 0x2, 0x0, false, false, false }, // 391
3755 { LDSETAH, 0x2, 0x0, false, false, false }, // 392
3756 { LDSETALB, 0x2, 0x0, false, false, false }, // 393
3757 { LDSETALH, 0x2, 0x0, false, false, false }, // 394
3758 { LDSETALW, 0x2, 0x0, false, false, false }, // 395
3759 { LDSETALX, 0x2, 0x0, false, false, false }, // 396
3760 { LDSETAW, 0x2, 0x0, false, false, false }, // 397
3761 { LDSETAX, 0x2, 0x0, false, false, false }, // 398
3762 { LDSETB, 0x2, 0x0, false, false, false }, // 399
3763 { LDSETH, 0x2, 0x0, false, false, false }, // 400
3764 { LDSETLB, 0x2, 0x0, false, false, false }, // 401
3765 { LDSETLH, 0x2, 0x0, false, false, false }, // 402
3766 { LDSETLW, 0x2, 0x0, false, false, false }, // 403
3767 { LDSETLX, 0x2, 0x0, false, false, false }, // 404
3768 { LDSETW, 0x2, 0x0, false, false, false }, // 405
3769 { LDSETX, 0x2, 0x0, false, false, false }, // 406
3770 { LDSMAXAB, 0x2, 0x0, false, false, false }, // 407
3771 { LDSMAXAH, 0x2, 0x0, false, false, false }, // 408
3772 { LDSMAXALB, 0x2, 0x0, false, false, false }, // 409
3773 { LDSMAXALH, 0x2, 0x0, false, false, false }, // 410
3774 { LDSMAXALW, 0x2, 0x0, false, false, false }, // 411
3775 { LDSMAXALX, 0x2, 0x0, false, false, false }, // 412
3776 { LDSMAXAW, 0x2, 0x0, false, false, false }, // 413
3777 { LDSMAXAX, 0x2, 0x0, false, false, false }, // 414
3778 { LDSMAXB, 0x2, 0x0, false, false, false }, // 415
3779 { LDSMAXH, 0x2, 0x0, false, false, false }, // 416
3780 { LDSMAXLB, 0x2, 0x0, false, false, false }, // 417
3781 { LDSMAXLH, 0x2, 0x0, false, false, false }, // 418
3782 { LDSMAXLW, 0x2, 0x0, false, false, false }, // 419
3783 { LDSMAXLX, 0x2, 0x0, false, false, false }, // 420
3784 { LDSMAXW, 0x2, 0x0, false, false, false }, // 421
3785 { LDSMAXX, 0x2, 0x0, false, false, false }, // 422
3786 { LDSMINAB, 0x2, 0x0, false, false, false }, // 423
3787 { LDSMINAH, 0x2, 0x0, false, false, false }, // 424
3788 { LDSMINALB, 0x2, 0x0, false, false, false }, // 425
3789 { LDSMINALH, 0x2, 0x0, false, false, false }, // 426
3790 { LDSMINALW, 0x2, 0x0, false, false, false }, // 427
3791 { LDSMINALX, 0x2, 0x0, false, false, false }, // 428
3792 { LDSMINAW, 0x2, 0x0, false, false, false }, // 429
3793 { LDSMINAX, 0x2, 0x0, false, false, false }, // 430
3794 { LDSMINB, 0x2, 0x0, false, false, false }, // 431
3795 { LDSMINH, 0x2, 0x0, false, false, false }, // 432
3796 { LDSMINLB, 0x2, 0x0, false, false, false }, // 433
3797 { LDSMINLH, 0x2, 0x0, false, false, false }, // 434
3798 { LDSMINLW, 0x2, 0x0, false, false, false }, // 435
3799 { LDSMINLX, 0x2, 0x0, false, false, false }, // 436
3800 { LDSMINW, 0x2, 0x0, false, false, false }, // 437
3801 { LDSMINX, 0x2, 0x0, false, false, false }, // 438
3802 { LDUMAXAB, 0x2, 0x0, false, false, false }, // 439
3803 { LDUMAXAH, 0x2, 0x0, false, false, false }, // 440
3804 { LDUMAXALB, 0x2, 0x0, false, false, false }, // 441
3805 { LDUMAXALH, 0x2, 0x0, false, false, false }, // 442
3806 { LDUMAXALW, 0x2, 0x0, false, false, false }, // 443
3807 { LDUMAXALX, 0x2, 0x0, false, false, false }, // 444
3808 { LDUMAXAW, 0x2, 0x0, false, false, false }, // 445
3809 { LDUMAXAX, 0x2, 0x0, false, false, false }, // 446
3810 { LDUMAXB, 0x2, 0x0, false, false, false }, // 447
3811 { LDUMAXH, 0x2, 0x0, false, false, false }, // 448
3812 { LDUMAXLB, 0x2, 0x0, false, false, false }, // 449
3813 { LDUMAXLH, 0x2, 0x0, false, false, false }, // 450
3814 { LDUMAXLW, 0x2, 0x0, false, false, false }, // 451
3815 { LDUMAXLX, 0x2, 0x0, false, false, false }, // 452
3816 { LDUMAXW, 0x2, 0x0, false, false, false }, // 453
3817 { LDUMAXX, 0x2, 0x0, false, false, false }, // 454
3818 { LDUMINAB, 0x2, 0x0, false, false, false }, // 455
3819 { LDUMINAH, 0x2, 0x0, false, false, false }, // 456
3820 { LDUMINALB, 0x2, 0x0, false, false, false }, // 457
3821 { LDUMINALH, 0x2, 0x0, false, false, false }, // 458
3822 { LDUMINALW, 0x2, 0x0, false, false, false }, // 459
3823 { LDUMINALX, 0x2, 0x0, false, false, false }, // 460
3824 { LDUMINAW, 0x2, 0x0, false, false, false }, // 461
3825 { LDUMINAX, 0x2, 0x0, false, false, false }, // 462
3826 { LDUMINB, 0x2, 0x0, false, false, false }, // 463
3827 { LDUMINH, 0x2, 0x0, false, false, false }, // 464
3828 { LDUMINLB, 0x2, 0x0, false, false, false }, // 465
3829 { LDUMINLH, 0x2, 0x0, false, false, false }, // 466
3830 { LDUMINLW, 0x2, 0x0, false, false, false }, // 467
3831 { LDUMINLX, 0x2, 0x0, false, false, false }, // 468
3832 { LDUMINW, 0x2, 0x0, false, false, false }, // 469
3833 { LDUMINX, 0x2, 0x0, false, false, false }, // 470
3834 { LDURBBi, 0x1, 0x2, true, false, false }, // 471
3835 { LDURBi, 0x1, 0x2, true, false, false }, // 472
3836 { LDURDi, 0x1, 0x2, true, false, false }, // 473
3837 { LDURHHi, 0x1, 0x2, true, false, false }, // 474
3838 { LDURHi, 0x1, 0x2, true, false, false }, // 475
3839 { LDURQi, 0x1, 0x2, true, false, false }, // 476
3840 { LDURSBWi, 0x1, 0x2, true, false, false }, // 477
3841 { LDURSBXi, 0x1, 0x2, true, false, false }, // 478
3842 { LDURSHWi, 0x1, 0x2, true, false, false }, // 479
3843 { LDURSHXi, 0x1, 0x2, true, false, false }, // 480
3844 { LDURSWi, 0x1, 0x2, true, false, false }, // 481
3845 { LDURSi, 0x1, 0x2, true, false, false }, // 482
3846 { LDURWi, 0x1, 0x2, true, false, false }, // 483
3847 { LDURXi, 0x1, 0x2, true, false, false }, // 484
3848 { LDXPW, 0x2, 0x0, false, false, false }, // 485
3849 { LDXPX, 0x2, 0x0, false, false, false }, // 486
3850 { LDXRB, 0x1, 0x0, false, false, false }, // 487
3851 { LDXRH, 0x1, 0x0, false, false, false }, // 488
3852 { LDXRW, 0x1, 0x0, false, false, false }, // 489
3853 { LDXRX, 0x1, 0x0, false, false, false }, // 490
3854 { PRFMl, 0x0, 0x0, false, false, true }, // 491
3855 { PRFMroW, 0x1, 0x2, true, false, false }, // 492
3856 { PRFMroX, 0x1, 0x2, true, false, false }, // 493
3857 { PRFMui, 0x1, 0x2, true, false, false }, // 494
3858 { PRFUMi, 0x1, 0x2, true, false, false }, // 495
3859 { ST1Fourv16b, 0x1, 0x0, false, false, false }, // 496
3860 { ST1Fourv16b_POST, 0x2, 0x3, true, true, false }, // 497
3861 { ST1Fourv1d, 0x1, 0x0, false, false, false }, // 498
3862 { ST1Fourv1d_POST, 0x2, 0x3, true, true, false }, // 499
3863 { ST1Fourv2d, 0x1, 0x0, false, false, false }, // 500
3864 { ST1Fourv2d_POST, 0x2, 0x3, true, true, false }, // 501
3865 { ST1Fourv2s, 0x1, 0x0, false, false, false }, // 502
3866 { ST1Fourv2s_POST, 0x2, 0x3, true, true, false }, // 503
3867 { ST1Fourv4h, 0x1, 0x0, false, false, false }, // 504
3868 { ST1Fourv4h_POST, 0x2, 0x3, true, true, false }, // 505
3869 { ST1Fourv4s, 0x1, 0x0, false, false, false }, // 506
3870 { ST1Fourv4s_POST, 0x2, 0x3, true, true, false }, // 507
3871 { ST1Fourv8b, 0x1, 0x0, false, false, false }, // 508
3872 { ST1Fourv8b_POST, 0x2, 0x3, true, true, false }, // 509
3873 { ST1Fourv8h, 0x1, 0x0, false, false, false }, // 510
3874 { ST1Fourv8h_POST, 0x2, 0x3, true, true, false }, // 511
3875 { ST1Onev16b, 0x1, 0x0, false, false, false }, // 512
3876 { ST1Onev16b_POST, 0x2, 0x3, true, true, false }, // 513
3877 { ST1Onev1d, 0x1, 0x0, false, false, false }, // 514
3878 { ST1Onev1d_POST, 0x2, 0x3, true, true, false }, // 515
3879 { ST1Onev2d, 0x1, 0x0, false, false, false }, // 516
3880 { ST1Onev2d_POST, 0x2, 0x3, true, true, false }, // 517
3881 { ST1Onev2s, 0x1, 0x0, false, false, false }, // 518
3882 { ST1Onev2s_POST, 0x2, 0x3, true, true, false }, // 519
3883 { ST1Onev4h, 0x1, 0x0, false, false, false }, // 520
3884 { ST1Onev4h_POST, 0x2, 0x3, true, true, false }, // 521
3885 { ST1Onev4s, 0x1, 0x0, false, false, false }, // 522
3886 { ST1Onev4s_POST, 0x2, 0x3, true, true, false }, // 523
3887 { ST1Onev8b, 0x1, 0x0, false, false, false }, // 524
3888 { ST1Onev8b_POST, 0x2, 0x3, true, true, false }, // 525
3889 { ST1Onev8h, 0x1, 0x0, false, false, false }, // 526
3890 { ST1Onev8h_POST, 0x2, 0x3, true, true, false }, // 527
3891 { ST1Threev16b, 0x1, 0x0, false, false, false }, // 528
3892 { ST1Threev16b_POST, 0x2, 0x3, true, true, false }, // 529
3893 { ST1Threev1d, 0x1, 0x0, false, false, false }, // 530
3894 { ST1Threev1d_POST, 0x2, 0x3, true, true, false }, // 531
3895 { ST1Threev2d, 0x1, 0x0, false, false, false }, // 532
3896 { ST1Threev2d_POST, 0x2, 0x3, true, true, false }, // 533
3897 { ST1Threev2s, 0x1, 0x0, false, false, false }, // 534
3898 { ST1Threev2s_POST, 0x2, 0x3, true, true, false }, // 535
3899 { ST1Threev4h, 0x1, 0x0, false, false, false }, // 536
3900 { ST1Threev4h_POST, 0x2, 0x3, true, true, false }, // 537
3901 { ST1Threev4s, 0x1, 0x0, false, false, false }, // 538
3902 { ST1Threev4s_POST, 0x2, 0x3, true, true, false }, // 539
3903 { ST1Threev8b, 0x1, 0x0, false, false, false }, // 540
3904 { ST1Threev8b_POST, 0x2, 0x3, true, true, false }, // 541
3905 { ST1Threev8h, 0x1, 0x0, false, false, false }, // 542
3906 { ST1Threev8h_POST, 0x2, 0x3, true, true, false }, // 543
3907 { ST1Twov16b, 0x1, 0x0, false, false, false }, // 544
3908 { ST1Twov16b_POST, 0x2, 0x3, true, true, false }, // 545
3909 { ST1Twov1d, 0x1, 0x0, false, false, false }, // 546
3910 { ST1Twov1d_POST, 0x2, 0x3, true, true, false }, // 547
3911 { ST1Twov2d, 0x1, 0x0, false, false, false }, // 548
3912 { ST1Twov2d_POST, 0x2, 0x3, true, true, false }, // 549
3913 { ST1Twov2s, 0x1, 0x0, false, false, false }, // 550
3914 { ST1Twov2s_POST, 0x2, 0x3, true, true, false }, // 551
3915 { ST1Twov4h, 0x1, 0x0, false, false, false }, // 552
3916 { ST1Twov4h_POST, 0x2, 0x3, true, true, false }, // 553
3917 { ST1Twov4s, 0x1, 0x0, false, false, false }, // 554
3918 { ST1Twov4s_POST, 0x2, 0x3, true, true, false }, // 555
3919 { ST1Twov8b, 0x1, 0x0, false, false, false }, // 556
3920 { ST1Twov8b_POST, 0x2, 0x3, true, true, false }, // 557
3921 { ST1Twov8h, 0x1, 0x0, false, false, false }, // 558
3922 { ST1Twov8h_POST, 0x2, 0x3, true, true, false }, // 559
3923 { ST1i16, 0x2, 0x0, false, false, false }, // 560
3924 { ST1i16_POST, 0x3, 0x4, true, true, false }, // 561
3925 { ST1i32, 0x2, 0x0, false, false, false }, // 562
3926 { ST1i32_POST, 0x3, 0x4, true, true, false }, // 563
3927 { ST1i64, 0x2, 0x0, false, false, false }, // 564
3928 { ST1i64_POST, 0x3, 0x4, true, true, false }, // 565
3929 { ST1i8, 0x2, 0x0, false, false, false }, // 566
3930 { ST1i8_POST, 0x3, 0x4, true, true, false }, // 567
3931 { ST2Twov16b, 0x1, 0x0, false, false, false }, // 568
3932 { ST2Twov16b_POST, 0x2, 0x3, true, true, false }, // 569
3933 { ST2Twov2d, 0x1, 0x0, false, false, false }, // 570
3934 { ST2Twov2d_POST, 0x2, 0x3, true, true, false }, // 571
3935 { ST2Twov2s, 0x1, 0x0, false, false, false }, // 572
3936 { ST2Twov2s_POST, 0x2, 0x3, true, true, false }, // 573
3937 { ST2Twov4h, 0x1, 0x0, false, false, false }, // 574
3938 { ST2Twov4h_POST, 0x2, 0x3, true, true, false }, // 575
3939 { ST2Twov4s, 0x1, 0x0, false, false, false }, // 576
3940 { ST2Twov4s_POST, 0x2, 0x3, true, true, false }, // 577
3941 { ST2Twov8b, 0x1, 0x0, false, false, false }, // 578
3942 { ST2Twov8b_POST, 0x2, 0x3, true, true, false }, // 579
3943 { ST2Twov8h, 0x1, 0x0, false, false, false }, // 580
3944 { ST2Twov8h_POST, 0x2, 0x3, true, true, false }, // 581
3945 { ST2i16, 0x2, 0x0, false, false, false }, // 582
3946 { ST2i16_POST, 0x3, 0x4, true, true, false }, // 583
3947 { ST2i32, 0x2, 0x0, false, false, false }, // 584
3948 { ST2i32_POST, 0x3, 0x4, true, true, false }, // 585
3949 { ST2i64, 0x2, 0x0, false, false, false }, // 586
3950 { ST2i64_POST, 0x3, 0x4, true, true, false }, // 587
3951 { ST2i8, 0x2, 0x0, false, false, false }, // 588
3952 { ST2i8_POST, 0x3, 0x4, true, true, false }, // 589
3953 { ST3Threev16b, 0x1, 0x0, false, false, false }, // 590
3954 { ST3Threev16b_POST, 0x2, 0x3, true, true, false }, // 591
3955 { ST3Threev2d, 0x1, 0x0, false, false, false }, // 592
3956 { ST3Threev2d_POST, 0x2, 0x3, true, true, false }, // 593
3957 { ST3Threev2s, 0x1, 0x0, false, false, false }, // 594
3958 { ST3Threev2s_POST, 0x2, 0x3, true, true, false }, // 595
3959 { ST3Threev4h, 0x1, 0x0, false, false, false }, // 596
3960 { ST3Threev4h_POST, 0x2, 0x3, true, true, false }, // 597
3961 { ST3Threev4s, 0x1, 0x0, false, false, false }, // 598
3962 { ST3Threev4s_POST, 0x2, 0x3, true, true, false }, // 599
3963 { ST3Threev8b, 0x1, 0x0, false, false, false }, // 600
3964 { ST3Threev8b_POST, 0x2, 0x3, true, true, false }, // 601
3965 { ST3Threev8h, 0x1, 0x0, false, false, false }, // 602
3966 { ST3Threev8h_POST, 0x2, 0x3, true, true, false }, // 603
3967 { ST3i16, 0x2, 0x0, false, false, false }, // 604
3968 { ST3i16_POST, 0x3, 0x4, true, true, false }, // 605
3969 { ST3i32, 0x2, 0x0, false, false, false }, // 606
3970 { ST3i32_POST, 0x3, 0x4, true, true, false }, // 607
3971 { ST3i64, 0x2, 0x0, false, false, false }, // 608
3972 { ST3i64_POST, 0x3, 0x4, true, true, false }, // 609
3973 { ST3i8, 0x2, 0x0, false, false, false }, // 610
3974 { ST3i8_POST, 0x3, 0x4, true, true, false }, // 611
3975 { ST4Fourv16b, 0x1, 0x0, false, false, false }, // 612
3976 { ST4Fourv16b_POST, 0x2, 0x3, true, true, false }, // 613
3977 { ST4Fourv2d, 0x1, 0x0, false, false, false }, // 614
3978 { ST4Fourv2d_POST, 0x2, 0x3, true, true, false }, // 615
3979 { ST4Fourv2s, 0x1, 0x0, false, false, false }, // 616
3980 { ST4Fourv2s_POST, 0x2, 0x3, true, true, false }, // 617
3981 { ST4Fourv4h, 0x1, 0x0, false, false, false }, // 618
3982 { ST4Fourv4h_POST, 0x2, 0x3, true, true, false }, // 619
3983 { ST4Fourv4s, 0x1, 0x0, false, false, false }, // 620
3984 { ST4Fourv4s_POST, 0x2, 0x3, true, true, false }, // 621
3985 { ST4Fourv8b, 0x1, 0x0, false, false, false }, // 622
3986 { ST4Fourv8b_POST, 0x2, 0x3, true, true, false }, // 623
3987 { ST4Fourv8h, 0x1, 0x0, false, false, false }, // 624
3988 { ST4Fourv8h_POST, 0x2, 0x3, true, true, false }, // 625
3989 { ST4i16, 0x2, 0x0, false, false, false }, // 626
3990 { ST4i16_POST, 0x3, 0x4, true, true, false }, // 627
3991 { ST4i32, 0x2, 0x0, false, false, false }, // 628
3992 { ST4i32_POST, 0x3, 0x4, true, true, false }, // 629
3993 { ST4i64, 0x2, 0x0, false, false, false }, // 630
3994 { ST4i64_POST, 0x3, 0x4, true, true, false }, // 631
3995 { ST4i8, 0x2, 0x0, false, false, false }, // 632
3996 { ST4i8_POST, 0x3, 0x4, true, true, false }, // 633
3997 { STLLRB, 0x1, 0x0, false, false, false }, // 634
3998 { STLLRH, 0x1, 0x0, false, false, false }, // 635
3999 { STLLRW, 0x1, 0x0, false, false, false }, // 636
4000 { STLLRX, 0x1, 0x0, false, false, false }, // 637
4001 { STLRB, 0x1, 0x0, false, false, false }, // 638
4002 { STLRH, 0x1, 0x0, false, false, false }, // 639
4003 { STLRW, 0x1, 0x0, false, false, false }, // 640
4004 { STLRX, 0x1, 0x0, false, false, false }, // 641
4005 { STLXPW, 0x3, 0x0, false, false, false }, // 642
4006 { STLXPX, 0x3, 0x0, false, false, false }, // 643
4007 { STLXRB, 0x2, 0x0, false, false, false }, // 644
4008 { STLXRH, 0x2, 0x0, false, false, false }, // 645
4009 { STLXRW, 0x2, 0x0, false, false, false }, // 646
4010 { STLXRX, 0x2, 0x0, false, false, false }, // 647
4011 { STNPDi, 0x2, 0x3, true, false, false }, // 648
4012 { STNPQi, 0x2, 0x3, true, false, false }, // 649
4013 { STNPSi, 0x2, 0x3, true, false, false }, // 650
4014 { STNPWi, 0x2, 0x3, true, false, false }, // 651
4015 { STNPXi, 0x2, 0x3, true, false, false }, // 652
4016 { STPDi, 0x2, 0x3, true, false, false }, // 653
4017 { STPDpost, 0x3, 0x4, true, true, false }, // 654
4018 { STPDpre, 0x3, 0x4, true, true, false }, // 655
4019 { STPQi, 0x2, 0x3, true, false, false }, // 656
4020 { STPQpost, 0x3, 0x4, true, true, false }, // 657
4021 { STPQpre, 0x3, 0x4, true, true, false }, // 658
4022 { STPSi, 0x2, 0x3, true, false, false }, // 659
4023 { STPSpost, 0x3, 0x4, true, true, false }, // 660
4024 { STPSpre, 0x3, 0x4, true, true, false }, // 661
4025 { STPWi, 0x2, 0x3, true, false, false }, // 662
4026 { STPWpost, 0x3, 0x4, true, true, false }, // 663
4027 { STPWpre, 0x3, 0x4, true, true, false }, // 664
4028 { STPXi, 0x2, 0x3, true, false, false }, // 665
4029 { STPXpost, 0x3, 0x4, true, true, false }, // 666
4030 { STPXpre, 0x3, 0x4, true, true, false }, // 667
4031 { STRBBpost, 0x2, 0x3, true, true, false }, // 668
4032 { STRBBpre, 0x2, 0x3, true, true, false }, // 669
4033 { STRBBroW, 0x1, 0x2, true, false, false }, // 670
4034 { STRBBroX, 0x1, 0x2, true, false, false }, // 671
4035 { STRBBui, 0x1, 0x2, true, false, false }, // 672
4036 { STRBpost, 0x2, 0x3, true, true, false }, // 673
4037 { STRBpre, 0x2, 0x3, true, true, false }, // 674
4038 { STRBroW, 0x1, 0x2, true, false, false }, // 675
4039 { STRBroX, 0x1, 0x2, true, false, false }, // 676
4040 { STRBui, 0x1, 0x2, true, false, false }, // 677
4041 { STRDpost, 0x2, 0x3, true, true, false }, // 678
4042 { STRDpre, 0x2, 0x3, true, true, false }, // 679
4043 { STRDroW, 0x1, 0x2, true, false, false }, // 680
4044 { STRDroX, 0x1, 0x2, true, false, false }, // 681
4045 { STRDui, 0x1, 0x2, true, false, false }, // 682
4046 { STRHHpost, 0x2, 0x3, true, true, false }, // 683
4047 { STRHHpre, 0x2, 0x3, true, true, false }, // 684
4048 { STRHHroW, 0x1, 0x2, true, false, false }, // 685
4049 { STRHHroX, 0x1, 0x2, true, false, false }, // 686
4050 { STRHHui, 0x1, 0x2, true, false, false }, // 687
4051 { STRHpost, 0x2, 0x3, true, true, false }, // 688
4052 { STRHpre, 0x2, 0x3, true, true, false }, // 689
4053 { STRHroW, 0x1, 0x2, true, false, false }, // 690
4054 { STRHroX, 0x1, 0x2, true, false, false }, // 691
4055 { STRHui, 0x1, 0x2, true, false, false }, // 692
4056 { STRQpost, 0x2, 0x3, true, true, false }, // 693
4057 { STRQpre, 0x2, 0x3, true, true, false }, // 694
4058 { STRQroW, 0x1, 0x2, true, false, false }, // 695
4059 { STRQroX, 0x1, 0x2, true, false, false }, // 696
4060 { STRQui, 0x1, 0x2, true, false, false }, // 697
4061 { STRSpost, 0x2, 0x3, true, true, false }, // 698
4062 { STRSpre, 0x2, 0x3, true, true, false }, // 699
4063 { STRSroW, 0x1, 0x2, true, false, false }, // 700
4064 { STRSroX, 0x1, 0x2, true, false, false }, // 701
4065 { STRSui, 0x1, 0x2, true, false, false }, // 702
4066 { STRWpost, 0x2, 0x3, true, true, false }, // 703
4067 { STRWpre, 0x2, 0x3, true, true, false }, // 704
4068 { STRWroW, 0x1, 0x2, true, false, false }, // 705
4069 { STRWroX, 0x1, 0x2, true, false, false }, // 706
4070 { STRWui, 0x1, 0x2, true, false, false }, // 707
4071 { STRXpost, 0x2, 0x3, true, true, false }, // 708
4072 { STRXpre, 0x2, 0x3, true, true, false }, // 709
4073 { STRXroW, 0x1, 0x2, true, false, false }, // 710
4074 { STRXroX, 0x1, 0x2, true, false, false }, // 711
4075 { STRXui, 0x1, 0x2, true, false, false }, // 712
4076 { STURBBi, 0x1, 0x2, true, false, false }, // 713
4077 { STURBi, 0x1, 0x2, true, false, false }, // 714
4078 { STURDi, 0x1, 0x2, true, false, false }, // 715
4079 { STURHHi, 0x1, 0x2, true, false, false }, // 716
4080 { STURHi, 0x1, 0x2, true, false, false }, // 717
4081 { STURQi, 0x1, 0x2, true, false, false }, // 718
4082 { STURSi, 0x1, 0x2, true, false, false }, // 719
4083 { STURWi, 0x1, 0x2, true, false, false }, // 720
4084 { STURXi, 0x1, 0x2, true, false, false }, // 721
4085 { STXPW, 0x3, 0x0, false, false, false }, // 722
4086 { STXPX, 0x3, 0x0, false, false, false }, // 723
4087 { STXRB, 0x2, 0x0, false, false, false }, // 724
4088 { STXRH, 0x2, 0x0, false, false, false }, // 725
4089 { STXRW, 0x2, 0x0, false, false, false }, // 726
4090 { STXRX, 0x2, 0x0, false, false, false }, // 727
4091 { SWPAB, 0x2, 0x0, false, false, false }, // 728
4092 { SWPAH, 0x2, 0x0, false, false, false }, // 729
4093 { SWPALB, 0x2, 0x0, false, false, false }, // 730
4094 { SWPALH, 0x2, 0x0, false, false, false }, // 731
4095 { SWPALW, 0x2, 0x0, false, false, false }, // 732
4096 { SWPALX, 0x2, 0x0, false, false, false }, // 733
4097 { SWPAW, 0x2, 0x0, false, false, false }, // 734
4098 { SWPAX, 0x2, 0x0, false, false, false }, // 735
4099 { SWPB, 0x2, 0x0, false, false, false }, // 736
4100 { SWPH, 0x2, 0x0, false, false, false }, // 737
4101 { SWPLB, 0x2, 0x0, false, false, false }, // 738
4102 { SWPLH, 0x2, 0x0, false, false, false }, // 739
4103 { SWPLW, 0x2, 0x0, false, false, false }, // 740
4104 { SWPLX, 0x2, 0x0, false, false, false }, // 741
4105 { SWPW, 0x2, 0x0, false, false, false }, // 742
4106 { SWPX, 0x2, 0x0, false, false, false }, // 743
4107 };
4108
4109const MemInfoEntry *lookupMemInfoByOpcode(unsigned Inst) {
4110 struct KeyType {
4111 unsigned Inst;
4112 };
4113 KeyType Key = {Inst};
4114 struct Comp {
4115 bool operator()(const MemInfoEntry &LHS, const KeyType &RHS) const {
4116 if (LHS.Inst < RHS.Inst)
4117 return true;
4118 if (LHS.Inst > RHS.Inst)
4119 return false;
4120 return false;
4121 }
4122 };
4123 auto Table = ArrayRef(MemInfoTable);
4124 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4125 if (Idx == Table.end() ||
4126 Key.Inst != Idx->Inst)
4127 return nullptr;
4128
4129 return &*Idx;
4130}
4131#endif
4132
4133#ifdef GET_PHintsList_DECL
4134const PHint *lookupPHintByEncoding(uint16_t Encoding);
4135const PHint *lookupPHintByName(StringRef Name);
4136StringRef getPHintStr(StringTable::Offset);
4137#endif
4138
4139#ifdef GET_PHintsList_IMPL
4140constexpr PHint PHintsList[] = {
4141 { 1 /* "keep" */, 0x0, {} }, // 0
4142 { 6 /* "strm" */, 0x1, {} }, // 1
4143 };
4144
4145#ifdef __GNUC__
4146#pragma GCC diagnostic push
4147#pragma GCC diagnostic ignored "-Woverlength-strings"
4148#endif
4149static constexpr char PHintsListStringsStorage[] =
4150 "\0"
4151 "keep\0"
4152 "strm\0"
4153 "KEEP\0"
4154 "STRM\0"
4155 ;
4156#ifdef __GNUC__
4157#pragma GCC diagnostic pop
4158#endif
4159
4160static constexpr llvm::StringTable
4161PHintsListStrings = PHintsListStringsStorage;
4162
4163StringRef getPHintStr(StringTable::Offset Offset) {
4164 return PHintsListStrings[Offset];
4165}
4166
4167const PHint *lookupPHintByEncoding(uint16_t Encoding) {
4168 if ((uint16_t)Encoding != std::clamp<uint16_t>(Encoding, 0x0, 0x1))
4169 return nullptr;
4170
4171 auto Table = ArrayRef(PHintsList);
4172 size_t Idx = Encoding - 0x0;
4173 return &Table[Idx];
4174}
4175
4176const PHint *lookupPHintByName(StringRef Name) {
4177 struct IndexType {
4178 unsigned Name;
4179 unsigned _index;
4180 };
4181 static const struct IndexType Index[] = {
4182 { 11 /* "KEEP" */, 0 },
4183 { 16 /* "STRM" */, 1 },
4184 };
4185
4186 struct KeyType {
4187 std::string Name;
4188 };
4189 KeyType Key = {Name.upper()};
4190 struct Comp {
4191 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
4192 StringRef LHSStr = PHintsListStrings[LHS.Name];
4193 StringRef RHSStr = RHS.Name;
4194 int CmpName = LHSStr.compare(RHSStr);
4195 if (CmpName < 0) return true;
4196 if (CmpName > 0) return false;
4197 return false;
4198 }
4199 };
4200 auto Table = ArrayRef(Index);
4201 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4202 if (Idx == Table.end() ||
4203 Key.Name != PHintsListStrings[Idx->Name])
4204 return nullptr;
4205
4206 return &PHintsList[Idx->_index];
4207}
4208#endif
4209
4210#ifdef GET_PLBITable_DECL
4211const PLBI *lookupPLBIByEncoding(uint16_t Encoding);
4212const PLBI *lookupPLBIByName(StringRef Name);
4213StringRef getPLBIStr(StringTable::Offset);
4214#endif
4215
4216#ifdef GET_PLBITable_IMPL
4217constexpr PLBI PLBITable[] = {
4218 { 1 /* "VMALLE1OS" */, 0x508, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 0
4219 { 11 /* "PERME1OS" */, 0x509, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 1
4220 { 20 /* "ASIDE1OS" */, 0x50A, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 2
4221 { 29 /* "PERMAE1OS" */, 0x50B, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 3
4222 { 39 /* "VMALLE1IS" */, 0x518, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 4
4223 { 49 /* "PERME1IS" */, 0x519, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 5
4224 { 58 /* "ASIDE1IS" */, 0x51A, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 6
4225 { 67 /* "PERMAE1IS" */, 0x51B, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 7
4226 { 77 /* "VMALLE1" */, 0x538, REG_NONE, {AArch64::FeatureS1POE2} }, // 8
4227 { 85 /* "PERME1" */, 0x539, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 9
4228 { 92 /* "ASIDE1" */, 0x53A, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 10
4229 { 99 /* "PERMAE1" */, 0x53B, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 11
4230 { 107 /* "VMALLE1OSNXS" */, 0x548, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 12
4231 { 120 /* "PERME1OSNXS" */, 0x549, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 13
4232 { 132 /* "ASIDE1OSNXS" */, 0x54A, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 14
4233 { 144 /* "PERMAE1OSNXS" */, 0x54B, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 15
4234 { 157 /* "VMALLE1ISNXS" */, 0x558, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 16
4235 { 170 /* "PERME1ISNXS" */, 0x559, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 17
4236 { 182 /* "ASIDE1ISNXS" */, 0x55A, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 18
4237 { 194 /* "PERMAE1ISNXS" */, 0x55B, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 19
4238 { 207 /* "VMALLE1NXS" */, 0x578, REG_NONE, {AArch64::FeatureS1POE2} }, // 20
4239 { 218 /* "PERME1NXS" */, 0x579, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 21
4240 { 228 /* "ASIDE1NXS" */, 0x57A, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 22
4241 { 238 /* "PERMAE1NXS" */, 0x57B, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 23
4242 { 249 /* "ALLE2OS" */, 0x2508, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 24
4243 { 257 /* "PERME2OS" */, 0x2509, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 25
4244 { 266 /* "ALLE1OS" */, 0x250C, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 26
4245 { 274 /* "ALLE2IS" */, 0x2518, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 27
4246 { 282 /* "PERME2IS" */, 0x2519, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 28
4247 { 291 /* "ALLE1IS" */, 0x251C, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 29
4248 { 299 /* "ALLE2" */, 0x2538, REG_NONE, {AArch64::FeatureS1POE2} }, // 30
4249 { 305 /* "PERME2" */, 0x2539, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 31
4250 { 312 /* "ALLE1" */, 0x253C, REG_NONE, {AArch64::FeatureS1POE2} }, // 32
4251 { 318 /* "ALLE2OSNXS" */, 0x2548, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 33
4252 { 329 /* "PERME2OSNXS" */, 0x2549, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 34
4253 { 341 /* "ALLE1OSNXS" */, 0x254C, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 35
4254 { 352 /* "ALLE2ISNXS" */, 0x2558, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 36
4255 { 363 /* "PERME2ISNXS" */, 0x2559, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 37
4256 { 375 /* "ALLE1ISNXS" */, 0x255C, REG_OPTIONAL, {AArch64::FeatureS1POE2} }, // 38
4257 { 386 /* "ALLE2NXS" */, 0x2578, REG_NONE, {AArch64::FeatureS1POE2} }, // 39
4258 { 395 /* "PERME2NXS" */, 0x2579, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 40
4259 { 405 /* "ALLE1NXS" */, 0x257C, REG_NONE, {AArch64::FeatureS1POE2} }, // 41
4260 { 414 /* "ALLE3OS" */, 0x3508, REG_NONE, {AArch64::FeatureS1POE2} }, // 42
4261 { 422 /* "PERME3OS" */, 0x3509, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 43
4262 { 431 /* "ALLE3IS" */, 0x3518, REG_NONE, {AArch64::FeatureS1POE2} }, // 44
4263 { 439 /* "PERME3IS" */, 0x3519, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 45
4264 { 448 /* "ALLE3" */, 0x3538, REG_NONE, {AArch64::FeatureS1POE2} }, // 46
4265 { 454 /* "PERME3" */, 0x3539, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 47
4266 { 461 /* "ALLE3OSNXS" */, 0x3548, REG_NONE, {AArch64::FeatureS1POE2} }, // 48
4267 { 472 /* "PERME3OSNXS" */, 0x3549, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 49
4268 { 484 /* "ALLE3ISNXS" */, 0x3558, REG_NONE, {AArch64::FeatureS1POE2} }, // 50
4269 { 495 /* "PERME3ISNXS" */, 0x3559, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 51
4270 { 507 /* "ALLE3NXS" */, 0x3578, REG_NONE, {AArch64::FeatureS1POE2} }, // 52
4271 { 516 /* "PERME3NXS" */, 0x3579, REG_REQUIRED, {AArch64::FeatureS1POE2} }, // 53
4272 };
4273
4274#ifdef __GNUC__
4275#pragma GCC diagnostic push
4276#pragma GCC diagnostic ignored "-Woverlength-strings"
4277#endif
4278static constexpr char PLBITableStringsStorage[] =
4279 "\0"
4280 "VMALLE1OS\0"
4281 "PERME1OS\0"
4282 "ASIDE1OS\0"
4283 "PERMAE1OS\0"
4284 "VMALLE1IS\0"
4285 "PERME1IS\0"
4286 "ASIDE1IS\0"
4287 "PERMAE1IS\0"
4288 "VMALLE1\0"
4289 "PERME1\0"
4290 "ASIDE1\0"
4291 "PERMAE1\0"
4292 "VMALLE1OSNXS\0"
4293 "PERME1OSNXS\0"
4294 "ASIDE1OSNXS\0"
4295 "PERMAE1OSNXS\0"
4296 "VMALLE1ISNXS\0"
4297 "PERME1ISNXS\0"
4298 "ASIDE1ISNXS\0"
4299 "PERMAE1ISNXS\0"
4300 "VMALLE1NXS\0"
4301 "PERME1NXS\0"
4302 "ASIDE1NXS\0"
4303 "PERMAE1NXS\0"
4304 "ALLE2OS\0"
4305 "PERME2OS\0"
4306 "ALLE1OS\0"
4307 "ALLE2IS\0"
4308 "PERME2IS\0"
4309 "ALLE1IS\0"
4310 "ALLE2\0"
4311 "PERME2\0"
4312 "ALLE1\0"
4313 "ALLE2OSNXS\0"
4314 "PERME2OSNXS\0"
4315 "ALLE1OSNXS\0"
4316 "ALLE2ISNXS\0"
4317 "PERME2ISNXS\0"
4318 "ALLE1ISNXS\0"
4319 "ALLE2NXS\0"
4320 "PERME2NXS\0"
4321 "ALLE1NXS\0"
4322 "ALLE3OS\0"
4323 "PERME3OS\0"
4324 "ALLE3IS\0"
4325 "PERME3IS\0"
4326 "ALLE3\0"
4327 "PERME3\0"
4328 "ALLE3OSNXS\0"
4329 "PERME3OSNXS\0"
4330 "ALLE3ISNXS\0"
4331 "PERME3ISNXS\0"
4332 "ALLE3NXS\0"
4333 "PERME3NXS\0"
4334 ;
4335#ifdef __GNUC__
4336#pragma GCC diagnostic pop
4337#endif
4338
4339static constexpr llvm::StringTable
4340PLBITableStrings = PLBITableStringsStorage;
4341
4342StringRef getPLBIStr(StringTable::Offset Offset) {
4343 return PLBITableStrings[Offset];
4344}
4345
4346const PLBI *lookupPLBIByEncoding(uint16_t Encoding) {
4347 struct KeyType {
4348 uint16_t Encoding;
4349 };
4350 KeyType Key = {Encoding};
4351 struct Comp {
4352 bool operator()(const PLBI &LHS, const KeyType &RHS) const {
4353 if (LHS.Encoding < RHS.Encoding)
4354 return true;
4355 if (LHS.Encoding > RHS.Encoding)
4356 return false;
4357 return false;
4358 }
4359 };
4360 auto Table = ArrayRef(PLBITable);
4361 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4362 if (Idx == Table.end() ||
4363 Key.Encoding != Idx->Encoding)
4364 return nullptr;
4365
4366 return &*Idx;
4367}
4368
4369const PLBI *lookupPLBIByName(StringRef Name) {
4370 struct IndexType {
4371 unsigned Name;
4372 unsigned _index;
4373 };
4374 static const struct IndexType Index[] = {
4375 { 312 /* "ALLE1" */, 32 },
4376 { 291 /* "ALLE1IS" */, 29 },
4377 { 375 /* "ALLE1ISNXS" */, 38 },
4378 { 405 /* "ALLE1NXS" */, 41 },
4379 { 266 /* "ALLE1OS" */, 26 },
4380 { 341 /* "ALLE1OSNXS" */, 35 },
4381 { 299 /* "ALLE2" */, 30 },
4382 { 274 /* "ALLE2IS" */, 27 },
4383 { 352 /* "ALLE2ISNXS" */, 36 },
4384 { 386 /* "ALLE2NXS" */, 39 },
4385 { 249 /* "ALLE2OS" */, 24 },
4386 { 318 /* "ALLE2OSNXS" */, 33 },
4387 { 448 /* "ALLE3" */, 46 },
4388 { 431 /* "ALLE3IS" */, 44 },
4389 { 484 /* "ALLE3ISNXS" */, 50 },
4390 { 507 /* "ALLE3NXS" */, 52 },
4391 { 414 /* "ALLE3OS" */, 42 },
4392 { 461 /* "ALLE3OSNXS" */, 48 },
4393 { 92 /* "ASIDE1" */, 10 },
4394 { 58 /* "ASIDE1IS" */, 6 },
4395 { 182 /* "ASIDE1ISNXS" */, 18 },
4396 { 228 /* "ASIDE1NXS" */, 22 },
4397 { 20 /* "ASIDE1OS" */, 2 },
4398 { 132 /* "ASIDE1OSNXS" */, 14 },
4399 { 99 /* "PERMAE1" */, 11 },
4400 { 67 /* "PERMAE1IS" */, 7 },
4401 { 194 /* "PERMAE1ISNXS" */, 19 },
4402 { 238 /* "PERMAE1NXS" */, 23 },
4403 { 29 /* "PERMAE1OS" */, 3 },
4404 { 144 /* "PERMAE1OSNXS" */, 15 },
4405 { 85 /* "PERME1" */, 9 },
4406 { 49 /* "PERME1IS" */, 5 },
4407 { 170 /* "PERME1ISNXS" */, 17 },
4408 { 218 /* "PERME1NXS" */, 21 },
4409 { 11 /* "PERME1OS" */, 1 },
4410 { 120 /* "PERME1OSNXS" */, 13 },
4411 { 305 /* "PERME2" */, 31 },
4412 { 282 /* "PERME2IS" */, 28 },
4413 { 363 /* "PERME2ISNXS" */, 37 },
4414 { 395 /* "PERME2NXS" */, 40 },
4415 { 257 /* "PERME2OS" */, 25 },
4416 { 329 /* "PERME2OSNXS" */, 34 },
4417 { 454 /* "PERME3" */, 47 },
4418 { 439 /* "PERME3IS" */, 45 },
4419 { 495 /* "PERME3ISNXS" */, 51 },
4420 { 516 /* "PERME3NXS" */, 53 },
4421 { 422 /* "PERME3OS" */, 43 },
4422 { 472 /* "PERME3OSNXS" */, 49 },
4423 { 77 /* "VMALLE1" */, 8 },
4424 { 39 /* "VMALLE1IS" */, 4 },
4425 { 157 /* "VMALLE1ISNXS" */, 16 },
4426 { 207 /* "VMALLE1NXS" */, 20 },
4427 { 1 /* "VMALLE1OS" */, 0 },
4428 { 107 /* "VMALLE1OSNXS" */, 12 },
4429 };
4430
4431 struct KeyType {
4432 std::string Name;
4433 };
4434 KeyType Key = {Name.upper()};
4435 struct Comp {
4436 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
4437 StringRef LHSStr = PLBITableStrings[LHS.Name];
4438 StringRef RHSStr = RHS.Name;
4439 int CmpName = LHSStr.compare(RHSStr);
4440 if (CmpName < 0) return true;
4441 if (CmpName > 0) return false;
4442 return false;
4443 }
4444 };
4445 auto Table = ArrayRef(Index);
4446 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4447 if (Idx == Table.end() ||
4448 Key.Name != PLBITableStrings[Idx->Name])
4449 return nullptr;
4450
4451 return &PLBITable[Idx->_index];
4452}
4453#endif
4454
4455#ifdef GET_PRFMsList_DECL
4456const PRFM *lookupPRFMByEncoding(uint8_t Encoding);
4457const PRFM *lookupPRFMByName(StringRef Name);
4458StringRef getPRFMStr(StringTable::Offset);
4459#endif
4460
4461#ifdef GET_PRFMsList_IMPL
4462constexpr PRFM PRFMsList[] = {
4463 { 1 /* "pldl1keep" */, 0x0, {} }, // 0
4464 { 11 /* "pldl1strm" */, 0x1, {} }, // 1
4465 { 21 /* "pldl2keep" */, 0x2, {} }, // 2
4466 { 31 /* "pldl2strm" */, 0x3, {} }, // 3
4467 { 41 /* "pldl3keep" */, 0x4, {} }, // 4
4468 { 51 /* "pldl3strm" */, 0x5, {} }, // 5
4469 { 61 /* "pldslckeep" */, 0x6, {} }, // 6
4470 { 72 /* "pldslcstrm" */, 0x7, {} }, // 7
4471 { 83 /* "plil1keep" */, 0x8, {} }, // 8
4472 { 93 /* "plil1strm" */, 0x9, {} }, // 9
4473 { 103 /* "plil2keep" */, 0xA, {} }, // 10
4474 { 113 /* "plil2strm" */, 0xB, {} }, // 11
4475 { 123 /* "plil3keep" */, 0xC, {} }, // 12
4476 { 133 /* "plil3strm" */, 0xD, {} }, // 13
4477 { 143 /* "plislckeep" */, 0xE, {} }, // 14
4478 { 154 /* "plislcstrm" */, 0xF, {} }, // 15
4479 { 165 /* "pstl1keep" */, 0x10, {} }, // 16
4480 { 175 /* "pstl1strm" */, 0x11, {} }, // 17
4481 { 185 /* "pstl2keep" */, 0x12, {} }, // 18
4482 { 195 /* "pstl2strm" */, 0x13, {} }, // 19
4483 { 205 /* "pstl3keep" */, 0x14, {} }, // 20
4484 { 215 /* "pstl3strm" */, 0x15, {} }, // 21
4485 { 225 /* "pstslckeep" */, 0x16, {} }, // 22
4486 { 236 /* "pstslcstrm" */, 0x17, {} }, // 23
4487 { 247 /* "ir" */, 0x18, {} }, // 24
4488 };
4489
4490#ifdef __GNUC__
4491#pragma GCC diagnostic push
4492#pragma GCC diagnostic ignored "-Woverlength-strings"
4493#endif
4494static constexpr char PRFMsListStringsStorage[] =
4495 "\0"
4496 "pldl1keep\0"
4497 "pldl1strm\0"
4498 "pldl2keep\0"
4499 "pldl2strm\0"
4500 "pldl3keep\0"
4501 "pldl3strm\0"
4502 "pldslckeep\0"
4503 "pldslcstrm\0"
4504 "plil1keep\0"
4505 "plil1strm\0"
4506 "plil2keep\0"
4507 "plil2strm\0"
4508 "plil3keep\0"
4509 "plil3strm\0"
4510 "plislckeep\0"
4511 "plislcstrm\0"
4512 "pstl1keep\0"
4513 "pstl1strm\0"
4514 "pstl2keep\0"
4515 "pstl2strm\0"
4516 "pstl3keep\0"
4517 "pstl3strm\0"
4518 "pstslckeep\0"
4519 "pstslcstrm\0"
4520 "ir\0"
4521 "IR\0"
4522 "PLDL1KEEP\0"
4523 "PLDL1STRM\0"
4524 "PLDL2KEEP\0"
4525 "PLDL2STRM\0"
4526 "PLDL3KEEP\0"
4527 "PLDL3STRM\0"
4528 "PLDSLCKEEP\0"
4529 "PLDSLCSTRM\0"
4530 "PLIL1KEEP\0"
4531 "PLIL1STRM\0"
4532 "PLIL2KEEP\0"
4533 "PLIL2STRM\0"
4534 "PLIL3KEEP\0"
4535 "PLIL3STRM\0"
4536 "PLISLCKEEP\0"
4537 "PLISLCSTRM\0"
4538 "PSTL1KEEP\0"
4539 "PSTL1STRM\0"
4540 "PSTL2KEEP\0"
4541 "PSTL2STRM\0"
4542 "PSTL3KEEP\0"
4543 "PSTL3STRM\0"
4544 "PSTSLCKEEP\0"
4545 "PSTSLCSTRM\0"
4546 ;
4547#ifdef __GNUC__
4548#pragma GCC diagnostic pop
4549#endif
4550
4551static constexpr llvm::StringTable
4552PRFMsListStrings = PRFMsListStringsStorage;
4553
4554StringRef getPRFMStr(StringTable::Offset Offset) {
4555 return PRFMsListStrings[Offset];
4556}
4557
4558const PRFM *lookupPRFMByEncoding(uint8_t Encoding) {
4559 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0x0, 0x18))
4560 return nullptr;
4561
4562 auto Table = ArrayRef(PRFMsList);
4563 size_t Idx = Encoding - 0x0;
4564 return &Table[Idx];
4565}
4566
4567const PRFM *lookupPRFMByName(StringRef Name) {
4568 struct IndexType {
4569 unsigned Name;
4570 unsigned _index;
4571 };
4572 static const struct IndexType Index[] = {
4573 { 250 /* "IR" */, 24 },
4574 { 253 /* "PLDL1KEEP" */, 0 },
4575 { 263 /* "PLDL1STRM" */, 1 },
4576 { 273 /* "PLDL2KEEP" */, 2 },
4577 { 283 /* "PLDL2STRM" */, 3 },
4578 { 293 /* "PLDL3KEEP" */, 4 },
4579 { 303 /* "PLDL3STRM" */, 5 },
4580 { 313 /* "PLDSLCKEEP" */, 6 },
4581 { 324 /* "PLDSLCSTRM" */, 7 },
4582 { 335 /* "PLIL1KEEP" */, 8 },
4583 { 345 /* "PLIL1STRM" */, 9 },
4584 { 355 /* "PLIL2KEEP" */, 10 },
4585 { 365 /* "PLIL2STRM" */, 11 },
4586 { 375 /* "PLIL3KEEP" */, 12 },
4587 { 385 /* "PLIL3STRM" */, 13 },
4588 { 395 /* "PLISLCKEEP" */, 14 },
4589 { 406 /* "PLISLCSTRM" */, 15 },
4590 { 417 /* "PSTL1KEEP" */, 16 },
4591 { 427 /* "PSTL1STRM" */, 17 },
4592 { 437 /* "PSTL2KEEP" */, 18 },
4593 { 447 /* "PSTL2STRM" */, 19 },
4594 { 457 /* "PSTL3KEEP" */, 20 },
4595 { 467 /* "PSTL3STRM" */, 21 },
4596 { 477 /* "PSTSLCKEEP" */, 22 },
4597 { 488 /* "PSTSLCSTRM" */, 23 },
4598 };
4599
4600 struct KeyType {
4601 std::string Name;
4602 };
4603 KeyType Key = {Name.upper()};
4604 struct Comp {
4605 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
4606 StringRef LHSStr = PRFMsListStrings[LHS.Name];
4607 StringRef RHSStr = RHS.Name;
4608 int CmpName = LHSStr.compare(RHSStr);
4609 if (CmpName < 0) return true;
4610 if (CmpName > 0) return false;
4611 return false;
4612 }
4613 };
4614 auto Table = ArrayRef(Index);
4615 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4616 if (Idx == Table.end() ||
4617 Key.Name != PRFMsListStrings[Idx->Name])
4618 return nullptr;
4619
4620 return &PRFMsList[Idx->_index];
4621}
4622#endif
4623
4624#ifdef GET_PSBsList_DECL
4625const PSB *lookupPSBByEncoding(uint8_t Encoding);
4626const PSB *lookupPSBByName(StringRef Name);
4627StringRef getPSBStr(StringTable::Offset);
4628#endif
4629
4630#ifdef GET_PSBsList_IMPL
4631constexpr PSB PSBsList[] = {
4632 { 1 /* "csync" */, 0x11 }, // 0
4633 };
4634
4635#ifdef __GNUC__
4636#pragma GCC diagnostic push
4637#pragma GCC diagnostic ignored "-Woverlength-strings"
4638#endif
4639static constexpr char PSBsListStringsStorage[] =
4640 "\0"
4641 "csync\0"
4642 "CSYNC\0"
4643 ;
4644#ifdef __GNUC__
4645#pragma GCC diagnostic pop
4646#endif
4647
4648static constexpr llvm::StringTable
4649PSBsListStrings = PSBsListStringsStorage;
4650
4651StringRef getPSBStr(StringTable::Offset Offset) {
4652 return PSBsListStrings[Offset];
4653}
4654
4655const PSB *lookupPSBByEncoding(uint8_t Encoding) {
4656 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0x11, 0x11))
4657 return nullptr;
4658
4659 auto Table = ArrayRef(PSBsList);
4660 size_t Idx = Encoding - 0x11;
4661 return &Table[Idx];
4662}
4663
4664const PSB *lookupPSBByName(StringRef Name) {
4665 struct IndexType {
4666 unsigned Name;
4667 unsigned _index;
4668 };
4669 static const struct IndexType Index[] = {
4670 { 7 /* "CSYNC" */, 0 },
4671 };
4672
4673 struct KeyType {
4674 std::string Name;
4675 };
4676 KeyType Key = {Name.upper()};
4677 struct Comp {
4678 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
4679 StringRef LHSStr = PSBsListStrings[LHS.Name];
4680 StringRef RHSStr = RHS.Name;
4681 int CmpName = LHSStr.compare(RHSStr);
4682 if (CmpName < 0) return true;
4683 if (CmpName > 0) return false;
4684 return false;
4685 }
4686 };
4687 auto Table = ArrayRef(Index);
4688 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4689 if (Idx == Table.end() ||
4690 Key.Name != PSBsListStrings[Idx->Name])
4691 return nullptr;
4692
4693 return &PSBsList[Idx->_index];
4694}
4695#endif
4696
4697#ifdef GET_PStateImm0_1sList_DECL
4698const PStateImm0_1 *lookupPStateImm0_1ByEncoding(uint16_t Encoding);
4699const PStateImm0_1 *lookupPStateImm0_1ByName(StringRef Name);
4700StringRef getPStateImm0_1Str(StringTable::Offset);
4701#endif
4702
4703#ifdef GET_PStateImm0_1sList_IMPL
4704constexpr PStateImm0_1 PStateImm0_1sList[] = {
4705 { 1 /* "ALLINT" */, 0x8, {AArch64::FeatureNMI} }, // 0
4706 { 8 /* "PM" */, 0x48, {} }, // 1
4707 };
4708
4709#ifdef __GNUC__
4710#pragma GCC diagnostic push
4711#pragma GCC diagnostic ignored "-Woverlength-strings"
4712#endif
4713static constexpr char PStateImm0_1sListStringsStorage[] =
4714 "\0"
4715 "ALLINT\0"
4716 "PM\0"
4717 ;
4718#ifdef __GNUC__
4719#pragma GCC diagnostic pop
4720#endif
4721
4722static constexpr llvm::StringTable
4723PStateImm0_1sListStrings = PStateImm0_1sListStringsStorage;
4724
4725StringRef getPStateImm0_1Str(StringTable::Offset Offset) {
4726 return PStateImm0_1sListStrings[Offset];
4727}
4728
4729const PStateImm0_1 *lookupPStateImm0_1ByEncoding(uint16_t Encoding) {
4730 struct KeyType {
4731 uint16_t Encoding;
4732 };
4733 KeyType Key = {Encoding};
4734 struct Comp {
4735 bool operator()(const PStateImm0_1 &LHS, const KeyType &RHS) const {
4736 if (LHS.Encoding < RHS.Encoding)
4737 return true;
4738 if (LHS.Encoding > RHS.Encoding)
4739 return false;
4740 return false;
4741 }
4742 };
4743 auto Table = ArrayRef(PStateImm0_1sList);
4744 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4745 if (Idx == Table.end() ||
4746 Key.Encoding != Idx->Encoding)
4747 return nullptr;
4748
4749 return &*Idx;
4750}
4751
4752const PStateImm0_1 *lookupPStateImm0_1ByName(StringRef Name) {
4753 struct IndexType {
4754 unsigned Name;
4755 unsigned _index;
4756 };
4757 static const struct IndexType Index[] = {
4758 { 1 /* "ALLINT" */, 0 },
4759 { 8 /* "PM" */, 1 },
4760 };
4761
4762 struct KeyType {
4763 std::string Name;
4764 };
4765 KeyType Key = {Name.upper()};
4766 struct Comp {
4767 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
4768 StringRef LHSStr = PStateImm0_1sListStrings[LHS.Name];
4769 StringRef RHSStr = RHS.Name;
4770 int CmpName = LHSStr.compare(RHSStr);
4771 if (CmpName < 0) return true;
4772 if (CmpName > 0) return false;
4773 return false;
4774 }
4775 };
4776 auto Table = ArrayRef(Index);
4777 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4778 if (Idx == Table.end() ||
4779 Key.Name != PStateImm0_1sListStrings[Idx->Name])
4780 return nullptr;
4781
4782 return &PStateImm0_1sList[Idx->_index];
4783}
4784#endif
4785
4786#ifdef GET_PStateImm0_15sList_DECL
4787const PStateImm0_15 *lookupPStateImm0_15ByEncoding(uint8_t Encoding);
4788const PStateImm0_15 *lookupPStateImm0_15ByName(StringRef Name);
4789StringRef getPStateImm0_15Str(StringTable::Offset);
4790#endif
4791
4792#ifdef GET_PStateImm0_15sList_IMPL
4793constexpr PStateImm0_15 PStateImm0_15sList[] = {
4794 { 1 /* "UAO" */, 0x3, {AArch64::FeaturePsUAO} }, // 0
4795 { 5 /* "PAN" */, 0x4, {AArch64::FeaturePAN} }, // 1
4796 { 9 /* "SPSel" */, 0x5, {} }, // 2
4797 { 15 /* "SSBS" */, 0x19, {AArch64::FeatureSSBS} }, // 3
4798 { 20 /* "DIT" */, 0x1A, {AArch64::FeatureDIT} }, // 4
4799 { 24 /* "TCO" */, 0x1C, {AArch64::FeatureMTE} }, // 5
4800 { 28 /* "DAIFSet" */, 0x1E, {} }, // 6
4801 { 36 /* "DAIFClr" */, 0x1F, {} }, // 7
4802 };
4803
4804#ifdef __GNUC__
4805#pragma GCC diagnostic push
4806#pragma GCC diagnostic ignored "-Woverlength-strings"
4807#endif
4808static constexpr char PStateImm0_15sListStringsStorage[] =
4809 "\0"
4810 "UAO\0"
4811 "PAN\0"
4812 "SPSel\0"
4813 "SSBS\0"
4814 "DIT\0"
4815 "TCO\0"
4816 "DAIFSet\0"
4817 "DAIFClr\0"
4818 "DAIFCLR\0"
4819 "DAIFSET\0"
4820 "SPSEL\0"
4821 ;
4822#ifdef __GNUC__
4823#pragma GCC diagnostic pop
4824#endif
4825
4826static constexpr llvm::StringTable
4827PStateImm0_15sListStrings = PStateImm0_15sListStringsStorage;
4828
4829StringRef getPStateImm0_15Str(StringTable::Offset Offset) {
4830 return PStateImm0_15sListStrings[Offset];
4831}
4832
4833const PStateImm0_15 *lookupPStateImm0_15ByEncoding(uint8_t Encoding) {
4834 struct KeyType {
4835 uint8_t Encoding;
4836 };
4837 KeyType Key = {Encoding};
4838 struct Comp {
4839 bool operator()(const PStateImm0_15 &LHS, const KeyType &RHS) const {
4840 if (LHS.Encoding < RHS.Encoding)
4841 return true;
4842 if (LHS.Encoding > RHS.Encoding)
4843 return false;
4844 return false;
4845 }
4846 };
4847 auto Table = ArrayRef(PStateImm0_15sList);
4848 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4849 if (Idx == Table.end() ||
4850 Key.Encoding != Idx->Encoding)
4851 return nullptr;
4852
4853 return &*Idx;
4854}
4855
4856const PStateImm0_15 *lookupPStateImm0_15ByName(StringRef Name) {
4857 struct IndexType {
4858 unsigned Name;
4859 unsigned _index;
4860 };
4861 static const struct IndexType Index[] = {
4862 { 44 /* "DAIFCLR" */, 7 },
4863 { 52 /* "DAIFSET" */, 6 },
4864 { 20 /* "DIT" */, 4 },
4865 { 5 /* "PAN" */, 1 },
4866 { 60 /* "SPSEL" */, 2 },
4867 { 15 /* "SSBS" */, 3 },
4868 { 24 /* "TCO" */, 5 },
4869 { 1 /* "UAO" */, 0 },
4870 };
4871
4872 struct KeyType {
4873 std::string Name;
4874 };
4875 KeyType Key = {Name.upper()};
4876 struct Comp {
4877 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
4878 StringRef LHSStr = PStateImm0_15sListStrings[LHS.Name];
4879 StringRef RHSStr = RHS.Name;
4880 int CmpName = LHSStr.compare(RHSStr);
4881 if (CmpName < 0) return true;
4882 if (CmpName > 0) return false;
4883 return false;
4884 }
4885 };
4886 auto Table = ArrayRef(Index);
4887 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4888 if (Idx == Table.end() ||
4889 Key.Name != PStateImm0_15sListStrings[Idx->Name])
4890 return nullptr;
4891
4892 return &PStateImm0_15sList[Idx->_index];
4893}
4894#endif
4895
4896#ifdef GET_PairVariantTable_DECL
4897const PairVariantEntry *lookupPairVariantByOpcode(unsigned Inst);
4898#endif
4899
4900#ifdef GET_PairVariantTable_IMPL
4901constexpr PairVariantEntry PairVariantTable[] = {
4902 { LDPDpost, false, 0x8, LDPDi }, // 0
4903 { LDPDpre, true, 0x8, LDPDi }, // 1
4904 { LDPQpost, false, 0x10, LDPQi }, // 2
4905 { LDPQpre, true, 0x10, LDPQi }, // 3
4906 { LDPSWpost, false, 0x4, LDPSWi }, // 4
4907 { LDPSWpre, true, 0x4, LDPSWi }, // 5
4908 { LDPSpost, false, 0x4, LDPSi }, // 6
4909 { LDPSpre, true, 0x4, LDPSi }, // 7
4910 { LDPWpost, false, 0x4, LDPWi }, // 8
4911 { LDPWpre, true, 0x4, LDPWi }, // 9
4912 { LDPXpost, false, 0x8, LDPXi }, // 10
4913 { LDPXpre, true, 0x8, LDPXi }, // 11
4914 { STPDpost, false, 0x8, STPDi }, // 12
4915 { STPDpre, true, 0x8, STPDi }, // 13
4916 { STPQpost, false, 0x10, STPQi }, // 14
4917 { STPQpre, true, 0x10, STPQi }, // 15
4918 { STPSpost, false, 0x4, STPSi }, // 16
4919 { STPSpre, true, 0x4, STPSi }, // 17
4920 { STPWpost, false, 0x4, STPWi }, // 18
4921 { STPWpre, true, 0x4, STPWi }, // 19
4922 { STPXpost, false, 0x8, STPXi }, // 20
4923 { STPXpre, true, 0x8, STPXi }, // 21
4924 };
4925
4926const PairVariantEntry *lookupPairVariantByOpcode(unsigned Inst) {
4927 struct KeyType {
4928 unsigned Inst;
4929 };
4930 KeyType Key = {Inst};
4931 struct Comp {
4932 bool operator()(const PairVariantEntry &LHS, const KeyType &RHS) const {
4933 if (LHS.Inst < RHS.Inst)
4934 return true;
4935 if (LHS.Inst > RHS.Inst)
4936 return false;
4937 return false;
4938 }
4939 };
4940 auto Table = ArrayRef(PairVariantTable);
4941 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
4942 if (Idx == Table.end() ||
4943 Key.Inst != Idx->Inst)
4944 return nullptr;
4945
4946 return &*Idx;
4947}
4948#endif
4949
4950#ifdef GET_RPRFMsList_DECL
4951const RPRFM *lookupRPRFMByEncoding(uint8_t Encoding);
4952const RPRFM *lookupRPRFMByName(StringRef Name);
4953StringRef getRPRFMStr(StringTable::Offset);
4954#endif
4955
4956#ifdef GET_RPRFMsList_IMPL
4957constexpr RPRFM RPRFMsList[] = {
4958 { 1 /* "pldkeep" */, 0x0, {} }, // 0
4959 { 9 /* "pldstrm" */, 0x4, {} }, // 1
4960 { 17 /* "pstkeep" */, 0x1, {} }, // 2
4961 { 25 /* "pststrm" */, 0x5, {} }, // 3
4962 };
4963
4964#ifdef __GNUC__
4965#pragma GCC diagnostic push
4966#pragma GCC diagnostic ignored "-Woverlength-strings"
4967#endif
4968static constexpr char RPRFMsListStringsStorage[] =
4969 "\0"
4970 "pldkeep\0"
4971 "pldstrm\0"
4972 "pstkeep\0"
4973 "pststrm\0"
4974 "PLDKEEP\0"
4975 "PLDSTRM\0"
4976 "PSTKEEP\0"
4977 "PSTSTRM\0"
4978 ;
4979#ifdef __GNUC__
4980#pragma GCC diagnostic pop
4981#endif
4982
4983static constexpr llvm::StringTable
4984RPRFMsListStrings = RPRFMsListStringsStorage;
4985
4986StringRef getRPRFMStr(StringTable::Offset Offset) {
4987 return RPRFMsListStrings[Offset];
4988}
4989
4990const RPRFM *lookupRPRFMByEncoding(uint8_t Encoding) {
4991 struct IndexType {
4992 uint8_t Encoding;
4993 unsigned _index;
4994 };
4995 static const struct IndexType Index[] = {
4996 { 0x0, 0 },
4997 { 0x1, 2 },
4998 { 0x4, 1 },
4999 { 0x5, 3 },
5000 };
5001
5002 struct KeyType {
5003 uint8_t Encoding;
5004 };
5005 KeyType Key = {Encoding};
5006 struct Comp {
5007 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
5008 if (LHS.Encoding < RHS.Encoding)
5009 return true;
5010 if (LHS.Encoding > RHS.Encoding)
5011 return false;
5012 return false;
5013 }
5014 };
5015 auto Table = ArrayRef(Index);
5016 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5017 if (Idx == Table.end() ||
5018 Key.Encoding != Idx->Encoding)
5019 return nullptr;
5020
5021 return &RPRFMsList[Idx->_index];
5022}
5023
5024const RPRFM *lookupRPRFMByName(StringRef Name) {
5025 struct IndexType {
5026 unsigned Name;
5027 unsigned _index;
5028 };
5029 static const struct IndexType Index[] = {
5030 { 33 /* "PLDKEEP" */, 0 },
5031 { 41 /* "PLDSTRM" */, 1 },
5032 { 49 /* "PSTKEEP" */, 2 },
5033 { 57 /* "PSTSTRM" */, 3 },
5034 };
5035
5036 struct KeyType {
5037 std::string Name;
5038 };
5039 KeyType Key = {Name.upper()};
5040 struct Comp {
5041 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
5042 StringRef LHSStr = RPRFMsListStrings[LHS.Name];
5043 StringRef RHSStr = RHS.Name;
5044 int CmpName = LHSStr.compare(RHSStr);
5045 if (CmpName < 0) return true;
5046 if (CmpName > 0) return false;
5047 return false;
5048 }
5049 };
5050 auto Table = ArrayRef(Index);
5051 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5052 if (Idx == Table.end() ||
5053 Key.Name != RPRFMsListStrings[Idx->Name])
5054 return nullptr;
5055
5056 return &RPRFMsList[Idx->_index];
5057}
5058#endif
5059
5060#ifdef GET_SIMDPostTable_DECL
5061const SIMDPostEntry *lookupSIMDPostByOpcode(unsigned Inst);
5062#endif
5063
5064#ifdef GET_SIMDPostTable_IMPL
5065constexpr SIMDPostEntry SIMDPostTable[] = {
5066 { LD1Fourv16b_POST, 0x40, LD1Fourv16b }, // 0
5067 { LD1Fourv1d_POST, 0x20, LD1Fourv1d }, // 1
5068 { LD1Fourv2d_POST, 0x40, LD1Fourv2d }, // 2
5069 { LD1Fourv2s_POST, 0x20, LD1Fourv2s }, // 3
5070 { LD1Fourv4h_POST, 0x20, LD1Fourv4h }, // 4
5071 { LD1Fourv4s_POST, 0x40, LD1Fourv4s }, // 5
5072 { LD1Fourv8b_POST, 0x20, LD1Fourv8b }, // 6
5073 { LD1Fourv8h_POST, 0x40, LD1Fourv8h }, // 7
5074 { LD1Onev16b_POST, 0x10, LD1Onev16b }, // 8
5075 { LD1Onev1d_POST, 0x8, LD1Onev1d }, // 9
5076 { LD1Onev2d_POST, 0x10, LD1Onev2d }, // 10
5077 { LD1Onev2s_POST, 0x8, LD1Onev2s }, // 11
5078 { LD1Onev4h_POST, 0x8, LD1Onev4h }, // 12
5079 { LD1Onev4s_POST, 0x10, LD1Onev4s }, // 13
5080 { LD1Onev8b_POST, 0x8, LD1Onev8b }, // 14
5081 { LD1Onev8h_POST, 0x10, LD1Onev8h }, // 15
5082 { LD1Rv16b_POST, 0x1, LD1Rv16b }, // 16
5083 { LD1Rv1d_POST, 0x8, LD1Rv1d }, // 17
5084 { LD1Rv2d_POST, 0x8, LD1Rv2d }, // 18
5085 { LD1Rv2s_POST, 0x4, LD1Rv2s }, // 19
5086 { LD1Rv4h_POST, 0x2, LD1Rv4h }, // 20
5087 { LD1Rv4s_POST, 0x4, LD1Rv4s }, // 21
5088 { LD1Rv8b_POST, 0x1, LD1Rv8b }, // 22
5089 { LD1Rv8h_POST, 0x2, LD1Rv8h }, // 23
5090 { LD1Threev16b_POST, 0x30, LD1Threev16b }, // 24
5091 { LD1Threev1d_POST, 0x18, LD1Threev1d }, // 25
5092 { LD1Threev2d_POST, 0x30, LD1Threev2d }, // 26
5093 { LD1Threev2s_POST, 0x18, LD1Threev2s }, // 27
5094 { LD1Threev4h_POST, 0x18, LD1Threev4h }, // 28
5095 { LD1Threev4s_POST, 0x30, LD1Threev4s }, // 29
5096 { LD1Threev8b_POST, 0x18, LD1Threev8b }, // 30
5097 { LD1Threev8h_POST, 0x30, LD1Threev8h }, // 31
5098 { LD1Twov16b_POST, 0x20, LD1Twov16b }, // 32
5099 { LD1Twov1d_POST, 0x10, LD1Twov1d }, // 33
5100 { LD1Twov2d_POST, 0x20, LD1Twov2d }, // 34
5101 { LD1Twov2s_POST, 0x10, LD1Twov2s }, // 35
5102 { LD1Twov4h_POST, 0x10, LD1Twov4h }, // 36
5103 { LD1Twov4s_POST, 0x20, LD1Twov4s }, // 37
5104 { LD1Twov8b_POST, 0x10, LD1Twov8b }, // 38
5105 { LD1Twov8h_POST, 0x20, LD1Twov8h }, // 39
5106 { LD1i16_POST, 0x2, LD1i16 }, // 40
5107 { LD1i32_POST, 0x4, LD1i32 }, // 41
5108 { LD1i64_POST, 0x8, LD1i64 }, // 42
5109 { LD1i8_POST, 0x1, LD1i8 }, // 43
5110 { LD2Rv16b_POST, 0x2, LD2Rv16b }, // 44
5111 { LD2Rv1d_POST, 0x10, LD2Rv1d }, // 45
5112 { LD2Rv2d_POST, 0x10, LD2Rv2d }, // 46
5113 { LD2Rv2s_POST, 0x8, LD2Rv2s }, // 47
5114 { LD2Rv4h_POST, 0x4, LD2Rv4h }, // 48
5115 { LD2Rv4s_POST, 0x8, LD2Rv4s }, // 49
5116 { LD2Rv8b_POST, 0x2, LD2Rv8b }, // 50
5117 { LD2Rv8h_POST, 0x4, LD2Rv8h }, // 51
5118 { LD2Twov16b_POST, 0x20, LD2Twov16b }, // 52
5119 { LD2Twov2d_POST, 0x20, LD2Twov2d }, // 53
5120 { LD2Twov2s_POST, 0x10, LD2Twov2s }, // 54
5121 { LD2Twov4h_POST, 0x10, LD2Twov4h }, // 55
5122 { LD2Twov4s_POST, 0x20, LD2Twov4s }, // 56
5123 { LD2Twov8b_POST, 0x10, LD2Twov8b }, // 57
5124 { LD2Twov8h_POST, 0x20, LD2Twov8h }, // 58
5125 { LD2i16_POST, 0x4, LD2i16 }, // 59
5126 { LD2i32_POST, 0x8, LD2i32 }, // 60
5127 { LD2i64_POST, 0x10, LD2i64 }, // 61
5128 { LD2i8_POST, 0x2, LD2i8 }, // 62
5129 { LD3Rv16b_POST, 0x3, LD3Rv16b }, // 63
5130 { LD3Rv1d_POST, 0x18, LD3Rv1d }, // 64
5131 { LD3Rv2d_POST, 0x18, LD3Rv2d }, // 65
5132 { LD3Rv2s_POST, 0xC, LD3Rv2s }, // 66
5133 { LD3Rv4h_POST, 0x6, LD3Rv4h }, // 67
5134 { LD3Rv4s_POST, 0xC, LD3Rv4s }, // 68
5135 { LD3Rv8b_POST, 0x3, LD3Rv8b }, // 69
5136 { LD3Rv8h_POST, 0x6, LD3Rv8h }, // 70
5137 { LD3Threev16b_POST, 0x30, LD3Threev16b }, // 71
5138 { LD3Threev2d_POST, 0x30, LD3Threev2d }, // 72
5139 { LD3Threev2s_POST, 0x18, LD3Threev2s }, // 73
5140 { LD3Threev4h_POST, 0x18, LD3Threev4h }, // 74
5141 { LD3Threev4s_POST, 0x30, LD3Threev4s }, // 75
5142 { LD3Threev8b_POST, 0x18, LD3Threev8b }, // 76
5143 { LD3Threev8h_POST, 0x30, LD3Threev8h }, // 77
5144 { LD3i16_POST, 0x6, LD3i16 }, // 78
5145 { LD3i32_POST, 0xC, LD3i32 }, // 79
5146 { LD3i64_POST, 0x18, LD3i64 }, // 80
5147 { LD3i8_POST, 0x3, LD3i8 }, // 81
5148 { LD4Fourv16b_POST, 0x40, LD4Fourv16b }, // 82
5149 { LD4Fourv2d_POST, 0x40, LD4Fourv2d }, // 83
5150 { LD4Fourv2s_POST, 0x20, LD4Fourv2s }, // 84
5151 { LD4Fourv4h_POST, 0x20, LD4Fourv4h }, // 85
5152 { LD4Fourv4s_POST, 0x40, LD4Fourv4s }, // 86
5153 { LD4Fourv8b_POST, 0x20, LD4Fourv8b }, // 87
5154 { LD4Fourv8h_POST, 0x40, LD4Fourv8h }, // 88
5155 { LD4Rv16b_POST, 0x4, LD4Rv16b }, // 89
5156 { LD4Rv1d_POST, 0x20, LD4Rv1d }, // 90
5157 { LD4Rv2d_POST, 0x20, LD4Rv2d }, // 91
5158 { LD4Rv2s_POST, 0x10, LD4Rv2s }, // 92
5159 { LD4Rv4h_POST, 0x8, LD4Rv4h }, // 93
5160 { LD4Rv4s_POST, 0x10, LD4Rv4s }, // 94
5161 { LD4Rv8b_POST, 0x4, LD4Rv8b }, // 95
5162 { LD4Rv8h_POST, 0x8, LD4Rv8h }, // 96
5163 { LD4i16_POST, 0x8, LD4i16 }, // 97
5164 { LD4i32_POST, 0x10, LD4i32 }, // 98
5165 { LD4i64_POST, 0x20, LD4i64 }, // 99
5166 { LD4i8_POST, 0x4, LD4i8 }, // 100
5167 { ST1Fourv16b_POST, 0x40, ST1Fourv16b }, // 101
5168 { ST1Fourv1d_POST, 0x20, ST1Fourv1d }, // 102
5169 { ST1Fourv2d_POST, 0x40, ST1Fourv2d }, // 103
5170 { ST1Fourv2s_POST, 0x20, ST1Fourv2s }, // 104
5171 { ST1Fourv4h_POST, 0x20, ST1Fourv4h }, // 105
5172 { ST1Fourv4s_POST, 0x40, ST1Fourv4s }, // 106
5173 { ST1Fourv8b_POST, 0x20, ST1Fourv8b }, // 107
5174 { ST1Fourv8h_POST, 0x40, ST1Fourv8h }, // 108
5175 { ST1Onev16b_POST, 0x10, ST1Onev16b }, // 109
5176 { ST1Onev1d_POST, 0x8, ST1Onev1d }, // 110
5177 { ST1Onev2d_POST, 0x10, ST1Onev2d }, // 111
5178 { ST1Onev2s_POST, 0x8, ST1Onev2s }, // 112
5179 { ST1Onev4h_POST, 0x8, ST1Onev4h }, // 113
5180 { ST1Onev4s_POST, 0x10, ST1Onev4s }, // 114
5181 { ST1Onev8b_POST, 0x8, ST1Onev8b }, // 115
5182 { ST1Onev8h_POST, 0x10, ST1Onev8h }, // 116
5183 { ST1Threev16b_POST, 0x30, ST1Threev16b }, // 117
5184 { ST1Threev1d_POST, 0x18, ST1Threev1d }, // 118
5185 { ST1Threev2d_POST, 0x30, ST1Threev2d }, // 119
5186 { ST1Threev2s_POST, 0x18, ST1Threev2s }, // 120
5187 { ST1Threev4h_POST, 0x18, ST1Threev4h }, // 121
5188 { ST1Threev4s_POST, 0x30, ST1Threev4s }, // 122
5189 { ST1Threev8b_POST, 0x18, ST1Threev8b }, // 123
5190 { ST1Threev8h_POST, 0x30, ST1Threev8h }, // 124
5191 { ST1Twov16b_POST, 0x20, ST1Twov16b }, // 125
5192 { ST1Twov1d_POST, 0x10, ST1Twov1d }, // 126
5193 { ST1Twov2d_POST, 0x20, ST1Twov2d }, // 127
5194 { ST1Twov2s_POST, 0x10, ST1Twov2s }, // 128
5195 { ST1Twov4h_POST, 0x10, ST1Twov4h }, // 129
5196 { ST1Twov4s_POST, 0x20, ST1Twov4s }, // 130
5197 { ST1Twov8b_POST, 0x10, ST1Twov8b }, // 131
5198 { ST1Twov8h_POST, 0x20, ST1Twov8h }, // 132
5199 { ST1i16_POST, 0x2, ST1i16 }, // 133
5200 { ST1i32_POST, 0x4, ST1i32 }, // 134
5201 { ST1i64_POST, 0x8, ST1i64 }, // 135
5202 { ST1i8_POST, 0x1, ST1i8 }, // 136
5203 { ST2Twov16b_POST, 0x20, ST2Twov16b }, // 137
5204 { ST2Twov2d_POST, 0x20, ST2Twov2d }, // 138
5205 { ST2Twov2s_POST, 0x10, ST2Twov2s }, // 139
5206 { ST2Twov4h_POST, 0x10, ST2Twov4h }, // 140
5207 { ST2Twov4s_POST, 0x20, ST2Twov4s }, // 141
5208 { ST2Twov8b_POST, 0x10, ST2Twov8b }, // 142
5209 { ST2Twov8h_POST, 0x20, ST2Twov8h }, // 143
5210 { ST2i16_POST, 0x4, ST2i16 }, // 144
5211 { ST2i32_POST, 0x8, ST2i32 }, // 145
5212 { ST2i64_POST, 0x10, ST2i64 }, // 146
5213 { ST2i8_POST, 0x2, ST2i8 }, // 147
5214 { ST3Threev16b_POST, 0x30, ST3Threev16b }, // 148
5215 { ST3Threev2d_POST, 0x30, ST3Threev2d }, // 149
5216 { ST3Threev2s_POST, 0x18, ST3Threev2s }, // 150
5217 { ST3Threev4h_POST, 0x18, ST3Threev4h }, // 151
5218 { ST3Threev4s_POST, 0x30, ST3Threev4s }, // 152
5219 { ST3Threev8b_POST, 0x18, ST3Threev8b }, // 153
5220 { ST3Threev8h_POST, 0x30, ST3Threev8h }, // 154
5221 { ST3i16_POST, 0x6, ST3i16 }, // 155
5222 { ST3i32_POST, 0xC, ST3i32 }, // 156
5223 { ST3i64_POST, 0x18, ST3i64 }, // 157
5224 { ST3i8_POST, 0x3, ST3i8 }, // 158
5225 { ST4Fourv16b_POST, 0x40, ST4Fourv16b }, // 159
5226 { ST4Fourv2d_POST, 0x40, ST4Fourv2d }, // 160
5227 { ST4Fourv2s_POST, 0x20, ST4Fourv2s }, // 161
5228 { ST4Fourv4h_POST, 0x20, ST4Fourv4h }, // 162
5229 { ST4Fourv4s_POST, 0x40, ST4Fourv4s }, // 163
5230 { ST4Fourv8b_POST, 0x20, ST4Fourv8b }, // 164
5231 { ST4Fourv8h_POST, 0x40, ST4Fourv8h }, // 165
5232 { ST4i16_POST, 0x8, ST4i16 }, // 166
5233 { ST4i32_POST, 0x10, ST4i32 }, // 167
5234 { ST4i64_POST, 0x20, ST4i64 }, // 168
5235 { ST4i8_POST, 0x4, ST4i8 }, // 169
5236 };
5237
5238const SIMDPostEntry *lookupSIMDPostByOpcode(unsigned Inst) {
5239 struct KeyType {
5240 unsigned Inst;
5241 };
5242 KeyType Key = {Inst};
5243 struct Comp {
5244 bool operator()(const SIMDPostEntry &LHS, const KeyType &RHS) const {
5245 if (LHS.Inst < RHS.Inst)
5246 return true;
5247 if (LHS.Inst > RHS.Inst)
5248 return false;
5249 return false;
5250 }
5251 };
5252 auto Table = ArrayRef(SIMDPostTable);
5253 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5254 if (Idx == Table.end() ||
5255 Key.Inst != Idx->Inst)
5256 return nullptr;
5257
5258 return &*Idx;
5259}
5260#endif
5261
5262#ifdef GET_SVCRsList_DECL
5263const SVCR *lookupSVCRByEncoding(uint8_t Encoding);
5264const SVCR *lookupSVCRByName(StringRef Name);
5265StringRef getSVCRStr(StringTable::Offset);
5266#endif
5267
5268#ifdef GET_SVCRsList_IMPL
5269constexpr SVCR SVCRsList[] = {
5270 { 1 /* "SVCRSM" */, 0x1, {AArch64::FeatureSME} }, // 0
5271 { 8 /* "SVCRZA" */, 0x2, {AArch64::FeatureSME} }, // 1
5272 { 15 /* "SVCRSMZA" */, 0x3, {AArch64::FeatureSME} }, // 2
5273 };
5274
5275#ifdef __GNUC__
5276#pragma GCC diagnostic push
5277#pragma GCC diagnostic ignored "-Woverlength-strings"
5278#endif
5279static constexpr char SVCRsListStringsStorage[] =
5280 "\0"
5281 "SVCRSM\0"
5282 "SVCRZA\0"
5283 "SVCRSMZA\0"
5284 ;
5285#ifdef __GNUC__
5286#pragma GCC diagnostic pop
5287#endif
5288
5289static constexpr llvm::StringTable
5290SVCRsListStrings = SVCRsListStringsStorage;
5291
5292StringRef getSVCRStr(StringTable::Offset Offset) {
5293 return SVCRsListStrings[Offset];
5294}
5295
5296const SVCR *lookupSVCRByEncoding(uint8_t Encoding) {
5297 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0x1, 0x3))
5298 return nullptr;
5299
5300 auto Table = ArrayRef(SVCRsList);
5301 size_t Idx = Encoding - 0x1;
5302 return &Table[Idx];
5303}
5304
5305const SVCR *lookupSVCRByName(StringRef Name) {
5306 struct IndexType {
5307 unsigned Name;
5308 unsigned _index;
5309 };
5310 static const struct IndexType Index[] = {
5311 { 1 /* "SVCRSM" */, 0 },
5312 { 15 /* "SVCRSMZA" */, 2 },
5313 { 8 /* "SVCRZA" */, 1 },
5314 };
5315
5316 struct KeyType {
5317 std::string Name;
5318 };
5319 KeyType Key = {Name.upper()};
5320 struct Comp {
5321 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
5322 StringRef LHSStr = SVCRsListStrings[LHS.Name];
5323 StringRef RHSStr = RHS.Name;
5324 int CmpName = LHSStr.compare(RHSStr);
5325 if (CmpName < 0) return true;
5326 if (CmpName > 0) return false;
5327 return false;
5328 }
5329 };
5330 auto Table = ArrayRef(Index);
5331 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5332 if (Idx == Table.end() ||
5333 Key.Name != SVCRsListStrings[Idx->Name])
5334 return nullptr;
5335
5336 return &SVCRsList[Idx->_index];
5337}
5338#endif
5339
5340#ifdef GET_SVEPREDPATsList_DECL
5341const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding);
5342const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name);
5343StringRef getSVEPREDPATStr(StringTable::Offset);
5344#endif
5345
5346#ifdef GET_SVEPREDPATsList_IMPL
5347constexpr SVEPREDPAT SVEPREDPATsList[] = {
5348 { 1 /* "pow2" */, 0x0 }, // 0
5349 { 6 /* "vl1" */, 0x1 }, // 1
5350 { 10 /* "vl2" */, 0x2 }, // 2
5351 { 14 /* "vl3" */, 0x3 }, // 3
5352 { 18 /* "vl4" */, 0x4 }, // 4
5353 { 22 /* "vl5" */, 0x5 }, // 5
5354 { 26 /* "vl6" */, 0x6 }, // 6
5355 { 30 /* "vl7" */, 0x7 }, // 7
5356 { 34 /* "vl8" */, 0x8 }, // 8
5357 { 38 /* "vl16" */, 0x9 }, // 9
5358 { 43 /* "vl32" */, 0xA }, // 10
5359 { 48 /* "vl64" */, 0xB }, // 11
5360 { 53 /* "vl128" */, 0xC }, // 12
5361 { 59 /* "vl256" */, 0xD }, // 13
5362 { 65 /* "mul4" */, 0x1D }, // 14
5363 { 70 /* "mul3" */, 0x1E }, // 15
5364 { 75 /* "all" */, 0x1F }, // 16
5365 };
5366
5367#ifdef __GNUC__
5368#pragma GCC diagnostic push
5369#pragma GCC diagnostic ignored "-Woverlength-strings"
5370#endif
5371static constexpr char SVEPREDPATsListStringsStorage[] =
5372 "\0"
5373 "pow2\0"
5374 "vl1\0"
5375 "vl2\0"
5376 "vl3\0"
5377 "vl4\0"
5378 "vl5\0"
5379 "vl6\0"
5380 "vl7\0"
5381 "vl8\0"
5382 "vl16\0"
5383 "vl32\0"
5384 "vl64\0"
5385 "vl128\0"
5386 "vl256\0"
5387 "mul4\0"
5388 "mul3\0"
5389 "all\0"
5390 "ALL\0"
5391 "MUL3\0"
5392 "MUL4\0"
5393 "POW2\0"
5394 "VL1\0"
5395 "VL128\0"
5396 "VL16\0"
5397 "VL2\0"
5398 "VL256\0"
5399 "VL3\0"
5400 "VL32\0"
5401 "VL4\0"
5402 "VL5\0"
5403 "VL6\0"
5404 "VL64\0"
5405 "VL7\0"
5406 "VL8\0"
5407 ;
5408#ifdef __GNUC__
5409#pragma GCC diagnostic pop
5410#endif
5411
5412static constexpr llvm::StringTable
5413SVEPREDPATsListStrings = SVEPREDPATsListStringsStorage;
5414
5415StringRef getSVEPREDPATStr(StringTable::Offset Offset) {
5416 return SVEPREDPATsListStrings[Offset];
5417}
5418
5419const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding) {
5420 struct KeyType {
5421 uint8_t Encoding;
5422 };
5423 KeyType Key = {Encoding};
5424 struct Comp {
5425 bool operator()(const SVEPREDPAT &LHS, const KeyType &RHS) const {
5426 if (LHS.Encoding < RHS.Encoding)
5427 return true;
5428 if (LHS.Encoding > RHS.Encoding)
5429 return false;
5430 return false;
5431 }
5432 };
5433 auto Table = ArrayRef(SVEPREDPATsList);
5434 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5435 if (Idx == Table.end() ||
5436 Key.Encoding != Idx->Encoding)
5437 return nullptr;
5438
5439 return &*Idx;
5440}
5441
5442const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name) {
5443 struct IndexType {
5444 unsigned Name;
5445 unsigned _index;
5446 };
5447 static const struct IndexType Index[] = {
5448 { 79 /* "ALL" */, 16 },
5449 { 83 /* "MUL3" */, 15 },
5450 { 88 /* "MUL4" */, 14 },
5451 { 93 /* "POW2" */, 0 },
5452 { 98 /* "VL1" */, 1 },
5453 { 102 /* "VL128" */, 12 },
5454 { 108 /* "VL16" */, 9 },
5455 { 113 /* "VL2" */, 2 },
5456 { 117 /* "VL256" */, 13 },
5457 { 123 /* "VL3" */, 3 },
5458 { 127 /* "VL32" */, 10 },
5459 { 132 /* "VL4" */, 4 },
5460 { 136 /* "VL5" */, 5 },
5461 { 140 /* "VL6" */, 6 },
5462 { 144 /* "VL64" */, 11 },
5463 { 149 /* "VL7" */, 7 },
5464 { 153 /* "VL8" */, 8 },
5465 };
5466
5467 struct KeyType {
5468 std::string Name;
5469 };
5470 KeyType Key = {Name.upper()};
5471 struct Comp {
5472 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
5473 StringRef LHSStr = SVEPREDPATsListStrings[LHS.Name];
5474 StringRef RHSStr = RHS.Name;
5475 int CmpName = LHSStr.compare(RHSStr);
5476 if (CmpName < 0) return true;
5477 if (CmpName > 0) return false;
5478 return false;
5479 }
5480 };
5481 auto Table = ArrayRef(Index);
5482 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5483 if (Idx == Table.end() ||
5484 Key.Name != SVEPREDPATsListStrings[Idx->Name])
5485 return nullptr;
5486
5487 return &SVEPREDPATsList[Idx->_index];
5488}
5489#endif
5490
5491#ifdef GET_SVEPRFMsList_DECL
5492const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding);
5493const SVEPRFM *lookupSVEPRFMByName(StringRef Name);
5494StringRef getSVEPRFMStr(StringTable::Offset);
5495#endif
5496
5497#ifdef GET_SVEPRFMsList_IMPL
5498constexpr SVEPRFM SVEPRFMsList[] = {
5499 { 1 /* "pldl1keep" */, 0x0, {AArch64::FeatureSVE} }, // 0
5500 { 11 /* "pldl1strm" */, 0x1, {AArch64::FeatureSVE} }, // 1
5501 { 21 /* "pldl2keep" */, 0x2, {AArch64::FeatureSVE} }, // 2
5502 { 31 /* "pldl2strm" */, 0x3, {AArch64::FeatureSVE} }, // 3
5503 { 41 /* "pldl3keep" */, 0x4, {AArch64::FeatureSVE} }, // 4
5504 { 51 /* "pldl3strm" */, 0x5, {AArch64::FeatureSVE} }, // 5
5505 { 61 /* "pstl1keep" */, 0x8, {AArch64::FeatureSVE} }, // 6
5506 { 71 /* "pstl1strm" */, 0x9, {AArch64::FeatureSVE} }, // 7
5507 { 81 /* "pstl2keep" */, 0xA, {AArch64::FeatureSVE} }, // 8
5508 { 91 /* "pstl2strm" */, 0xB, {AArch64::FeatureSVE} }, // 9
5509 { 101 /* "pstl3keep" */, 0xC, {AArch64::FeatureSVE} }, // 10
5510 { 111 /* "pstl3strm" */, 0xD, {AArch64::FeatureSVE} }, // 11
5511 };
5512
5513#ifdef __GNUC__
5514#pragma GCC diagnostic push
5515#pragma GCC diagnostic ignored "-Woverlength-strings"
5516#endif
5517static constexpr char SVEPRFMsListStringsStorage[] =
5518 "\0"
5519 "pldl1keep\0"
5520 "pldl1strm\0"
5521 "pldl2keep\0"
5522 "pldl2strm\0"
5523 "pldl3keep\0"
5524 "pldl3strm\0"
5525 "pstl1keep\0"
5526 "pstl1strm\0"
5527 "pstl2keep\0"
5528 "pstl2strm\0"
5529 "pstl3keep\0"
5530 "pstl3strm\0"
5531 "PLDL1KEEP\0"
5532 "PLDL1STRM\0"
5533 "PLDL2KEEP\0"
5534 "PLDL2STRM\0"
5535 "PLDL3KEEP\0"
5536 "PLDL3STRM\0"
5537 "PSTL1KEEP\0"
5538 "PSTL1STRM\0"
5539 "PSTL2KEEP\0"
5540 "PSTL2STRM\0"
5541 "PSTL3KEEP\0"
5542 "PSTL3STRM\0"
5543 ;
5544#ifdef __GNUC__
5545#pragma GCC diagnostic pop
5546#endif
5547
5548static constexpr llvm::StringTable
5549SVEPRFMsListStrings = SVEPRFMsListStringsStorage;
5550
5551StringRef getSVEPRFMStr(StringTable::Offset Offset) {
5552 return SVEPRFMsListStrings[Offset];
5553}
5554
5555const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding) {
5556 struct KeyType {
5557 uint8_t Encoding;
5558 };
5559 KeyType Key = {Encoding};
5560 struct Comp {
5561 bool operator()(const SVEPRFM &LHS, const KeyType &RHS) const {
5562 if (LHS.Encoding < RHS.Encoding)
5563 return true;
5564 if (LHS.Encoding > RHS.Encoding)
5565 return false;
5566 return false;
5567 }
5568 };
5569 auto Table = ArrayRef(SVEPRFMsList);
5570 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5571 if (Idx == Table.end() ||
5572 Key.Encoding != Idx->Encoding)
5573 return nullptr;
5574
5575 return &*Idx;
5576}
5577
5578const SVEPRFM *lookupSVEPRFMByName(StringRef Name) {
5579 struct IndexType {
5580 unsigned Name;
5581 unsigned _index;
5582 };
5583 static const struct IndexType Index[] = {
5584 { 121 /* "PLDL1KEEP" */, 0 },
5585 { 131 /* "PLDL1STRM" */, 1 },
5586 { 141 /* "PLDL2KEEP" */, 2 },
5587 { 151 /* "PLDL2STRM" */, 3 },
5588 { 161 /* "PLDL3KEEP" */, 4 },
5589 { 171 /* "PLDL3STRM" */, 5 },
5590 { 181 /* "PSTL1KEEP" */, 6 },
5591 { 191 /* "PSTL1STRM" */, 7 },
5592 { 201 /* "PSTL2KEEP" */, 8 },
5593 { 211 /* "PSTL2STRM" */, 9 },
5594 { 221 /* "PSTL3KEEP" */, 10 },
5595 { 231 /* "PSTL3STRM" */, 11 },
5596 };
5597
5598 struct KeyType {
5599 std::string Name;
5600 };
5601 KeyType Key = {Name.upper()};
5602 struct Comp {
5603 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
5604 StringRef LHSStr = SVEPRFMsListStrings[LHS.Name];
5605 StringRef RHSStr = RHS.Name;
5606 int CmpName = LHSStr.compare(RHSStr);
5607 if (CmpName < 0) return true;
5608 if (CmpName > 0) return false;
5609 return false;
5610 }
5611 };
5612 auto Table = ArrayRef(Index);
5613 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5614 if (Idx == Table.end() ||
5615 Key.Name != SVEPRFMsListStrings[Idx->Name])
5616 return nullptr;
5617
5618 return &SVEPRFMsList[Idx->_index];
5619}
5620#endif
5621
5622#ifdef GET_SVEVECLENSPECIFIERsList_DECL
5623const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByEncoding(uint8_t Encoding);
5624const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByName(StringRef Name);
5625StringRef getSVEVECLENSPECIFIERStr(StringTable::Offset);
5626#endif
5627
5628#ifdef GET_SVEVECLENSPECIFIERsList_IMPL
5629constexpr SVEVECLENSPECIFIER SVEVECLENSPECIFIERsList[] = {
5630 { 1 /* "vlx2" */, 0x0 }, // 0
5631 { 6 /* "vlx4" */, 0x1 }, // 1
5632 };
5633
5634#ifdef __GNUC__
5635#pragma GCC diagnostic push
5636#pragma GCC diagnostic ignored "-Woverlength-strings"
5637#endif
5638static constexpr char SVEVECLENSPECIFIERsListStringsStorage[] =
5639 "\0"
5640 "vlx2\0"
5641 "vlx4\0"
5642 "VLX2\0"
5643 "VLX4\0"
5644 ;
5645#ifdef __GNUC__
5646#pragma GCC diagnostic pop
5647#endif
5648
5649static constexpr llvm::StringTable
5650SVEVECLENSPECIFIERsListStrings = SVEVECLENSPECIFIERsListStringsStorage;
5651
5652StringRef getSVEVECLENSPECIFIERStr(StringTable::Offset Offset) {
5653 return SVEVECLENSPECIFIERsListStrings[Offset];
5654}
5655
5656const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByEncoding(uint8_t Encoding) {
5657 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0x0, 0x1))
5658 return nullptr;
5659
5660 auto Table = ArrayRef(SVEVECLENSPECIFIERsList);
5661 size_t Idx = Encoding - 0x0;
5662 return &Table[Idx];
5663}
5664
5665const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByName(StringRef Name) {
5666 struct IndexType {
5667 unsigned Name;
5668 unsigned _index;
5669 };
5670 static const struct IndexType Index[] = {
5671 { 11 /* "VLX2" */, 0 },
5672 { 16 /* "VLX4" */, 1 },
5673 };
5674
5675 struct KeyType {
5676 std::string Name;
5677 };
5678 KeyType Key = {Name.upper()};
5679 struct Comp {
5680 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
5681 StringRef LHSStr = SVEVECLENSPECIFIERsListStrings[LHS.Name];
5682 StringRef RHSStr = RHS.Name;
5683 int CmpName = LHSStr.compare(RHSStr);
5684 if (CmpName < 0) return true;
5685 if (CmpName > 0) return false;
5686 return false;
5687 }
5688 };
5689 auto Table = ArrayRef(Index);
5690 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
5691 if (Idx == Table.end() ||
5692 Key.Name != SVEVECLENSPECIFIERsListStrings[Idx->Name])
5693 return nullptr;
5694
5695 return &SVEVECLENSPECIFIERsList[Idx->_index];
5696}
5697#endif
5698
5699#ifdef GET_SysRegsList_DECL
5700llvm::iterator_range<const SysReg *> lookupSysRegByEncoding(uint16_t Encoding);
5701const SysReg *lookupSysRegByName(StringRef Name);
5702StringRef getSysRegStr(StringTable::Offset);
5703#endif
5704
5705#ifdef GET_SysRegsList_IMPL
5706constexpr SysReg SysRegsList[] = {
5707 { 1 /* "OSDTRRX_EL1" */, 0x8002, true, true, {} }, // 0
5708 { 13 /* "DBGBVR0_EL1" */, 0x8004, true, true, {} }, // 1
5709 { 25 /* "DBGBCR0_EL1" */, 0x8005, true, true, {} }, // 2
5710 { 37 /* "DBGWVR0_EL1" */, 0x8006, true, true, {} }, // 3
5711 { 49 /* "DBGWCR0_EL1" */, 0x8007, true, true, {} }, // 4
5712 { 61 /* "DBGBVR1_EL1" */, 0x800C, true, true, {} }, // 5
5713 { 73 /* "DBGBCR1_EL1" */, 0x800D, true, true, {} }, // 6
5714 { 85 /* "DBGWVR1_EL1" */, 0x800E, true, true, {} }, // 7
5715 { 97 /* "DBGWCR1_EL1" */, 0x800F, true, true, {} }, // 8
5716 { 109 /* "MDCCINT_EL1" */, 0x8010, true, true, {} }, // 9
5717 { 121 /* "MDSCR_EL1" */, 0x8012, true, true, {} }, // 10
5718 { 131 /* "DBGBVR2_EL1" */, 0x8014, true, true, {} }, // 11
5719 { 143 /* "DBGBCR2_EL1" */, 0x8015, true, true, {} }, // 12
5720 { 155 /* "DBGWVR2_EL1" */, 0x8016, true, true, {} }, // 13
5721 { 167 /* "DBGWCR2_EL1" */, 0x8017, true, true, {} }, // 14
5722 { 179 /* "OSDTRTX_EL1" */, 0x801A, true, true, {} }, // 15
5723 { 191 /* "DBGBVR3_EL1" */, 0x801C, true, true, {} }, // 16
5724 { 203 /* "DBGBCR3_EL1" */, 0x801D, true, true, {} }, // 17
5725 { 215 /* "DBGWVR3_EL1" */, 0x801E, true, true, {} }, // 18
5726 { 227 /* "DBGWCR3_EL1" */, 0x801F, true, true, {} }, // 19
5727 { 239 /* "MDSELR_EL1" */, 0x8022, true, true, {} }, // 20
5728 { 250 /* "DBGBVR4_EL1" */, 0x8024, true, true, {} }, // 21
5729 { 262 /* "DBGBCR4_EL1" */, 0x8025, true, true, {} }, // 22
5730 { 274 /* "DBGWVR4_EL1" */, 0x8026, true, true, {} }, // 23
5731 { 286 /* "DBGWCR4_EL1" */, 0x8027, true, true, {} }, // 24
5732 { 298 /* "MDSTEPOP_EL1" */, 0x802A, true, true, {} }, // 25
5733 { 311 /* "DBGBVR5_EL1" */, 0x802C, true, true, {} }, // 26
5734 { 323 /* "DBGBCR5_EL1" */, 0x802D, true, true, {} }, // 27
5735 { 335 /* "DBGWVR5_EL1" */, 0x802E, true, true, {} }, // 28
5736 { 347 /* "DBGWCR5_EL1" */, 0x802F, true, true, {} }, // 29
5737 { 359 /* "OSECCR_EL1" */, 0x8032, true, true, {} }, // 30
5738 { 370 /* "DBGBVR6_EL1" */, 0x8034, true, true, {} }, // 31
5739 { 382 /* "DBGBCR6_EL1" */, 0x8035, true, true, {} }, // 32
5740 { 394 /* "DBGWVR6_EL1" */, 0x8036, true, true, {} }, // 33
5741 { 406 /* "DBGWCR6_EL1" */, 0x8037, true, true, {} }, // 34
5742 { 418 /* "DBGBVR7_EL1" */, 0x803C, true, true, {} }, // 35
5743 { 430 /* "DBGBCR7_EL1" */, 0x803D, true, true, {} }, // 36
5744 { 442 /* "DBGWVR7_EL1" */, 0x803E, true, true, {} }, // 37
5745 { 454 /* "DBGWCR7_EL1" */, 0x803F, true, true, {} }, // 38
5746 { 466 /* "DBGBVR8_EL1" */, 0x8044, true, true, {} }, // 39
5747 { 478 /* "DBGBCR8_EL1" */, 0x8045, true, true, {} }, // 40
5748 { 490 /* "DBGWVR8_EL1" */, 0x8046, true, true, {} }, // 41
5749 { 502 /* "DBGWCR8_EL1" */, 0x8047, true, true, {} }, // 42
5750 { 514 /* "DBGBVR9_EL1" */, 0x804C, true, true, {} }, // 43
5751 { 526 /* "DBGBCR9_EL1" */, 0x804D, true, true, {} }, // 44
5752 { 538 /* "DBGWVR9_EL1" */, 0x804E, true, true, {} }, // 45
5753 { 550 /* "DBGWCR9_EL1" */, 0x804F, true, true, {} }, // 46
5754 { 562 /* "DBGBVR10_EL1" */, 0x8054, true, true, {} }, // 47
5755 { 575 /* "DBGBCR10_EL1" */, 0x8055, true, true, {} }, // 48
5756 { 588 /* "DBGWVR10_EL1" */, 0x8056, true, true, {} }, // 49
5757 { 601 /* "DBGWCR10_EL1" */, 0x8057, true, true, {} }, // 50
5758 { 614 /* "DBGBVR11_EL1" */, 0x805C, true, true, {} }, // 51
5759 { 627 /* "DBGBCR11_EL1" */, 0x805D, true, true, {} }, // 52
5760 { 640 /* "DBGWVR11_EL1" */, 0x805E, true, true, {} }, // 53
5761 { 653 /* "DBGWCR11_EL1" */, 0x805F, true, true, {} }, // 54
5762 { 666 /* "DBGBVR12_EL1" */, 0x8064, true, true, {} }, // 55
5763 { 679 /* "DBGBCR12_EL1" */, 0x8065, true, true, {} }, // 56
5764 { 692 /* "DBGWVR12_EL1" */, 0x8066, true, true, {} }, // 57
5765 { 705 /* "DBGWCR12_EL1" */, 0x8067, true, true, {} }, // 58
5766 { 718 /* "DBGBVR13_EL1" */, 0x806C, true, true, {} }, // 59
5767 { 731 /* "DBGBCR13_EL1" */, 0x806D, true, true, {} }, // 60
5768 { 744 /* "DBGWVR13_EL1" */, 0x806E, true, true, {} }, // 61
5769 { 757 /* "DBGWCR13_EL1" */, 0x806F, true, true, {} }, // 62
5770 { 770 /* "DBGBVR14_EL1" */, 0x8074, true, true, {} }, // 63
5771 { 783 /* "DBGBCR14_EL1" */, 0x8075, true, true, {} }, // 64
5772 { 796 /* "DBGWVR14_EL1" */, 0x8076, true, true, {} }, // 65
5773 { 809 /* "DBGWCR14_EL1" */, 0x8077, true, true, {} }, // 66
5774 { 822 /* "DBGBVR15_EL1" */, 0x807C, true, true, {} }, // 67
5775 { 835 /* "DBGBCR15_EL1" */, 0x807D, true, true, {} }, // 68
5776 { 848 /* "DBGWVR15_EL1" */, 0x807E, true, true, {} }, // 69
5777 { 861 /* "DBGWCR15_EL1" */, 0x807F, true, true, {} }, // 70
5778 { 874 /* "MDRAR_EL1" */, 0x8080, true, false, {} }, // 71
5779 { 884 /* "OSLAR_EL1" */, 0x8084, false, true, {} }, // 72
5780 { 894 /* "OSLSR_EL1" */, 0x808C, true, false, {} }, // 73
5781 { 904 /* "OSDLR_EL1" */, 0x809C, true, true, {} }, // 74
5782 { 914 /* "DBGPRCR_EL1" */, 0x80A4, true, true, {} }, // 75
5783 { 926 /* "DBGCLAIMSET_EL1" */, 0x83C6, true, true, {} }, // 76
5784 { 942 /* "DBGCLAIMCLR_EL1" */, 0x83CE, true, true, {} }, // 77
5785 { 958 /* "DBGAUTHSTATUS_EL1" */, 0x83F6, true, false, {} }, // 78
5786 { 976 /* "SPMCGCR0_EL1" */, 0x84E8, true, false, {} }, // 79
5787 { 989 /* "SPMCGCR1_EL1" */, 0x84E9, true, false, {} }, // 80
5788 { 1002 /* "SPMACCESSR_EL1" */, 0x84EB, true, true, {} }, // 81
5789 { 1017 /* "SPMIIDR_EL1" */, 0x84EC, true, false, {} }, // 82
5790 { 1029 /* "SPMDEVARCH_EL1" */, 0x84ED, true, false, {} }, // 83
5791 { 1044 /* "SPMDEVAFF_EL1" */, 0x84EE, true, false, {} }, // 84
5792 { 1058 /* "SPMCFGR_EL1" */, 0x84EF, true, false, {} }, // 85
5793 { 1070 /* "SPMINTENSET_EL1" */, 0x84F1, true, true, {} }, // 86
5794 { 1086 /* "SPMINTENCLR_EL1" */, 0x84F2, true, true, {} }, // 87
5795 { 1102 /* "PMEVCNTSVR0_EL1" */, 0x8740, true, false, {} }, // 88
5796 { 1118 /* "PMEVCNTSVR1_EL1" */, 0x8741, true, false, {} }, // 89
5797 { 1134 /* "PMEVCNTSVR2_EL1" */, 0x8742, true, false, {} }, // 90
5798 { 1150 /* "PMEVCNTSVR3_EL1" */, 0x8743, true, false, {} }, // 91
5799 { 1166 /* "PMEVCNTSVR4_EL1" */, 0x8744, true, false, {} }, // 92
5800 { 1182 /* "PMEVCNTSVR5_EL1" */, 0x8745, true, false, {} }, // 93
5801 { 1198 /* "PMEVCNTSVR6_EL1" */, 0x8746, true, false, {} }, // 94
5802 { 1214 /* "PMEVCNTSVR7_EL1" */, 0x8747, true, false, {} }, // 95
5803 { 1230 /* "PMEVCNTSVR8_EL1" */, 0x8748, true, false, {} }, // 96
5804 { 1246 /* "PMEVCNTSVR9_EL1" */, 0x8749, true, false, {} }, // 97
5805 { 1262 /* "PMEVCNTSVR10_EL1" */, 0x874A, true, false, {} }, // 98
5806 { 1279 /* "PMEVCNTSVR11_EL1" */, 0x874B, true, false, {} }, // 99
5807 { 1296 /* "PMEVCNTSVR12_EL1" */, 0x874C, true, false, {} }, // 100
5808 { 1313 /* "PMEVCNTSVR13_EL1" */, 0x874D, true, false, {} }, // 101
5809 { 1330 /* "PMEVCNTSVR14_EL1" */, 0x874E, true, false, {} }, // 102
5810 { 1347 /* "PMEVCNTSVR15_EL1" */, 0x874F, true, false, {} }, // 103
5811 { 1364 /* "PMEVCNTSVR16_EL1" */, 0x8750, true, false, {} }, // 104
5812 { 1381 /* "PMEVCNTSVR17_EL1" */, 0x8751, true, false, {} }, // 105
5813 { 1398 /* "PMEVCNTSVR18_EL1" */, 0x8752, true, false, {} }, // 106
5814 { 1415 /* "PMEVCNTSVR19_EL1" */, 0x8753, true, false, {} }, // 107
5815 { 1432 /* "PMEVCNTSVR20_EL1" */, 0x8754, true, false, {} }, // 108
5816 { 1449 /* "PMEVCNTSVR21_EL1" */, 0x8755, true, false, {} }, // 109
5817 { 1466 /* "PMEVCNTSVR22_EL1" */, 0x8756, true, false, {} }, // 110
5818 { 1483 /* "PMEVCNTSVR23_EL1" */, 0x8757, true, false, {} }, // 111
5819 { 1500 /* "PMEVCNTSVR24_EL1" */, 0x8758, true, false, {} }, // 112
5820 { 1517 /* "PMEVCNTSVR25_EL1" */, 0x8759, true, false, {} }, // 113
5821 { 1534 /* "PMEVCNTSVR26_EL1" */, 0x875A, true, false, {} }, // 114
5822 { 1551 /* "PMEVCNTSVR27_EL1" */, 0x875B, true, false, {} }, // 115
5823 { 1568 /* "PMEVCNTSVR28_EL1" */, 0x875C, true, false, {} }, // 116
5824 { 1585 /* "PMEVCNTSVR29_EL1" */, 0x875D, true, false, {} }, // 117
5825 { 1602 /* "PMEVCNTSVR30_EL1" */, 0x875E, true, false, {} }, // 118
5826 { 1619 /* "PMCCNTSVR_EL1" */, 0x875F, true, false, {} }, // 119
5827 { 1633 /* "PMICNTSVR_EL1" */, 0x8760, true, false, {} }, // 120
5828 { 1647 /* "TRCTRACEIDR" */, 0x8801, true, true, {} }, // 121
5829 { 1659 /* "TRCVICTLR" */, 0x8802, true, true, {} }, // 122
5830 { 1669 /* "TRCSEQEVR0" */, 0x8804, true, true, {} }, // 123
5831 { 1680 /* "TRCCNTRLDVR0" */, 0x8805, true, true, {} }, // 124
5832 { 1693 /* "TRCIDR8" */, 0x8806, true, false, {} }, // 125
5833 { 1701 /* "TRCIMSPEC0" */, 0x8807, true, true, {} }, // 126
5834 { 1712 /* "TRCPRGCTLR" */, 0x8808, true, true, {} }, // 127
5835 { 1723 /* "TRCQCTLR" */, 0x8809, true, true, {} }, // 128
5836 { 1732 /* "TRCVIIECTLR" */, 0x880A, true, true, {} }, // 129
5837 { 1744 /* "TRCSEQEVR1" */, 0x880C, true, true, {} }, // 130
5838 { 1755 /* "TRCCNTRLDVR1" */, 0x880D, true, true, {} }, // 131
5839 { 1768 /* "TRCIDR9" */, 0x880E, true, false, {} }, // 132
5840 { 1776 /* "TRCIMSPEC1" */, 0x880F, true, true, {} }, // 133
5841 { 1787 /* "TRCPROCSELR" */, 0x8810, true, true, {} }, // 134
5842 { 1799 /* "TRCITEEDCR" */, 0x8811, true, true, {AArch64::FeatureITE} }, // 135
5843 { 1810 /* "TRCVISSCTLR" */, 0x8812, true, true, {} }, // 136
5844 { 1822 /* "TRCSEQEVR2" */, 0x8814, true, true, {} }, // 137
5845 { 1833 /* "TRCCNTRLDVR2" */, 0x8815, true, true, {} }, // 138
5846 { 1846 /* "TRCIDR10" */, 0x8816, true, false, {} }, // 139
5847 { 1855 /* "TRCIMSPEC2" */, 0x8817, true, true, {} }, // 140
5848 { 1866 /* "TRCSTATR" */, 0x8818, true, false, {} }, // 141
5849 { 1875 /* "TRCVIPCSSCTLR" */, 0x881A, true, true, {} }, // 142
5850 { 1889 /* "TRCCNTRLDVR3" */, 0x881D, true, true, {} }, // 143
5851 { 1902 /* "TRCIDR11" */, 0x881E, true, false, {} }, // 144
5852 { 1911 /* "TRCIMSPEC3" */, 0x881F, true, true, {} }, // 145
5853 { 1922 /* "TRCCONFIGR" */, 0x8820, true, true, {} }, // 146
5854 { 1933 /* "TRCCNTCTLR0" */, 0x8825, true, true, {} }, // 147
5855 { 1945 /* "TRCIDR12" */, 0x8826, true, false, {} }, // 148
5856 { 1954 /* "TRCIMSPEC4" */, 0x8827, true, true, {} }, // 149
5857 { 1965 /* "TRCCNTCTLR1" */, 0x882D, true, true, {} }, // 150
5858 { 1977 /* "TRCIDR13" */, 0x882E, true, false, {} }, // 151
5859 { 1986 /* "TRCIMSPEC5" */, 0x882F, true, true, {} }, // 152
5860 { 1997 /* "TRCAUXCTLR" */, 0x8830, true, true, {} }, // 153
5861 { 2008 /* "TRCSEQRSTEVR" */, 0x8834, true, true, {} }, // 154
5862 { 2021 /* "TRCCNTCTLR2" */, 0x8835, true, true, {} }, // 155
5863 { 2033 /* "TRCIMSPEC6" */, 0x8837, true, true, {} }, // 156
5864 { 2044 /* "TRCSEQSTR" */, 0x883C, true, true, {} }, // 157
5865 { 2054 /* "TRCCNTCTLR3" */, 0x883D, true, true, {} }, // 158
5866 { 2066 /* "TRCIMSPEC7" */, 0x883F, true, true, {} }, // 159
5867 { 2077 /* "TRCEVENTCTL0R" */, 0x8840, true, true, {} }, // 160
5868 { 2091 /* "TRCVDCTLR" */, 0x8842, true, true, {} }, // 161
5869 { 2101 /* "TRCEXTINSELR" */, 0x8844, true, true, {} }, // 162
5870 { 2114 /* "TRCEXTINSELR0" */, 0x8844, true, true, {AArch64::FeatureETE} }, // 163
5871 { 2128 /* "TRCCNTVR0" */, 0x8845, true, true, {} }, // 164
5872 { 2138 /* "TRCIDR0" */, 0x8847, true, false, {} }, // 165
5873 { 2146 /* "TRCEVENTCTL1R" */, 0x8848, true, true, {} }, // 166
5874 { 2160 /* "TRCVDSACCTLR" */, 0x884A, true, true, {} }, // 167
5875 { 2173 /* "TRCEXTINSELR1" */, 0x884C, true, true, {AArch64::FeatureETE} }, // 168
5876 { 2187 /* "TRCCNTVR1" */, 0x884D, true, true, {} }, // 169
5877 { 2197 /* "TRCIDR1" */, 0x884F, true, false, {} }, // 170
5878 { 2205 /* "TRCRSR" */, 0x8850, true, true, {AArch64::FeatureETE} }, // 171
5879 { 2212 /* "TRCVDARCCTLR" */, 0x8852, true, true, {} }, // 172
5880 { 2225 /* "TRCEXTINSELR2" */, 0x8854, true, true, {AArch64::FeatureETE} }, // 173
5881 { 2239 /* "TRCCNTVR2" */, 0x8855, true, true, {} }, // 174
5882 { 2249 /* "TRCIDR2" */, 0x8857, true, false, {} }, // 175
5883 { 2257 /* "TRCSTALLCTLR" */, 0x8858, true, true, {} }, // 176
5884 { 2270 /* "TRCEXTINSELR3" */, 0x885C, true, true, {AArch64::FeatureETE} }, // 177
5885 { 2284 /* "TRCCNTVR3" */, 0x885D, true, true, {} }, // 178
5886 { 2294 /* "TRCIDR3" */, 0x885F, true, false, {} }, // 179
5887 { 2302 /* "TRCTSCTLR" */, 0x8860, true, true, {} }, // 180
5888 { 2312 /* "TRCIDR4" */, 0x8867, true, false, {} }, // 181
5889 { 2320 /* "TRCSYNCPR" */, 0x8868, true, true, {} }, // 182
5890 { 2330 /* "TRCIDR5" */, 0x886F, true, false, {} }, // 183
5891 { 2338 /* "TRCCCCTLR" */, 0x8870, true, true, {} }, // 184
5892 { 2348 /* "TRCIDR6" */, 0x8877, true, false, {} }, // 185
5893 { 2356 /* "TRCBBCTLR" */, 0x8878, true, true, {} }, // 186
5894 { 2366 /* "TRCIDR7" */, 0x887F, true, false, {} }, // 187
5895 { 2374 /* "TRCRSCTLR16" */, 0x8881, true, true, {} }, // 188
5896 { 2386 /* "TRCSSCCR0" */, 0x8882, true, true, {} }, // 189
5897 { 2396 /* "TRCSSPCICR0" */, 0x8883, true, true, {} }, // 190
5898 { 2408 /* "TRCOSLAR" */, 0x8884, false, true, {} }, // 191
5899 { 2417 /* "TRCRSCTLR17" */, 0x8889, true, true, {} }, // 192
5900 { 2429 /* "TRCSSCCR1" */, 0x888A, true, true, {} }, // 193
5901 { 2439 /* "TRCSSPCICR1" */, 0x888B, true, true, {} }, // 194
5902 { 2451 /* "TRCOSLSR" */, 0x888C, true, false, {} }, // 195
5903 { 2460 /* "TRCRSCTLR2" */, 0x8890, true, true, {} }, // 196
5904 { 2471 /* "TRCRSCTLR18" */, 0x8891, true, true, {} }, // 197
5905 { 2483 /* "TRCSSCCR2" */, 0x8892, true, true, {} }, // 198
5906 { 2493 /* "TRCSSPCICR2" */, 0x8893, true, true, {} }, // 199
5907 { 2505 /* "TRCRSCTLR3" */, 0x8898, true, true, {} }, // 200
5908 { 2516 /* "TRCRSCTLR19" */, 0x8899, true, true, {} }, // 201
5909 { 2528 /* "TRCSSCCR3" */, 0x889A, true, true, {} }, // 202
5910 { 2538 /* "TRCSSPCICR3" */, 0x889B, true, true, {} }, // 203
5911 { 2550 /* "TRCRSCTLR4" */, 0x88A0, true, true, {} }, // 204
5912 { 2561 /* "TRCRSCTLR20" */, 0x88A1, true, true, {} }, // 205
5913 { 2573 /* "TRCSSCCR4" */, 0x88A2, true, true, {} }, // 206
5914 { 2583 /* "TRCSSPCICR4" */, 0x88A3, true, true, {} }, // 207
5915 { 2595 /* "TRCPDCR" */, 0x88A4, true, true, {} }, // 208
5916 { 2603 /* "TRCRSCTLR5" */, 0x88A8, true, true, {} }, // 209
5917 { 2614 /* "TRCRSCTLR21" */, 0x88A9, true, true, {} }, // 210
5918 { 2626 /* "TRCSSCCR5" */, 0x88AA, true, true, {} }, // 211
5919 { 2636 /* "TRCSSPCICR5" */, 0x88AB, true, true, {} }, // 212
5920 { 2648 /* "TRCPDSR" */, 0x88AC, true, false, {} }, // 213
5921 { 2656 /* "TRCRSCTLR6" */, 0x88B0, true, true, {} }, // 214
5922 { 2667 /* "TRCRSCTLR22" */, 0x88B1, true, true, {} }, // 215
5923 { 2679 /* "TRCSSCCR6" */, 0x88B2, true, true, {} }, // 216
5924 { 2689 /* "TRCSSPCICR6" */, 0x88B3, true, true, {} }, // 217
5925 { 2701 /* "TRCRSCTLR7" */, 0x88B8, true, true, {} }, // 218
5926 { 2712 /* "TRCRSCTLR23" */, 0x88B9, true, true, {} }, // 219
5927 { 2724 /* "TRCSSCCR7" */, 0x88BA, true, true, {} }, // 220
5928 { 2734 /* "TRCSSPCICR7" */, 0x88BB, true, true, {} }, // 221
5929 { 2746 /* "TRCRSCTLR8" */, 0x88C0, true, true, {} }, // 222
5930 { 2757 /* "TRCRSCTLR24" */, 0x88C1, true, true, {} }, // 223
5931 { 2769 /* "TRCSSCSR0" */, 0x88C2, true, true, {} }, // 224
5932 { 2779 /* "TRCRSCTLR9" */, 0x88C8, true, true, {} }, // 225
5933 { 2790 /* "TRCRSCTLR25" */, 0x88C9, true, true, {} }, // 226
5934 { 2802 /* "TRCSSCSR1" */, 0x88CA, true, true, {} }, // 227
5935 { 2812 /* "TRCRSCTLR10" */, 0x88D0, true, true, {} }, // 228
5936 { 2824 /* "TRCRSCTLR26" */, 0x88D1, true, true, {} }, // 229
5937 { 2836 /* "TRCSSCSR2" */, 0x88D2, true, true, {} }, // 230
5938 { 2846 /* "TRCRSCTLR11" */, 0x88D8, true, true, {} }, // 231
5939 { 2858 /* "TRCRSCTLR27" */, 0x88D9, true, true, {} }, // 232
5940 { 2870 /* "TRCSSCSR3" */, 0x88DA, true, true, {} }, // 233
5941 { 2880 /* "TRCRSCTLR12" */, 0x88E0, true, true, {} }, // 234
5942 { 2892 /* "TRCRSCTLR28" */, 0x88E1, true, true, {} }, // 235
5943 { 2904 /* "TRCSSCSR4" */, 0x88E2, true, true, {} }, // 236
5944 { 2914 /* "TRCRSCTLR13" */, 0x88E8, true, true, {} }, // 237
5945 { 2926 /* "TRCRSCTLR29" */, 0x88E9, true, true, {} }, // 238
5946 { 2938 /* "TRCSSCSR5" */, 0x88EA, true, true, {} }, // 239
5947 { 2948 /* "TRCRSCTLR14" */, 0x88F0, true, true, {} }, // 240
5948 { 2960 /* "TRCRSCTLR30" */, 0x88F1, true, true, {} }, // 241
5949 { 2972 /* "TRCSSCSR6" */, 0x88F2, true, true, {} }, // 242
5950 { 2982 /* "TRCRSCTLR15" */, 0x88F8, true, true, {} }, // 243
5951 { 2994 /* "TRCRSCTLR31" */, 0x88F9, true, true, {} }, // 244
5952 { 3006 /* "TRCSSCSR7" */, 0x88FA, true, true, {} }, // 245
5953 { 3016 /* "TRCACVR0" */, 0x8900, true, true, {} }, // 246
5954 { 3025 /* "TRCACVR8" */, 0x8901, true, true, {} }, // 247
5955 { 3034 /* "TRCACATR0" */, 0x8902, true, true, {} }, // 248
5956 { 3044 /* "TRCACATR8" */, 0x8903, true, true, {} }, // 249
5957 { 3054 /* "TRCDVCVR0" */, 0x8904, true, true, {} }, // 250
5958 { 3064 /* "TRCDVCVR4" */, 0x8905, true, true, {} }, // 251
5959 { 3074 /* "TRCDVCMR0" */, 0x8906, true, true, {} }, // 252
5960 { 3084 /* "TRCDVCMR4" */, 0x8907, true, true, {} }, // 253
5961 { 3094 /* "TRCACVR1" */, 0x8910, true, true, {} }, // 254
5962 { 3103 /* "TRCACVR9" */, 0x8911, true, true, {} }, // 255
5963 { 3112 /* "TRCACATR1" */, 0x8912, true, true, {} }, // 256
5964 { 3122 /* "TRCACATR9" */, 0x8913, true, true, {} }, // 257
5965 { 3132 /* "TRCACVR2" */, 0x8920, true, true, {} }, // 258
5966 { 3141 /* "TRCACVR10" */, 0x8921, true, true, {} }, // 259
5967 { 3151 /* "TRCACATR2" */, 0x8922, true, true, {} }, // 260
5968 { 3161 /* "TRCACATR10" */, 0x8923, true, true, {} }, // 261
5969 { 3172 /* "TRCDVCVR1" */, 0x8924, true, true, {} }, // 262
5970 { 3182 /* "TRCDVCVR5" */, 0x8925, true, true, {} }, // 263
5971 { 3192 /* "TRCDVCMR1" */, 0x8926, true, true, {} }, // 264
5972 { 3202 /* "TRCDVCMR5" */, 0x8927, true, true, {} }, // 265
5973 { 3212 /* "TRCACVR3" */, 0x8930, true, true, {} }, // 266
5974 { 3221 /* "TRCACVR11" */, 0x8931, true, true, {} }, // 267
5975 { 3231 /* "TRCACATR3" */, 0x8932, true, true, {} }, // 268
5976 { 3241 /* "TRCACATR11" */, 0x8933, true, true, {} }, // 269
5977 { 3252 /* "TRCACVR4" */, 0x8940, true, true, {} }, // 270
5978 { 3261 /* "TRCACVR12" */, 0x8941, true, true, {} }, // 271
5979 { 3271 /* "TRCACATR4" */, 0x8942, true, true, {} }, // 272
5980 { 3281 /* "TRCACATR12" */, 0x8943, true, true, {} }, // 273
5981 { 3292 /* "TRCDVCVR2" */, 0x8944, true, true, {} }, // 274
5982 { 3302 /* "TRCDVCVR6" */, 0x8945, true, true, {} }, // 275
5983 { 3312 /* "TRCDVCMR2" */, 0x8946, true, true, {} }, // 276
5984 { 3322 /* "TRCDVCMR6" */, 0x8947, true, true, {} }, // 277
5985 { 3332 /* "TRCACVR5" */, 0x8950, true, true, {} }, // 278
5986 { 3341 /* "TRCACVR13" */, 0x8951, true, true, {} }, // 279
5987 { 3351 /* "TRCACATR5" */, 0x8952, true, true, {} }, // 280
5988 { 3361 /* "TRCACATR13" */, 0x8953, true, true, {} }, // 281
5989 { 3372 /* "TRCACVR6" */, 0x8960, true, true, {} }, // 282
5990 { 3381 /* "TRCACVR14" */, 0x8961, true, true, {} }, // 283
5991 { 3391 /* "TRCACATR6" */, 0x8962, true, true, {} }, // 284
5992 { 3401 /* "TRCACATR14" */, 0x8963, true, true, {} }, // 285
5993 { 3412 /* "TRCDVCVR3" */, 0x8964, true, true, {} }, // 286
5994 { 3422 /* "TRCDVCVR7" */, 0x8965, true, true, {} }, // 287
5995 { 3432 /* "TRCDVCMR3" */, 0x8966, true, true, {} }, // 288
5996 { 3442 /* "TRCDVCMR7" */, 0x8967, true, true, {} }, // 289
5997 { 3452 /* "TRCACVR7" */, 0x8970, true, true, {} }, // 290
5998 { 3461 /* "TRCACVR15" */, 0x8971, true, true, {} }, // 291
5999 { 3471 /* "TRCACATR7" */, 0x8972, true, true, {} }, // 292
6000 { 3481 /* "TRCACATR15" */, 0x8973, true, true, {} }, // 293
6001 { 3492 /* "TRCCIDCVR0" */, 0x8980, true, true, {} }, // 294
6002 { 3503 /* "TRCVMIDCVR0" */, 0x8981, true, true, {} }, // 295
6003 { 3515 /* "TRCCIDCCTLR0" */, 0x8982, true, true, {} }, // 296
6004 { 3528 /* "TRCCIDCCTLR1" */, 0x898A, true, true, {} }, // 297
6005 { 3541 /* "TRCCIDCVR1" */, 0x8990, true, true, {} }, // 298
6006 { 3552 /* "TRCVMIDCVR1" */, 0x8991, true, true, {} }, // 299
6007 { 3564 /* "TRCVMIDCCTLR0" */, 0x8992, true, true, {} }, // 300
6008 { 3578 /* "TRCVMIDCCTLR1" */, 0x899A, true, true, {} }, // 301
6009 { 3592 /* "TRCCIDCVR2" */, 0x89A0, true, true, {} }, // 302
6010 { 3603 /* "TRCVMIDCVR2" */, 0x89A1, true, true, {} }, // 303
6011 { 3615 /* "TRCCIDCVR3" */, 0x89B0, true, true, {} }, // 304
6012 { 3626 /* "TRCVMIDCVR3" */, 0x89B1, true, true, {} }, // 305
6013 { 3638 /* "TRCCIDCVR4" */, 0x89C0, true, true, {} }, // 306
6014 { 3649 /* "TRCVMIDCVR4" */, 0x89C1, true, true, {} }, // 307
6015 { 3661 /* "TRCCIDCVR5" */, 0x89D0, true, true, {} }, // 308
6016 { 3672 /* "TRCVMIDCVR5" */, 0x89D1, true, true, {} }, // 309
6017 { 3684 /* "TRCCIDCVR6" */, 0x89E0, true, true, {} }, // 310
6018 { 3695 /* "TRCVMIDCVR6" */, 0x89E1, true, true, {} }, // 311
6019 { 3707 /* "TRCCIDCVR7" */, 0x89F0, true, true, {} }, // 312
6020 { 3718 /* "TRCVMIDCVR7" */, 0x89F1, true, true, {} }, // 313
6021 { 3730 /* "TRCITCTRL" */, 0x8B84, true, true, {} }, // 314
6022 { 3740 /* "TRCDEVID" */, 0x8B97, true, false, {} }, // 315
6023 { 3749 /* "TRCDEVTYPE" */, 0x8B9F, true, false, {} }, // 316
6024 { 3760 /* "TRCPIDR4" */, 0x8BA7, true, false, {} }, // 317
6025 { 3769 /* "TRCPIDR5" */, 0x8BAF, true, false, {} }, // 318
6026 { 3778 /* "TRCPIDR6" */, 0x8BB7, true, false, {} }, // 319
6027 { 3787 /* "TRCPIDR7" */, 0x8BBF, true, false, {} }, // 320
6028 { 3796 /* "TRCCLAIMSET" */, 0x8BC6, true, true, {} }, // 321
6029 { 3808 /* "TRCPIDR0" */, 0x8BC7, true, false, {} }, // 322
6030 { 3817 /* "TRCCLAIMCLR" */, 0x8BCE, true, true, {} }, // 323
6031 { 3829 /* "TRCPIDR1" */, 0x8BCF, true, false, {} }, // 324
6032 { 3838 /* "TRCDEVAFF0" */, 0x8BD6, true, false, {} }, // 325
6033 { 3849 /* "TRCPIDR2" */, 0x8BD7, true, false, {} }, // 326
6034 { 3858 /* "TRCDEVAFF1" */, 0x8BDE, true, false, {} }, // 327
6035 { 3869 /* "TRCPIDR3" */, 0x8BDF, true, false, {} }, // 328
6036 { 3878 /* "TRCLAR" */, 0x8BE6, false, true, {} }, // 329
6037 { 3885 /* "TRCCIDR0" */, 0x8BE7, true, false, {} }, // 330
6038 { 3894 /* "TRCLSR" */, 0x8BEE, true, false, {} }, // 331
6039 { 3901 /* "TRCCIDR1" */, 0x8BEF, true, false, {} }, // 332
6040 { 3910 /* "TRCAUTHSTATUS" */, 0x8BF6, true, false, {} }, // 333
6041 { 3924 /* "TRCCIDR2" */, 0x8BF7, true, false, {} }, // 334
6042 { 3933 /* "TRCDEVARCH" */, 0x8BFE, true, false, {} }, // 335
6043 { 3944 /* "TRCCIDR3" */, 0x8BFF, true, false, {} }, // 336
6044 { 3953 /* "BRBINF0_EL1" */, 0x8C00, true, false, {AArch64::FeatureBRBE} }, // 337
6045 { 3965 /* "BRBSRC0_EL1" */, 0x8C01, true, false, {AArch64::FeatureBRBE} }, // 338
6046 { 3977 /* "BRBTGT0_EL1" */, 0x8C02, true, false, {AArch64::FeatureBRBE} }, // 339
6047 { 3989 /* "BRBINF16_EL1" */, 0x8C04, true, false, {AArch64::FeatureBRBE} }, // 340
6048 { 4002 /* "BRBSRC16_EL1" */, 0x8C05, true, false, {AArch64::FeatureBRBE} }, // 341
6049 { 4015 /* "BRBTGT16_EL1" */, 0x8C06, true, false, {AArch64::FeatureBRBE} }, // 342
6050 { 4028 /* "BRBINF1_EL1" */, 0x8C08, true, false, {AArch64::FeatureBRBE} }, // 343
6051 { 4040 /* "BRBSRC1_EL1" */, 0x8C09, true, false, {AArch64::FeatureBRBE} }, // 344
6052 { 4052 /* "BRBTGT1_EL1" */, 0x8C0A, true, false, {AArch64::FeatureBRBE} }, // 345
6053 { 4064 /* "BRBINF17_EL1" */, 0x8C0C, true, false, {AArch64::FeatureBRBE} }, // 346
6054 { 4077 /* "BRBSRC17_EL1" */, 0x8C0D, true, false, {AArch64::FeatureBRBE} }, // 347
6055 { 4090 /* "BRBTGT17_EL1" */, 0x8C0E, true, false, {AArch64::FeatureBRBE} }, // 348
6056 { 4103 /* "BRBINF2_EL1" */, 0x8C10, true, false, {AArch64::FeatureBRBE} }, // 349
6057 { 4115 /* "BRBSRC2_EL1" */, 0x8C11, true, false, {AArch64::FeatureBRBE} }, // 350
6058 { 4127 /* "BRBTGT2_EL1" */, 0x8C12, true, false, {AArch64::FeatureBRBE} }, // 351
6059 { 4139 /* "BRBINF18_EL1" */, 0x8C14, true, false, {AArch64::FeatureBRBE} }, // 352
6060 { 4152 /* "BRBSRC18_EL1" */, 0x8C15, true, false, {AArch64::FeatureBRBE} }, // 353
6061 { 4165 /* "BRBTGT18_EL1" */, 0x8C16, true, false, {AArch64::FeatureBRBE} }, // 354
6062 { 4178 /* "BRBINF3_EL1" */, 0x8C18, true, false, {AArch64::FeatureBRBE} }, // 355
6063 { 4190 /* "BRBSRC3_EL1" */, 0x8C19, true, false, {AArch64::FeatureBRBE} }, // 356
6064 { 4202 /* "BRBTGT3_EL1" */, 0x8C1A, true, false, {AArch64::FeatureBRBE} }, // 357
6065 { 4214 /* "BRBINF19_EL1" */, 0x8C1C, true, false, {AArch64::FeatureBRBE} }, // 358
6066 { 4227 /* "BRBSRC19_EL1" */, 0x8C1D, true, false, {AArch64::FeatureBRBE} }, // 359
6067 { 4240 /* "BRBTGT19_EL1" */, 0x8C1E, true, false, {AArch64::FeatureBRBE} }, // 360
6068 { 4253 /* "BRBINF4_EL1" */, 0x8C20, true, false, {AArch64::FeatureBRBE} }, // 361
6069 { 4265 /* "BRBSRC4_EL1" */, 0x8C21, true, false, {AArch64::FeatureBRBE} }, // 362
6070 { 4277 /* "BRBTGT4_EL1" */, 0x8C22, true, false, {AArch64::FeatureBRBE} }, // 363
6071 { 4289 /* "BRBINF20_EL1" */, 0x8C24, true, false, {AArch64::FeatureBRBE} }, // 364
6072 { 4302 /* "BRBSRC20_EL1" */, 0x8C25, true, false, {AArch64::FeatureBRBE} }, // 365
6073 { 4315 /* "BRBTGT20_EL1" */, 0x8C26, true, false, {AArch64::FeatureBRBE} }, // 366
6074 { 4328 /* "BRBINF5_EL1" */, 0x8C28, true, false, {AArch64::FeatureBRBE} }, // 367
6075 { 4340 /* "BRBSRC5_EL1" */, 0x8C29, true, false, {AArch64::FeatureBRBE} }, // 368
6076 { 4352 /* "BRBTGT5_EL1" */, 0x8C2A, true, false, {AArch64::FeatureBRBE} }, // 369
6077 { 4364 /* "BRBINF21_EL1" */, 0x8C2C, true, false, {AArch64::FeatureBRBE} }, // 370
6078 { 4377 /* "BRBSRC21_EL1" */, 0x8C2D, true, false, {AArch64::FeatureBRBE} }, // 371
6079 { 4390 /* "BRBTGT21_EL1" */, 0x8C2E, true, false, {AArch64::FeatureBRBE} }, // 372
6080 { 4403 /* "BRBINF6_EL1" */, 0x8C30, true, false, {AArch64::FeatureBRBE} }, // 373
6081 { 4415 /* "BRBSRC6_EL1" */, 0x8C31, true, false, {AArch64::FeatureBRBE} }, // 374
6082 { 4427 /* "BRBTGT6_EL1" */, 0x8C32, true, false, {AArch64::FeatureBRBE} }, // 375
6083 { 4439 /* "BRBINF22_EL1" */, 0x8C34, true, false, {AArch64::FeatureBRBE} }, // 376
6084 { 4452 /* "BRBSRC22_EL1" */, 0x8C35, true, false, {AArch64::FeatureBRBE} }, // 377
6085 { 4465 /* "BRBTGT22_EL1" */, 0x8C36, true, false, {AArch64::FeatureBRBE} }, // 378
6086 { 4478 /* "BRBINF7_EL1" */, 0x8C38, true, false, {AArch64::FeatureBRBE} }, // 379
6087 { 4490 /* "BRBSRC7_EL1" */, 0x8C39, true, false, {AArch64::FeatureBRBE} }, // 380
6088 { 4502 /* "BRBTGT7_EL1" */, 0x8C3A, true, false, {AArch64::FeatureBRBE} }, // 381
6089 { 4514 /* "BRBINF23_EL1" */, 0x8C3C, true, false, {AArch64::FeatureBRBE} }, // 382
6090 { 4527 /* "BRBSRC23_EL1" */, 0x8C3D, true, false, {AArch64::FeatureBRBE} }, // 383
6091 { 4540 /* "BRBTGT23_EL1" */, 0x8C3E, true, false, {AArch64::FeatureBRBE} }, // 384
6092 { 4553 /* "BRBINF8_EL1" */, 0x8C40, true, false, {AArch64::FeatureBRBE} }, // 385
6093 { 4565 /* "BRBSRC8_EL1" */, 0x8C41, true, false, {AArch64::FeatureBRBE} }, // 386
6094 { 4577 /* "BRBTGT8_EL1" */, 0x8C42, true, false, {AArch64::FeatureBRBE} }, // 387
6095 { 4589 /* "BRBINF24_EL1" */, 0x8C44, true, false, {AArch64::FeatureBRBE} }, // 388
6096 { 4602 /* "BRBSRC24_EL1" */, 0x8C45, true, false, {AArch64::FeatureBRBE} }, // 389
6097 { 4615 /* "BRBTGT24_EL1" */, 0x8C46, true, false, {AArch64::FeatureBRBE} }, // 390
6098 { 4628 /* "BRBINF9_EL1" */, 0x8C48, true, false, {AArch64::FeatureBRBE} }, // 391
6099 { 4640 /* "BRBSRC9_EL1" */, 0x8C49, true, false, {AArch64::FeatureBRBE} }, // 392
6100 { 4652 /* "BRBTGT9_EL1" */, 0x8C4A, true, false, {AArch64::FeatureBRBE} }, // 393
6101 { 4664 /* "BRBINF25_EL1" */, 0x8C4C, true, false, {AArch64::FeatureBRBE} }, // 394
6102 { 4677 /* "BRBSRC25_EL1" */, 0x8C4D, true, false, {AArch64::FeatureBRBE} }, // 395
6103 { 4690 /* "BRBTGT25_EL1" */, 0x8C4E, true, false, {AArch64::FeatureBRBE} }, // 396
6104 { 4703 /* "BRBINF10_EL1" */, 0x8C50, true, false, {AArch64::FeatureBRBE} }, // 397
6105 { 4716 /* "BRBSRC10_EL1" */, 0x8C51, true, false, {AArch64::FeatureBRBE} }, // 398
6106 { 4729 /* "BRBTGT10_EL1" */, 0x8C52, true, false, {AArch64::FeatureBRBE} }, // 399
6107 { 4742 /* "BRBINF26_EL1" */, 0x8C54, true, false, {AArch64::FeatureBRBE} }, // 400
6108 { 4755 /* "BRBSRC26_EL1" */, 0x8C55, true, false, {AArch64::FeatureBRBE} }, // 401
6109 { 4768 /* "BRBTGT26_EL1" */, 0x8C56, true, false, {AArch64::FeatureBRBE} }, // 402
6110 { 4781 /* "BRBINF11_EL1" */, 0x8C58, true, false, {AArch64::FeatureBRBE} }, // 403
6111 { 4794 /* "BRBSRC11_EL1" */, 0x8C59, true, false, {AArch64::FeatureBRBE} }, // 404
6112 { 4807 /* "BRBTGT11_EL1" */, 0x8C5A, true, false, {AArch64::FeatureBRBE} }, // 405
6113 { 4820 /* "BRBINF27_EL1" */, 0x8C5C, true, false, {AArch64::FeatureBRBE} }, // 406
6114 { 4833 /* "BRBSRC27_EL1" */, 0x8C5D, true, false, {AArch64::FeatureBRBE} }, // 407
6115 { 4846 /* "BRBTGT27_EL1" */, 0x8C5E, true, false, {AArch64::FeatureBRBE} }, // 408
6116 { 4859 /* "BRBINF12_EL1" */, 0x8C60, true, false, {AArch64::FeatureBRBE} }, // 409
6117 { 4872 /* "BRBSRC12_EL1" */, 0x8C61, true, false, {AArch64::FeatureBRBE} }, // 410
6118 { 4885 /* "BRBTGT12_EL1" */, 0x8C62, true, false, {AArch64::FeatureBRBE} }, // 411
6119 { 4898 /* "BRBINF28_EL1" */, 0x8C64, true, false, {AArch64::FeatureBRBE} }, // 412
6120 { 4911 /* "BRBSRC28_EL1" */, 0x8C65, true, false, {AArch64::FeatureBRBE} }, // 413
6121 { 4924 /* "BRBTGT28_EL1" */, 0x8C66, true, false, {AArch64::FeatureBRBE} }, // 414
6122 { 4937 /* "BRBINF13_EL1" */, 0x8C68, true, false, {AArch64::FeatureBRBE} }, // 415
6123 { 4950 /* "BRBSRC13_EL1" */, 0x8C69, true, false, {AArch64::FeatureBRBE} }, // 416
6124 { 4963 /* "BRBTGT13_EL1" */, 0x8C6A, true, false, {AArch64::FeatureBRBE} }, // 417
6125 { 4976 /* "BRBINF29_EL1" */, 0x8C6C, true, false, {AArch64::FeatureBRBE} }, // 418
6126 { 4989 /* "BRBSRC29_EL1" */, 0x8C6D, true, false, {AArch64::FeatureBRBE} }, // 419
6127 { 5002 /* "BRBTGT29_EL1" */, 0x8C6E, true, false, {AArch64::FeatureBRBE} }, // 420
6128 { 5015 /* "BRBINF14_EL1" */, 0x8C70, true, false, {AArch64::FeatureBRBE} }, // 421
6129 { 5028 /* "BRBSRC14_EL1" */, 0x8C71, true, false, {AArch64::FeatureBRBE} }, // 422
6130 { 5041 /* "BRBTGT14_EL1" */, 0x8C72, true, false, {AArch64::FeatureBRBE} }, // 423
6131 { 5054 /* "BRBINF30_EL1" */, 0x8C74, true, false, {AArch64::FeatureBRBE} }, // 424
6132 { 5067 /* "BRBSRC30_EL1" */, 0x8C75, true, false, {AArch64::FeatureBRBE} }, // 425
6133 { 5080 /* "BRBTGT30_EL1" */, 0x8C76, true, false, {AArch64::FeatureBRBE} }, // 426
6134 { 5093 /* "BRBINF15_EL1" */, 0x8C78, true, false, {AArch64::FeatureBRBE} }, // 427
6135 { 5106 /* "BRBSRC15_EL1" */, 0x8C79, true, false, {AArch64::FeatureBRBE} }, // 428
6136 { 5119 /* "BRBTGT15_EL1" */, 0x8C7A, true, false, {AArch64::FeatureBRBE} }, // 429
6137 { 5132 /* "BRBINF31_EL1" */, 0x8C7C, true, false, {AArch64::FeatureBRBE} }, // 430
6138 { 5145 /* "BRBSRC31_EL1" */, 0x8C7D, true, false, {AArch64::FeatureBRBE} }, // 431
6139 { 5158 /* "BRBTGT31_EL1" */, 0x8C7E, true, false, {AArch64::FeatureBRBE} }, // 432
6140 { 5171 /* "BRBCR_EL1" */, 0x8C80, true, true, {AArch64::FeatureBRBE} }, // 433
6141 { 5181 /* "BRBFCR_EL1" */, 0x8C81, true, true, {AArch64::FeatureBRBE} }, // 434
6142 { 5192 /* "BRBTS_EL1" */, 0x8C82, true, true, {AArch64::FeatureBRBE} }, // 435
6143 { 5202 /* "BRBINFINJ_EL1" */, 0x8C88, true, true, {AArch64::FeatureBRBE} }, // 436
6144 { 5216 /* "BRBSRCINJ_EL1" */, 0x8C89, true, true, {AArch64::FeatureBRBE} }, // 437
6145 { 5230 /* "BRBTGTINJ_EL1" */, 0x8C8A, true, true, {AArch64::FeatureBRBE} }, // 438
6146 { 5244 /* "BRBIDR0_EL1" */, 0x8C90, true, false, {AArch64::FeatureBRBE} }, // 439
6147 { 5256 /* "TEECR32_EL1" */, 0x9000, true, true, {} }, // 440
6148 { 5268 /* "TEEHBR32_EL1" */, 0x9080, true, true, {} }, // 441
6149 { 5281 /* "MDCCSR_EL0" */, 0x9808, true, false, {} }, // 442
6150 { 5292 /* "DBGDTR_EL0" */, 0x9820, true, true, {} }, // 443
6151 { 5303 /* "DBGDTRRX_EL0" */, 0x9828, true, false, {} }, // 444
6152 { 5316 /* "DBGDTRTX_EL0" */, 0x9828, false, true, {} }, // 445
6153 { 5329 /* "SPMCR_EL0" */, 0x9CE0, true, true, {} }, // 446
6154 { 5339 /* "SPMCNTENSET_EL0" */, 0x9CE1, true, true, {} }, // 447
6155 { 5355 /* "SPMCNTENCLR_EL0" */, 0x9CE2, true, true, {} }, // 448
6156 { 5371 /* "SPMOVSCLR_EL0" */, 0x9CE3, true, true, {} }, // 449
6157 { 5385 /* "SPMZR_EL0" */, 0x9CE4, false, true, {} }, // 450
6158 { 5395 /* "SPMSELR_EL0" */, 0x9CE5, true, true, {} }, // 451
6159 { 5407 /* "SPMOVSSET_EL0" */, 0x9CF3, true, true, {} }, // 452
6160 { 5421 /* "SPMEVCNTR0_EL0" */, 0x9F00, true, true, {} }, // 453
6161 { 5436 /* "SPMEVCNTR1_EL0" */, 0x9F01, true, true, {} }, // 454
6162 { 5451 /* "SPMEVCNTR2_EL0" */, 0x9F02, true, true, {} }, // 455
6163 { 5466 /* "SPMEVCNTR3_EL0" */, 0x9F03, true, true, {} }, // 456
6164 { 5481 /* "SPMEVCNTR4_EL0" */, 0x9F04, true, true, {} }, // 457
6165 { 5496 /* "SPMEVCNTR5_EL0" */, 0x9F05, true, true, {} }, // 458
6166 { 5511 /* "SPMEVCNTR6_EL0" */, 0x9F06, true, true, {} }, // 459
6167 { 5526 /* "SPMEVCNTR7_EL0" */, 0x9F07, true, true, {} }, // 460
6168 { 5541 /* "SPMEVCNTR8_EL0" */, 0x9F08, true, true, {} }, // 461
6169 { 5556 /* "SPMEVCNTR9_EL0" */, 0x9F09, true, true, {} }, // 462
6170 { 5571 /* "SPMEVCNTR10_EL0" */, 0x9F0A, true, true, {} }, // 463
6171 { 5587 /* "SPMEVCNTR11_EL0" */, 0x9F0B, true, true, {} }, // 464
6172 { 5603 /* "SPMEVCNTR12_EL0" */, 0x9F0C, true, true, {} }, // 465
6173 { 5619 /* "SPMEVCNTR13_EL0" */, 0x9F0D, true, true, {} }, // 466
6174 { 5635 /* "SPMEVCNTR14_EL0" */, 0x9F0E, true, true, {} }, // 467
6175 { 5651 /* "SPMEVCNTR15_EL0" */, 0x9F0F, true, true, {} }, // 468
6176 { 5667 /* "SPMEVTYPER0_EL0" */, 0x9F10, true, true, {} }, // 469
6177 { 5683 /* "SPMEVTYPER1_EL0" */, 0x9F11, true, true, {} }, // 470
6178 { 5699 /* "SPMEVTYPER2_EL0" */, 0x9F12, true, true, {} }, // 471
6179 { 5715 /* "SPMEVTYPER3_EL0" */, 0x9F13, true, true, {} }, // 472
6180 { 5731 /* "SPMEVTYPER4_EL0" */, 0x9F14, true, true, {} }, // 473
6181 { 5747 /* "SPMEVTYPER5_EL0" */, 0x9F15, true, true, {} }, // 474
6182 { 5763 /* "SPMEVTYPER6_EL0" */, 0x9F16, true, true, {} }, // 475
6183 { 5779 /* "SPMEVTYPER7_EL0" */, 0x9F17, true, true, {} }, // 476
6184 { 5795 /* "SPMEVTYPER8_EL0" */, 0x9F18, true, true, {} }, // 477
6185 { 5811 /* "SPMEVTYPER9_EL0" */, 0x9F19, true, true, {} }, // 478
6186 { 5827 /* "SPMEVTYPER10_EL0" */, 0x9F1A, true, true, {} }, // 479
6187 { 5844 /* "SPMEVTYPER11_EL0" */, 0x9F1B, true, true, {} }, // 480
6188 { 5861 /* "SPMEVTYPER12_EL0" */, 0x9F1C, true, true, {} }, // 481
6189 { 5878 /* "SPMEVTYPER13_EL0" */, 0x9F1D, true, true, {} }, // 482
6190 { 5895 /* "SPMEVTYPER14_EL0" */, 0x9F1E, true, true, {} }, // 483
6191 { 5912 /* "SPMEVTYPER15_EL0" */, 0x9F1F, true, true, {} }, // 484
6192 { 5929 /* "SPMEVFILTR0_EL0" */, 0x9F20, true, true, {} }, // 485
6193 { 5945 /* "SPMEVFILTR1_EL0" */, 0x9F21, true, true, {} }, // 486
6194 { 5961 /* "SPMEVFILTR2_EL0" */, 0x9F22, true, true, {} }, // 487
6195 { 5977 /* "SPMEVFILTR3_EL0" */, 0x9F23, true, true, {} }, // 488
6196 { 5993 /* "SPMEVFILTR4_EL0" */, 0x9F24, true, true, {} }, // 489
6197 { 6009 /* "SPMEVFILTR5_EL0" */, 0x9F25, true, true, {} }, // 490
6198 { 6025 /* "SPMEVFILTR6_EL0" */, 0x9F26, true, true, {} }, // 491
6199 { 6041 /* "SPMEVFILTR7_EL0" */, 0x9F27, true, true, {} }, // 492
6200 { 6057 /* "SPMEVFILTR8_EL0" */, 0x9F28, true, true, {} }, // 493
6201 { 6073 /* "SPMEVFILTR9_EL0" */, 0x9F29, true, true, {} }, // 494
6202 { 6089 /* "SPMEVFILTR10_EL0" */, 0x9F2A, true, true, {} }, // 495
6203 { 6106 /* "SPMEVFILTR11_EL0" */, 0x9F2B, true, true, {} }, // 496
6204 { 6123 /* "SPMEVFILTR12_EL0" */, 0x9F2C, true, true, {} }, // 497
6205 { 6140 /* "SPMEVFILTR13_EL0" */, 0x9F2D, true, true, {} }, // 498
6206 { 6157 /* "SPMEVFILTR14_EL0" */, 0x9F2E, true, true, {} }, // 499
6207 { 6174 /* "SPMEVFILTR15_EL0" */, 0x9F2F, true, true, {} }, // 500
6208 { 6191 /* "SPMEVFILT2R0_EL0" */, 0x9F30, true, true, {} }, // 501
6209 { 6208 /* "SPMEVFILT2R1_EL0" */, 0x9F31, true, true, {} }, // 502
6210 { 6225 /* "SPMEVFILT2R2_EL0" */, 0x9F32, true, true, {} }, // 503
6211 { 6242 /* "SPMEVFILT2R3_EL0" */, 0x9F33, true, true, {} }, // 504
6212 { 6259 /* "SPMEVFILT2R4_EL0" */, 0x9F34, true, true, {} }, // 505
6213 { 6276 /* "SPMEVFILT2R5_EL0" */, 0x9F35, true, true, {} }, // 506
6214 { 6293 /* "SPMEVFILT2R6_EL0" */, 0x9F36, true, true, {} }, // 507
6215 { 6310 /* "SPMEVFILT2R7_EL0" */, 0x9F37, true, true, {} }, // 508
6216 { 6327 /* "SPMEVFILT2R8_EL0" */, 0x9F38, true, true, {} }, // 509
6217 { 6344 /* "SPMEVFILT2R9_EL0" */, 0x9F39, true, true, {} }, // 510
6218 { 6361 /* "SPMEVFILT2R10_EL0" */, 0x9F3A, true, true, {} }, // 511
6219 { 6379 /* "SPMEVFILT2R11_EL0" */, 0x9F3B, true, true, {} }, // 512
6220 { 6397 /* "SPMEVFILT2R12_EL0" */, 0x9F3C, true, true, {} }, // 513
6221 { 6415 /* "SPMEVFILT2R13_EL0" */, 0x9F3D, true, true, {} }, // 514
6222 { 6433 /* "SPMEVFILT2R14_EL0" */, 0x9F3E, true, true, {} }, // 515
6223 { 6451 /* "SPMEVFILT2R15_EL0" */, 0x9F3F, true, true, {} }, // 516
6224 { 6469 /* "DBGVCR32_EL2" */, 0xA038, true, true, {} }, // 517
6225 { 6482 /* "BRBCR_EL2" */, 0xA480, true, true, {AArch64::FeatureBRBE} }, // 518
6226 { 6492 /* "SPMACCESSR_EL2" */, 0xA4EB, true, true, {} }, // 519
6227 { 6507 /* "BRBCR_EL12" */, 0xAC80, true, true, {AArch64::FeatureBRBE} }, // 520
6228 { 6518 /* "SPMACCESSR_EL12" */, 0xACEB, true, true, {} }, // 521
6229 { 6534 /* "SPMACCESSR_EL3" */, 0xB4EB, true, true, {} }, // 522
6230 { 6549 /* "SPMROOTCR_EL3" */, 0xB4F7, true, true, {} }, // 523
6231 { 6563 /* "SPMSCR_EL1" */, 0xBCF7, true, true, {} }, // 524
6232 { 6574 /* "MIDR_EL1" */, 0xC000, true, false, {} }, // 525
6233 { 6583 /* "MPUIR_EL1" */, 0xC004, true, true, {AArch64::HasV8_0rOps} }, // 526
6234 { 6593 /* "MPIDR_EL1" */, 0xC005, true, false, {} }, // 527
6235 { 6603 /* "REVIDR_EL1" */, 0xC006, true, false, {} }, // 528
6236 { 6614 /* "ID_PFR0_EL1" */, 0xC008, true, false, {} }, // 529
6237 { 6626 /* "ID_PFR1_EL1" */, 0xC009, true, false, {} }, // 530
6238 { 6638 /* "ID_DFR0_EL1" */, 0xC00A, true, false, {} }, // 531
6239 { 6650 /* "ID_AFR0_EL1" */, 0xC00B, true, false, {} }, // 532
6240 { 6662 /* "ID_MMFR0_EL1" */, 0xC00C, true, false, {} }, // 533
6241 { 6675 /* "ID_MMFR1_EL1" */, 0xC00D, true, false, {} }, // 534
6242 { 6688 /* "ID_MMFR2_EL1" */, 0xC00E, true, false, {} }, // 535
6243 { 6701 /* "ID_MMFR3_EL1" */, 0xC00F, true, false, {} }, // 536
6244 { 6714 /* "ID_ISAR0_EL1" */, 0xC010, true, false, {} }, // 537
6245 { 6727 /* "ID_ISAR1_EL1" */, 0xC011, true, false, {} }, // 538
6246 { 6740 /* "ID_ISAR2_EL1" */, 0xC012, true, false, {} }, // 539
6247 { 6753 /* "ID_ISAR3_EL1" */, 0xC013, true, false, {} }, // 540
6248 { 6766 /* "ID_ISAR4_EL1" */, 0xC014, true, false, {} }, // 541
6249 { 6779 /* "ID_ISAR5_EL1" */, 0xC015, true, false, {} }, // 542
6250 { 6792 /* "ID_MMFR4_EL1" */, 0xC016, true, false, {} }, // 543
6251 { 6805 /* "ID_ISAR6_EL1" */, 0xC017, true, false, {AArch64::HasV8_2aOps} }, // 544
6252 { 6818 /* "MVFR0_EL1" */, 0xC018, true, false, {} }, // 545
6253 { 6828 /* "MVFR1_EL1" */, 0xC019, true, false, {} }, // 546
6254 { 6838 /* "MVFR2_EL1" */, 0xC01A, true, false, {} }, // 547
6255 { 6848 /* "ID_PFR2_EL1" */, 0xC01C, true, false, {AArch64::FeatureSpecRestrict} }, // 548
6256 { 6860 /* "ID_DFR1_EL1" */, 0xC01D, true, false, {} }, // 549
6257 { 6872 /* "ID_MMFR5_EL1" */, 0xC01E, true, false, {} }, // 550
6258 { 6885 /* "ID_AA64PFR0_EL1" */, 0xC020, true, false, {} }, // 551
6259 { 6901 /* "ID_AA64PFR1_EL1" */, 0xC021, true, false, {} }, // 552
6260 { 6917 /* "ID_AA64PFR2_EL1" */, 0xC022, true, false, {} }, // 553
6261 { 6933 /* "ID_AA64ZFR0_EL1" */, 0xC024, true, false, {AArch64::FeatureSVE} }, // 554
6262 { 6949 /* "ID_AA64SMFR0_EL1" */, 0xC025, true, false, {AArch64::FeatureSME} }, // 555
6263 { 6966 /* "ID_AA64FPFR0_EL1" */, 0xC027, true, false, {} }, // 556
6264 { 6983 /* "ID_AA64DFR0_EL1" */, 0xC028, true, false, {} }, // 557
6265 { 6999 /* "ID_AA64DFR1_EL1" */, 0xC029, true, false, {} }, // 558
6266 { 7015 /* "ID_AA64DFR2_EL1" */, 0xC02A, true, false, {} }, // 559
6267 { 7031 /* "ID_AA64AFR0_EL1" */, 0xC02C, true, false, {} }, // 560
6268 { 7047 /* "ID_AA64AFR1_EL1" */, 0xC02D, true, false, {} }, // 561
6269 { 7063 /* "ID_AA64ISAR0_EL1" */, 0xC030, true, false, {} }, // 562
6270 { 7080 /* "ID_AA64ISAR1_EL1" */, 0xC031, true, false, {} }, // 563
6271 { 7097 /* "ID_AA64ISAR2_EL1" */, 0xC032, true, false, {} }, // 564
6272 { 7114 /* "ID_AA64ISAR3_EL1" */, 0xC033, true, false, {} }, // 565
6273 { 7131 /* "ID_AA64MMFR0_EL1" */, 0xC038, true, false, {} }, // 566
6274 { 7148 /* "ID_AA64MMFR1_EL1" */, 0xC039, true, false, {} }, // 567
6275 { 7165 /* "ID_AA64MMFR2_EL1" */, 0xC03A, true, false, {} }, // 568
6276 { 7182 /* "ID_AA64MMFR3_EL1" */, 0xC03B, true, false, {} }, // 569
6277 { 7199 /* "ID_AA64MMFR4_EL1" */, 0xC03C, true, false, {} }, // 570
6278 { 7216 /* "SCTLR_EL1" */, 0xC080, true, true, {} }, // 571
6279 { 7226 /* "ACTLR_EL1" */, 0xC081, true, true, {} }, // 572
6280 { 7236 /* "CPACR_EL1" */, 0xC082, true, true, {} }, // 573
6281 { 7246 /* "SCTLR2_EL1" */, 0xC083, true, true, {} }, // 574
6282 { 7257 /* "RGSR_EL1" */, 0xC085, true, true, {AArch64::FeatureMTE} }, // 575
6283 { 7266 /* "GCR_EL1" */, 0xC086, true, true, {AArch64::FeatureMTE} }, // 576
6284 { 7274 /* "ZCR_EL1" */, 0xC090, true, true, {AArch64::FeatureSVE} }, // 577
6285 { 7282 /* "TRFCR_EL1" */, 0xC091, true, true, {AArch64::FeatureTRACEV8_4} }, // 578
6286 { 7292 /* "TRCITECR_EL1" */, 0xC093, true, true, {AArch64::FeatureITE} }, // 579
6287 { 7305 /* "SMPRI_EL1" */, 0xC094, true, true, {AArch64::FeatureSME} }, // 580
6288 { 7315 /* "SMCR_EL1" */, 0xC096, true, true, {AArch64::FeatureSME} }, // 581
6289 { 7324 /* "SCTLRMASK_EL1" */, 0xC0A0, true, true, {} }, // 582
6290 { 7338 /* "ACTLRMASK_EL1" */, 0xC0A1, true, true, {} }, // 583
6291 { 7352 /* "CPACRMASK_EL1" */, 0xC0A2, true, true, {} }, // 584
6292 { 7366 /* "SCTLR2MASK_EL1" */, 0xC0A3, true, true, {} }, // 585
6293 { 7381 /* "CPACRALIAS_EL1" */, 0xC0A4, true, true, {} }, // 586
6294 { 7396 /* "ACTLRALIAS_EL1" */, 0xC0A5, true, true, {} }, // 587
6295 { 7411 /* "SCTLRALIAS_EL1" */, 0xC0A6, true, true, {} }, // 588
6296 { 7426 /* "SCTLR2ALIAS_EL1" */, 0xC0A7, true, true, {} }, // 589
6297 { 7442 /* "TTBR0_EL1" */, 0xC100, true, true, {} }, // 590
6298 { 7452 /* "TTBR1_EL1" */, 0xC101, true, true, {} }, // 591
6299 { 7462 /* "TCR_EL1" */, 0xC102, true, true, {} }, // 592
6300 { 7470 /* "TCR2_EL1" */, 0xC103, true, true, {} }, // 593
6301 { 7479 /* "IRTBRU_EL1" */, 0xC104, true, true, {} }, // 594
6302 { 7490 /* "IRTBRP_EL1" */, 0xC105, true, true, {} }, // 595
6303 { 7501 /* "DPOTBR0_EL1" */, 0xC106, true, true, {} }, // 596
6304 { 7513 /* "DPOTBR1_EL1" */, 0xC107, true, true, {} }, // 597
6305 { 7525 /* "APIAKeyLo_EL1" */, 0xC108, true, true, {AArch64::FeaturePAuth} }, // 598
6306 { 7539 /* "APIAKeyHi_EL1" */, 0xC109, true, true, {AArch64::FeaturePAuth} }, // 599
6307 { 7553 /* "APIBKeyLo_EL1" */, 0xC10A, true, true, {AArch64::FeaturePAuth} }, // 600
6308 { 7567 /* "APIBKeyHi_EL1" */, 0xC10B, true, true, {AArch64::FeaturePAuth} }, // 601
6309 { 7581 /* "LDSTT_EL1" */, 0xC10F, true, true, {} }, // 602
6310 { 7591 /* "APDAKeyLo_EL1" */, 0xC110, true, true, {AArch64::FeaturePAuth} }, // 603
6311 { 7605 /* "APDAKeyHi_EL1" */, 0xC111, true, true, {AArch64::FeaturePAuth} }, // 604
6312 { 7619 /* "APDBKeyLo_EL1" */, 0xC112, true, true, {AArch64::FeaturePAuth} }, // 605
6313 { 7633 /* "APDBKeyHi_EL1" */, 0xC113, true, true, {AArch64::FeaturePAuth} }, // 606
6314 { 7647 /* "TPMIN0_EL1" */, 0xC114, true, true, {} }, // 607
6315 { 7658 /* "TPMAX0_EL1" */, 0xC115, true, true, {} }, // 608
6316 { 7669 /* "TPMIN1_EL1" */, 0xC116, true, true, {} }, // 609
6317 { 7680 /* "TPMAX1_EL1" */, 0xC117, true, true, {} }, // 610
6318 { 7691 /* "APGAKeyLo_EL1" */, 0xC118, true, true, {AArch64::FeaturePAuth} }, // 611
6319 { 7705 /* "APGAKeyHi_EL1" */, 0xC119, true, true, {AArch64::FeaturePAuth} }, // 612
6320 { 7719 /* "GCSCR_EL1" */, 0xC128, true, true, {} }, // 613
6321 { 7729 /* "GCSPR_EL1" */, 0xC129, true, true, {} }, // 614
6322 { 7739 /* "GCSCRE0_EL1" */, 0xC12A, true, true, {} }, // 615
6323 { 7751 /* "TCRMASK_EL1" */, 0xC13A, true, true, {} }, // 616
6324 { 7763 /* "TCR2MASK_EL1" */, 0xC13B, true, true, {} }, // 617
6325 { 7776 /* "TCRALIAS_EL1" */, 0xC13E, true, true, {} }, // 618
6326 { 7789 /* "TCR2ALIAS_EL1" */, 0xC13F, true, true, {} }, // 619
6327 { 7803 /* "FGDTP0_EL1" */, 0xC190, true, true, {} }, // 620
6328 { 7814 /* "FGDTP1_EL1" */, 0xC191, true, true, {} }, // 621
6329 { 7825 /* "FGDTP2_EL1" */, 0xC192, true, true, {} }, // 622
6330 { 7836 /* "FGDTP3_EL1" */, 0xC193, true, true, {} }, // 623
6331 { 7847 /* "FGDTP4_EL1" */, 0xC194, true, true, {} }, // 624
6332 { 7858 /* "FGDTP5_EL1" */, 0xC195, true, true, {} }, // 625
6333 { 7869 /* "FGDTP6_EL1" */, 0xC196, true, true, {} }, // 626
6334 { 7880 /* "FGDTP7_EL1" */, 0xC197, true, true, {} }, // 627
6335 { 7891 /* "FGDTP8_EL1" */, 0xC198, true, true, {} }, // 628
6336 { 7902 /* "FGDTP9_EL1" */, 0xC199, true, true, {} }, // 629
6337 { 7913 /* "FGDTP10_EL1" */, 0xC19A, true, true, {} }, // 630
6338 { 7925 /* "FGDTP11_EL1" */, 0xC19B, true, true, {} }, // 631
6339 { 7937 /* "FGDTP12_EL1" */, 0xC19C, true, true, {} }, // 632
6340 { 7949 /* "FGDTP13_EL1" */, 0xC19D, true, true, {} }, // 633
6341 { 7961 /* "FGDTP14_EL1" */, 0xC19E, true, true, {} }, // 634
6342 { 7973 /* "FGDTP15_EL1" */, 0xC19F, true, true, {} }, // 635
6343 { 7985 /* "FGDTU0_EL1" */, 0xC1A0, true, true, {} }, // 636
6344 { 7996 /* "FGDTU1_EL1" */, 0xC1A1, true, true, {} }, // 637
6345 { 8007 /* "FGDTU2_EL1" */, 0xC1A2, true, true, {} }, // 638
6346 { 8018 /* "FGDTU3_EL1" */, 0xC1A3, true, true, {} }, // 639
6347 { 8029 /* "FGDTU4_EL1" */, 0xC1A4, true, true, {} }, // 640
6348 { 8040 /* "FGDTU5_EL1" */, 0xC1A5, true, true, {} }, // 641
6349 { 8051 /* "FGDTU6_EL1" */, 0xC1A6, true, true, {} }, // 642
6350 { 8062 /* "FGDTU7_EL1" */, 0xC1A7, true, true, {} }, // 643
6351 { 8073 /* "FGDTU8_EL1" */, 0xC1A8, true, true, {} }, // 644
6352 { 8084 /* "FGDTU9_EL1" */, 0xC1A9, true, true, {} }, // 645
6353 { 8095 /* "FGDTU10_EL1" */, 0xC1AA, true, true, {} }, // 646
6354 { 8107 /* "FGDTU11_EL1" */, 0xC1AB, true, true, {} }, // 647
6355 { 8119 /* "FGDTU12_EL1" */, 0xC1AC, true, true, {} }, // 648
6356 { 8131 /* "FGDTU13_EL1" */, 0xC1AD, true, true, {} }, // 649
6357 { 8143 /* "FGDTU14_EL1" */, 0xC1AE, true, true, {} }, // 650
6358 { 8155 /* "FGDTU15_EL1" */, 0xC1AF, true, true, {} }, // 651
6359 { 8167 /* "AFGDTP0_EL1" */, 0xC1B0, true, true, {} }, // 652
6360 { 8179 /* "AFGDTP1_EL1" */, 0xC1B1, true, true, {} }, // 653
6361 { 8191 /* "AFGDTP2_EL1" */, 0xC1B2, true, true, {} }, // 654
6362 { 8203 /* "AFGDTP3_EL1" */, 0xC1B3, true, true, {} }, // 655
6363 { 8215 /* "AFGDTP4_EL1" */, 0xC1B4, true, true, {} }, // 656
6364 { 8227 /* "AFGDTP5_EL1" */, 0xC1B5, true, true, {} }, // 657
6365 { 8239 /* "AFGDTP6_EL1" */, 0xC1B6, true, true, {} }, // 658
6366 { 8251 /* "AFGDTP7_EL1" */, 0xC1B7, true, true, {} }, // 659
6367 { 8263 /* "AFGDTP8_EL1" */, 0xC1B8, true, true, {} }, // 660
6368 { 8275 /* "AFGDTP9_EL1" */, 0xC1B9, true, true, {} }, // 661
6369 { 8287 /* "AFGDTP10_EL1" */, 0xC1BA, true, true, {} }, // 662
6370 { 8300 /* "AFGDTP11_EL1" */, 0xC1BB, true, true, {} }, // 663
6371 { 8313 /* "AFGDTP12_EL1" */, 0xC1BC, true, true, {} }, // 664
6372 { 8326 /* "AFGDTP13_EL1" */, 0xC1BD, true, true, {} }, // 665
6373 { 8339 /* "AFGDTP14_EL1" */, 0xC1BE, true, true, {} }, // 666
6374 { 8352 /* "AFGDTP15_EL1" */, 0xC1BF, true, true, {} }, // 667
6375 { 8365 /* "AFGDTU0_EL1" */, 0xC1C0, true, true, {} }, // 668
6376 { 8377 /* "AFGDTU1_EL1" */, 0xC1C1, true, true, {} }, // 669
6377 { 8389 /* "AFGDTU2_EL1" */, 0xC1C2, true, true, {} }, // 670
6378 { 8401 /* "AFGDTU3_EL1" */, 0xC1C3, true, true, {} }, // 671
6379 { 8413 /* "AFGDTU4_EL1" */, 0xC1C4, true, true, {} }, // 672
6380 { 8425 /* "AFGDTU5_EL1" */, 0xC1C5, true, true, {} }, // 673
6381 { 8437 /* "AFGDTU6_EL1" */, 0xC1C6, true, true, {} }, // 674
6382 { 8449 /* "AFGDTU7_EL1" */, 0xC1C7, true, true, {} }, // 675
6383 { 8461 /* "AFGDTU8_EL1" */, 0xC1C8, true, true, {} }, // 676
6384 { 8473 /* "AFGDTU9_EL1" */, 0xC1C9, true, true, {} }, // 677
6385 { 8485 /* "AFGDTU10_EL1" */, 0xC1CA, true, true, {} }, // 678
6386 { 8498 /* "AFGDTU11_EL1" */, 0xC1CB, true, true, {} }, // 679
6387 { 8511 /* "AFGDTU12_EL1" */, 0xC1CC, true, true, {} }, // 680
6388 { 8524 /* "AFGDTU13_EL1" */, 0xC1CD, true, true, {} }, // 681
6389 { 8537 /* "AFGDTU14_EL1" */, 0xC1CE, true, true, {} }, // 682
6390 { 8550 /* "AFGDTU15_EL1" */, 0xC1CF, true, true, {} }, // 683
6391 { 8563 /* "SPSR_EL1" */, 0xC200, true, true, {} }, // 684
6392 { 8572 /* "ELR_EL1" */, 0xC201, true, true, {} }, // 685
6393 { 8580 /* "STINDEX_EL1" */, 0xC202, true, true, {} }, // 686
6394 { 8592 /* "TINDEX_EL1" */, 0xC203, true, true, {} }, // 687
6395 { 8603 /* "SP_EL0" */, 0xC208, true, true, {} }, // 688
6396 { 8610 /* "SPSel" */, 0xC210, true, true, {} }, // 689
6397 { 8616 /* "CurrentEL" */, 0xC212, true, false, {} }, // 690
6398 { 8626 /* "PAN" */, 0xC213, true, true, {AArch64::FeaturePAN} }, // 691
6399 { 8630 /* "UAO" */, 0xC214, true, true, {AArch64::FeaturePsUAO} }, // 692
6400 { 8634 /* "ALLINT" */, 0xC218, true, true, {AArch64::FeatureNMI} }, // 693
6401 { 8641 /* "PM" */, 0xC219, true, true, {} }, // 694
6402 { 8644 /* "ICC_PMR_EL1" */, 0xC230, true, true, {} }, // 695
6403 { 8656 /* "AFSR0_EL1" */, 0xC288, true, true, {} }, // 696
6404 { 8666 /* "AFSR1_EL1" */, 0xC289, true, true, {} }, // 697
6405 { 8676 /* "ESR_EL1" */, 0xC290, true, true, {} }, // 698
6406 { 8684 /* "ERRIDR_EL1" */, 0xC298, true, false, {AArch64::FeatureRAS} }, // 699
6407 { 8695 /* "ERRSELR_EL1" */, 0xC299, true, true, {AArch64::FeatureRAS} }, // 700
6408 { 8707 /* "ERXGSR_EL1" */, 0xC29A, true, false, {AArch64::FeatureRASv2} }, // 701
6409 { 8718 /* "ERXFR_EL1" */, 0xC2A0, true, false, {AArch64::FeatureRAS} }, // 702
6410 { 8728 /* "ERXCTLR_EL1" */, 0xC2A1, true, true, {AArch64::FeatureRAS} }, // 703
6411 { 8740 /* "ERXSTATUS_EL1" */, 0xC2A2, true, true, {AArch64::FeatureRAS} }, // 704
6412 { 8754 /* "ERXADDR_EL1" */, 0xC2A3, true, true, {AArch64::FeatureRAS} }, // 705
6413 { 8766 /* "ERXPFGF_EL1" */, 0xC2A4, true, false, {} }, // 706
6414 { 8778 /* "ERXPFGCTL_EL1" */, 0xC2A5, true, true, {} }, // 707
6415 { 8792 /* "ERXPFGCDN_EL1" */, 0xC2A6, true, true, {} }, // 708
6416 { 8806 /* "ERXMISC0_EL1" */, 0xC2A8, true, true, {AArch64::FeatureRAS} }, // 709
6417 { 8819 /* "ERXMISC1_EL1" */, 0xC2A9, true, true, {AArch64::FeatureRAS} }, // 710
6418 { 8832 /* "ERXMISC2_EL1" */, 0xC2AA, true, true, {} }, // 711
6419 { 8845 /* "ERXMISC3_EL1" */, 0xC2AB, true, true, {} }, // 712
6420 { 8858 /* "TFSR_EL1" */, 0xC2B0, true, true, {AArch64::FeatureMTE} }, // 713
6421 { 8867 /* "TFSRE0_EL1" */, 0xC2B1, true, true, {AArch64::FeatureMTE} }, // 714
6422 { 8878 /* "FAR_EL1" */, 0xC300, true, true, {} }, // 715
6423 { 8886 /* "PFAR_EL1" */, 0xC305, true, true, {} }, // 716
6424 { 8895 /* "PRENR_EL1" */, 0xC309, true, true, {AArch64::HasV8_0rOps} }, // 717
6425 { 8905 /* "PRSELR_EL1" */, 0xC311, true, true, {AArch64::HasV8_0rOps} }, // 718
6426 { 8916 /* "PRBAR_EL1" */, 0xC340, true, true, {AArch64::HasV8_0rOps} }, // 719
6427 { 8926 /* "PRLAR_EL1" */, 0xC341, true, true, {AArch64::HasV8_0rOps} }, // 720
6428 { 8936 /* "PRBAR1_EL1" */, 0xC344, true, true, {AArch64::HasV8_0rOps} }, // 721
6429 { 8947 /* "PRLAR1_EL1" */, 0xC345, true, true, {AArch64::HasV8_0rOps} }, // 722
6430 { 8958 /* "PRBAR2_EL1" */, 0xC348, true, true, {AArch64::HasV8_0rOps} }, // 723
6431 { 8969 /* "PRLAR2_EL1" */, 0xC349, true, true, {AArch64::HasV8_0rOps} }, // 724
6432 { 8980 /* "PRBAR3_EL1" */, 0xC34C, true, true, {AArch64::HasV8_0rOps} }, // 725
6433 { 8991 /* "PRLAR3_EL1" */, 0xC34D, true, true, {AArch64::HasV8_0rOps} }, // 726
6434 { 9002 /* "PRBAR4_EL1" */, 0xC350, true, true, {AArch64::HasV8_0rOps} }, // 727
6435 { 9013 /* "PRLAR4_EL1" */, 0xC351, true, true, {AArch64::HasV8_0rOps} }, // 728
6436 { 9024 /* "PRBAR5_EL1" */, 0xC354, true, true, {AArch64::HasV8_0rOps} }, // 729
6437 { 9035 /* "PRLAR5_EL1" */, 0xC355, true, true, {AArch64::HasV8_0rOps} }, // 730
6438 { 9046 /* "PRBAR6_EL1" */, 0xC358, true, true, {AArch64::HasV8_0rOps} }, // 731
6439 { 9057 /* "PRLAR6_EL1" */, 0xC359, true, true, {AArch64::HasV8_0rOps} }, // 732
6440 { 9068 /* "PRBAR7_EL1" */, 0xC35C, true, true, {AArch64::HasV8_0rOps} }, // 733
6441 { 9079 /* "PRLAR7_EL1" */, 0xC35D, true, true, {AArch64::HasV8_0rOps} }, // 734
6442 { 9090 /* "PRBAR8_EL1" */, 0xC360, true, true, {AArch64::HasV8_0rOps} }, // 735
6443 { 9101 /* "PRLAR8_EL1" */, 0xC361, true, true, {AArch64::HasV8_0rOps} }, // 736
6444 { 9112 /* "PRBAR9_EL1" */, 0xC364, true, true, {AArch64::HasV8_0rOps} }, // 737
6445 { 9123 /* "PRLAR9_EL1" */, 0xC365, true, true, {AArch64::HasV8_0rOps} }, // 738
6446 { 9134 /* "PRBAR10_EL1" */, 0xC368, true, true, {AArch64::HasV8_0rOps} }, // 739
6447 { 9146 /* "PRLAR10_EL1" */, 0xC369, true, true, {AArch64::HasV8_0rOps} }, // 740
6448 { 9158 /* "PRBAR11_EL1" */, 0xC36C, true, true, {AArch64::HasV8_0rOps} }, // 741
6449 { 9170 /* "PRLAR11_EL1" */, 0xC36D, true, true, {AArch64::HasV8_0rOps} }, // 742
6450 { 9182 /* "PRBAR12_EL1" */, 0xC370, true, true, {AArch64::HasV8_0rOps} }, // 743
6451 { 9194 /* "PRLAR12_EL1" */, 0xC371, true, true, {AArch64::HasV8_0rOps} }, // 744
6452 { 9206 /* "PRBAR13_EL1" */, 0xC374, true, true, {AArch64::HasV8_0rOps} }, // 745
6453 { 9218 /* "PRLAR13_EL1" */, 0xC375, true, true, {AArch64::HasV8_0rOps} }, // 746
6454 { 9230 /* "PRBAR14_EL1" */, 0xC378, true, true, {AArch64::HasV8_0rOps} }, // 747
6455 { 9242 /* "PRLAR14_EL1" */, 0xC379, true, true, {AArch64::HasV8_0rOps} }, // 748
6456 { 9254 /* "PRBAR15_EL1" */, 0xC37C, true, true, {AArch64::HasV8_0rOps} }, // 749
6457 { 9266 /* "PRLAR15_EL1" */, 0xC37D, true, true, {AArch64::HasV8_0rOps} }, // 750
6458 { 9278 /* "PAR_EL1" */, 0xC3A0, true, true, {} }, // 751
6459 { 9286 /* "PMSCR_EL1" */, 0xC4C8, true, true, {AArch64::FeatureSPE} }, // 752
6460 { 9296 /* "PMSNEVFR_EL1" */, 0xC4C9, true, true, {AArch64::FeatureSPE_EEF} }, // 753
6461 { 9309 /* "PMSICR_EL1" */, 0xC4CA, true, true, {AArch64::FeatureSPE} }, // 754
6462 { 9320 /* "PMSIRR_EL1" */, 0xC4CB, true, true, {AArch64::FeatureSPE} }, // 755
6463 { 9331 /* "PMSFCR_EL1" */, 0xC4CC, true, true, {AArch64::FeatureSPE} }, // 756
6464 { 9342 /* "PMSEVFR_EL1" */, 0xC4CD, true, true, {AArch64::FeatureSPE} }, // 757
6465 { 9354 /* "PMSLATFR_EL1" */, 0xC4CE, true, true, {AArch64::FeatureSPE} }, // 758
6466 { 9367 /* "PMSIDR_EL1" */, 0xC4CF, true, false, {AArch64::FeatureSPE} }, // 759
6467 { 9378 /* "PMBLIMITR_EL1" */, 0xC4D0, true, true, {AArch64::FeatureSPE} }, // 760
6468 { 9392 /* "PMBPTR_EL1" */, 0xC4D1, true, true, {AArch64::FeatureSPE} }, // 761
6469 { 9403 /* "PMBSR_EL1" */, 0xC4D3, true, true, {AArch64::FeatureSPE} }, // 762
6470 { 9413 /* "PMSDSFR_EL1" */, 0xC4D4, true, true, {} }, // 763
6471 { 9425 /* "PMBMAR_EL1" */, 0xC4D5, true, true, {} }, // 764
6472 { 9436 /* "PMBIDR_EL1" */, 0xC4D7, true, false, {AArch64::FeatureSPE} }, // 765
6473 { 9447 /* "TRBLIMITR_EL1" */, 0xC4D8, true, true, {AArch64::FeatureTRBE} }, // 766
6474 { 9461 /* "TRBPTR_EL1" */, 0xC4D9, true, true, {AArch64::FeatureTRBE} }, // 767
6475 { 9472 /* "TRBBASER_EL1" */, 0xC4DA, true, true, {AArch64::FeatureTRBE} }, // 768
6476 { 9485 /* "TRBSR_EL1" */, 0xC4DB, true, true, {AArch64::FeatureTRBE} }, // 769
6477 { 9495 /* "TRBMAR_EL1" */, 0xC4DC, true, true, {AArch64::FeatureTRBE} }, // 770
6478 { 9506 /* "TRBMPAM_EL1" */, 0xC4DD, true, true, {AArch64::FeatureTRBE} }, // 771
6479 { 9518 /* "TRBTRG_EL1" */, 0xC4DE, true, true, {AArch64::FeatureTRBE} }, // 772
6480 { 9529 /* "TRBIDR_EL1" */, 0xC4DF, true, false, {AArch64::FeatureTRBE} }, // 773
6481 { 9540 /* "PMSSCR_EL1" */, 0xC4EB, true, true, {} }, // 774
6482 { 9551 /* "PMINTENSET_EL1" */, 0xC4F1, true, true, {} }, // 775
6483 { 9566 /* "PMINTENCLR_EL1" */, 0xC4F2, true, true, {} }, // 776
6484 { 9581 /* "PMUACR_EL1" */, 0xC4F4, true, true, {} }, // 777
6485 { 9592 /* "PMECR_EL1" */, 0xC4F5, true, true, {} }, // 778
6486 { 9602 /* "PMMIR_EL1" */, 0xC4F6, true, false, {} }, // 779
6487 { 9612 /* "PMIAR_EL1" */, 0xC4F7, true, true, {} }, // 780
6488 { 9622 /* "MAIR_EL1" */, 0xC510, true, true, {} }, // 781
6489 { 9631 /* "MAIR2_EL1" */, 0xC511, true, true, {} }, // 782
6490 { 9641 /* "PIRE0_EL1" */, 0xC512, true, true, {} }, // 783
6491 { 9651 /* "PIR_EL1" */, 0xC513, true, true, {} }, // 784
6492 { 9659 /* "POR_EL1" */, 0xC514, true, true, {} }, // 785
6493 { 9667 /* "S2POR_EL1" */, 0xC515, true, true, {} }, // 786
6494 { 9677 /* "TTTBRU_EL1" */, 0xC516, true, true, {} }, // 787
6495 { 9688 /* "TTTBRP_EL1" */, 0xC517, true, true, {} }, // 788
6496 { 9699 /* "AMAIR_EL1" */, 0xC518, true, true, {} }, // 789
6497 { 9709 /* "AMAIR2_EL1" */, 0xC519, true, true, {} }, // 790
6498 { 9720 /* "LORSA_EL1" */, 0xC520, true, true, {AArch64::FeatureLOR} }, // 791
6499 { 9730 /* "LOREA_EL1" */, 0xC521, true, true, {AArch64::FeatureLOR} }, // 792
6500 { 9740 /* "LORN_EL1" */, 0xC522, true, true, {AArch64::FeatureLOR} }, // 793
6501 { 9749 /* "LORC_EL1" */, 0xC523, true, true, {AArch64::FeatureLOR} }, // 794
6502 { 9758 /* "MPAMIDR_EL1" */, 0xC524, true, false, {} }, // 795
6503 { 9770 /* "MPAMBWIDR_EL1" */, 0xC525, true, false, {} }, // 796
6504 { 9784 /* "TLBIDIDR_EL1" */, 0xC526, true, false, {} }, // 797
6505 { 9797 /* "LORID_EL1" */, 0xC527, true, false, {AArch64::FeatureLOR} }, // 798
6506 { 9807 /* "MPAM1_EL1" */, 0xC528, true, true, {} }, // 799
6507 { 9817 /* "MPAM0_EL1" */, 0xC529, true, true, {} }, // 800
6508 { 9827 /* "MPAMCTL_EL1" */, 0xC52A, true, true, {} }, // 801
6509 { 9839 /* "MPAMSM_EL1" */, 0xC52B, true, true, {AArch64::FeatureMPAM, AArch64::FeatureSME} }, // 802
6510 { 9850 /* "MPAMBW1_EL1" */, 0xC52C, true, true, {} }, // 803
6511 { 9862 /* "MPAMBW0_EL1" */, 0xC52D, true, true, {} }, // 804
6512 { 9874 /* "MPAMBWSM_EL1" */, 0xC52F, true, true, {} }, // 805
6513 { 9887 /* "VBAR_EL1" */, 0xC600, true, true, {} }, // 806
6514 { 9896 /* "RVBAR_EL1" */, 0xC601, true, false, {} }, // 807
6515 { 9906 /* "RMR_EL1" */, 0xC602, true, true, {} }, // 808
6516 { 9914 /* "ISR_EL1" */, 0xC608, true, false, {} }, // 809
6517 { 9922 /* "DISR_EL1" */, 0xC609, true, true, {AArch64::FeatureRAS} }, // 810
6518 { 9931 /* "ICC_IAR0_EL1" */, 0xC640, true, false, {} }, // 811
6519 { 9944 /* "ICC_EOIR0_EL1" */, 0xC641, false, true, {} }, // 812
6520 { 9958 /* "ICC_HPPIR0_EL1" */, 0xC642, true, false, {} }, // 813
6521 { 9973 /* "ICC_BPR0_EL1" */, 0xC643, true, true, {} }, // 814
6522 { 9986 /* "ICC_AP0R0_EL1" */, 0xC644, true, true, {} }, // 815
6523 { 10000 /* "ICC_AP0R1_EL1" */, 0xC645, true, true, {} }, // 816
6524 { 10014 /* "ICC_AP0R2_EL1" */, 0xC646, true, true, {} }, // 817
6525 { 10028 /* "ICC_AP0R3_EL1" */, 0xC647, true, true, {} }, // 818
6526 { 10042 /* "ICC_AP1R0_EL1" */, 0xC648, true, true, {} }, // 819
6527 { 10056 /* "ICC_AP1R1_EL1" */, 0xC649, true, true, {} }, // 820
6528 { 10070 /* "ICC_AP1R2_EL1" */, 0xC64A, true, true, {} }, // 821
6529 { 10084 /* "ICC_AP1R3_EL1" */, 0xC64B, true, true, {} }, // 822
6530 { 10098 /* "ICC_NMIAR1_EL1" */, 0xC64D, true, false, {AArch64::FeatureNMI} }, // 823
6531 { 10113 /* "ICC_PPI_HMR0_EL1" */, 0xC650, true, true, {} }, // 824
6532 { 10130 /* "ICV_PPI_HMR0_EL1" */, 0xC650, true, true, {} }, // 825
6533 { 10147 /* "ICC_PPI_HMR1_EL1" */, 0xC651, true, true, {} }, // 826
6534 { 10164 /* "ICV_PPI_HMR1_EL1" */, 0xC651, true, true, {} }, // 827
6535 { 10181 /* "ICC_IDR0_EL1" */, 0xC652, true, false, {} }, // 828
6536 { 10194 /* "ICC_HPPIR_EL1" */, 0xC653, true, false, {} }, // 829
6537 { 10208 /* "ICV_HPPIR_EL1" */, 0xC653, true, true, {} }, // 830
6538 { 10222 /* "ICC_ICSR_EL1" */, 0xC654, true, true, {} }, // 831
6539 { 10235 /* "ICC_IAFFIDR_EL1" */, 0xC655, true, false, {} }, // 832
6540 { 10251 /* "ICC_PPI_ENABLER0_EL1" */, 0xC656, true, true, {} }, // 833
6541 { 10272 /* "ICV_PPI_ENABLER0_EL1" */, 0xC656, true, true, {} }, // 834
6542 { 10293 /* "ICC_PPI_ENABLER1_EL1" */, 0xC657, true, true, {} }, // 835
6543 { 10314 /* "ICV_PPI_ENABLER1_EL1" */, 0xC657, true, true, {} }, // 836
6544 { 10335 /* "ICC_DIR_EL1" */, 0xC659, false, true, {} }, // 837
6545 { 10347 /* "ICC_RPR_EL1" */, 0xC65B, true, false, {} }, // 838
6546 { 10359 /* "ICC_SGI1R_EL1" */, 0xC65D, false, true, {} }, // 839
6547 { 10373 /* "ICC_ASGI1R_EL1" */, 0xC65E, false, true, {} }, // 840
6548 { 10388 /* "ICC_SGI0R_EL1" */, 0xC65F, false, true, {} }, // 841
6549 { 10402 /* "ICC_IAR1_EL1" */, 0xC660, true, false, {} }, // 842
6550 { 10415 /* "ICC_EOIR1_EL1" */, 0xC661, false, true, {} }, // 843
6551 { 10429 /* "ICC_HPPIR1_EL1" */, 0xC662, true, false, {} }, // 844
6552 { 10444 /* "ICC_BPR1_EL1" */, 0xC663, true, true, {} }, // 845
6553 { 10457 /* "ICC_CTLR_EL1" */, 0xC664, true, true, {} }, // 846
6554 { 10470 /* "ICC_SRE_EL1" */, 0xC665, true, true, {} }, // 847
6555 { 10482 /* "ICC_IGRPEN0_EL1" */, 0xC666, true, true, {} }, // 848
6556 { 10498 /* "ICC_IGRPEN1_EL1" */, 0xC667, true, true, {} }, // 849
6557 { 10514 /* "ICC_PPI_CACTIVER0_EL1" */, 0xC668, true, true, {} }, // 850
6558 { 10536 /* "ICV_PPI_CACTIVER0_EL1" */, 0xC668, true, true, {} }, // 851
6559 { 10558 /* "ICC_PPI_CACTIVER1_EL1" */, 0xC669, true, true, {} }, // 852
6560 { 10580 /* "ICV_PPI_CACTIVER1_EL1" */, 0xC669, true, true, {} }, // 853
6561 { 10602 /* "ICC_PPI_SACTIVER0_EL1" */, 0xC66A, true, true, {} }, // 854
6562 { 10624 /* "ICV_PPI_SACTIVER0_EL1" */, 0xC66A, true, true, {} }, // 855
6563 { 10646 /* "ICC_PPI_SACTIVER1_EL1" */, 0xC66B, true, true, {} }, // 856
6564 { 10668 /* "ICV_PPI_SACTIVER1_EL1" */, 0xC66B, true, true, {} }, // 857
6565 { 10690 /* "ICC_PPI_CPENDR0_EL1" */, 0xC66C, true, true, {} }, // 858
6566 { 10710 /* "ICV_PPI_CPENDR0_EL1" */, 0xC66C, true, true, {} }, // 859
6567 { 10730 /* "ICC_PPI_CPENDR1_EL1" */, 0xC66D, true, true, {} }, // 860
6568 { 10750 /* "ICV_PPI_CPENDR1_EL1" */, 0xC66D, true, true, {} }, // 861
6569 { 10770 /* "ICC_PPI_SPENDR0_EL1" */, 0xC66E, true, true, {} }, // 862
6570 { 10790 /* "ICV_PPI_SPENDR0_EL1" */, 0xC66E, true, true, {} }, // 863
6571 { 10810 /* "ICC_PPI_SPENDR1_EL1" */, 0xC66F, true, true, {} }, // 864
6572 { 10830 /* "ICV_PPI_SPENDR1_EL1" */, 0xC66F, true, true, {} }, // 865
6573 { 10850 /* "ICC_PPI_PRIORITYR0_EL1" */, 0xC670, true, true, {} }, // 866
6574 { 10873 /* "ICV_PPI_PRIORITYR0_EL1" */, 0xC670, true, true, {} }, // 867
6575 { 10896 /* "ICC_PPI_PRIORITYR1_EL1" */, 0xC671, true, true, {} }, // 868
6576 { 10919 /* "ICV_PPI_PRIORITYR1_EL1" */, 0xC671, true, true, {} }, // 869
6577 { 10942 /* "ICC_PPI_PRIORITYR2_EL1" */, 0xC672, true, true, {} }, // 870
6578 { 10965 /* "ICV_PPI_PRIORITYR2_EL1" */, 0xC672, true, true, {} }, // 871
6579 { 10988 /* "ICC_PPI_PRIORITYR3_EL1" */, 0xC673, true, true, {} }, // 872
6580 { 11011 /* "ICV_PPI_PRIORITYR3_EL1" */, 0xC673, true, true, {} }, // 873
6581 { 11034 /* "ICC_PPI_PRIORITYR4_EL1" */, 0xC674, true, true, {} }, // 874
6582 { 11057 /* "ICV_PPI_PRIORITYR4_EL1" */, 0xC674, true, true, {} }, // 875
6583 { 11080 /* "ICC_PPI_PRIORITYR5_EL1" */, 0xC675, true, true, {} }, // 876
6584 { 11103 /* "ICV_PPI_PRIORITYR5_EL1" */, 0xC675, true, true, {} }, // 877
6585 { 11126 /* "ICC_PPI_PRIORITYR6_EL1" */, 0xC676, true, true, {} }, // 878
6586 { 11149 /* "ICV_PPI_PRIORITYR6_EL1" */, 0xC676, true, true, {} }, // 879
6587 { 11172 /* "ICC_PPI_PRIORITYR7_EL1" */, 0xC677, true, true, {} }, // 880
6588 { 11195 /* "ICV_PPI_PRIORITYR7_EL1" */, 0xC677, true, true, {} }, // 881
6589 { 11218 /* "ICC_PPI_PRIORITYR8_EL1" */, 0xC678, true, true, {} }, // 882
6590 { 11241 /* "ICV_PPI_PRIORITYR8_EL1" */, 0xC678, true, true, {} }, // 883
6591 { 11264 /* "ICC_PPI_PRIORITYR9_EL1" */, 0xC679, true, true, {} }, // 884
6592 { 11287 /* "ICV_PPI_PRIORITYR9_EL1" */, 0xC679, true, true, {} }, // 885
6593 { 11310 /* "ICC_PPI_PRIORITYR10_EL1" */, 0xC67A, true, true, {} }, // 886
6594 { 11334 /* "ICV_PPI_PRIORITYR10_EL1" */, 0xC67A, true, true, {} }, // 887
6595 { 11358 /* "ICC_PPI_PRIORITYR11_EL1" */, 0xC67B, true, true, {} }, // 888
6596 { 11382 /* "ICV_PPI_PRIORITYR11_EL1" */, 0xC67B, true, true, {} }, // 889
6597 { 11406 /* "ICC_PPI_PRIORITYR12_EL1" */, 0xC67C, true, true, {} }, // 890
6598 { 11430 /* "ICV_PPI_PRIORITYR12_EL1" */, 0xC67C, true, true, {} }, // 891
6599 { 11454 /* "ICC_PPI_PRIORITYR13_EL1" */, 0xC67D, true, true, {} }, // 892
6600 { 11478 /* "ICV_PPI_PRIORITYR13_EL1" */, 0xC67D, true, true, {} }, // 893
6601 { 11502 /* "ICC_PPI_PRIORITYR14_EL1" */, 0xC67E, true, true, {} }, // 894
6602 { 11526 /* "ICV_PPI_PRIORITYR14_EL1" */, 0xC67E, true, true, {} }, // 895
6603 { 11550 /* "ICC_PPI_PRIORITYR15_EL1" */, 0xC67F, true, true, {} }, // 896
6604 { 11574 /* "ICV_PPI_PRIORITYR15_EL1" */, 0xC67F, true, true, {} }, // 897
6605 { 11598 /* "TPIDR3_EL1" */, 0xC680, true, true, {} }, // 898
6606 { 11609 /* "CONTEXTIDR_EL1" */, 0xC681, true, true, {} }, // 899
6607 { 11624 /* "RCWSMASK_EL1" */, 0xC683, true, true, {AArch64::FeatureTHE} }, // 900
6608 { 11637 /* "TPIDR_EL1" */, 0xC684, true, true, {} }, // 901
6609 { 11647 /* "ACCDATA_EL1" */, 0xC685, true, true, {AArch64::FeatureLS64} }, // 902
6610 { 11659 /* "RCWMASK_EL1" */, 0xC686, true, true, {AArch64::FeatureTHE} }, // 903
6611 { 11671 /* "SCXTNUM_EL1" */, 0xC687, true, true, {AArch64::FeatureSpecRestrict} }, // 904
6612 { 11683 /* "CNTKCTL_EL1" */, 0xC708, true, true, {} }, // 905
6613 { 11695 /* "CCSIDR_EL1" */, 0xC800, true, false, {} }, // 906
6614 { 11706 /* "CLIDR_EL1" */, 0xC801, true, false, {} }, // 907
6615 { 11716 /* "CCSIDR2_EL1" */, 0xC802, true, false, {AArch64::FeatureCCIDX} }, // 908
6616 { 11728 /* "GMID_EL1" */, 0xC804, true, false, {AArch64::FeatureMTE} }, // 909
6617 { 11737 /* "SMIDR_EL1" */, 0xC806, true, false, {AArch64::FeatureSME} }, // 910
6618 { 11747 /* "AIDR_EL1" */, 0xC807, true, false, {} }, // 911
6619 { 11756 /* "ICC_APR_EL1" */, 0xCE00, true, true, {} }, // 912
6620 { 11768 /* "ICV_APR_EL1" */, 0xCE00, true, true, {} }, // 913
6621 { 11780 /* "ICC_CR0_EL1" */, 0xCE01, true, true, {} }, // 914
6622 { 11792 /* "ICV_CR0_EL1" */, 0xCE01, true, true, {} }, // 915
6623 { 11804 /* "ICC_PCR_EL1" */, 0xCE02, true, true, {} }, // 916
6624 { 11816 /* "ICV_PCR_EL1" */, 0xCE02, true, true, {} }, // 917
6625 { 11828 /* "ICC_HAPR_EL1" */, 0xCE03, true, false, {} }, // 918
6626 { 11841 /* "ICV_HAPR_EL1" */, 0xCE03, true, true, {} }, // 919
6627 { 11854 /* "CSSELR_EL1" */, 0xD000, true, true, {} }, // 920
6628 { 11865 /* "CTR_EL0" */, 0xD801, true, false, {} }, // 921
6629 { 11873 /* "DCZID_EL0" */, 0xD807, true, false, {} }, // 922
6630 { 11883 /* "TPMIN0_EL0" */, 0xD914, true, true, {} }, // 923
6631 { 11894 /* "TPMAX0_EL0" */, 0xD915, true, true, {} }, // 924
6632 { 11905 /* "TPMIN1_EL0" */, 0xD916, true, true, {} }, // 925
6633 { 11916 /* "TPMAX1_EL0" */, 0xD917, true, true, {} }, // 926
6634 { 11927 /* "RNDR" */, 0xD920, true, false, {AArch64::FeatureRandGen} }, // 927
6635 { 11932 /* "RNDRRS" */, 0xD921, true, false, {AArch64::FeatureRandGen} }, // 928
6636 { 11939 /* "GCSPR_EL0" */, 0xD929, true, true, {} }, // 929
6637 { 11949 /* "TINDEX_EL0" */, 0xDA03, true, true, {} }, // 930
6638 { 11960 /* "NZCV" */, 0xDA10, true, true, {} }, // 931
6639 { 11965 /* "DAIF" */, 0xDA11, true, true, {} }, // 932
6640 { 11970 /* "SVCR" */, 0xDA12, true, true, {AArch64::FeatureSME} }, // 933
6641 { 11975 /* "DIT" */, 0xDA15, true, true, {AArch64::FeatureDIT} }, // 934
6642 { 11979 /* "SSBS" */, 0xDA16, true, true, {AArch64::FeatureSSBS} }, // 935
6643 { 11984 /* "TCO" */, 0xDA17, true, true, {AArch64::FeatureMTE} }, // 936
6644 { 11988 /* "FPCR" */, 0xDA20, true, true, {AArch64::FeatureFPARMv8} }, // 937
6645 { 11993 /* "FPSR" */, 0xDA21, true, true, {AArch64::FeatureFPARMv8} }, // 938
6646 { 11998 /* "FPMR" */, 0xDA22, true, true, {} }, // 939
6647 { 12003 /* "DSPSR_EL0" */, 0xDA28, true, true, {} }, // 940
6648 { 12013 /* "DLR_EL0" */, 0xDA29, true, true, {} }, // 941
6649 { 12021 /* "DPOCR_EL0" */, 0xDA2A, true, true, {} }, // 942
6650 { 12031 /* "PMICNTR_EL0" */, 0xDCA0, true, true, {} }, // 943
6651 { 12043 /* "PMICFILTR_EL0" */, 0xDCB0, true, true, {} }, // 944
6652 { 12057 /* "PMCR_EL0" */, 0xDCE0, true, true, {} }, // 945
6653 { 12066 /* "PMCNTENSET_EL0" */, 0xDCE1, true, true, {} }, // 946
6654 { 12081 /* "PMCNTENCLR_EL0" */, 0xDCE2, true, true, {} }, // 947
6655 { 12096 /* "PMOVSCLR_EL0" */, 0xDCE3, true, true, {} }, // 948
6656 { 12109 /* "PMSWINC_EL0" */, 0xDCE4, false, true, {} }, // 949
6657 { 12121 /* "PMSELR_EL0" */, 0xDCE5, true, true, {} }, // 950
6658 { 12132 /* "PMCEID0_EL0" */, 0xDCE6, true, false, {} }, // 951
6659 { 12144 /* "PMCEID1_EL0" */, 0xDCE7, true, false, {} }, // 952
6660 { 12156 /* "PMCCNTR_EL0" */, 0xDCE8, true, true, {} }, // 953
6661 { 12168 /* "PMXEVTYPER_EL0" */, 0xDCE9, true, true, {} }, // 954
6662 { 12183 /* "PMXEVCNTR_EL0" */, 0xDCEA, true, true, {} }, // 955
6663 { 12197 /* "PMZR_EL0" */, 0xDCEC, false, true, {} }, // 956
6664 { 12206 /* "PMUSERENR_EL0" */, 0xDCF0, true, true, {} }, // 957
6665 { 12220 /* "PMOVSSET_EL0" */, 0xDCF3, true, true, {} }, // 958
6666 { 12233 /* "POR_EL0" */, 0xDD14, true, true, {} }, // 959
6667 { 12241 /* "TPIDR3_EL0" */, 0xDE80, true, true, {} }, // 960
6668 { 12252 /* "TPIDR_EL0" */, 0xDE82, true, true, {} }, // 961
6669 { 12262 /* "TPIDRRO_EL0" */, 0xDE83, true, true, {} }, // 962
6670 { 12274 /* "TPIDR2_EL0" */, 0xDE85, true, true, {AArch64::FeatureSME} }, // 963
6671 { 12285 /* "SCXTNUM_EL0" */, 0xDE87, true, true, {AArch64::FeatureSpecRestrict} }, // 964
6672 { 12297 /* "AMCR_EL0" */, 0xDE90, true, true, {AArch64::FeatureAM} }, // 965
6673 { 12306 /* "AMCFGR_EL0" */, 0xDE91, true, false, {AArch64::FeatureAM} }, // 966
6674 { 12317 /* "AMCGCR_EL0" */, 0xDE92, true, false, {AArch64::FeatureAM} }, // 967
6675 { 12328 /* "AMUSERENR_EL0" */, 0xDE93, true, true, {AArch64::FeatureAM} }, // 968
6676 { 12342 /* "AMCNTENCLR0_EL0" */, 0xDE94, true, true, {AArch64::FeatureAM} }, // 969
6677 { 12358 /* "AMCNTENSET0_EL0" */, 0xDE95, true, true, {AArch64::FeatureAM} }, // 970
6678 { 12374 /* "AMCG1IDR_EL0" */, 0xDE96, true, false, {AArch64::FeatureAMVS} }, // 971
6679 { 12387 /* "AMCNTENCLR1_EL0" */, 0xDE98, true, true, {AArch64::FeatureAM} }, // 972
6680 { 12403 /* "AMCNTENSET1_EL0" */, 0xDE99, true, true, {AArch64::FeatureAM} }, // 973
6681 { 12419 /* "AMEVCNTR00_EL0" */, 0xDEA0, true, true, {AArch64::FeatureAM} }, // 974
6682 { 12434 /* "AMEVCNTR01_EL0" */, 0xDEA1, true, true, {AArch64::FeatureAM} }, // 975
6683 { 12449 /* "AMEVCNTR02_EL0" */, 0xDEA2, true, true, {AArch64::FeatureAM} }, // 976
6684 { 12464 /* "AMEVCNTR03_EL0" */, 0xDEA3, true, true, {AArch64::FeatureAM} }, // 977
6685 { 12479 /* "AMEVTYPER00_EL0" */, 0xDEB0, true, false, {AArch64::FeatureAM} }, // 978
6686 { 12495 /* "AMEVTYPER01_EL0" */, 0xDEB1, true, false, {AArch64::FeatureAM} }, // 979
6687 { 12511 /* "AMEVTYPER02_EL0" */, 0xDEB2, true, false, {AArch64::FeatureAM} }, // 980
6688 { 12527 /* "AMEVTYPER03_EL0" */, 0xDEB3, true, false, {AArch64::FeatureAM} }, // 981
6689 { 12543 /* "AMEVCNTR10_EL0" */, 0xDEE0, true, true, {AArch64::FeatureAM} }, // 982
6690 { 12558 /* "AMEVCNTR11_EL0" */, 0xDEE1, true, true, {AArch64::FeatureAM} }, // 983
6691 { 12573 /* "AMEVCNTR12_EL0" */, 0xDEE2, true, true, {AArch64::FeatureAM} }, // 984
6692 { 12588 /* "AMEVCNTR13_EL0" */, 0xDEE3, true, true, {AArch64::FeatureAM} }, // 985
6693 { 12603 /* "AMEVCNTR14_EL0" */, 0xDEE4, true, true, {AArch64::FeatureAM} }, // 986
6694 { 12618 /* "AMEVCNTR15_EL0" */, 0xDEE5, true, true, {AArch64::FeatureAM} }, // 987
6695 { 12633 /* "AMEVCNTR16_EL0" */, 0xDEE6, true, true, {AArch64::FeatureAM} }, // 988
6696 { 12648 /* "AMEVCNTR17_EL0" */, 0xDEE7, true, true, {AArch64::FeatureAM} }, // 989
6697 { 12663 /* "AMEVCNTR18_EL0" */, 0xDEE8, true, true, {AArch64::FeatureAM} }, // 990
6698 { 12678 /* "AMEVCNTR19_EL0" */, 0xDEE9, true, true, {AArch64::FeatureAM} }, // 991
6699 { 12693 /* "AMEVCNTR110_EL0" */, 0xDEEA, true, true, {AArch64::FeatureAM} }, // 992
6700 { 12709 /* "AMEVCNTR111_EL0" */, 0xDEEB, true, true, {AArch64::FeatureAM} }, // 993
6701 { 12725 /* "AMEVCNTR112_EL0" */, 0xDEEC, true, true, {AArch64::FeatureAM} }, // 994
6702 { 12741 /* "AMEVCNTR113_EL0" */, 0xDEED, true, true, {AArch64::FeatureAM} }, // 995
6703 { 12757 /* "AMEVCNTR114_EL0" */, 0xDEEE, true, true, {AArch64::FeatureAM} }, // 996
6704 { 12773 /* "AMEVCNTR115_EL0" */, 0xDEEF, true, true, {AArch64::FeatureAM} }, // 997
6705 { 12789 /* "AMEVTYPER10_EL0" */, 0xDEF0, true, true, {AArch64::FeatureAM} }, // 998
6706 { 12805 /* "AMEVTYPER11_EL0" */, 0xDEF1, true, true, {AArch64::FeatureAM} }, // 999
6707 { 12821 /* "AMEVTYPER12_EL0" */, 0xDEF2, true, true, {AArch64::FeatureAM} }, // 1000
6708 { 12837 /* "AMEVTYPER13_EL0" */, 0xDEF3, true, true, {AArch64::FeatureAM} }, // 1001
6709 { 12853 /* "AMEVTYPER14_EL0" */, 0xDEF4, true, true, {AArch64::FeatureAM} }, // 1002
6710 { 12869 /* "AMEVTYPER15_EL0" */, 0xDEF5, true, true, {AArch64::FeatureAM} }, // 1003
6711 { 12885 /* "AMEVTYPER16_EL0" */, 0xDEF6, true, true, {AArch64::FeatureAM} }, // 1004
6712 { 12901 /* "AMEVTYPER17_EL0" */, 0xDEF7, true, true, {AArch64::FeatureAM} }, // 1005
6713 { 12917 /* "AMEVTYPER18_EL0" */, 0xDEF8, true, true, {AArch64::FeatureAM} }, // 1006
6714 { 12933 /* "AMEVTYPER19_EL0" */, 0xDEF9, true, true, {AArch64::FeatureAM} }, // 1007
6715 { 12949 /* "AMEVTYPER110_EL0" */, 0xDEFA, true, true, {AArch64::FeatureAM} }, // 1008
6716 { 12966 /* "AMEVTYPER111_EL0" */, 0xDEFB, true, true, {AArch64::FeatureAM} }, // 1009
6717 { 12983 /* "AMEVTYPER112_EL0" */, 0xDEFC, true, true, {AArch64::FeatureAM} }, // 1010
6718 { 13000 /* "AMEVTYPER113_EL0" */, 0xDEFD, true, true, {AArch64::FeatureAM} }, // 1011
6719 { 13017 /* "AMEVTYPER114_EL0" */, 0xDEFE, true, true, {AArch64::FeatureAM} }, // 1012
6720 { 13034 /* "AMEVTYPER115_EL0" */, 0xDEFF, true, true, {AArch64::FeatureAM} }, // 1013
6721 { 13051 /* "CNTFRQ_EL0" */, 0xDF00, true, true, {} }, // 1014
6722 { 13062 /* "CNTPCT_EL0" */, 0xDF01, true, false, {} }, // 1015
6723 { 13073 /* "CNTVCT_EL0" */, 0xDF02, true, false, {} }, // 1016
6724 { 13084 /* "CNTPCTSS_EL0" */, 0xDF05, true, false, {AArch64::FeatureEnhancedCounterVirtualization} }, // 1017
6725 { 13097 /* "CNTVCTSS_EL0" */, 0xDF06, true, false, {AArch64::FeatureEnhancedCounterVirtualization} }, // 1018
6726 { 13110 /* "CNTP_TVAL_EL0" */, 0xDF10, true, true, {} }, // 1019
6727 { 13124 /* "CNTP_CTL_EL0" */, 0xDF11, true, true, {} }, // 1020
6728 { 13137 /* "CNTP_CVAL_EL0" */, 0xDF12, true, true, {} }, // 1021
6729 { 13151 /* "CNTV_TVAL_EL0" */, 0xDF18, true, true, {} }, // 1022
6730 { 13165 /* "CNTV_CTL_EL0" */, 0xDF19, true, true, {} }, // 1023
6731 { 13178 /* "CNTV_CVAL_EL0" */, 0xDF1A, true, true, {} }, // 1024
6732 { 13192 /* "PMEVCNTR0_EL0" */, 0xDF40, true, true, {} }, // 1025
6733 { 13206 /* "PMEVCNTR1_EL0" */, 0xDF41, true, true, {} }, // 1026
6734 { 13220 /* "PMEVCNTR2_EL0" */, 0xDF42, true, true, {} }, // 1027
6735 { 13234 /* "PMEVCNTR3_EL0" */, 0xDF43, true, true, {} }, // 1028
6736 { 13248 /* "PMEVCNTR4_EL0" */, 0xDF44, true, true, {} }, // 1029
6737 { 13262 /* "PMEVCNTR5_EL0" */, 0xDF45, true, true, {} }, // 1030
6738 { 13276 /* "PMEVCNTR6_EL0" */, 0xDF46, true, true, {} }, // 1031
6739 { 13290 /* "PMEVCNTR7_EL0" */, 0xDF47, true, true, {} }, // 1032
6740 { 13304 /* "PMEVCNTR8_EL0" */, 0xDF48, true, true, {} }, // 1033
6741 { 13318 /* "PMEVCNTR9_EL0" */, 0xDF49, true, true, {} }, // 1034
6742 { 13332 /* "PMEVCNTR10_EL0" */, 0xDF4A, true, true, {} }, // 1035
6743 { 13347 /* "PMEVCNTR11_EL0" */, 0xDF4B, true, true, {} }, // 1036
6744 { 13362 /* "PMEVCNTR12_EL0" */, 0xDF4C, true, true, {} }, // 1037
6745 { 13377 /* "PMEVCNTR13_EL0" */, 0xDF4D, true, true, {} }, // 1038
6746 { 13392 /* "PMEVCNTR14_EL0" */, 0xDF4E, true, true, {} }, // 1039
6747 { 13407 /* "PMEVCNTR15_EL0" */, 0xDF4F, true, true, {} }, // 1040
6748 { 13422 /* "PMEVCNTR16_EL0" */, 0xDF50, true, true, {} }, // 1041
6749 { 13437 /* "PMEVCNTR17_EL0" */, 0xDF51, true, true, {} }, // 1042
6750 { 13452 /* "PMEVCNTR18_EL0" */, 0xDF52, true, true, {} }, // 1043
6751 { 13467 /* "PMEVCNTR19_EL0" */, 0xDF53, true, true, {} }, // 1044
6752 { 13482 /* "PMEVCNTR20_EL0" */, 0xDF54, true, true, {} }, // 1045
6753 { 13497 /* "PMEVCNTR21_EL0" */, 0xDF55, true, true, {} }, // 1046
6754 { 13512 /* "PMEVCNTR22_EL0" */, 0xDF56, true, true, {} }, // 1047
6755 { 13527 /* "PMEVCNTR23_EL0" */, 0xDF57, true, true, {} }, // 1048
6756 { 13542 /* "PMEVCNTR24_EL0" */, 0xDF58, true, true, {} }, // 1049
6757 { 13557 /* "PMEVCNTR25_EL0" */, 0xDF59, true, true, {} }, // 1050
6758 { 13572 /* "PMEVCNTR26_EL0" */, 0xDF5A, true, true, {} }, // 1051
6759 { 13587 /* "PMEVCNTR27_EL0" */, 0xDF5B, true, true, {} }, // 1052
6760 { 13602 /* "PMEVCNTR28_EL0" */, 0xDF5C, true, true, {} }, // 1053
6761 { 13617 /* "PMEVCNTR29_EL0" */, 0xDF5D, true, true, {} }, // 1054
6762 { 13632 /* "PMEVCNTR30_EL0" */, 0xDF5E, true, true, {} }, // 1055
6763 { 13647 /* "PMEVTYPER0_EL0" */, 0xDF60, true, true, {} }, // 1056
6764 { 13662 /* "PMEVTYPER1_EL0" */, 0xDF61, true, true, {} }, // 1057
6765 { 13677 /* "PMEVTYPER2_EL0" */, 0xDF62, true, true, {} }, // 1058
6766 { 13692 /* "PMEVTYPER3_EL0" */, 0xDF63, true, true, {} }, // 1059
6767 { 13707 /* "PMEVTYPER4_EL0" */, 0xDF64, true, true, {} }, // 1060
6768 { 13722 /* "PMEVTYPER5_EL0" */, 0xDF65, true, true, {} }, // 1061
6769 { 13737 /* "PMEVTYPER6_EL0" */, 0xDF66, true, true, {} }, // 1062
6770 { 13752 /* "PMEVTYPER7_EL0" */, 0xDF67, true, true, {} }, // 1063
6771 { 13767 /* "PMEVTYPER8_EL0" */, 0xDF68, true, true, {} }, // 1064
6772 { 13782 /* "PMEVTYPER9_EL0" */, 0xDF69, true, true, {} }, // 1065
6773 { 13797 /* "PMEVTYPER10_EL0" */, 0xDF6A, true, true, {} }, // 1066
6774 { 13813 /* "PMEVTYPER11_EL0" */, 0xDF6B, true, true, {} }, // 1067
6775 { 13829 /* "PMEVTYPER12_EL0" */, 0xDF6C, true, true, {} }, // 1068
6776 { 13845 /* "PMEVTYPER13_EL0" */, 0xDF6D, true, true, {} }, // 1069
6777 { 13861 /* "PMEVTYPER14_EL0" */, 0xDF6E, true, true, {} }, // 1070
6778 { 13877 /* "PMEVTYPER15_EL0" */, 0xDF6F, true, true, {} }, // 1071
6779 { 13893 /* "PMEVTYPER16_EL0" */, 0xDF70, true, true, {} }, // 1072
6780 { 13909 /* "PMEVTYPER17_EL0" */, 0xDF71, true, true, {} }, // 1073
6781 { 13925 /* "PMEVTYPER18_EL0" */, 0xDF72, true, true, {} }, // 1074
6782 { 13941 /* "PMEVTYPER19_EL0" */, 0xDF73, true, true, {} }, // 1075
6783 { 13957 /* "PMEVTYPER20_EL0" */, 0xDF74, true, true, {} }, // 1076
6784 { 13973 /* "PMEVTYPER21_EL0" */, 0xDF75, true, true, {} }, // 1077
6785 { 13989 /* "PMEVTYPER22_EL0" */, 0xDF76, true, true, {} }, // 1078
6786 { 14005 /* "PMEVTYPER23_EL0" */, 0xDF77, true, true, {} }, // 1079
6787 { 14021 /* "PMEVTYPER24_EL0" */, 0xDF78, true, true, {} }, // 1080
6788 { 14037 /* "PMEVTYPER25_EL0" */, 0xDF79, true, true, {} }, // 1081
6789 { 14053 /* "PMEVTYPER26_EL0" */, 0xDF7A, true, true, {} }, // 1082
6790 { 14069 /* "PMEVTYPER27_EL0" */, 0xDF7B, true, true, {} }, // 1083
6791 { 14085 /* "PMEVTYPER28_EL0" */, 0xDF7C, true, true, {} }, // 1084
6792 { 14101 /* "PMEVTYPER29_EL0" */, 0xDF7D, true, true, {} }, // 1085
6793 { 14117 /* "PMEVTYPER30_EL0" */, 0xDF7E, true, true, {} }, // 1086
6794 { 14133 /* "PMCCFILTR_EL0" */, 0xDF7F, true, true, {} }, // 1087
6795 { 14147 /* "VPIDR_EL2" */, 0xE000, true, true, {} }, // 1088
6796 { 14157 /* "MPUIR_EL2" */, 0xE004, true, true, {AArch64::HasV8_0rOps} }, // 1089
6797 { 14167 /* "VMPIDR_EL2" */, 0xE005, true, true, {} }, // 1090
6798 { 14178 /* "SCTLR_EL2" */, 0xE080, true, true, {} }, // 1091
6799 { 14188 /* "ACTLR_EL2" */, 0xE081, true, true, {} }, // 1092
6800 { 14198 /* "SCTLR2_EL2" */, 0xE083, true, true, {} }, // 1093
6801 { 14209 /* "HCR_EL2" */, 0xE088, true, true, {} }, // 1094
6802 { 14217 /* "MDCR_EL2" */, 0xE089, true, true, {} }, // 1095
6803 { 14226 /* "CPTR_EL2" */, 0xE08A, true, true, {} }, // 1096
6804 { 14235 /* "HSTR_EL2" */, 0xE08B, true, true, {} }, // 1097
6805 { 14244 /* "HFGRTR_EL2" */, 0xE08C, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1098
6806 { 14255 /* "HFGWTR_EL2" */, 0xE08D, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1099
6807 { 14266 /* "HFGITR_EL2" */, 0xE08E, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1100
6808 { 14277 /* "HACR_EL2" */, 0xE08F, true, true, {} }, // 1101
6809 { 14286 /* "ZCR_EL2" */, 0xE090, true, true, {AArch64::FeatureSVE} }, // 1102
6810 { 14294 /* "TRFCR_EL2" */, 0xE091, true, true, {AArch64::FeatureTRACEV8_4} }, // 1103
6811 { 14304 /* "HCRX_EL2" */, 0xE092, true, true, {AArch64::FeatureHCX} }, // 1104
6812 { 14313 /* "TRCITECR_EL2" */, 0xE093, true, true, {AArch64::FeatureITE} }, // 1105
6813 { 14326 /* "SMPRIMAP_EL2" */, 0xE095, true, true, {AArch64::FeatureSME} }, // 1106
6814 { 14339 /* "SMCR_EL2" */, 0xE096, true, true, {AArch64::FeatureSME} }, // 1107
6815 { 14348 /* "SDER32_EL2" */, 0xE099, true, true, {AArch64::FeatureSEL2} }, // 1108
6816 { 14359 /* "SCTLRMASK_EL2" */, 0xE0A0, true, true, {} }, // 1109
6817 { 14373 /* "ACTLRMASK_EL2" */, 0xE0A1, true, true, {} }, // 1110
6818 { 14387 /* "CPTRMASK_EL2" */, 0xE0A2, true, true, {} }, // 1111
6819 { 14400 /* "SCTLR2MASK_EL2" */, 0xE0A3, true, true, {} }, // 1112
6820 { 14415 /* "NVHCR_EL2" */, 0xE0A8, true, true, {} }, // 1113
6821 { 14425 /* "NVHCRX_EL2" */, 0xE0A9, true, true, {} }, // 1114
6822 { 14436 /* "NVHCRMASK_EL2" */, 0xE0AC, true, true, {} }, // 1115
6823 { 14450 /* "NVHCRXMASK_EL2" */, 0xE0AD, true, true, {} }, // 1116
6824 { 14465 /* "HCRMASK_EL2" */, 0xE0AE, true, true, {} }, // 1117
6825 { 14477 /* "HCRXMASK_EL2" */, 0xE0AF, true, true, {} }, // 1118
6826 { 14490 /* "TTBR0_EL2" */, 0xE100, true, true, {AArch64::FeatureEL2VMSA} }, // 1119
6827 { 14500 /* "VSCTLR_EL2" */, 0xE100, true, true, {AArch64::HasV8_0rOps} }, // 1120
6828 { 14511 /* "TTBR1_EL2" */, 0xE101, true, true, {AArch64::FeatureVH} }, // 1121
6829 { 14521 /* "TCR_EL2" */, 0xE102, true, true, {} }, // 1122
6830 { 14529 /* "TCR2_EL2" */, 0xE103, true, true, {} }, // 1123
6831 { 14538 /* "IRTBRU_EL2" */, 0xE104, true, true, {} }, // 1124
6832 { 14549 /* "IRTBRP_EL2" */, 0xE105, true, true, {} }, // 1125
6833 { 14560 /* "DPOTBR0_EL2" */, 0xE106, true, true, {} }, // 1126
6834 { 14572 /* "DPOTBR1_EL2" */, 0xE107, true, true, {} }, // 1127
6835 { 14584 /* "VTTBR_EL2" */, 0xE108, true, true, {AArch64::FeatureEL2VMSA} }, // 1128
6836 { 14594 /* "VTCR_EL2" */, 0xE10A, true, true, {} }, // 1129
6837 { 14603 /* "LDSTT_EL2" */, 0xE10F, true, true, {} }, // 1130
6838 { 14613 /* "VNCR_EL2" */, 0xE110, true, true, {AArch64::FeatureNV} }, // 1131
6839 { 14622 /* "VNCCR_EL2" */, 0xE111, true, true, {} }, // 1132
6840 { 14632 /* "TPMIN0_EL2" */, 0xE114, true, true, {} }, // 1133
6841 { 14643 /* "TPMAX0_EL2" */, 0xE115, true, true, {} }, // 1134
6842 { 14654 /* "TPMIN1_EL2" */, 0xE116, true, true, {} }, // 1135
6843 { 14665 /* "TPMAX1_EL2" */, 0xE117, true, true, {} }, // 1136
6844 { 14676 /* "HDBSSBR_EL2" */, 0xE11A, true, true, {} }, // 1137
6845 { 14688 /* "HDBSSPROD_EL2" */, 0xE11B, true, true, {} }, // 1138
6846 { 14702 /* "HACDBSBR_EL2" */, 0xE11C, true, true, {} }, // 1139
6847 { 14715 /* "HACDBSCONS_EL2" */, 0xE11D, true, true, {} }, // 1140
6848 { 14730 /* "GCSCR_EL2" */, 0xE128, true, true, {} }, // 1141
6849 { 14740 /* "GCSPR_EL2" */, 0xE129, true, true, {} }, // 1142
6850 { 14750 /* "VSTTBR_EL2" */, 0xE130, true, true, {AArch64::HasV8_0aOps} }, // 1143
6851 { 14761 /* "VSTCR_EL2" */, 0xE132, true, true, {AArch64::FeatureSEL2} }, // 1144
6852 { 14771 /* "TCRMASK_EL2" */, 0xE13A, true, true, {} }, // 1145
6853 { 14783 /* "TCR2MASK_EL2" */, 0xE13B, true, true, {} }, // 1146
6854 { 14796 /* "VTLBID0_EL2" */, 0xE140, true, true, {} }, // 1147
6855 { 14808 /* "VTLBID1_EL2" */, 0xE141, true, true, {} }, // 1148
6856 { 14820 /* "VTLBID2_EL2" */, 0xE142, true, true, {} }, // 1149
6857 { 14832 /* "VTLBID3_EL2" */, 0xE143, true, true, {} }, // 1150
6858 { 14844 /* "VTLBIDOS0_EL2" */, 0xE148, true, true, {} }, // 1151
6859 { 14858 /* "VTLBIDOS1_EL2" */, 0xE149, true, true, {} }, // 1152
6860 { 14872 /* "VTLBIDOS2_EL2" */, 0xE14A, true, true, {} }, // 1153
6861 { 14886 /* "VTLBIDOS3_EL2" */, 0xE14B, true, true, {} }, // 1154
6862 { 14900 /* "DACR32_EL2" */, 0xE180, true, true, {} }, // 1155
6863 { 14911 /* "HDFGRTR2_EL2" */, 0xE188, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1156
6864 { 14924 /* "HDFGWTR2_EL2" */, 0xE189, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1157
6865 { 14937 /* "HFGRTR2_EL2" */, 0xE18A, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1158
6866 { 14949 /* "HFGWTR2_EL2" */, 0xE18B, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1159
6867 { 14961 /* "HDFGRTR_EL2" */, 0xE18C, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1160
6868 { 14973 /* "HDFGWTR_EL2" */, 0xE18D, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1161
6869 { 14985 /* "HAFGRTR_EL2" */, 0xE18E, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1162
6870 { 14997 /* "HFGITR2_EL2" */, 0xE18F, true, true, {AArch64::FeatureFineGrainedTraps} }, // 1163
6871 { 15009 /* "FGDTP0_EL2" */, 0xE190, true, true, {} }, // 1164
6872 { 15020 /* "FGDTP1_EL2" */, 0xE191, true, true, {} }, // 1165
6873 { 15031 /* "FGDTP2_EL2" */, 0xE192, true, true, {} }, // 1166
6874 { 15042 /* "FGDTP3_EL2" */, 0xE193, true, true, {} }, // 1167
6875 { 15053 /* "FGDTP4_EL2" */, 0xE194, true, true, {} }, // 1168
6876 { 15064 /* "FGDTP5_EL2" */, 0xE195, true, true, {} }, // 1169
6877 { 15075 /* "FGDTP6_EL2" */, 0xE196, true, true, {} }, // 1170
6878 { 15086 /* "FGDTP7_EL2" */, 0xE197, true, true, {} }, // 1171
6879 { 15097 /* "FGDTP8_EL2" */, 0xE198, true, true, {} }, // 1172
6880 { 15108 /* "FGDTP9_EL2" */, 0xE199, true, true, {} }, // 1173
6881 { 15119 /* "FGDTP10_EL2" */, 0xE19A, true, true, {} }, // 1174
6882 { 15131 /* "FGDTP11_EL2" */, 0xE19B, true, true, {} }, // 1175
6883 { 15143 /* "FGDTP12_EL2" */, 0xE19C, true, true, {} }, // 1176
6884 { 15155 /* "FGDTP13_EL2" */, 0xE19D, true, true, {} }, // 1177
6885 { 15167 /* "FGDTP14_EL2" */, 0xE19E, true, true, {} }, // 1178
6886 { 15179 /* "FGDTP15_EL2" */, 0xE19F, true, true, {} }, // 1179
6887 { 15191 /* "FGDTU0_EL2" */, 0xE1A0, true, true, {} }, // 1180
6888 { 15202 /* "FGDTU1_EL2" */, 0xE1A1, true, true, {} }, // 1181
6889 { 15213 /* "FGDTU2_EL2" */, 0xE1A2, true, true, {} }, // 1182
6890 { 15224 /* "FGDTU3_EL2" */, 0xE1A3, true, true, {} }, // 1183
6891 { 15235 /* "FGDTU4_EL2" */, 0xE1A4, true, true, {} }, // 1184
6892 { 15246 /* "FGDTU5_EL2" */, 0xE1A5, true, true, {} }, // 1185
6893 { 15257 /* "FGDTU6_EL2" */, 0xE1A6, true, true, {} }, // 1186
6894 { 15268 /* "FGDTU7_EL2" */, 0xE1A7, true, true, {} }, // 1187
6895 { 15279 /* "FGDTU8_EL2" */, 0xE1A8, true, true, {} }, // 1188
6896 { 15290 /* "FGDTU9_EL2" */, 0xE1A9, true, true, {} }, // 1189
6897 { 15301 /* "FGDTU10_EL2" */, 0xE1AA, true, true, {} }, // 1190
6898 { 15313 /* "FGDTU11_EL2" */, 0xE1AB, true, true, {} }, // 1191
6899 { 15325 /* "FGDTU12_EL2" */, 0xE1AC, true, true, {} }, // 1192
6900 { 15337 /* "FGDTU13_EL2" */, 0xE1AD, true, true, {} }, // 1193
6901 { 15349 /* "FGDTU14_EL2" */, 0xE1AE, true, true, {} }, // 1194
6902 { 15361 /* "FGDTU15_EL2" */, 0xE1AF, true, true, {} }, // 1195
6903 { 15373 /* "AFGDTP0_EL2" */, 0xE1B0, true, true, {} }, // 1196
6904 { 15385 /* "AFGDTP1_EL2" */, 0xE1B1, true, true, {} }, // 1197
6905 { 15397 /* "AFGDTP2_EL2" */, 0xE1B2, true, true, {} }, // 1198
6906 { 15409 /* "AFGDTP3_EL2" */, 0xE1B3, true, true, {} }, // 1199
6907 { 15421 /* "AFGDTP4_EL2" */, 0xE1B4, true, true, {} }, // 1200
6908 { 15433 /* "AFGDTP5_EL2" */, 0xE1B5, true, true, {} }, // 1201
6909 { 15445 /* "AFGDTP6_EL2" */, 0xE1B6, true, true, {} }, // 1202
6910 { 15457 /* "AFGDTP7_EL2" */, 0xE1B7, true, true, {} }, // 1203
6911 { 15469 /* "AFGDTP8_EL2" */, 0xE1B8, true, true, {} }, // 1204
6912 { 15481 /* "AFGDTP9_EL2" */, 0xE1B9, true, true, {} }, // 1205
6913 { 15493 /* "AFGDTP10_EL2" */, 0xE1BA, true, true, {} }, // 1206
6914 { 15506 /* "AFGDTP11_EL2" */, 0xE1BB, true, true, {} }, // 1207
6915 { 15519 /* "AFGDTP12_EL2" */, 0xE1BC, true, true, {} }, // 1208
6916 { 15532 /* "AFGDTP13_EL2" */, 0xE1BD, true, true, {} }, // 1209
6917 { 15545 /* "AFGDTP14_EL2" */, 0xE1BE, true, true, {} }, // 1210
6918 { 15558 /* "AFGDTP15_EL2" */, 0xE1BF, true, true, {} }, // 1211
6919 { 15571 /* "AFGDTU0_EL2" */, 0xE1C0, true, true, {} }, // 1212
6920 { 15583 /* "AFGDTU1_EL2" */, 0xE1C1, true, true, {} }, // 1213
6921 { 15595 /* "AFGDTU2_EL2" */, 0xE1C2, true, true, {} }, // 1214
6922 { 15607 /* "AFGDTU3_EL2" */, 0xE1C3, true, true, {} }, // 1215
6923 { 15619 /* "AFGDTU4_EL2" */, 0xE1C4, true, true, {} }, // 1216
6924 { 15631 /* "AFGDTU5_EL2" */, 0xE1C5, true, true, {} }, // 1217
6925 { 15643 /* "AFGDTU6_EL2" */, 0xE1C6, true, true, {} }, // 1218
6926 { 15655 /* "AFGDTU7_EL2" */, 0xE1C7, true, true, {} }, // 1219
6927 { 15667 /* "AFGDTU8_EL2" */, 0xE1C8, true, true, {} }, // 1220
6928 { 15679 /* "AFGDTU9_EL2" */, 0xE1C9, true, true, {} }, // 1221
6929 { 15691 /* "AFGDTU10_EL2" */, 0xE1CA, true, true, {} }, // 1222
6930 { 15704 /* "AFGDTU11_EL2" */, 0xE1CB, true, true, {} }, // 1223
6931 { 15717 /* "AFGDTU12_EL2" */, 0xE1CC, true, true, {} }, // 1224
6932 { 15730 /* "AFGDTU13_EL2" */, 0xE1CD, true, true, {} }, // 1225
6933 { 15743 /* "AFGDTU14_EL2" */, 0xE1CE, true, true, {} }, // 1226
6934 { 15756 /* "AFGDTU15_EL2" */, 0xE1CF, true, true, {} }, // 1227
6935 { 15769 /* "SPSR_EL2" */, 0xE200, true, true, {} }, // 1228
6936 { 15778 /* "ELR_EL2" */, 0xE201, true, true, {} }, // 1229
6937 { 15786 /* "STINDEX_EL2" */, 0xE202, true, true, {} }, // 1230
6938 { 15798 /* "TINDEX_EL2" */, 0xE203, true, true, {} }, // 1231
6939 { 15809 /* "SP_EL1" */, 0xE208, true, true, {} }, // 1232
6940 { 15816 /* "SPSR_irq" */, 0xE218, true, true, {} }, // 1233
6941 { 15825 /* "SPSR_abt" */, 0xE219, true, true, {} }, // 1234
6942 { 15834 /* "SPSR_und" */, 0xE21A, true, true, {} }, // 1235
6943 { 15843 /* "SPSR_fiq" */, 0xE21B, true, true, {} }, // 1236
6944 { 15852 /* "IFSR32_EL2" */, 0xE281, true, true, {} }, // 1237
6945 { 15863 /* "AFSR0_EL2" */, 0xE288, true, true, {} }, // 1238
6946 { 15873 /* "AFSR1_EL2" */, 0xE289, true, true, {} }, // 1239
6947 { 15883 /* "ESR_EL2" */, 0xE290, true, true, {} }, // 1240
6948 { 15891 /* "VSESR_EL2" */, 0xE293, true, true, {AArch64::FeatureRAS} }, // 1241
6949 { 15901 /* "FPEXC32_EL2" */, 0xE298, true, true, {} }, // 1242
6950 { 15913 /* "TFSR_EL2" */, 0xE2B0, true, true, {AArch64::FeatureMTE} }, // 1243
6951 { 15922 /* "FAR_EL2" */, 0xE300, true, true, {} }, // 1244
6952 { 15930 /* "HPFAR_EL2" */, 0xE304, true, true, {} }, // 1245
6953 { 15940 /* "PFAR_EL2" */, 0xE305, true, true, {} }, // 1246
6954 { 15949 /* "PRENR_EL2" */, 0xE309, true, true, {AArch64::HasV8_0rOps} }, // 1247
6955 { 15959 /* "PRSELR_EL2" */, 0xE311, true, true, {AArch64::HasV8_0rOps} }, // 1248
6956 { 15970 /* "PRBAR_EL2" */, 0xE340, true, true, {AArch64::HasV8_0rOps} }, // 1249
6957 { 15980 /* "PRLAR_EL2" */, 0xE341, true, true, {AArch64::HasV8_0rOps} }, // 1250
6958 { 15990 /* "PRBAR1_EL2" */, 0xE344, true, true, {AArch64::HasV8_0rOps} }, // 1251
6959 { 16001 /* "PRLAR1_EL2" */, 0xE345, true, true, {AArch64::HasV8_0rOps} }, // 1252
6960 { 16012 /* "PRBAR2_EL2" */, 0xE348, true, true, {AArch64::HasV8_0rOps} }, // 1253
6961 { 16023 /* "PRLAR2_EL2" */, 0xE349, true, true, {AArch64::HasV8_0rOps} }, // 1254
6962 { 16034 /* "PRBAR3_EL2" */, 0xE34C, true, true, {AArch64::HasV8_0rOps} }, // 1255
6963 { 16045 /* "PRLAR3_EL2" */, 0xE34D, true, true, {AArch64::HasV8_0rOps} }, // 1256
6964 { 16056 /* "PRBAR4_EL2" */, 0xE350, true, true, {AArch64::HasV8_0rOps} }, // 1257
6965 { 16067 /* "PRLAR4_EL2" */, 0xE351, true, true, {AArch64::HasV8_0rOps} }, // 1258
6966 { 16078 /* "PRBAR5_EL2" */, 0xE354, true, true, {AArch64::HasV8_0rOps} }, // 1259
6967 { 16089 /* "PRLAR5_EL2" */, 0xE355, true, true, {AArch64::HasV8_0rOps} }, // 1260
6968 { 16100 /* "PRBAR6_EL2" */, 0xE358, true, true, {AArch64::HasV8_0rOps} }, // 1261
6969 { 16111 /* "PRLAR6_EL2" */, 0xE359, true, true, {AArch64::HasV8_0rOps} }, // 1262
6970 { 16122 /* "PRBAR7_EL2" */, 0xE35C, true, true, {AArch64::HasV8_0rOps} }, // 1263
6971 { 16133 /* "PRLAR7_EL2" */, 0xE35D, true, true, {AArch64::HasV8_0rOps} }, // 1264
6972 { 16144 /* "PRBAR8_EL2" */, 0xE360, true, true, {AArch64::HasV8_0rOps} }, // 1265
6973 { 16155 /* "PRLAR8_EL2" */, 0xE361, true, true, {AArch64::HasV8_0rOps} }, // 1266
6974 { 16166 /* "PRBAR9_EL2" */, 0xE364, true, true, {AArch64::HasV8_0rOps} }, // 1267
6975 { 16177 /* "PRLAR9_EL2" */, 0xE365, true, true, {AArch64::HasV8_0rOps} }, // 1268
6976 { 16188 /* "PRBAR10_EL2" */, 0xE368, true, true, {AArch64::HasV8_0rOps} }, // 1269
6977 { 16200 /* "PRLAR10_EL2" */, 0xE369, true, true, {AArch64::HasV8_0rOps} }, // 1270
6978 { 16212 /* "PRBAR11_EL2" */, 0xE36C, true, true, {AArch64::HasV8_0rOps} }, // 1271
6979 { 16224 /* "PRLAR11_EL2" */, 0xE36D, true, true, {AArch64::HasV8_0rOps} }, // 1272
6980 { 16236 /* "PRBAR12_EL2" */, 0xE370, true, true, {AArch64::HasV8_0rOps} }, // 1273
6981 { 16248 /* "PRLAR12_EL2" */, 0xE371, true, true, {AArch64::HasV8_0rOps} }, // 1274
6982 { 16260 /* "PRBAR13_EL2" */, 0xE374, true, true, {AArch64::HasV8_0rOps} }, // 1275
6983 { 16272 /* "PRLAR13_EL2" */, 0xE375, true, true, {AArch64::HasV8_0rOps} }, // 1276
6984 { 16284 /* "PRBAR14_EL2" */, 0xE378, true, true, {AArch64::HasV8_0rOps} }, // 1277
6985 { 16296 /* "PRLAR14_EL2" */, 0xE379, true, true, {AArch64::HasV8_0rOps} }, // 1278
6986 { 16308 /* "PRBAR15_EL2" */, 0xE37C, true, true, {AArch64::HasV8_0rOps} }, // 1279
6987 { 16320 /* "PRLAR15_EL2" */, 0xE37D, true, true, {AArch64::HasV8_0rOps} }, // 1280
6988 { 16332 /* "PMSCR_EL2" */, 0xE4C8, true, true, {AArch64::FeatureSPE} }, // 1281
6989 { 16342 /* "PMBSR_EL2" */, 0xE4D3, true, true, {} }, // 1282
6990 { 16352 /* "TRBSR_EL2" */, 0xE4DB, true, true, {} }, // 1283
6991 { 16362 /* "MAIR2_EL2" */, 0xE509, true, true, {} }, // 1284
6992 { 16372 /* "MAIR_EL2" */, 0xE510, true, true, {} }, // 1285
6993 { 16381 /* "PIRE0_EL2" */, 0xE512, true, true, {} }, // 1286
6994 { 16391 /* "PIR_EL2" */, 0xE513, true, true, {} }, // 1287
6995 { 16399 /* "POR_EL2" */, 0xE514, true, true, {} }, // 1288
6996 { 16407 /* "S2PIR_EL2" */, 0xE515, true, true, {} }, // 1289
6997 { 16417 /* "TTTBRU_EL2" */, 0xE516, true, true, {} }, // 1290
6998 { 16428 /* "TTTBRP_EL2" */, 0xE517, true, true, {} }, // 1291
6999 { 16439 /* "AMAIR_EL2" */, 0xE518, true, true, {} }, // 1292
7000 { 16449 /* "AMAIR2_EL2" */, 0xE519, true, true, {} }, // 1293
7001 { 16460 /* "MPAMHCR_EL2" */, 0xE520, true, true, {} }, // 1294
7002 { 16472 /* "MPAMVPMV_EL2" */, 0xE521, true, true, {} }, // 1295
7003 { 16485 /* "MPAM2_EL2" */, 0xE528, true, true, {} }, // 1296
7004 { 16495 /* "MPAMCTL_EL2" */, 0xE52A, true, true, {} }, // 1297
7005 { 16507 /* "MPAMBW2_EL2" */, 0xE52C, true, true, {} }, // 1298
7006 { 16519 /* "MPAMBWCAP_EL2" */, 0xE52E, true, true, {} }, // 1299
7007 { 16533 /* "MPAMVPM0_EL2" */, 0xE530, true, true, {} }, // 1300
7008 { 16546 /* "MPAMVPM1_EL2" */, 0xE531, true, true, {} }, // 1301
7009 { 16559 /* "MPAMVPM2_EL2" */, 0xE532, true, true, {} }, // 1302
7010 { 16572 /* "MPAMVPM3_EL2" */, 0xE533, true, true, {} }, // 1303
7011 { 16585 /* "MPAMVPM4_EL2" */, 0xE534, true, true, {} }, // 1304
7012 { 16598 /* "MPAMVPM5_EL2" */, 0xE535, true, true, {} }, // 1305
7013 { 16611 /* "MPAMVPM6_EL2" */, 0xE536, true, true, {} }, // 1306
7014 { 16624 /* "MPAMVPM7_EL2" */, 0xE537, true, true, {} }, // 1307
7015 { 16637 /* "MECID_P0_EL2" */, 0xE540, true, true, {AArch64::FeatureMEC} }, // 1308
7016 { 16650 /* "MECID_A0_EL2" */, 0xE541, true, true, {AArch64::FeatureMEC} }, // 1309
7017 { 16663 /* "MECID_P1_EL2" */, 0xE542, true, true, {AArch64::FeatureMEC} }, // 1310
7018 { 16676 /* "MECID_A1_EL2" */, 0xE543, true, true, {AArch64::FeatureMEC} }, // 1311
7019 { 16689 /* "MECIDR_EL2" */, 0xE547, true, false, {AArch64::FeatureMEC} }, // 1312
7020 { 16700 /* "VMECID_P_EL2" */, 0xE548, true, true, {AArch64::FeatureMEC} }, // 1313
7021 { 16713 /* "VMECID_A_EL2" */, 0xE549, true, true, {AArch64::FeatureMEC} }, // 1314
7022 { 16726 /* "VBAR_EL2" */, 0xE600, true, true, {} }, // 1315
7023 { 16735 /* "RVBAR_EL2" */, 0xE601, true, false, {} }, // 1316
7024 { 16745 /* "RMR_EL2" */, 0xE602, true, true, {} }, // 1317
7025 { 16753 /* "VDISR_EL2" */, 0xE609, true, true, {AArch64::FeatureRAS} }, // 1318
7026 { 16763 /* "ICH_PPI_HVIR0_EL2" */, 0xE638, true, true, {} }, // 1319
7027 { 16781 /* "ICH_PPI_HVIR1_EL2" */, 0xE639, true, true, {} }, // 1320
7028 { 16799 /* "ICH_AP0R0_EL2" */, 0xE640, true, true, {} }, // 1321
7029 { 16813 /* "ICH_AP0R1_EL2" */, 0xE641, true, true, {} }, // 1322
7030 { 16827 /* "ICH_AP0R2_EL2" */, 0xE642, true, true, {} }, // 1323
7031 { 16841 /* "ICH_AP0R3_EL2" */, 0xE643, true, true, {} }, // 1324
7032 { 16855 /* "ICH_APR_EL2" */, 0xE644, true, true, {} }, // 1325
7033 { 16867 /* "ICH_HPPIR_EL2" */, 0xE645, true, false, {} }, // 1326
7034 { 16881 /* "ICH_AP1R0_EL2" */, 0xE648, true, true, {} }, // 1327
7035 { 16895 /* "ICH_AP1R1_EL2" */, 0xE649, true, true, {} }, // 1328
7036 { 16909 /* "ICH_AP1R2_EL2" */, 0xE64A, true, true, {} }, // 1329
7037 { 16923 /* "ICH_AP1R3_EL2" */, 0xE64B, true, true, {} }, // 1330
7038 { 16937 /* "ICH_HFGRTR_EL2" */, 0xE64C, true, true, {} }, // 1331
7039 { 16952 /* "ICC_SRE_EL2" */, 0xE64D, true, true, {} }, // 1332
7040 { 16964 /* "ICH_HFGWTR_EL2" */, 0xE64E, true, true, {} }, // 1333
7041 { 16979 /* "ICH_HFGITR_EL2" */, 0xE64F, true, true, {} }, // 1334
7042 { 16994 /* "ICH_PPI_DVIR0_EL2" */, 0xE650, true, true, {} }, // 1335
7043 { 17012 /* "ICH_PPI_DVIR1_EL2" */, 0xE651, true, true, {} }, // 1336
7044 { 17030 /* "ICH_PPI_ENABLER0_EL2" */, 0xE652, true, true, {} }, // 1337
7045 { 17051 /* "ICH_PPI_ENABLER1_EL2" */, 0xE653, true, true, {} }, // 1338
7046 { 17072 /* "ICH_PPI_PENDR0_EL2" */, 0xE654, true, true, {} }, // 1339
7047 { 17091 /* "ICH_PPI_PENDR1_EL2" */, 0xE655, true, true, {} }, // 1340
7048 { 17110 /* "ICH_PPI_ACTIVER0_EL2" */, 0xE656, true, true, {} }, // 1341
7049 { 17131 /* "ICH_PPI_ACTIVER1_EL2" */, 0xE657, true, true, {} }, // 1342
7050 { 17152 /* "ICH_HCR_EL2" */, 0xE658, true, true, {} }, // 1343
7051 { 17164 /* "ICH_VTR_EL2" */, 0xE659, true, false, {} }, // 1344
7052 { 17176 /* "ICH_MISR_EL2" */, 0xE65A, true, false, {} }, // 1345
7053 { 17189 /* "ICH_EISR_EL2" */, 0xE65B, true, false, {} }, // 1346
7054 { 17202 /* "ICH_VCTLR_EL2" */, 0xE65C, true, true, {} }, // 1347
7055 { 17216 /* "ICH_ELRSR_EL2" */, 0xE65D, true, false, {} }, // 1348
7056 { 17230 /* "ICH_CONTEXTR_EL2" */, 0xE65E, true, true, {} }, // 1349
7057 { 17247 /* "ICH_VMCR_EL2" */, 0xE65F, true, true, {} }, // 1350
7058 { 17260 /* "ICH_LR0_EL2" */, 0xE660, true, true, {} }, // 1351
7059 { 17272 /* "ICH_LR1_EL2" */, 0xE661, true, true, {} }, // 1352
7060 { 17284 /* "ICH_LR2_EL2" */, 0xE662, true, true, {} }, // 1353
7061 { 17296 /* "ICH_LR3_EL2" */, 0xE663, true, true, {} }, // 1354
7062 { 17308 /* "ICH_LR4_EL2" */, 0xE664, true, true, {} }, // 1355
7063 { 17320 /* "ICH_LR5_EL2" */, 0xE665, true, true, {} }, // 1356
7064 { 17332 /* "ICH_LR6_EL2" */, 0xE666, true, true, {} }, // 1357
7065 { 17344 /* "ICH_LR7_EL2" */, 0xE667, true, true, {} }, // 1358
7066 { 17356 /* "ICH_LR8_EL2" */, 0xE668, true, true, {} }, // 1359
7067 { 17368 /* "ICH_LR9_EL2" */, 0xE669, true, true, {} }, // 1360
7068 { 17380 /* "ICH_LR10_EL2" */, 0xE66A, true, true, {} }, // 1361
7069 { 17393 /* "ICH_LR11_EL2" */, 0xE66B, true, true, {} }, // 1362
7070 { 17406 /* "ICH_LR12_EL2" */, 0xE66C, true, true, {} }, // 1363
7071 { 17419 /* "ICH_LR13_EL2" */, 0xE66D, true, true, {} }, // 1364
7072 { 17432 /* "ICH_LR14_EL2" */, 0xE66E, true, true, {} }, // 1365
7073 { 17445 /* "ICH_LR15_EL2" */, 0xE66F, true, true, {} }, // 1366
7074 { 17458 /* "ICH_PPI_PRIORITYR0_EL2" */, 0xE670, true, true, {} }, // 1367
7075 { 17481 /* "ICH_PPI_PRIORITYR1_EL2" */, 0xE671, true, true, {} }, // 1368
7076 { 17504 /* "ICH_PPI_PRIORITYR2_EL2" */, 0xE672, true, true, {} }, // 1369
7077 { 17527 /* "ICH_PPI_PRIORITYR3_EL2" */, 0xE673, true, true, {} }, // 1370
7078 { 17550 /* "ICH_PPI_PRIORITYR4_EL2" */, 0xE674, true, true, {} }, // 1371
7079 { 17573 /* "ICH_PPI_PRIORITYR5_EL2" */, 0xE675, true, true, {} }, // 1372
7080 { 17596 /* "ICH_PPI_PRIORITYR6_EL2" */, 0xE676, true, true, {} }, // 1373
7081 { 17619 /* "ICH_PPI_PRIORITYR7_EL2" */, 0xE677, true, true, {} }, // 1374
7082 { 17642 /* "ICH_PPI_PRIORITYR8_EL2" */, 0xE678, true, true, {} }, // 1375
7083 { 17665 /* "ICH_PPI_PRIORITYR9_EL2" */, 0xE679, true, true, {} }, // 1376
7084 { 17688 /* "ICH_PPI_PRIORITYR10_EL2" */, 0xE67A, true, true, {} }, // 1377
7085 { 17712 /* "ICH_PPI_PRIORITYR11_EL2" */, 0xE67B, true, true, {} }, // 1378
7086 { 17736 /* "ICH_PPI_PRIORITYR12_EL2" */, 0xE67C, true, true, {} }, // 1379
7087 { 17760 /* "ICH_PPI_PRIORITYR13_EL2" */, 0xE67D, true, true, {} }, // 1380
7088 { 17784 /* "ICH_PPI_PRIORITYR14_EL2" */, 0xE67E, true, true, {} }, // 1381
7089 { 17808 /* "ICH_PPI_PRIORITYR15_EL2" */, 0xE67F, true, true, {} }, // 1382
7090 { 17832 /* "TPIDR3_EL2" */, 0xE680, true, true, {} }, // 1383
7091 { 17843 /* "CONTEXTIDR_EL2" */, 0xE681, true, true, {AArch64::FeatureCONTEXTIDREL2} }, // 1384
7092 { 17858 /* "TPIDR_EL2" */, 0xE682, true, true, {} }, // 1385
7093 { 17868 /* "SCXTNUM_EL2" */, 0xE687, true, true, {AArch64::FeatureSpecRestrict} }, // 1386
7094 { 17880 /* "AMEVCNTVOFF00_EL2" */, 0xE6C0, true, true, {AArch64::FeatureAMVS} }, // 1387
7095 { 17898 /* "AMEVCNTVOFF01_EL2" */, 0xE6C1, true, true, {AArch64::FeatureAMVS} }, // 1388
7096 { 17916 /* "AMEVCNTVOFF02_EL2" */, 0xE6C2, true, true, {AArch64::FeatureAMVS} }, // 1389
7097 { 17934 /* "AMEVCNTVOFF03_EL2" */, 0xE6C3, true, true, {AArch64::FeatureAMVS} }, // 1390
7098 { 17952 /* "AMEVCNTVOFF04_EL2" */, 0xE6C4, true, true, {AArch64::FeatureAMVS} }, // 1391
7099 { 17970 /* "AMEVCNTVOFF05_EL2" */, 0xE6C5, true, true, {AArch64::FeatureAMVS} }, // 1392
7100 { 17988 /* "AMEVCNTVOFF06_EL2" */, 0xE6C6, true, true, {AArch64::FeatureAMVS} }, // 1393
7101 { 18006 /* "AMEVCNTVOFF07_EL2" */, 0xE6C7, true, true, {AArch64::FeatureAMVS} }, // 1394
7102 { 18024 /* "AMEVCNTVOFF08_EL2" */, 0xE6C8, true, true, {AArch64::FeatureAMVS} }, // 1395
7103 { 18042 /* "AMEVCNTVOFF09_EL2" */, 0xE6C9, true, true, {AArch64::FeatureAMVS} }, // 1396
7104 { 18060 /* "AMEVCNTVOFF010_EL2" */, 0xE6CA, true, true, {AArch64::FeatureAMVS} }, // 1397
7105 { 18079 /* "AMEVCNTVOFF011_EL2" */, 0xE6CB, true, true, {AArch64::FeatureAMVS} }, // 1398
7106 { 18098 /* "AMEVCNTVOFF012_EL2" */, 0xE6CC, true, true, {AArch64::FeatureAMVS} }, // 1399
7107 { 18117 /* "AMEVCNTVOFF013_EL2" */, 0xE6CD, true, true, {AArch64::FeatureAMVS} }, // 1400
7108 { 18136 /* "AMEVCNTVOFF014_EL2" */, 0xE6CE, true, true, {AArch64::FeatureAMVS} }, // 1401
7109 { 18155 /* "AMEVCNTVOFF015_EL2" */, 0xE6CF, true, true, {AArch64::FeatureAMVS} }, // 1402
7110 { 18174 /* "AMEVCNTVOFF10_EL2" */, 0xE6D0, true, true, {AArch64::FeatureAMVS} }, // 1403
7111 { 18192 /* "AMEVCNTVOFF11_EL2" */, 0xE6D1, true, true, {AArch64::FeatureAMVS} }, // 1404
7112 { 18210 /* "AMEVCNTVOFF12_EL2" */, 0xE6D2, true, true, {AArch64::FeatureAMVS} }, // 1405
7113 { 18228 /* "AMEVCNTVOFF13_EL2" */, 0xE6D3, true, true, {AArch64::FeatureAMVS} }, // 1406
7114 { 18246 /* "AMEVCNTVOFF14_EL2" */, 0xE6D4, true, true, {AArch64::FeatureAMVS} }, // 1407
7115 { 18264 /* "AMEVCNTVOFF15_EL2" */, 0xE6D5, true, true, {AArch64::FeatureAMVS} }, // 1408
7116 { 18282 /* "AMEVCNTVOFF16_EL2" */, 0xE6D6, true, true, {AArch64::FeatureAMVS} }, // 1409
7117 { 18300 /* "AMEVCNTVOFF17_EL2" */, 0xE6D7, true, true, {AArch64::FeatureAMVS} }, // 1410
7118 { 18318 /* "AMEVCNTVOFF18_EL2" */, 0xE6D8, true, true, {AArch64::FeatureAMVS} }, // 1411
7119 { 18336 /* "AMEVCNTVOFF19_EL2" */, 0xE6D9, true, true, {AArch64::FeatureAMVS} }, // 1412
7120 { 18354 /* "AMEVCNTVOFF110_EL2" */, 0xE6DA, true, true, {AArch64::FeatureAMVS} }, // 1413
7121 { 18373 /* "AMEVCNTVOFF111_EL2" */, 0xE6DB, true, true, {AArch64::FeatureAMVS} }, // 1414
7122 { 18392 /* "AMEVCNTVOFF112_EL2" */, 0xE6DC, true, true, {AArch64::FeatureAMVS} }, // 1415
7123 { 18411 /* "AMEVCNTVOFF113_EL2" */, 0xE6DD, true, true, {AArch64::FeatureAMVS} }, // 1416
7124 { 18430 /* "AMEVCNTVOFF114_EL2" */, 0xE6DE, true, true, {AArch64::FeatureAMVS} }, // 1417
7125 { 18449 /* "AMEVCNTVOFF115_EL2" */, 0xE6DF, true, true, {AArch64::FeatureAMVS} }, // 1418
7126 { 18468 /* "CNTVOFF_EL2" */, 0xE703, true, true, {} }, // 1419
7127 { 18480 /* "CNTSCALE_EL2" */, 0xE704, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 1420
7128 { 18493 /* "CNTISCALE_EL2" */, 0xE705, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 1421
7129 { 18507 /* "CNTPOFF_EL2" */, 0xE706, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 1422
7130 { 18519 /* "CNTVFRQ_EL2" */, 0xE707, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 1423
7131 { 18531 /* "CNTHCTL_EL2" */, 0xE708, true, true, {} }, // 1424
7132 { 18543 /* "CNTHP_TVAL_EL2" */, 0xE710, true, true, {} }, // 1425
7133 { 18558 /* "CNTHP_CTL_EL2" */, 0xE711, true, true, {} }, // 1426
7134 { 18572 /* "CNTHP_CVAL_EL2" */, 0xE712, true, true, {} }, // 1427
7135 { 18587 /* "CNTHV_TVAL_EL2" */, 0xE718, true, true, {AArch64::FeatureVH} }, // 1428
7136 { 18602 /* "CNTHV_CTL_EL2" */, 0xE719, true, true, {AArch64::FeatureVH} }, // 1429
7137 { 18616 /* "CNTHV_CVAL_EL2" */, 0xE71A, true, true, {AArch64::FeatureVH} }, // 1430
7138 { 18631 /* "CNTHVS_TVAL_EL2" */, 0xE720, true, true, {AArch64::FeatureSEL2} }, // 1431
7139 { 18647 /* "CNTHVS_CTL_EL2" */, 0xE721, true, true, {AArch64::FeatureSEL2} }, // 1432
7140 { 18662 /* "CNTHVS_CVAL_EL2" */, 0xE722, true, true, {AArch64::FeatureSEL2} }, // 1433
7141 { 18678 /* "CNTHPS_TVAL_EL2" */, 0xE728, true, true, {AArch64::FeatureSEL2} }, // 1434
7142 { 18694 /* "CNTHPS_CTL_EL2" */, 0xE729, true, true, {AArch64::FeatureSEL2} }, // 1435
7143 { 18709 /* "CNTHPS_CVAL_EL2" */, 0xE72A, true, true, {AArch64::FeatureSEL2} }, // 1436
7144 { 18725 /* "SCTLR_EL12" */, 0xE880, true, true, {AArch64::FeatureVH} }, // 1437
7145 { 18736 /* "ACTLR_EL12" */, 0xE881, true, true, {} }, // 1438
7146 { 18747 /* "CPACR_EL12" */, 0xE882, true, true, {AArch64::FeatureVH} }, // 1439
7147 { 18758 /* "SCTLR2_EL12" */, 0xE883, true, true, {} }, // 1440
7148 { 18770 /* "ZCR_EL12" */, 0xE890, true, true, {AArch64::FeatureSVE} }, // 1441
7149 { 18779 /* "TRFCR_EL12" */, 0xE891, true, true, {AArch64::FeatureTRACEV8_4} }, // 1442
7150 { 18790 /* "TRCITECR_EL12" */, 0xE893, true, true, {AArch64::FeatureITE} }, // 1443
7151 { 18804 /* "SMCR_EL12" */, 0xE896, true, true, {AArch64::FeatureSME} }, // 1444
7152 { 18814 /* "SCTLRMASK_EL12" */, 0xE8A0, true, true, {} }, // 1445
7153 { 18829 /* "ACTLRMASK_EL12" */, 0xE8A1, true, true, {} }, // 1446
7154 { 18844 /* "CPACRMASK_EL12" */, 0xE8A2, true, true, {} }, // 1447
7155 { 18859 /* "SCTLR2MASK_EL12" */, 0xE8A3, true, true, {} }, // 1448
7156 { 18875 /* "TTBR0_EL12" */, 0xE900, true, true, {AArch64::FeatureVH} }, // 1449
7157 { 18886 /* "TTBR1_EL12" */, 0xE901, true, true, {AArch64::FeatureVH} }, // 1450
7158 { 18897 /* "TCR_EL12" */, 0xE902, true, true, {AArch64::FeatureVH} }, // 1451
7159 { 18906 /* "TCR2_EL12" */, 0xE903, true, true, {} }, // 1452
7160 { 18916 /* "IRTBRU_EL12" */, 0xE904, true, true, {} }, // 1453
7161 { 18928 /* "IRTBRP_EL12" */, 0xE905, true, true, {} }, // 1454
7162 { 18940 /* "DPOTBR0_EL12" */, 0xE906, true, true, {} }, // 1455
7163 { 18953 /* "DPOTBR1_EL12" */, 0xE907, true, true, {} }, // 1456
7164 { 18966 /* "LDSTT_EL12" */, 0xE90F, true, true, {} }, // 1457
7165 { 18977 /* "TPMIN0_EL12" */, 0xE914, true, true, {} }, // 1458
7166 { 18989 /* "TPMAX0_EL12" */, 0xE915, true, true, {} }, // 1459
7167 { 19001 /* "TPMIN1_EL12" */, 0xE916, true, true, {} }, // 1460
7168 { 19013 /* "TPMAX1_EL12" */, 0xE917, true, true, {} }, // 1461
7169 { 19025 /* "GCSCR_EL12" */, 0xE928, true, true, {} }, // 1462
7170 { 19036 /* "GCSPR_EL12" */, 0xE929, true, true, {} }, // 1463
7171 { 19047 /* "TCRMASK_EL12" */, 0xE93A, true, true, {} }, // 1464
7172 { 19060 /* "TCR2MASK_EL12" */, 0xE93B, true, true, {} }, // 1465
7173 { 19074 /* "FGDTP0_EL12" */, 0xE990, true, true, {} }, // 1466
7174 { 19086 /* "FGDTP1_EL12" */, 0xE991, true, true, {} }, // 1467
7175 { 19098 /* "FGDTP2_EL12" */, 0xE992, true, true, {} }, // 1468
7176 { 19110 /* "FGDTP3_EL12" */, 0xE993, true, true, {} }, // 1469
7177 { 19122 /* "FGDTP4_EL12" */, 0xE994, true, true, {} }, // 1470
7178 { 19134 /* "FGDTP5_EL12" */, 0xE995, true, true, {} }, // 1471
7179 { 19146 /* "FGDTP6_EL12" */, 0xE996, true, true, {} }, // 1472
7180 { 19158 /* "FGDTP7_EL12" */, 0xE997, true, true, {} }, // 1473
7181 { 19170 /* "FGDTP8_EL12" */, 0xE998, true, true, {} }, // 1474
7182 { 19182 /* "FGDTP9_EL12" */, 0xE999, true, true, {} }, // 1475
7183 { 19194 /* "FGDTP10_EL12" */, 0xE99A, true, true, {} }, // 1476
7184 { 19207 /* "FGDTP11_EL12" */, 0xE99B, true, true, {} }, // 1477
7185 { 19220 /* "FGDTP12_EL12" */, 0xE99C, true, true, {} }, // 1478
7186 { 19233 /* "FGDTP13_EL12" */, 0xE99D, true, true, {} }, // 1479
7187 { 19246 /* "FGDTP14_EL12" */, 0xE99E, true, true, {} }, // 1480
7188 { 19259 /* "FGDTP15_EL12" */, 0xE99F, true, true, {} }, // 1481
7189 { 19272 /* "FGDTU0_EL12" */, 0xE9A0, true, true, {} }, // 1482
7190 { 19284 /* "FGDTU1_EL12" */, 0xE9A1, true, true, {} }, // 1483
7191 { 19296 /* "FGDTU2_EL12" */, 0xE9A2, true, true, {} }, // 1484
7192 { 19308 /* "FGDTU3_EL12" */, 0xE9A3, true, true, {} }, // 1485
7193 { 19320 /* "FGDTU4_EL12" */, 0xE9A4, true, true, {} }, // 1486
7194 { 19332 /* "FGDTU5_EL12" */, 0xE9A5, true, true, {} }, // 1487
7195 { 19344 /* "FGDTU6_EL12" */, 0xE9A6, true, true, {} }, // 1488
7196 { 19356 /* "FGDTU7_EL12" */, 0xE9A7, true, true, {} }, // 1489
7197 { 19368 /* "FGDTU8_EL12" */, 0xE9A8, true, true, {} }, // 1490
7198 { 19380 /* "FGDTU9_EL12" */, 0xE9A9, true, true, {} }, // 1491
7199 { 19392 /* "FGDTU10_EL12" */, 0xE9AA, true, true, {} }, // 1492
7200 { 19405 /* "FGDTU11_EL12" */, 0xE9AB, true, true, {} }, // 1493
7201 { 19418 /* "FGDTU12_EL12" */, 0xE9AC, true, true, {} }, // 1494
7202 { 19431 /* "FGDTU13_EL12" */, 0xE9AD, true, true, {} }, // 1495
7203 { 19444 /* "FGDTU14_EL12" */, 0xE9AE, true, true, {} }, // 1496
7204 { 19457 /* "FGDTU15_EL12" */, 0xE9AF, true, true, {} }, // 1497
7205 { 19470 /* "AFGDTP0_EL12" */, 0xE9B0, true, true, {} }, // 1498
7206 { 19483 /* "AFGDTP1_EL12" */, 0xE9B1, true, true, {} }, // 1499
7207 { 19496 /* "AFGDTP2_EL12" */, 0xE9B2, true, true, {} }, // 1500
7208 { 19509 /* "AFGDTP3_EL12" */, 0xE9B3, true, true, {} }, // 1501
7209 { 19522 /* "AFGDTP4_EL12" */, 0xE9B4, true, true, {} }, // 1502
7210 { 19535 /* "AFGDTP5_EL12" */, 0xE9B5, true, true, {} }, // 1503
7211 { 19548 /* "AFGDTP6_EL12" */, 0xE9B6, true, true, {} }, // 1504
7212 { 19561 /* "AFGDTP7_EL12" */, 0xE9B7, true, true, {} }, // 1505
7213 { 19574 /* "AFGDTP8_EL12" */, 0xE9B8, true, true, {} }, // 1506
7214 { 19587 /* "AFGDTP9_EL12" */, 0xE9B9, true, true, {} }, // 1507
7215 { 19600 /* "AFGDTP10_EL12" */, 0xE9BA, true, true, {} }, // 1508
7216 { 19614 /* "AFGDTP11_EL12" */, 0xE9BB, true, true, {} }, // 1509
7217 { 19628 /* "AFGDTP12_EL12" */, 0xE9BC, true, true, {} }, // 1510
7218 { 19642 /* "AFGDTP13_EL12" */, 0xE9BD, true, true, {} }, // 1511
7219 { 19656 /* "AFGDTP14_EL12" */, 0xE9BE, true, true, {} }, // 1512
7220 { 19670 /* "AFGDTP15_EL12" */, 0xE9BF, true, true, {} }, // 1513
7221 { 19684 /* "AFGDTU0_EL12" */, 0xE9C0, true, true, {} }, // 1514
7222 { 19697 /* "AFGDTU1_EL12" */, 0xE9C1, true, true, {} }, // 1515
7223 { 19710 /* "AFGDTU2_EL12" */, 0xE9C2, true, true, {} }, // 1516
7224 { 19723 /* "AFGDTU3_EL12" */, 0xE9C3, true, true, {} }, // 1517
7225 { 19736 /* "AFGDTU4_EL12" */, 0xE9C4, true, true, {} }, // 1518
7226 { 19749 /* "AFGDTU5_EL12" */, 0xE9C5, true, true, {} }, // 1519
7227 { 19762 /* "AFGDTU6_EL12" */, 0xE9C6, true, true, {} }, // 1520
7228 { 19775 /* "AFGDTU7_EL12" */, 0xE9C7, true, true, {} }, // 1521
7229 { 19788 /* "AFGDTU8_EL12" */, 0xE9C8, true, true, {} }, // 1522
7230 { 19801 /* "AFGDTU9_EL12" */, 0xE9C9, true, true, {} }, // 1523
7231 { 19814 /* "AFGDTU10_EL12" */, 0xE9CA, true, true, {} }, // 1524
7232 { 19828 /* "AFGDTU11_EL12" */, 0xE9CB, true, true, {} }, // 1525
7233 { 19842 /* "AFGDTU12_EL12" */, 0xE9CC, true, true, {} }, // 1526
7234 { 19856 /* "AFGDTU13_EL12" */, 0xE9CD, true, true, {} }, // 1527
7235 { 19870 /* "AFGDTU14_EL12" */, 0xE9CE, true, true, {} }, // 1528
7236 { 19884 /* "AFGDTU15_EL12" */, 0xE9CF, true, true, {} }, // 1529
7237 { 19898 /* "SPSR_EL12" */, 0xEA00, true, true, {AArch64::FeatureVH} }, // 1530
7238 { 19908 /* "ELR_EL12" */, 0xEA01, true, true, {AArch64::FeatureVH} }, // 1531
7239 { 19917 /* "STINDEX_EL12" */, 0xEA02, true, true, {} }, // 1532
7240 { 19930 /* "TINDEX_EL12" */, 0xEA03, true, true, {} }, // 1533
7241 { 19942 /* "AFSR0_EL12" */, 0xEA88, true, true, {AArch64::FeatureVH} }, // 1534
7242 { 19953 /* "AFSR1_EL12" */, 0xEA89, true, true, {AArch64::FeatureVH} }, // 1535
7243 { 19964 /* "ESR_EL12" */, 0xEA90, true, true, {AArch64::FeatureVH} }, // 1536
7244 { 19973 /* "TFSR_EL12" */, 0xEAB0, true, true, {AArch64::FeatureMTE} }, // 1537
7245 { 19983 /* "FAR_EL12" */, 0xEB00, true, true, {AArch64::FeatureVH} }, // 1538
7246 { 19992 /* "PFAR_EL12" */, 0xEB05, true, true, {} }, // 1539
7247 { 20002 /* "PMSCR_EL12" */, 0xECC8, true, true, {AArch64::FeatureSPE} }, // 1540
7248 { 20013 /* "PMBSR_EL12" */, 0xECD3, true, true, {} }, // 1541
7249 { 20024 /* "TRBSR_EL12" */, 0xECDB, true, true, {} }, // 1542
7250 { 20035 /* "MAIR_EL12" */, 0xED10, true, true, {AArch64::FeatureVH} }, // 1543
7251 { 20045 /* "MAIR2_EL12" */, 0xED11, true, true, {} }, // 1544
7252 { 20056 /* "PIRE0_EL12" */, 0xED12, true, true, {} }, // 1545
7253 { 20067 /* "PIR_EL12" */, 0xED13, true, true, {} }, // 1546
7254 { 20076 /* "POR_EL12" */, 0xED14, true, true, {} }, // 1547
7255 { 20085 /* "TTTBRU_EL12" */, 0xED16, true, true, {} }, // 1548
7256 { 20097 /* "TTTBRP_EL12" */, 0xED17, true, true, {} }, // 1549
7257 { 20109 /* "AMAIR_EL12" */, 0xED18, true, true, {AArch64::FeatureVH} }, // 1550
7258 { 20120 /* "AMAIR2_EL12" */, 0xED19, true, true, {} }, // 1551
7259 { 20132 /* "MPAM1_EL12" */, 0xED28, true, true, {} }, // 1552
7260 { 20143 /* "MPAMCTL_EL12" */, 0xED2A, true, true, {} }, // 1553
7261 { 20156 /* "MPAMBW1_EL12" */, 0xED2C, true, true, {} }, // 1554
7262 { 20169 /* "VBAR_EL12" */, 0xEE00, true, true, {AArch64::FeatureVH} }, // 1555
7263 { 20179 /* "TPIDR3_EL12" */, 0xEE80, true, true, {} }, // 1556
7264 { 20191 /* "CONTEXTIDR_EL12" */, 0xEE81, true, true, {AArch64::FeatureVH} }, // 1557
7265 { 20207 /* "SCXTNUM_EL12" */, 0xEE87, true, true, {AArch64::FeatureSpecRestrict} }, // 1558
7266 { 20220 /* "CNTKCTL_EL12" */, 0xEF08, true, true, {AArch64::FeatureVH} }, // 1559
7267 { 20233 /* "CNTP_TVAL_EL02" */, 0xEF10, true, true, {AArch64::FeatureVH} }, // 1560
7268 { 20248 /* "CNTP_CTL_EL02" */, 0xEF11, true, true, {AArch64::FeatureVH} }, // 1561
7269 { 20262 /* "CNTP_CVAL_EL02" */, 0xEF12, true, true, {AArch64::FeatureVH} }, // 1562
7270 { 20277 /* "CNTV_TVAL_EL02" */, 0xEF18, true, true, {AArch64::FeatureVH} }, // 1563
7271 { 20292 /* "CNTV_CTL_EL02" */, 0xEF19, true, true, {AArch64::FeatureVH} }, // 1564
7272 { 20306 /* "CNTV_CVAL_EL02" */, 0xEF1A, true, true, {AArch64::FeatureVH} }, // 1565
7273 { 20321 /* "SCTLR_EL3" */, 0xF080, true, true, {} }, // 1566
7274 { 20331 /* "ACTLR_EL3" */, 0xF081, true, true, {} }, // 1567
7275 { 20341 /* "SCTLR2_EL3" */, 0xF083, true, true, {} }, // 1568
7276 { 20352 /* "SCR_EL3" */, 0xF088, true, true, {} }, // 1569
7277 { 20360 /* "SDER32_EL3" */, 0xF089, true, true, {} }, // 1570
7278 { 20371 /* "CPTR_EL3" */, 0xF08A, true, true, {} }, // 1571
7279 { 20380 /* "FGWTE3_EL3" */, 0xF08D, true, true, {} }, // 1572
7280 { 20391 /* "ZCR_EL3" */, 0xF090, true, true, {AArch64::FeatureSVE} }, // 1573
7281 { 20399 /* "SCR2_EL3" */, 0xF092, true, true, {} }, // 1574
7282 { 20408 /* "SMCR_EL3" */, 0xF096, true, true, {AArch64::FeatureSME} }, // 1575
7283 { 20417 /* "MDCR_EL3" */, 0xF099, true, true, {} }, // 1576
7284 { 20426 /* "TTBR0_EL3" */, 0xF100, true, true, {} }, // 1577
7285 { 20436 /* "TCR_EL3" */, 0xF102, true, true, {} }, // 1578
7286 { 20444 /* "IRTBRP_EL3" */, 0xF105, true, true, {} }, // 1579
7287 { 20455 /* "DPOTBR0_EL3" */, 0xF106, true, true, {} }, // 1580
7288 { 20467 /* "GPTBR_EL3" */, 0xF10C, true, true, {AArch64::FeatureRME} }, // 1581
7289 { 20477 /* "GPCBW_EL3" */, 0xF10D, true, true, {} }, // 1582
7290 { 20487 /* "GPCCR_EL3" */, 0xF10E, true, true, {AArch64::FeatureRME} }, // 1583
7291 { 20497 /* "GCSCR_EL3" */, 0xF128, true, true, {} }, // 1584
7292 { 20507 /* "GCSPR_EL3" */, 0xF129, true, true, {} }, // 1585
7293 { 20517 /* "FGDTP0_EL3" */, 0xF190, true, true, {} }, // 1586
7294 { 20528 /* "FGDTP1_EL3" */, 0xF191, true, true, {} }, // 1587
7295 { 20539 /* "FGDTP2_EL3" */, 0xF192, true, true, {} }, // 1588
7296 { 20550 /* "FGDTP3_EL3" */, 0xF193, true, true, {} }, // 1589
7297 { 20561 /* "FGDTP4_EL3" */, 0xF194, true, true, {} }, // 1590
7298 { 20572 /* "FGDTP5_EL3" */, 0xF195, true, true, {} }, // 1591
7299 { 20583 /* "FGDTP6_EL3" */, 0xF196, true, true, {} }, // 1592
7300 { 20594 /* "FGDTP7_EL3" */, 0xF197, true, true, {} }, // 1593
7301 { 20605 /* "FGDTP8_EL3" */, 0xF198, true, true, {} }, // 1594
7302 { 20616 /* "FGDTP9_EL3" */, 0xF199, true, true, {} }, // 1595
7303 { 20627 /* "FGDTP10_EL3" */, 0xF19A, true, true, {} }, // 1596
7304 { 20639 /* "FGDTP11_EL3" */, 0xF19B, true, true, {} }, // 1597
7305 { 20651 /* "FGDTP12_EL3" */, 0xF19C, true, true, {} }, // 1598
7306 { 20663 /* "FGDTP13_EL3" */, 0xF19D, true, true, {} }, // 1599
7307 { 20675 /* "FGDTP14_EL3" */, 0xF19E, true, true, {} }, // 1600
7308 { 20687 /* "FGDTP15_EL3" */, 0xF19F, true, true, {} }, // 1601
7309 { 20699 /* "AFGDTP0_EL3" */, 0xF1B0, true, true, {} }, // 1602
7310 { 20711 /* "AFGDTP1_EL3" */, 0xF1B1, true, true, {} }, // 1603
7311 { 20723 /* "AFGDTP2_EL3" */, 0xF1B2, true, true, {} }, // 1604
7312 { 20735 /* "AFGDTP3_EL3" */, 0xF1B3, true, true, {} }, // 1605
7313 { 20747 /* "AFGDTP4_EL3" */, 0xF1B4, true, true, {} }, // 1606
7314 { 20759 /* "AFGDTP5_EL3" */, 0xF1B5, true, true, {} }, // 1607
7315 { 20771 /* "AFGDTP6_EL3" */, 0xF1B6, true, true, {} }, // 1608
7316 { 20783 /* "AFGDTP7_EL3" */, 0xF1B7, true, true, {} }, // 1609
7317 { 20795 /* "AFGDTP8_EL3" */, 0xF1B8, true, true, {} }, // 1610
7318 { 20807 /* "AFGDTP9_EL3" */, 0xF1B9, true, true, {} }, // 1611
7319 { 20819 /* "AFGDTP10_EL3" */, 0xF1BA, true, true, {} }, // 1612
7320 { 20832 /* "AFGDTP11_EL3" */, 0xF1BB, true, true, {} }, // 1613
7321 { 20845 /* "AFGDTP12_EL3" */, 0xF1BC, true, true, {} }, // 1614
7322 { 20858 /* "AFGDTP13_EL3" */, 0xF1BD, true, true, {} }, // 1615
7323 { 20871 /* "AFGDTP14_EL3" */, 0xF1BE, true, true, {} }, // 1616
7324 { 20884 /* "AFGDTP15_EL3" */, 0xF1BF, true, true, {} }, // 1617
7325 { 20897 /* "SPSR_EL3" */, 0xF200, true, true, {} }, // 1618
7326 { 20906 /* "ELR_EL3" */, 0xF201, true, true, {} }, // 1619
7327 { 20914 /* "STINDEX_EL3" */, 0xF202, true, true, {} }, // 1620
7328 { 20926 /* "TINDEX_EL3" */, 0xF203, true, true, {} }, // 1621
7329 { 20937 /* "SP_EL2" */, 0xF208, true, true, {} }, // 1622
7330 { 20944 /* "AFSR0_EL3" */, 0xF288, true, true, {} }, // 1623
7331 { 20954 /* "AFSR1_EL3" */, 0xF289, true, true, {} }, // 1624
7332 { 20964 /* "ESR_EL3" */, 0xF290, true, true, {} }, // 1625
7333 { 20972 /* "VSESR_EL3" */, 0xF293, true, true, {} }, // 1626
7334 { 20982 /* "TFSR_EL3" */, 0xF2B0, true, true, {AArch64::FeatureMTE} }, // 1627
7335 { 20991 /* "FAR_EL3" */, 0xF300, true, true, {} }, // 1628
7336 { 20999 /* "MFAR_EL3" */, 0xF305, true, true, {} }, // 1629
7337 { 21008 /* "PMBSR_EL3" */, 0xF4D3, true, true, {} }, // 1630
7338 { 21018 /* "TRBSR_EL3" */, 0xF4DB, true, true, {} }, // 1631
7339 { 21028 /* "MAIR2_EL3" */, 0xF509, true, true, {} }, // 1632
7340 { 21038 /* "MAIR_EL3" */, 0xF510, true, true, {} }, // 1633
7341 { 21047 /* "PIR_EL3" */, 0xF513, true, true, {} }, // 1634
7342 { 21055 /* "POR_EL3" */, 0xF514, true, true, {} }, // 1635
7343 { 21063 /* "TTTBRP_EL3" */, 0xF517, true, true, {} }, // 1636
7344 { 21074 /* "AMAIR_EL3" */, 0xF518, true, true, {} }, // 1637
7345 { 21084 /* "AMAIR2_EL3" */, 0xF519, true, true, {} }, // 1638
7346 { 21095 /* "MPAM3_EL3" */, 0xF528, true, true, {} }, // 1639
7347 { 21105 /* "MPAMCTL_EL3" */, 0xF52A, true, true, {} }, // 1640
7348 { 21117 /* "MPAMBW3_EL3" */, 0xF52C, true, true, {} }, // 1641
7349 { 21129 /* "MECID_RL_A_EL3" */, 0xF551, true, true, {AArch64::FeatureMEC} }, // 1642
7350 { 21144 /* "VBAR_EL3" */, 0xF600, true, true, {} }, // 1643
7351 { 21153 /* "RVBAR_EL3" */, 0xF601, true, false, {} }, // 1644
7352 { 21163 /* "RMR_EL3" */, 0xF602, true, true, {} }, // 1645
7353 { 21171 /* "VDISR_EL3" */, 0xF609, true, true, {} }, // 1646
7354 { 21181 /* "ICC_APR_EL3" */, 0xF640, true, true, {} }, // 1647
7355 { 21193 /* "ICC_PCR_EL3" */, 0xF641, true, true, {} }, // 1648
7356 { 21205 /* "ICC_DOMHPPIR_EL3" */, 0xF642, true, false, {} }, // 1649
7357 { 21222 /* "ICC_PPI_DOMAINR0_EL3" */, 0xF644, true, true, {} }, // 1650
7358 { 21243 /* "ICC_PPI_DOMAINR1_EL3" */, 0xF645, true, true, {} }, // 1651
7359 { 21264 /* "ICC_PPI_DOMAINR2_EL3" */, 0xF646, true, true, {} }, // 1652
7360 { 21285 /* "ICC_PPI_DOMAINR3_EL3" */, 0xF647, true, true, {} }, // 1653
7361 { 21306 /* "ICC_CR0_EL3" */, 0xF648, true, true, {} }, // 1654
7362 { 21318 /* "ICC_HPPIR_EL3" */, 0xF649, true, false, {} }, // 1655
7363 { 21332 /* "ICC_CTLR_EL3" */, 0xF664, true, true, {} }, // 1656
7364 { 21345 /* "ICC_SRE_EL3" */, 0xF665, true, true, {} }, // 1657
7365 { 21357 /* "ICC_IGRPEN1_EL3" */, 0xF667, true, true, {} }, // 1658
7366 { 21373 /* "TPIDR3_EL3" */, 0xF680, true, true, {} }, // 1659
7367 { 21384 /* "TPIDR_EL3" */, 0xF682, true, true, {} }, // 1660
7368 { 21394 /* "SCXTNUM_EL3" */, 0xF687, true, true, {AArch64::FeatureSpecRestrict} }, // 1661
7369 { 21406 /* "CNTPS_TVAL_EL1" */, 0xFF10, true, true, {} }, // 1662
7370 { 21421 /* "CNTPS_CTL_EL1" */, 0xFF11, true, true, {} }, // 1663
7371 { 21435 /* "CNTPS_CVAL_EL1" */, 0xFF12, true, true, {} }, // 1664
7372 };
7373
7374#ifdef __GNUC__
7375#pragma GCC diagnostic push
7376#pragma GCC diagnostic ignored "-Woverlength-strings"
7377#endif
7378static constexpr char SysRegsListStringsStorage[] =
7379 "\0"
7380 "OSDTRRX_EL1\0"
7381 "DBGBVR0_EL1\0"
7382 "DBGBCR0_EL1\0"
7383 "DBGWVR0_EL1\0"
7384 "DBGWCR0_EL1\0"
7385 "DBGBVR1_EL1\0"
7386 "DBGBCR1_EL1\0"
7387 "DBGWVR1_EL1\0"
7388 "DBGWCR1_EL1\0"
7389 "MDCCINT_EL1\0"
7390 "MDSCR_EL1\0"
7391 "DBGBVR2_EL1\0"
7392 "DBGBCR2_EL1\0"
7393 "DBGWVR2_EL1\0"
7394 "DBGWCR2_EL1\0"
7395 "OSDTRTX_EL1\0"
7396 "DBGBVR3_EL1\0"
7397 "DBGBCR3_EL1\0"
7398 "DBGWVR3_EL1\0"
7399 "DBGWCR3_EL1\0"
7400 "MDSELR_EL1\0"
7401 "DBGBVR4_EL1\0"
7402 "DBGBCR4_EL1\0"
7403 "DBGWVR4_EL1\0"
7404 "DBGWCR4_EL1\0"
7405 "MDSTEPOP_EL1\0"
7406 "DBGBVR5_EL1\0"
7407 "DBGBCR5_EL1\0"
7408 "DBGWVR5_EL1\0"
7409 "DBGWCR5_EL1\0"
7410 "OSECCR_EL1\0"
7411 "DBGBVR6_EL1\0"
7412 "DBGBCR6_EL1\0"
7413 "DBGWVR6_EL1\0"
7414 "DBGWCR6_EL1\0"
7415 "DBGBVR7_EL1\0"
7416 "DBGBCR7_EL1\0"
7417 "DBGWVR7_EL1\0"
7418 "DBGWCR7_EL1\0"
7419 "DBGBVR8_EL1\0"
7420 "DBGBCR8_EL1\0"
7421 "DBGWVR8_EL1\0"
7422 "DBGWCR8_EL1\0"
7423 "DBGBVR9_EL1\0"
7424 "DBGBCR9_EL1\0"
7425 "DBGWVR9_EL1\0"
7426 "DBGWCR9_EL1\0"
7427 "DBGBVR10_EL1\0"
7428 "DBGBCR10_EL1\0"
7429 "DBGWVR10_EL1\0"
7430 "DBGWCR10_EL1\0"
7431 "DBGBVR11_EL1\0"
7432 "DBGBCR11_EL1\0"
7433 "DBGWVR11_EL1\0"
7434 "DBGWCR11_EL1\0"
7435 "DBGBVR12_EL1\0"
7436 "DBGBCR12_EL1\0"
7437 "DBGWVR12_EL1\0"
7438 "DBGWCR12_EL1\0"
7439 "DBGBVR13_EL1\0"
7440 "DBGBCR13_EL1\0"
7441 "DBGWVR13_EL1\0"
7442 "DBGWCR13_EL1\0"
7443 "DBGBVR14_EL1\0"
7444 "DBGBCR14_EL1\0"
7445 "DBGWVR14_EL1\0"
7446 "DBGWCR14_EL1\0"
7447 "DBGBVR15_EL1\0"
7448 "DBGBCR15_EL1\0"
7449 "DBGWVR15_EL1\0"
7450 "DBGWCR15_EL1\0"
7451 "MDRAR_EL1\0"
7452 "OSLAR_EL1\0"
7453 "OSLSR_EL1\0"
7454 "OSDLR_EL1\0"
7455 "DBGPRCR_EL1\0"
7456 "DBGCLAIMSET_EL1\0"
7457 "DBGCLAIMCLR_EL1\0"
7458 "DBGAUTHSTATUS_EL1\0"
7459 "SPMCGCR0_EL1\0"
7460 "SPMCGCR1_EL1\0"
7461 "SPMACCESSR_EL1\0"
7462 "SPMIIDR_EL1\0"
7463 "SPMDEVARCH_EL1\0"
7464 "SPMDEVAFF_EL1\0"
7465 "SPMCFGR_EL1\0"
7466 "SPMINTENSET_EL1\0"
7467 "SPMINTENCLR_EL1\0"
7468 "PMEVCNTSVR0_EL1\0"
7469 "PMEVCNTSVR1_EL1\0"
7470 "PMEVCNTSVR2_EL1\0"
7471 "PMEVCNTSVR3_EL1\0"
7472 "PMEVCNTSVR4_EL1\0"
7473 "PMEVCNTSVR5_EL1\0"
7474 "PMEVCNTSVR6_EL1\0"
7475 "PMEVCNTSVR7_EL1\0"
7476 "PMEVCNTSVR8_EL1\0"
7477 "PMEVCNTSVR9_EL1\0"
7478 "PMEVCNTSVR10_EL1\0"
7479 "PMEVCNTSVR11_EL1\0"
7480 "PMEVCNTSVR12_EL1\0"
7481 "PMEVCNTSVR13_EL1\0"
7482 "PMEVCNTSVR14_EL1\0"
7483 "PMEVCNTSVR15_EL1\0"
7484 "PMEVCNTSVR16_EL1\0"
7485 "PMEVCNTSVR17_EL1\0"
7486 "PMEVCNTSVR18_EL1\0"
7487 "PMEVCNTSVR19_EL1\0"
7488 "PMEVCNTSVR20_EL1\0"
7489 "PMEVCNTSVR21_EL1\0"
7490 "PMEVCNTSVR22_EL1\0"
7491 "PMEVCNTSVR23_EL1\0"
7492 "PMEVCNTSVR24_EL1\0"
7493 "PMEVCNTSVR25_EL1\0"
7494 "PMEVCNTSVR26_EL1\0"
7495 "PMEVCNTSVR27_EL1\0"
7496 "PMEVCNTSVR28_EL1\0"
7497 "PMEVCNTSVR29_EL1\0"
7498 "PMEVCNTSVR30_EL1\0"
7499 "PMCCNTSVR_EL1\0"
7500 "PMICNTSVR_EL1\0"
7501 "TRCTRACEIDR\0"
7502 "TRCVICTLR\0"
7503 "TRCSEQEVR0\0"
7504 "TRCCNTRLDVR0\0"
7505 "TRCIDR8\0"
7506 "TRCIMSPEC0\0"
7507 "TRCPRGCTLR\0"
7508 "TRCQCTLR\0"
7509 "TRCVIIECTLR\0"
7510 "TRCSEQEVR1\0"
7511 "TRCCNTRLDVR1\0"
7512 "TRCIDR9\0"
7513 "TRCIMSPEC1\0"
7514 "TRCPROCSELR\0"
7515 "TRCITEEDCR\0"
7516 "TRCVISSCTLR\0"
7517 "TRCSEQEVR2\0"
7518 "TRCCNTRLDVR2\0"
7519 "TRCIDR10\0"
7520 "TRCIMSPEC2\0"
7521 "TRCSTATR\0"
7522 "TRCVIPCSSCTLR\0"
7523 "TRCCNTRLDVR3\0"
7524 "TRCIDR11\0"
7525 "TRCIMSPEC3\0"
7526 "TRCCONFIGR\0"
7527 "TRCCNTCTLR0\0"
7528 "TRCIDR12\0"
7529 "TRCIMSPEC4\0"
7530 "TRCCNTCTLR1\0"
7531 "TRCIDR13\0"
7532 "TRCIMSPEC5\0"
7533 "TRCAUXCTLR\0"
7534 "TRCSEQRSTEVR\0"
7535 "TRCCNTCTLR2\0"
7536 "TRCIMSPEC6\0"
7537 "TRCSEQSTR\0"
7538 "TRCCNTCTLR3\0"
7539 "TRCIMSPEC7\0"
7540 "TRCEVENTCTL0R\0"
7541 "TRCVDCTLR\0"
7542 "TRCEXTINSELR\0"
7543 "TRCEXTINSELR0\0"
7544 "TRCCNTVR0\0"
7545 "TRCIDR0\0"
7546 "TRCEVENTCTL1R\0"
7547 "TRCVDSACCTLR\0"
7548 "TRCEXTINSELR1\0"
7549 "TRCCNTVR1\0"
7550 "TRCIDR1\0"
7551 "TRCRSR\0"
7552 "TRCVDARCCTLR\0"
7553 "TRCEXTINSELR2\0"
7554 "TRCCNTVR2\0"
7555 "TRCIDR2\0"
7556 "TRCSTALLCTLR\0"
7557 "TRCEXTINSELR3\0"
7558 "TRCCNTVR3\0"
7559 "TRCIDR3\0"
7560 "TRCTSCTLR\0"
7561 "TRCIDR4\0"
7562 "TRCSYNCPR\0"
7563 "TRCIDR5\0"
7564 "TRCCCCTLR\0"
7565 "TRCIDR6\0"
7566 "TRCBBCTLR\0"
7567 "TRCIDR7\0"
7568 "TRCRSCTLR16\0"
7569 "TRCSSCCR0\0"
7570 "TRCSSPCICR0\0"
7571 "TRCOSLAR\0"
7572 "TRCRSCTLR17\0"
7573 "TRCSSCCR1\0"
7574 "TRCSSPCICR1\0"
7575 "TRCOSLSR\0"
7576 "TRCRSCTLR2\0"
7577 "TRCRSCTLR18\0"
7578 "TRCSSCCR2\0"
7579 "TRCSSPCICR2\0"
7580 "TRCRSCTLR3\0"
7581 "TRCRSCTLR19\0"
7582 "TRCSSCCR3\0"
7583 "TRCSSPCICR3\0"
7584 "TRCRSCTLR4\0"
7585 "TRCRSCTLR20\0"
7586 "TRCSSCCR4\0"
7587 "TRCSSPCICR4\0"
7588 "TRCPDCR\0"
7589 "TRCRSCTLR5\0"
7590 "TRCRSCTLR21\0"
7591 "TRCSSCCR5\0"
7592 "TRCSSPCICR5\0"
7593 "TRCPDSR\0"
7594 "TRCRSCTLR6\0"
7595 "TRCRSCTLR22\0"
7596 "TRCSSCCR6\0"
7597 "TRCSSPCICR6\0"
7598 "TRCRSCTLR7\0"
7599 "TRCRSCTLR23\0"
7600 "TRCSSCCR7\0"
7601 "TRCSSPCICR7\0"
7602 "TRCRSCTLR8\0"
7603 "TRCRSCTLR24\0"
7604 "TRCSSCSR0\0"
7605 "TRCRSCTLR9\0"
7606 "TRCRSCTLR25\0"
7607 "TRCSSCSR1\0"
7608 "TRCRSCTLR10\0"
7609 "TRCRSCTLR26\0"
7610 "TRCSSCSR2\0"
7611 "TRCRSCTLR11\0"
7612 "TRCRSCTLR27\0"
7613 "TRCSSCSR3\0"
7614 "TRCRSCTLR12\0"
7615 "TRCRSCTLR28\0"
7616 "TRCSSCSR4\0"
7617 "TRCRSCTLR13\0"
7618 "TRCRSCTLR29\0"
7619 "TRCSSCSR5\0"
7620 "TRCRSCTLR14\0"
7621 "TRCRSCTLR30\0"
7622 "TRCSSCSR6\0"
7623 "TRCRSCTLR15\0"
7624 "TRCRSCTLR31\0"
7625 "TRCSSCSR7\0"
7626 "TRCACVR0\0"
7627 "TRCACVR8\0"
7628 "TRCACATR0\0"
7629 "TRCACATR8\0"
7630 "TRCDVCVR0\0"
7631 "TRCDVCVR4\0"
7632 "TRCDVCMR0\0"
7633 "TRCDVCMR4\0"
7634 "TRCACVR1\0"
7635 "TRCACVR9\0"
7636 "TRCACATR1\0"
7637 "TRCACATR9\0"
7638 "TRCACVR2\0"
7639 "TRCACVR10\0"
7640 "TRCACATR2\0"
7641 "TRCACATR10\0"
7642 "TRCDVCVR1\0"
7643 "TRCDVCVR5\0"
7644 "TRCDVCMR1\0"
7645 "TRCDVCMR5\0"
7646 "TRCACVR3\0"
7647 "TRCACVR11\0"
7648 "TRCACATR3\0"
7649 "TRCACATR11\0"
7650 "TRCACVR4\0"
7651 "TRCACVR12\0"
7652 "TRCACATR4\0"
7653 "TRCACATR12\0"
7654 "TRCDVCVR2\0"
7655 "TRCDVCVR6\0"
7656 "TRCDVCMR2\0"
7657 "TRCDVCMR6\0"
7658 "TRCACVR5\0"
7659 "TRCACVR13\0"
7660 "TRCACATR5\0"
7661 "TRCACATR13\0"
7662 "TRCACVR6\0"
7663 "TRCACVR14\0"
7664 "TRCACATR6\0"
7665 "TRCACATR14\0"
7666 "TRCDVCVR3\0"
7667 "TRCDVCVR7\0"
7668 "TRCDVCMR3\0"
7669 "TRCDVCMR7\0"
7670 "TRCACVR7\0"
7671 "TRCACVR15\0"
7672 "TRCACATR7\0"
7673 "TRCACATR15\0"
7674 "TRCCIDCVR0\0"
7675 "TRCVMIDCVR0\0"
7676 "TRCCIDCCTLR0\0"
7677 "TRCCIDCCTLR1\0"
7678 "TRCCIDCVR1\0"
7679 "TRCVMIDCVR1\0"
7680 "TRCVMIDCCTLR0\0"
7681 "TRCVMIDCCTLR1\0"
7682 "TRCCIDCVR2\0"
7683 "TRCVMIDCVR2\0"
7684 "TRCCIDCVR3\0"
7685 "TRCVMIDCVR3\0"
7686 "TRCCIDCVR4\0"
7687 "TRCVMIDCVR4\0"
7688 "TRCCIDCVR5\0"
7689 "TRCVMIDCVR5\0"
7690 "TRCCIDCVR6\0"
7691 "TRCVMIDCVR6\0"
7692 "TRCCIDCVR7\0"
7693 "TRCVMIDCVR7\0"
7694 "TRCITCTRL\0"
7695 "TRCDEVID\0"
7696 "TRCDEVTYPE\0"
7697 "TRCPIDR4\0"
7698 "TRCPIDR5\0"
7699 "TRCPIDR6\0"
7700 "TRCPIDR7\0"
7701 "TRCCLAIMSET\0"
7702 "TRCPIDR0\0"
7703 "TRCCLAIMCLR\0"
7704 "TRCPIDR1\0"
7705 "TRCDEVAFF0\0"
7706 "TRCPIDR2\0"
7707 "TRCDEVAFF1\0"
7708 "TRCPIDR3\0"
7709 "TRCLAR\0"
7710 "TRCCIDR0\0"
7711 "TRCLSR\0"
7712 "TRCCIDR1\0"
7713 "TRCAUTHSTATUS\0"
7714 "TRCCIDR2\0"
7715 "TRCDEVARCH\0"
7716 "TRCCIDR3\0"
7717 "BRBINF0_EL1\0"
7718 "BRBSRC0_EL1\0"
7719 "BRBTGT0_EL1\0"
7720 "BRBINF16_EL1\0"
7721 "BRBSRC16_EL1\0"
7722 "BRBTGT16_EL1\0"
7723 "BRBINF1_EL1\0"
7724 "BRBSRC1_EL1\0"
7725 "BRBTGT1_EL1\0"
7726 "BRBINF17_EL1\0"
7727 "BRBSRC17_EL1\0"
7728 "BRBTGT17_EL1\0"
7729 "BRBINF2_EL1\0"
7730 "BRBSRC2_EL1\0"
7731 "BRBTGT2_EL1\0"
7732 "BRBINF18_EL1\0"
7733 "BRBSRC18_EL1\0"
7734 "BRBTGT18_EL1\0"
7735 "BRBINF3_EL1\0"
7736 "BRBSRC3_EL1\0"
7737 "BRBTGT3_EL1\0"
7738 "BRBINF19_EL1\0"
7739 "BRBSRC19_EL1\0"
7740 "BRBTGT19_EL1\0"
7741 "BRBINF4_EL1\0"
7742 "BRBSRC4_EL1\0"
7743 "BRBTGT4_EL1\0"
7744 "BRBINF20_EL1\0"
7745 "BRBSRC20_EL1\0"
7746 "BRBTGT20_EL1\0"
7747 "BRBINF5_EL1\0"
7748 "BRBSRC5_EL1\0"
7749 "BRBTGT5_EL1\0"
7750 "BRBINF21_EL1\0"
7751 "BRBSRC21_EL1\0"
7752 "BRBTGT21_EL1\0"
7753 "BRBINF6_EL1\0"
7754 "BRBSRC6_EL1\0"
7755 "BRBTGT6_EL1\0"
7756 "BRBINF22_EL1\0"
7757 "BRBSRC22_EL1\0"
7758 "BRBTGT22_EL1\0"
7759 "BRBINF7_EL1\0"
7760 "BRBSRC7_EL1\0"
7761 "BRBTGT7_EL1\0"
7762 "BRBINF23_EL1\0"
7763 "BRBSRC23_EL1\0"
7764 "BRBTGT23_EL1\0"
7765 "BRBINF8_EL1\0"
7766 "BRBSRC8_EL1\0"
7767 "BRBTGT8_EL1\0"
7768 "BRBINF24_EL1\0"
7769 "BRBSRC24_EL1\0"
7770 "BRBTGT24_EL1\0"
7771 "BRBINF9_EL1\0"
7772 "BRBSRC9_EL1\0"
7773 "BRBTGT9_EL1\0"
7774 "BRBINF25_EL1\0"
7775 "BRBSRC25_EL1\0"
7776 "BRBTGT25_EL1\0"
7777 "BRBINF10_EL1\0"
7778 "BRBSRC10_EL1\0"
7779 "BRBTGT10_EL1\0"
7780 "BRBINF26_EL1\0"
7781 "BRBSRC26_EL1\0"
7782 "BRBTGT26_EL1\0"
7783 "BRBINF11_EL1\0"
7784 "BRBSRC11_EL1\0"
7785 "BRBTGT11_EL1\0"
7786 "BRBINF27_EL1\0"
7787 "BRBSRC27_EL1\0"
7788 "BRBTGT27_EL1\0"
7789 "BRBINF12_EL1\0"
7790 "BRBSRC12_EL1\0"
7791 "BRBTGT12_EL1\0"
7792 "BRBINF28_EL1\0"
7793 "BRBSRC28_EL1\0"
7794 "BRBTGT28_EL1\0"
7795 "BRBINF13_EL1\0"
7796 "BRBSRC13_EL1\0"
7797 "BRBTGT13_EL1\0"
7798 "BRBINF29_EL1\0"
7799 "BRBSRC29_EL1\0"
7800 "BRBTGT29_EL1\0"
7801 "BRBINF14_EL1\0"
7802 "BRBSRC14_EL1\0"
7803 "BRBTGT14_EL1\0"
7804 "BRBINF30_EL1\0"
7805 "BRBSRC30_EL1\0"
7806 "BRBTGT30_EL1\0"
7807 "BRBINF15_EL1\0"
7808 "BRBSRC15_EL1\0"
7809 "BRBTGT15_EL1\0"
7810 "BRBINF31_EL1\0"
7811 "BRBSRC31_EL1\0"
7812 "BRBTGT31_EL1\0"
7813 "BRBCR_EL1\0"
7814 "BRBFCR_EL1\0"
7815 "BRBTS_EL1\0"
7816 "BRBINFINJ_EL1\0"
7817 "BRBSRCINJ_EL1\0"
7818 "BRBTGTINJ_EL1\0"
7819 "BRBIDR0_EL1\0"
7820 "TEECR32_EL1\0"
7821 "TEEHBR32_EL1\0"
7822 "MDCCSR_EL0\0"
7823 "DBGDTR_EL0\0"
7824 "DBGDTRRX_EL0\0"
7825 "DBGDTRTX_EL0\0"
7826 "SPMCR_EL0\0"
7827 "SPMCNTENSET_EL0\0"
7828 "SPMCNTENCLR_EL0\0"
7829 "SPMOVSCLR_EL0\0"
7830 "SPMZR_EL0\0"
7831 "SPMSELR_EL0\0"
7832 "SPMOVSSET_EL0\0"
7833 "SPMEVCNTR0_EL0\0"
7834 "SPMEVCNTR1_EL0\0"
7835 "SPMEVCNTR2_EL0\0"
7836 "SPMEVCNTR3_EL0\0"
7837 "SPMEVCNTR4_EL0\0"
7838 "SPMEVCNTR5_EL0\0"
7839 "SPMEVCNTR6_EL0\0"
7840 "SPMEVCNTR7_EL0\0"
7841 "SPMEVCNTR8_EL0\0"
7842 "SPMEVCNTR9_EL0\0"
7843 "SPMEVCNTR10_EL0\0"
7844 "SPMEVCNTR11_EL0\0"
7845 "SPMEVCNTR12_EL0\0"
7846 "SPMEVCNTR13_EL0\0"
7847 "SPMEVCNTR14_EL0\0"
7848 "SPMEVCNTR15_EL0\0"
7849 "SPMEVTYPER0_EL0\0"
7850 "SPMEVTYPER1_EL0\0"
7851 "SPMEVTYPER2_EL0\0"
7852 "SPMEVTYPER3_EL0\0"
7853 "SPMEVTYPER4_EL0\0"
7854 "SPMEVTYPER5_EL0\0"
7855 "SPMEVTYPER6_EL0\0"
7856 "SPMEVTYPER7_EL0\0"
7857 "SPMEVTYPER8_EL0\0"
7858 "SPMEVTYPER9_EL0\0"
7859 "SPMEVTYPER10_EL0\0"
7860 "SPMEVTYPER11_EL0\0"
7861 "SPMEVTYPER12_EL0\0"
7862 "SPMEVTYPER13_EL0\0"
7863 "SPMEVTYPER14_EL0\0"
7864 "SPMEVTYPER15_EL0\0"
7865 "SPMEVFILTR0_EL0\0"
7866 "SPMEVFILTR1_EL0\0"
7867 "SPMEVFILTR2_EL0\0"
7868 "SPMEVFILTR3_EL0\0"
7869 "SPMEVFILTR4_EL0\0"
7870 "SPMEVFILTR5_EL0\0"
7871 "SPMEVFILTR6_EL0\0"
7872 "SPMEVFILTR7_EL0\0"
7873 "SPMEVFILTR8_EL0\0"
7874 "SPMEVFILTR9_EL0\0"
7875 "SPMEVFILTR10_EL0\0"
7876 "SPMEVFILTR11_EL0\0"
7877 "SPMEVFILTR12_EL0\0"
7878 "SPMEVFILTR13_EL0\0"
7879 "SPMEVFILTR14_EL0\0"
7880 "SPMEVFILTR15_EL0\0"
7881 "SPMEVFILT2R0_EL0\0"
7882 "SPMEVFILT2R1_EL0\0"
7883 "SPMEVFILT2R2_EL0\0"
7884 "SPMEVFILT2R3_EL0\0"
7885 "SPMEVFILT2R4_EL0\0"
7886 "SPMEVFILT2R5_EL0\0"
7887 "SPMEVFILT2R6_EL0\0"
7888 "SPMEVFILT2R7_EL0\0"
7889 "SPMEVFILT2R8_EL0\0"
7890 "SPMEVFILT2R9_EL0\0"
7891 "SPMEVFILT2R10_EL0\0"
7892 "SPMEVFILT2R11_EL0\0"
7893 "SPMEVFILT2R12_EL0\0"
7894 "SPMEVFILT2R13_EL0\0"
7895 "SPMEVFILT2R14_EL0\0"
7896 "SPMEVFILT2R15_EL0\0"
7897 "DBGVCR32_EL2\0"
7898 "BRBCR_EL2\0"
7899 "SPMACCESSR_EL2\0"
7900 "BRBCR_EL12\0"
7901 "SPMACCESSR_EL12\0"
7902 "SPMACCESSR_EL3\0"
7903 "SPMROOTCR_EL3\0"
7904 "SPMSCR_EL1\0"
7905 "MIDR_EL1\0"
7906 "MPUIR_EL1\0"
7907 "MPIDR_EL1\0"
7908 "REVIDR_EL1\0"
7909 "ID_PFR0_EL1\0"
7910 "ID_PFR1_EL1\0"
7911 "ID_DFR0_EL1\0"
7912 "ID_AFR0_EL1\0"
7913 "ID_MMFR0_EL1\0"
7914 "ID_MMFR1_EL1\0"
7915 "ID_MMFR2_EL1\0"
7916 "ID_MMFR3_EL1\0"
7917 "ID_ISAR0_EL1\0"
7918 "ID_ISAR1_EL1\0"
7919 "ID_ISAR2_EL1\0"
7920 "ID_ISAR3_EL1\0"
7921 "ID_ISAR4_EL1\0"
7922 "ID_ISAR5_EL1\0"
7923 "ID_MMFR4_EL1\0"
7924 "ID_ISAR6_EL1\0"
7925 "MVFR0_EL1\0"
7926 "MVFR1_EL1\0"
7927 "MVFR2_EL1\0"
7928 "ID_PFR2_EL1\0"
7929 "ID_DFR1_EL1\0"
7930 "ID_MMFR5_EL1\0"
7931 "ID_AA64PFR0_EL1\0"
7932 "ID_AA64PFR1_EL1\0"
7933 "ID_AA64PFR2_EL1\0"
7934 "ID_AA64ZFR0_EL1\0"
7935 "ID_AA64SMFR0_EL1\0"
7936 "ID_AA64FPFR0_EL1\0"
7937 "ID_AA64DFR0_EL1\0"
7938 "ID_AA64DFR1_EL1\0"
7939 "ID_AA64DFR2_EL1\0"
7940 "ID_AA64AFR0_EL1\0"
7941 "ID_AA64AFR1_EL1\0"
7942 "ID_AA64ISAR0_EL1\0"
7943 "ID_AA64ISAR1_EL1\0"
7944 "ID_AA64ISAR2_EL1\0"
7945 "ID_AA64ISAR3_EL1\0"
7946 "ID_AA64MMFR0_EL1\0"
7947 "ID_AA64MMFR1_EL1\0"
7948 "ID_AA64MMFR2_EL1\0"
7949 "ID_AA64MMFR3_EL1\0"
7950 "ID_AA64MMFR4_EL1\0"
7951 "SCTLR_EL1\0"
7952 "ACTLR_EL1\0"
7953 "CPACR_EL1\0"
7954 "SCTLR2_EL1\0"
7955 "RGSR_EL1\0"
7956 "GCR_EL1\0"
7957 "ZCR_EL1\0"
7958 "TRFCR_EL1\0"
7959 "TRCITECR_EL1\0"
7960 "SMPRI_EL1\0"
7961 "SMCR_EL1\0"
7962 "SCTLRMASK_EL1\0"
7963 "ACTLRMASK_EL1\0"
7964 "CPACRMASK_EL1\0"
7965 "SCTLR2MASK_EL1\0"
7966 "CPACRALIAS_EL1\0"
7967 "ACTLRALIAS_EL1\0"
7968 "SCTLRALIAS_EL1\0"
7969 "SCTLR2ALIAS_EL1\0"
7970 "TTBR0_EL1\0"
7971 "TTBR1_EL1\0"
7972 "TCR_EL1\0"
7973 "TCR2_EL1\0"
7974 "IRTBRU_EL1\0"
7975 "IRTBRP_EL1\0"
7976 "DPOTBR0_EL1\0"
7977 "DPOTBR1_EL1\0"
7978 "APIAKeyLo_EL1\0"
7979 "APIAKeyHi_EL1\0"
7980 "APIBKeyLo_EL1\0"
7981 "APIBKeyHi_EL1\0"
7982 "LDSTT_EL1\0"
7983 "APDAKeyLo_EL1\0"
7984 "APDAKeyHi_EL1\0"
7985 "APDBKeyLo_EL1\0"
7986 "APDBKeyHi_EL1\0"
7987 "TPMIN0_EL1\0"
7988 "TPMAX0_EL1\0"
7989 "TPMIN1_EL1\0"
7990 "TPMAX1_EL1\0"
7991 "APGAKeyLo_EL1\0"
7992 "APGAKeyHi_EL1\0"
7993 "GCSCR_EL1\0"
7994 "GCSPR_EL1\0"
7995 "GCSCRE0_EL1\0"
7996 "TCRMASK_EL1\0"
7997 "TCR2MASK_EL1\0"
7998 "TCRALIAS_EL1\0"
7999 "TCR2ALIAS_EL1\0"
8000 "FGDTP0_EL1\0"
8001 "FGDTP1_EL1\0"
8002 "FGDTP2_EL1\0"
8003 "FGDTP3_EL1\0"
8004 "FGDTP4_EL1\0"
8005 "FGDTP5_EL1\0"
8006 "FGDTP6_EL1\0"
8007 "FGDTP7_EL1\0"
8008 "FGDTP8_EL1\0"
8009 "FGDTP9_EL1\0"
8010 "FGDTP10_EL1\0"
8011 "FGDTP11_EL1\0"
8012 "FGDTP12_EL1\0"
8013 "FGDTP13_EL1\0"
8014 "FGDTP14_EL1\0"
8015 "FGDTP15_EL1\0"
8016 "FGDTU0_EL1\0"
8017 "FGDTU1_EL1\0"
8018 "FGDTU2_EL1\0"
8019 "FGDTU3_EL1\0"
8020 "FGDTU4_EL1\0"
8021 "FGDTU5_EL1\0"
8022 "FGDTU6_EL1\0"
8023 "FGDTU7_EL1\0"
8024 "FGDTU8_EL1\0"
8025 "FGDTU9_EL1\0"
8026 "FGDTU10_EL1\0"
8027 "FGDTU11_EL1\0"
8028 "FGDTU12_EL1\0"
8029 "FGDTU13_EL1\0"
8030 "FGDTU14_EL1\0"
8031 "FGDTU15_EL1\0"
8032 "AFGDTP0_EL1\0"
8033 "AFGDTP1_EL1\0"
8034 "AFGDTP2_EL1\0"
8035 "AFGDTP3_EL1\0"
8036 "AFGDTP4_EL1\0"
8037 "AFGDTP5_EL1\0"
8038 "AFGDTP6_EL1\0"
8039 "AFGDTP7_EL1\0"
8040 "AFGDTP8_EL1\0"
8041 "AFGDTP9_EL1\0"
8042 "AFGDTP10_EL1\0"
8043 "AFGDTP11_EL1\0"
8044 "AFGDTP12_EL1\0"
8045 "AFGDTP13_EL1\0"
8046 "AFGDTP14_EL1\0"
8047 "AFGDTP15_EL1\0"
8048 "AFGDTU0_EL1\0"
8049 "AFGDTU1_EL1\0"
8050 "AFGDTU2_EL1\0"
8051 "AFGDTU3_EL1\0"
8052 "AFGDTU4_EL1\0"
8053 "AFGDTU5_EL1\0"
8054 "AFGDTU6_EL1\0"
8055 "AFGDTU7_EL1\0"
8056 "AFGDTU8_EL1\0"
8057 "AFGDTU9_EL1\0"
8058 "AFGDTU10_EL1\0"
8059 "AFGDTU11_EL1\0"
8060 "AFGDTU12_EL1\0"
8061 "AFGDTU13_EL1\0"
8062 "AFGDTU14_EL1\0"
8063 "AFGDTU15_EL1\0"
8064 "SPSR_EL1\0"
8065 "ELR_EL1\0"
8066 "STINDEX_EL1\0"
8067 "TINDEX_EL1\0"
8068 "SP_EL0\0"
8069 "SPSel\0"
8070 "CurrentEL\0"
8071 "PAN\0"
8072 "UAO\0"
8073 "ALLINT\0"
8074 "PM\0"
8075 "ICC_PMR_EL1\0"
8076 "AFSR0_EL1\0"
8077 "AFSR1_EL1\0"
8078 "ESR_EL1\0"
8079 "ERRIDR_EL1\0"
8080 "ERRSELR_EL1\0"
8081 "ERXGSR_EL1\0"
8082 "ERXFR_EL1\0"
8083 "ERXCTLR_EL1\0"
8084 "ERXSTATUS_EL1\0"
8085 "ERXADDR_EL1\0"
8086 "ERXPFGF_EL1\0"
8087 "ERXPFGCTL_EL1\0"
8088 "ERXPFGCDN_EL1\0"
8089 "ERXMISC0_EL1\0"
8090 "ERXMISC1_EL1\0"
8091 "ERXMISC2_EL1\0"
8092 "ERXMISC3_EL1\0"
8093 "TFSR_EL1\0"
8094 "TFSRE0_EL1\0"
8095 "FAR_EL1\0"
8096 "PFAR_EL1\0"
8097 "PRENR_EL1\0"
8098 "PRSELR_EL1\0"
8099 "PRBAR_EL1\0"
8100 "PRLAR_EL1\0"
8101 "PRBAR1_EL1\0"
8102 "PRLAR1_EL1\0"
8103 "PRBAR2_EL1\0"
8104 "PRLAR2_EL1\0"
8105 "PRBAR3_EL1\0"
8106 "PRLAR3_EL1\0"
8107 "PRBAR4_EL1\0"
8108 "PRLAR4_EL1\0"
8109 "PRBAR5_EL1\0"
8110 "PRLAR5_EL1\0"
8111 "PRBAR6_EL1\0"
8112 "PRLAR6_EL1\0"
8113 "PRBAR7_EL1\0"
8114 "PRLAR7_EL1\0"
8115 "PRBAR8_EL1\0"
8116 "PRLAR8_EL1\0"
8117 "PRBAR9_EL1\0"
8118 "PRLAR9_EL1\0"
8119 "PRBAR10_EL1\0"
8120 "PRLAR10_EL1\0"
8121 "PRBAR11_EL1\0"
8122 "PRLAR11_EL1\0"
8123 "PRBAR12_EL1\0"
8124 "PRLAR12_EL1\0"
8125 "PRBAR13_EL1\0"
8126 "PRLAR13_EL1\0"
8127 "PRBAR14_EL1\0"
8128 "PRLAR14_EL1\0"
8129 "PRBAR15_EL1\0"
8130 "PRLAR15_EL1\0"
8131 "PAR_EL1\0"
8132 "PMSCR_EL1\0"
8133 "PMSNEVFR_EL1\0"
8134 "PMSICR_EL1\0"
8135 "PMSIRR_EL1\0"
8136 "PMSFCR_EL1\0"
8137 "PMSEVFR_EL1\0"
8138 "PMSLATFR_EL1\0"
8139 "PMSIDR_EL1\0"
8140 "PMBLIMITR_EL1\0"
8141 "PMBPTR_EL1\0"
8142 "PMBSR_EL1\0"
8143 "PMSDSFR_EL1\0"
8144 "PMBMAR_EL1\0"
8145 "PMBIDR_EL1\0"
8146 "TRBLIMITR_EL1\0"
8147 "TRBPTR_EL1\0"
8148 "TRBBASER_EL1\0"
8149 "TRBSR_EL1\0"
8150 "TRBMAR_EL1\0"
8151 "TRBMPAM_EL1\0"
8152 "TRBTRG_EL1\0"
8153 "TRBIDR_EL1\0"
8154 "PMSSCR_EL1\0"
8155 "PMINTENSET_EL1\0"
8156 "PMINTENCLR_EL1\0"
8157 "PMUACR_EL1\0"
8158 "PMECR_EL1\0"
8159 "PMMIR_EL1\0"
8160 "PMIAR_EL1\0"
8161 "MAIR_EL1\0"
8162 "MAIR2_EL1\0"
8163 "PIRE0_EL1\0"
8164 "PIR_EL1\0"
8165 "POR_EL1\0"
8166 "S2POR_EL1\0"
8167 "TTTBRU_EL1\0"
8168 "TTTBRP_EL1\0"
8169 "AMAIR_EL1\0"
8170 "AMAIR2_EL1\0"
8171 "LORSA_EL1\0"
8172 "LOREA_EL1\0"
8173 "LORN_EL1\0"
8174 "LORC_EL1\0"
8175 "MPAMIDR_EL1\0"
8176 "MPAMBWIDR_EL1\0"
8177 "TLBIDIDR_EL1\0"
8178 "LORID_EL1\0"
8179 "MPAM1_EL1\0"
8180 "MPAM0_EL1\0"
8181 "MPAMCTL_EL1\0"
8182 "MPAMSM_EL1\0"
8183 "MPAMBW1_EL1\0"
8184 "MPAMBW0_EL1\0"
8185 "MPAMBWSM_EL1\0"
8186 "VBAR_EL1\0"
8187 "RVBAR_EL1\0"
8188 "RMR_EL1\0"
8189 "ISR_EL1\0"
8190 "DISR_EL1\0"
8191 "ICC_IAR0_EL1\0"
8192 "ICC_EOIR0_EL1\0"
8193 "ICC_HPPIR0_EL1\0"
8194 "ICC_BPR0_EL1\0"
8195 "ICC_AP0R0_EL1\0"
8196 "ICC_AP0R1_EL1\0"
8197 "ICC_AP0R2_EL1\0"
8198 "ICC_AP0R3_EL1\0"
8199 "ICC_AP1R0_EL1\0"
8200 "ICC_AP1R1_EL1\0"
8201 "ICC_AP1R2_EL1\0"
8202 "ICC_AP1R3_EL1\0"
8203 "ICC_NMIAR1_EL1\0"
8204 "ICC_PPI_HMR0_EL1\0"
8205 "ICV_PPI_HMR0_EL1\0"
8206 "ICC_PPI_HMR1_EL1\0"
8207 "ICV_PPI_HMR1_EL1\0"
8208 "ICC_IDR0_EL1\0"
8209 "ICC_HPPIR_EL1\0"
8210 "ICV_HPPIR_EL1\0"
8211 "ICC_ICSR_EL1\0"
8212 "ICC_IAFFIDR_EL1\0"
8213 "ICC_PPI_ENABLER0_EL1\0"
8214 "ICV_PPI_ENABLER0_EL1\0"
8215 "ICC_PPI_ENABLER1_EL1\0"
8216 "ICV_PPI_ENABLER1_EL1\0"
8217 "ICC_DIR_EL1\0"
8218 "ICC_RPR_EL1\0"
8219 "ICC_SGI1R_EL1\0"
8220 "ICC_ASGI1R_EL1\0"
8221 "ICC_SGI0R_EL1\0"
8222 "ICC_IAR1_EL1\0"
8223 "ICC_EOIR1_EL1\0"
8224 "ICC_HPPIR1_EL1\0"
8225 "ICC_BPR1_EL1\0"
8226 "ICC_CTLR_EL1\0"
8227 "ICC_SRE_EL1\0"
8228 "ICC_IGRPEN0_EL1\0"
8229 "ICC_IGRPEN1_EL1\0"
8230 "ICC_PPI_CACTIVER0_EL1\0"
8231 "ICV_PPI_CACTIVER0_EL1\0"
8232 "ICC_PPI_CACTIVER1_EL1\0"
8233 "ICV_PPI_CACTIVER1_EL1\0"
8234 "ICC_PPI_SACTIVER0_EL1\0"
8235 "ICV_PPI_SACTIVER0_EL1\0"
8236 "ICC_PPI_SACTIVER1_EL1\0"
8237 "ICV_PPI_SACTIVER1_EL1\0"
8238 "ICC_PPI_CPENDR0_EL1\0"
8239 "ICV_PPI_CPENDR0_EL1\0"
8240 "ICC_PPI_CPENDR1_EL1\0"
8241 "ICV_PPI_CPENDR1_EL1\0"
8242 "ICC_PPI_SPENDR0_EL1\0"
8243 "ICV_PPI_SPENDR0_EL1\0"
8244 "ICC_PPI_SPENDR1_EL1\0"
8245 "ICV_PPI_SPENDR1_EL1\0"
8246 "ICC_PPI_PRIORITYR0_EL1\0"
8247 "ICV_PPI_PRIORITYR0_EL1\0"
8248 "ICC_PPI_PRIORITYR1_EL1\0"
8249 "ICV_PPI_PRIORITYR1_EL1\0"
8250 "ICC_PPI_PRIORITYR2_EL1\0"
8251 "ICV_PPI_PRIORITYR2_EL1\0"
8252 "ICC_PPI_PRIORITYR3_EL1\0"
8253 "ICV_PPI_PRIORITYR3_EL1\0"
8254 "ICC_PPI_PRIORITYR4_EL1\0"
8255 "ICV_PPI_PRIORITYR4_EL1\0"
8256 "ICC_PPI_PRIORITYR5_EL1\0"
8257 "ICV_PPI_PRIORITYR5_EL1\0"
8258 "ICC_PPI_PRIORITYR6_EL1\0"
8259 "ICV_PPI_PRIORITYR6_EL1\0"
8260 "ICC_PPI_PRIORITYR7_EL1\0"
8261 "ICV_PPI_PRIORITYR7_EL1\0"
8262 "ICC_PPI_PRIORITYR8_EL1\0"
8263 "ICV_PPI_PRIORITYR8_EL1\0"
8264 "ICC_PPI_PRIORITYR9_EL1\0"
8265 "ICV_PPI_PRIORITYR9_EL1\0"
8266 "ICC_PPI_PRIORITYR10_EL1\0"
8267 "ICV_PPI_PRIORITYR10_EL1\0"
8268 "ICC_PPI_PRIORITYR11_EL1\0"
8269 "ICV_PPI_PRIORITYR11_EL1\0"
8270 "ICC_PPI_PRIORITYR12_EL1\0"
8271 "ICV_PPI_PRIORITYR12_EL1\0"
8272 "ICC_PPI_PRIORITYR13_EL1\0"
8273 "ICV_PPI_PRIORITYR13_EL1\0"
8274 "ICC_PPI_PRIORITYR14_EL1\0"
8275 "ICV_PPI_PRIORITYR14_EL1\0"
8276 "ICC_PPI_PRIORITYR15_EL1\0"
8277 "ICV_PPI_PRIORITYR15_EL1\0"
8278 "TPIDR3_EL1\0"
8279 "CONTEXTIDR_EL1\0"
8280 "RCWSMASK_EL1\0"
8281 "TPIDR_EL1\0"
8282 "ACCDATA_EL1\0"
8283 "RCWMASK_EL1\0"
8284 "SCXTNUM_EL1\0"
8285 "CNTKCTL_EL1\0"
8286 "CCSIDR_EL1\0"
8287 "CLIDR_EL1\0"
8288 "CCSIDR2_EL1\0"
8289 "GMID_EL1\0"
8290 "SMIDR_EL1\0"
8291 "AIDR_EL1\0"
8292 "ICC_APR_EL1\0"
8293 "ICV_APR_EL1\0"
8294 "ICC_CR0_EL1\0"
8295 "ICV_CR0_EL1\0"
8296 "ICC_PCR_EL1\0"
8297 "ICV_PCR_EL1\0"
8298 "ICC_HAPR_EL1\0"
8299 "ICV_HAPR_EL1\0"
8300 "CSSELR_EL1\0"
8301 "CTR_EL0\0"
8302 "DCZID_EL0\0"
8303 "TPMIN0_EL0\0"
8304 "TPMAX0_EL0\0"
8305 "TPMIN1_EL0\0"
8306 "TPMAX1_EL0\0"
8307 "RNDR\0"
8308 "RNDRRS\0"
8309 "GCSPR_EL0\0"
8310 "TINDEX_EL0\0"
8311 "NZCV\0"
8312 "DAIF\0"
8313 "SVCR\0"
8314 "DIT\0"
8315 "SSBS\0"
8316 "TCO\0"
8317 "FPCR\0"
8318 "FPSR\0"
8319 "FPMR\0"
8320 "DSPSR_EL0\0"
8321 "DLR_EL0\0"
8322 "DPOCR_EL0\0"
8323 "PMICNTR_EL0\0"
8324 "PMICFILTR_EL0\0"
8325 "PMCR_EL0\0"
8326 "PMCNTENSET_EL0\0"
8327 "PMCNTENCLR_EL0\0"
8328 "PMOVSCLR_EL0\0"
8329 "PMSWINC_EL0\0"
8330 "PMSELR_EL0\0"
8331 "PMCEID0_EL0\0"
8332 "PMCEID1_EL0\0"
8333 "PMCCNTR_EL0\0"
8334 "PMXEVTYPER_EL0\0"
8335 "PMXEVCNTR_EL0\0"
8336 "PMZR_EL0\0"
8337 "PMUSERENR_EL0\0"
8338 "PMOVSSET_EL0\0"
8339 "POR_EL0\0"
8340 "TPIDR3_EL0\0"
8341 "TPIDR_EL0\0"
8342 "TPIDRRO_EL0\0"
8343 "TPIDR2_EL0\0"
8344 "SCXTNUM_EL0\0"
8345 "AMCR_EL0\0"
8346 "AMCFGR_EL0\0"
8347 "AMCGCR_EL0\0"
8348 "AMUSERENR_EL0\0"
8349 "AMCNTENCLR0_EL0\0"
8350 "AMCNTENSET0_EL0\0"
8351 "AMCG1IDR_EL0\0"
8352 "AMCNTENCLR1_EL0\0"
8353 "AMCNTENSET1_EL0\0"
8354 "AMEVCNTR00_EL0\0"
8355 "AMEVCNTR01_EL0\0"
8356 "AMEVCNTR02_EL0\0"
8357 "AMEVCNTR03_EL0\0"
8358 "AMEVTYPER00_EL0\0"
8359 "AMEVTYPER01_EL0\0"
8360 "AMEVTYPER02_EL0\0"
8361 "AMEVTYPER03_EL0\0"
8362 "AMEVCNTR10_EL0\0"
8363 "AMEVCNTR11_EL0\0"
8364 "AMEVCNTR12_EL0\0"
8365 "AMEVCNTR13_EL0\0"
8366 "AMEVCNTR14_EL0\0"
8367 "AMEVCNTR15_EL0\0"
8368 "AMEVCNTR16_EL0\0"
8369 "AMEVCNTR17_EL0\0"
8370 "AMEVCNTR18_EL0\0"
8371 "AMEVCNTR19_EL0\0"
8372 "AMEVCNTR110_EL0\0"
8373 "AMEVCNTR111_EL0\0"
8374 "AMEVCNTR112_EL0\0"
8375 "AMEVCNTR113_EL0\0"
8376 "AMEVCNTR114_EL0\0"
8377 "AMEVCNTR115_EL0\0"
8378 "AMEVTYPER10_EL0\0"
8379 "AMEVTYPER11_EL0\0"
8380 "AMEVTYPER12_EL0\0"
8381 "AMEVTYPER13_EL0\0"
8382 "AMEVTYPER14_EL0\0"
8383 "AMEVTYPER15_EL0\0"
8384 "AMEVTYPER16_EL0\0"
8385 "AMEVTYPER17_EL0\0"
8386 "AMEVTYPER18_EL0\0"
8387 "AMEVTYPER19_EL0\0"
8388 "AMEVTYPER110_EL0\0"
8389 "AMEVTYPER111_EL0\0"
8390 "AMEVTYPER112_EL0\0"
8391 "AMEVTYPER113_EL0\0"
8392 "AMEVTYPER114_EL0\0"
8393 "AMEVTYPER115_EL0\0"
8394 "CNTFRQ_EL0\0"
8395 "CNTPCT_EL0\0"
8396 "CNTVCT_EL0\0"
8397 "CNTPCTSS_EL0\0"
8398 "CNTVCTSS_EL0\0"
8399 "CNTP_TVAL_EL0\0"
8400 "CNTP_CTL_EL0\0"
8401 "CNTP_CVAL_EL0\0"
8402 "CNTV_TVAL_EL0\0"
8403 "CNTV_CTL_EL0\0"
8404 "CNTV_CVAL_EL0\0"
8405 "PMEVCNTR0_EL0\0"
8406 "PMEVCNTR1_EL0\0"
8407 "PMEVCNTR2_EL0\0"
8408 "PMEVCNTR3_EL0\0"
8409 "PMEVCNTR4_EL0\0"
8410 "PMEVCNTR5_EL0\0"
8411 "PMEVCNTR6_EL0\0"
8412 "PMEVCNTR7_EL0\0"
8413 "PMEVCNTR8_EL0\0"
8414 "PMEVCNTR9_EL0\0"
8415 "PMEVCNTR10_EL0\0"
8416 "PMEVCNTR11_EL0\0"
8417 "PMEVCNTR12_EL0\0"
8418 "PMEVCNTR13_EL0\0"
8419 "PMEVCNTR14_EL0\0"
8420 "PMEVCNTR15_EL0\0"
8421 "PMEVCNTR16_EL0\0"
8422 "PMEVCNTR17_EL0\0"
8423 "PMEVCNTR18_EL0\0"
8424 "PMEVCNTR19_EL0\0"
8425 "PMEVCNTR20_EL0\0"
8426 "PMEVCNTR21_EL0\0"
8427 "PMEVCNTR22_EL0\0"
8428 "PMEVCNTR23_EL0\0"
8429 "PMEVCNTR24_EL0\0"
8430 "PMEVCNTR25_EL0\0"
8431 "PMEVCNTR26_EL0\0"
8432 "PMEVCNTR27_EL0\0"
8433 "PMEVCNTR28_EL0\0"
8434 "PMEVCNTR29_EL0\0"
8435 "PMEVCNTR30_EL0\0"
8436 "PMEVTYPER0_EL0\0"
8437 "PMEVTYPER1_EL0\0"
8438 "PMEVTYPER2_EL0\0"
8439 "PMEVTYPER3_EL0\0"
8440 "PMEVTYPER4_EL0\0"
8441 "PMEVTYPER5_EL0\0"
8442 "PMEVTYPER6_EL0\0"
8443 "PMEVTYPER7_EL0\0"
8444 "PMEVTYPER8_EL0\0"
8445 "PMEVTYPER9_EL0\0"
8446 "PMEVTYPER10_EL0\0"
8447 "PMEVTYPER11_EL0\0"
8448 "PMEVTYPER12_EL0\0"
8449 "PMEVTYPER13_EL0\0"
8450 "PMEVTYPER14_EL0\0"
8451 "PMEVTYPER15_EL0\0"
8452 "PMEVTYPER16_EL0\0"
8453 "PMEVTYPER17_EL0\0"
8454 "PMEVTYPER18_EL0\0"
8455 "PMEVTYPER19_EL0\0"
8456 "PMEVTYPER20_EL0\0"
8457 "PMEVTYPER21_EL0\0"
8458 "PMEVTYPER22_EL0\0"
8459 "PMEVTYPER23_EL0\0"
8460 "PMEVTYPER24_EL0\0"
8461 "PMEVTYPER25_EL0\0"
8462 "PMEVTYPER26_EL0\0"
8463 "PMEVTYPER27_EL0\0"
8464 "PMEVTYPER28_EL0\0"
8465 "PMEVTYPER29_EL0\0"
8466 "PMEVTYPER30_EL0\0"
8467 "PMCCFILTR_EL0\0"
8468 "VPIDR_EL2\0"
8469 "MPUIR_EL2\0"
8470 "VMPIDR_EL2\0"
8471 "SCTLR_EL2\0"
8472 "ACTLR_EL2\0"
8473 "SCTLR2_EL2\0"
8474 "HCR_EL2\0"
8475 "MDCR_EL2\0"
8476 "CPTR_EL2\0"
8477 "HSTR_EL2\0"
8478 "HFGRTR_EL2\0"
8479 "HFGWTR_EL2\0"
8480 "HFGITR_EL2\0"
8481 "HACR_EL2\0"
8482 "ZCR_EL2\0"
8483 "TRFCR_EL2\0"
8484 "HCRX_EL2\0"
8485 "TRCITECR_EL2\0"
8486 "SMPRIMAP_EL2\0"
8487 "SMCR_EL2\0"
8488 "SDER32_EL2\0"
8489 "SCTLRMASK_EL2\0"
8490 "ACTLRMASK_EL2\0"
8491 "CPTRMASK_EL2\0"
8492 "SCTLR2MASK_EL2\0"
8493 "NVHCR_EL2\0"
8494 "NVHCRX_EL2\0"
8495 "NVHCRMASK_EL2\0"
8496 "NVHCRXMASK_EL2\0"
8497 "HCRMASK_EL2\0"
8498 "HCRXMASK_EL2\0"
8499 "TTBR0_EL2\0"
8500 "VSCTLR_EL2\0"
8501 "TTBR1_EL2\0"
8502 "TCR_EL2\0"
8503 "TCR2_EL2\0"
8504 "IRTBRU_EL2\0"
8505 "IRTBRP_EL2\0"
8506 "DPOTBR0_EL2\0"
8507 "DPOTBR1_EL2\0"
8508 "VTTBR_EL2\0"
8509 "VTCR_EL2\0"
8510 "LDSTT_EL2\0"
8511 "VNCR_EL2\0"
8512 "VNCCR_EL2\0"
8513 "TPMIN0_EL2\0"
8514 "TPMAX0_EL2\0"
8515 "TPMIN1_EL2\0"
8516 "TPMAX1_EL2\0"
8517 "HDBSSBR_EL2\0"
8518 "HDBSSPROD_EL2\0"
8519 "HACDBSBR_EL2\0"
8520 "HACDBSCONS_EL2\0"
8521 "GCSCR_EL2\0"
8522 "GCSPR_EL2\0"
8523 "VSTTBR_EL2\0"
8524 "VSTCR_EL2\0"
8525 "TCRMASK_EL2\0"
8526 "TCR2MASK_EL2\0"
8527 "VTLBID0_EL2\0"
8528 "VTLBID1_EL2\0"
8529 "VTLBID2_EL2\0"
8530 "VTLBID3_EL2\0"
8531 "VTLBIDOS0_EL2\0"
8532 "VTLBIDOS1_EL2\0"
8533 "VTLBIDOS2_EL2\0"
8534 "VTLBIDOS3_EL2\0"
8535 "DACR32_EL2\0"
8536 "HDFGRTR2_EL2\0"
8537 "HDFGWTR2_EL2\0"
8538 "HFGRTR2_EL2\0"
8539 "HFGWTR2_EL2\0"
8540 "HDFGRTR_EL2\0"
8541 "HDFGWTR_EL2\0"
8542 "HAFGRTR_EL2\0"
8543 "HFGITR2_EL2\0"
8544 "FGDTP0_EL2\0"
8545 "FGDTP1_EL2\0"
8546 "FGDTP2_EL2\0"
8547 "FGDTP3_EL2\0"
8548 "FGDTP4_EL2\0"
8549 "FGDTP5_EL2\0"
8550 "FGDTP6_EL2\0"
8551 "FGDTP7_EL2\0"
8552 "FGDTP8_EL2\0"
8553 "FGDTP9_EL2\0"
8554 "FGDTP10_EL2\0"
8555 "FGDTP11_EL2\0"
8556 "FGDTP12_EL2\0"
8557 "FGDTP13_EL2\0"
8558 "FGDTP14_EL2\0"
8559 "FGDTP15_EL2\0"
8560 "FGDTU0_EL2\0"
8561 "FGDTU1_EL2\0"
8562 "FGDTU2_EL2\0"
8563 "FGDTU3_EL2\0"
8564 "FGDTU4_EL2\0"
8565 "FGDTU5_EL2\0"
8566 "FGDTU6_EL2\0"
8567 "FGDTU7_EL2\0"
8568 "FGDTU8_EL2\0"
8569 "FGDTU9_EL2\0"
8570 "FGDTU10_EL2\0"
8571 "FGDTU11_EL2\0"
8572 "FGDTU12_EL2\0"
8573 "FGDTU13_EL2\0"
8574 "FGDTU14_EL2\0"
8575 "FGDTU15_EL2\0"
8576 "AFGDTP0_EL2\0"
8577 "AFGDTP1_EL2\0"
8578 "AFGDTP2_EL2\0"
8579 "AFGDTP3_EL2\0"
8580 "AFGDTP4_EL2\0"
8581 "AFGDTP5_EL2\0"
8582 "AFGDTP6_EL2\0"
8583 "AFGDTP7_EL2\0"
8584 "AFGDTP8_EL2\0"
8585 "AFGDTP9_EL2\0"
8586 "AFGDTP10_EL2\0"
8587 "AFGDTP11_EL2\0"
8588 "AFGDTP12_EL2\0"
8589 "AFGDTP13_EL2\0"
8590 "AFGDTP14_EL2\0"
8591 "AFGDTP15_EL2\0"
8592 "AFGDTU0_EL2\0"
8593 "AFGDTU1_EL2\0"
8594 "AFGDTU2_EL2\0"
8595 "AFGDTU3_EL2\0"
8596 "AFGDTU4_EL2\0"
8597 "AFGDTU5_EL2\0"
8598 "AFGDTU6_EL2\0"
8599 "AFGDTU7_EL2\0"
8600 "AFGDTU8_EL2\0"
8601 "AFGDTU9_EL2\0"
8602 "AFGDTU10_EL2\0"
8603 "AFGDTU11_EL2\0"
8604 "AFGDTU12_EL2\0"
8605 "AFGDTU13_EL2\0"
8606 "AFGDTU14_EL2\0"
8607 "AFGDTU15_EL2\0"
8608 "SPSR_EL2\0"
8609 "ELR_EL2\0"
8610 "STINDEX_EL2\0"
8611 "TINDEX_EL2\0"
8612 "SP_EL1\0"
8613 "SPSR_irq\0"
8614 "SPSR_abt\0"
8615 "SPSR_und\0"
8616 "SPSR_fiq\0"
8617 "IFSR32_EL2\0"
8618 "AFSR0_EL2\0"
8619 "AFSR1_EL2\0"
8620 "ESR_EL2\0"
8621 "VSESR_EL2\0"
8622 "FPEXC32_EL2\0"
8623 "TFSR_EL2\0"
8624 "FAR_EL2\0"
8625 "HPFAR_EL2\0"
8626 "PFAR_EL2\0"
8627 "PRENR_EL2\0"
8628 "PRSELR_EL2\0"
8629 "PRBAR_EL2\0"
8630 "PRLAR_EL2\0"
8631 "PRBAR1_EL2\0"
8632 "PRLAR1_EL2\0"
8633 "PRBAR2_EL2\0"
8634 "PRLAR2_EL2\0"
8635 "PRBAR3_EL2\0"
8636 "PRLAR3_EL2\0"
8637 "PRBAR4_EL2\0"
8638 "PRLAR4_EL2\0"
8639 "PRBAR5_EL2\0"
8640 "PRLAR5_EL2\0"
8641 "PRBAR6_EL2\0"
8642 "PRLAR6_EL2\0"
8643 "PRBAR7_EL2\0"
8644 "PRLAR7_EL2\0"
8645 "PRBAR8_EL2\0"
8646 "PRLAR8_EL2\0"
8647 "PRBAR9_EL2\0"
8648 "PRLAR9_EL2\0"
8649 "PRBAR10_EL2\0"
8650 "PRLAR10_EL2\0"
8651 "PRBAR11_EL2\0"
8652 "PRLAR11_EL2\0"
8653 "PRBAR12_EL2\0"
8654 "PRLAR12_EL2\0"
8655 "PRBAR13_EL2\0"
8656 "PRLAR13_EL2\0"
8657 "PRBAR14_EL2\0"
8658 "PRLAR14_EL2\0"
8659 "PRBAR15_EL2\0"
8660 "PRLAR15_EL2\0"
8661 "PMSCR_EL2\0"
8662 "PMBSR_EL2\0"
8663 "TRBSR_EL2\0"
8664 "MAIR2_EL2\0"
8665 "MAIR_EL2\0"
8666 "PIRE0_EL2\0"
8667 "PIR_EL2\0"
8668 "POR_EL2\0"
8669 "S2PIR_EL2\0"
8670 "TTTBRU_EL2\0"
8671 "TTTBRP_EL2\0"
8672 "AMAIR_EL2\0"
8673 "AMAIR2_EL2\0"
8674 "MPAMHCR_EL2\0"
8675 "MPAMVPMV_EL2\0"
8676 "MPAM2_EL2\0"
8677 "MPAMCTL_EL2\0"
8678 "MPAMBW2_EL2\0"
8679 "MPAMBWCAP_EL2\0"
8680 "MPAMVPM0_EL2\0"
8681 "MPAMVPM1_EL2\0"
8682 "MPAMVPM2_EL2\0"
8683 "MPAMVPM3_EL2\0"
8684 "MPAMVPM4_EL2\0"
8685 "MPAMVPM5_EL2\0"
8686 "MPAMVPM6_EL2\0"
8687 "MPAMVPM7_EL2\0"
8688 "MECID_P0_EL2\0"
8689 "MECID_A0_EL2\0"
8690 "MECID_P1_EL2\0"
8691 "MECID_A1_EL2\0"
8692 "MECIDR_EL2\0"
8693 "VMECID_P_EL2\0"
8694 "VMECID_A_EL2\0"
8695 "VBAR_EL2\0"
8696 "RVBAR_EL2\0"
8697 "RMR_EL2\0"
8698 "VDISR_EL2\0"
8699 "ICH_PPI_HVIR0_EL2\0"
8700 "ICH_PPI_HVIR1_EL2\0"
8701 "ICH_AP0R0_EL2\0"
8702 "ICH_AP0R1_EL2\0"
8703 "ICH_AP0R2_EL2\0"
8704 "ICH_AP0R3_EL2\0"
8705 "ICH_APR_EL2\0"
8706 "ICH_HPPIR_EL2\0"
8707 "ICH_AP1R0_EL2\0"
8708 "ICH_AP1R1_EL2\0"
8709 "ICH_AP1R2_EL2\0"
8710 "ICH_AP1R3_EL2\0"
8711 "ICH_HFGRTR_EL2\0"
8712 "ICC_SRE_EL2\0"
8713 "ICH_HFGWTR_EL2\0"
8714 "ICH_HFGITR_EL2\0"
8715 "ICH_PPI_DVIR0_EL2\0"
8716 "ICH_PPI_DVIR1_EL2\0"
8717 "ICH_PPI_ENABLER0_EL2\0"
8718 "ICH_PPI_ENABLER1_EL2\0"
8719 "ICH_PPI_PENDR0_EL2\0"
8720 "ICH_PPI_PENDR1_EL2\0"
8721 "ICH_PPI_ACTIVER0_EL2\0"
8722 "ICH_PPI_ACTIVER1_EL2\0"
8723 "ICH_HCR_EL2\0"
8724 "ICH_VTR_EL2\0"
8725 "ICH_MISR_EL2\0"
8726 "ICH_EISR_EL2\0"
8727 "ICH_VCTLR_EL2\0"
8728 "ICH_ELRSR_EL2\0"
8729 "ICH_CONTEXTR_EL2\0"
8730 "ICH_VMCR_EL2\0"
8731 "ICH_LR0_EL2\0"
8732 "ICH_LR1_EL2\0"
8733 "ICH_LR2_EL2\0"
8734 "ICH_LR3_EL2\0"
8735 "ICH_LR4_EL2\0"
8736 "ICH_LR5_EL2\0"
8737 "ICH_LR6_EL2\0"
8738 "ICH_LR7_EL2\0"
8739 "ICH_LR8_EL2\0"
8740 "ICH_LR9_EL2\0"
8741 "ICH_LR10_EL2\0"
8742 "ICH_LR11_EL2\0"
8743 "ICH_LR12_EL2\0"
8744 "ICH_LR13_EL2\0"
8745 "ICH_LR14_EL2\0"
8746 "ICH_LR15_EL2\0"
8747 "ICH_PPI_PRIORITYR0_EL2\0"
8748 "ICH_PPI_PRIORITYR1_EL2\0"
8749 "ICH_PPI_PRIORITYR2_EL2\0"
8750 "ICH_PPI_PRIORITYR3_EL2\0"
8751 "ICH_PPI_PRIORITYR4_EL2\0"
8752 "ICH_PPI_PRIORITYR5_EL2\0"
8753 "ICH_PPI_PRIORITYR6_EL2\0"
8754 "ICH_PPI_PRIORITYR7_EL2\0"
8755 "ICH_PPI_PRIORITYR8_EL2\0"
8756 "ICH_PPI_PRIORITYR9_EL2\0"
8757 "ICH_PPI_PRIORITYR10_EL2\0"
8758 "ICH_PPI_PRIORITYR11_EL2\0"
8759 "ICH_PPI_PRIORITYR12_EL2\0"
8760 "ICH_PPI_PRIORITYR13_EL2\0"
8761 "ICH_PPI_PRIORITYR14_EL2\0"
8762 "ICH_PPI_PRIORITYR15_EL2\0"
8763 "TPIDR3_EL2\0"
8764 "CONTEXTIDR_EL2\0"
8765 "TPIDR_EL2\0"
8766 "SCXTNUM_EL2\0"
8767 "AMEVCNTVOFF00_EL2\0"
8768 "AMEVCNTVOFF01_EL2\0"
8769 "AMEVCNTVOFF02_EL2\0"
8770 "AMEVCNTVOFF03_EL2\0"
8771 "AMEVCNTVOFF04_EL2\0"
8772 "AMEVCNTVOFF05_EL2\0"
8773 "AMEVCNTVOFF06_EL2\0"
8774 "AMEVCNTVOFF07_EL2\0"
8775 "AMEVCNTVOFF08_EL2\0"
8776 "AMEVCNTVOFF09_EL2\0"
8777 "AMEVCNTVOFF010_EL2\0"
8778 "AMEVCNTVOFF011_EL2\0"
8779 "AMEVCNTVOFF012_EL2\0"
8780 "AMEVCNTVOFF013_EL2\0"
8781 "AMEVCNTVOFF014_EL2\0"
8782 "AMEVCNTVOFF015_EL2\0"
8783 "AMEVCNTVOFF10_EL2\0"
8784 "AMEVCNTVOFF11_EL2\0"
8785 "AMEVCNTVOFF12_EL2\0"
8786 "AMEVCNTVOFF13_EL2\0"
8787 "AMEVCNTVOFF14_EL2\0"
8788 "AMEVCNTVOFF15_EL2\0"
8789 "AMEVCNTVOFF16_EL2\0"
8790 "AMEVCNTVOFF17_EL2\0"
8791 "AMEVCNTVOFF18_EL2\0"
8792 "AMEVCNTVOFF19_EL2\0"
8793 "AMEVCNTVOFF110_EL2\0"
8794 "AMEVCNTVOFF111_EL2\0"
8795 "AMEVCNTVOFF112_EL2\0"
8796 "AMEVCNTVOFF113_EL2\0"
8797 "AMEVCNTVOFF114_EL2\0"
8798 "AMEVCNTVOFF115_EL2\0"
8799 "CNTVOFF_EL2\0"
8800 "CNTSCALE_EL2\0"
8801 "CNTISCALE_EL2\0"
8802 "CNTPOFF_EL2\0"
8803 "CNTVFRQ_EL2\0"
8804 "CNTHCTL_EL2\0"
8805 "CNTHP_TVAL_EL2\0"
8806 "CNTHP_CTL_EL2\0"
8807 "CNTHP_CVAL_EL2\0"
8808 "CNTHV_TVAL_EL2\0"
8809 "CNTHV_CTL_EL2\0"
8810 "CNTHV_CVAL_EL2\0"
8811 "CNTHVS_TVAL_EL2\0"
8812 "CNTHVS_CTL_EL2\0"
8813 "CNTHVS_CVAL_EL2\0"
8814 "CNTHPS_TVAL_EL2\0"
8815 "CNTHPS_CTL_EL2\0"
8816 "CNTHPS_CVAL_EL2\0"
8817 "SCTLR_EL12\0"
8818 "ACTLR_EL12\0"
8819 "CPACR_EL12\0"
8820 "SCTLR2_EL12\0"
8821 "ZCR_EL12\0"
8822 "TRFCR_EL12\0"
8823 "TRCITECR_EL12\0"
8824 "SMCR_EL12\0"
8825 "SCTLRMASK_EL12\0"
8826 "ACTLRMASK_EL12\0"
8827 "CPACRMASK_EL12\0"
8828 "SCTLR2MASK_EL12\0"
8829 "TTBR0_EL12\0"
8830 "TTBR1_EL12\0"
8831 "TCR_EL12\0"
8832 "TCR2_EL12\0"
8833 "IRTBRU_EL12\0"
8834 "IRTBRP_EL12\0"
8835 "DPOTBR0_EL12\0"
8836 "DPOTBR1_EL12\0"
8837 "LDSTT_EL12\0"
8838 "TPMIN0_EL12\0"
8839 "TPMAX0_EL12\0"
8840 "TPMIN1_EL12\0"
8841 "TPMAX1_EL12\0"
8842 "GCSCR_EL12\0"
8843 "GCSPR_EL12\0"
8844 "TCRMASK_EL12\0"
8845 "TCR2MASK_EL12\0"
8846 "FGDTP0_EL12\0"
8847 "FGDTP1_EL12\0"
8848 "FGDTP2_EL12\0"
8849 "FGDTP3_EL12\0"
8850 "FGDTP4_EL12\0"
8851 "FGDTP5_EL12\0"
8852 "FGDTP6_EL12\0"
8853 "FGDTP7_EL12\0"
8854 "FGDTP8_EL12\0"
8855 "FGDTP9_EL12\0"
8856 "FGDTP10_EL12\0"
8857 "FGDTP11_EL12\0"
8858 "FGDTP12_EL12\0"
8859 "FGDTP13_EL12\0"
8860 "FGDTP14_EL12\0"
8861 "FGDTP15_EL12\0"
8862 "FGDTU0_EL12\0"
8863 "FGDTU1_EL12\0"
8864 "FGDTU2_EL12\0"
8865 "FGDTU3_EL12\0"
8866 "FGDTU4_EL12\0"
8867 "FGDTU5_EL12\0"
8868 "FGDTU6_EL12\0"
8869 "FGDTU7_EL12\0"
8870 "FGDTU8_EL12\0"
8871 "FGDTU9_EL12\0"
8872 "FGDTU10_EL12\0"
8873 "FGDTU11_EL12\0"
8874 "FGDTU12_EL12\0"
8875 "FGDTU13_EL12\0"
8876 "FGDTU14_EL12\0"
8877 "FGDTU15_EL12\0"
8878 "AFGDTP0_EL12\0"
8879 "AFGDTP1_EL12\0"
8880 "AFGDTP2_EL12\0"
8881 "AFGDTP3_EL12\0"
8882 "AFGDTP4_EL12\0"
8883 "AFGDTP5_EL12\0"
8884 "AFGDTP6_EL12\0"
8885 "AFGDTP7_EL12\0"
8886 "AFGDTP8_EL12\0"
8887 "AFGDTP9_EL12\0"
8888 "AFGDTP10_EL12\0"
8889 "AFGDTP11_EL12\0"
8890 "AFGDTP12_EL12\0"
8891 "AFGDTP13_EL12\0"
8892 "AFGDTP14_EL12\0"
8893 "AFGDTP15_EL12\0"
8894 "AFGDTU0_EL12\0"
8895 "AFGDTU1_EL12\0"
8896 "AFGDTU2_EL12\0"
8897 "AFGDTU3_EL12\0"
8898 "AFGDTU4_EL12\0"
8899 "AFGDTU5_EL12\0"
8900 "AFGDTU6_EL12\0"
8901 "AFGDTU7_EL12\0"
8902 "AFGDTU8_EL12\0"
8903 "AFGDTU9_EL12\0"
8904 "AFGDTU10_EL12\0"
8905 "AFGDTU11_EL12\0"
8906 "AFGDTU12_EL12\0"
8907 "AFGDTU13_EL12\0"
8908 "AFGDTU14_EL12\0"
8909 "AFGDTU15_EL12\0"
8910 "SPSR_EL12\0"
8911 "ELR_EL12\0"
8912 "STINDEX_EL12\0"
8913 "TINDEX_EL12\0"
8914 "AFSR0_EL12\0"
8915 "AFSR1_EL12\0"
8916 "ESR_EL12\0"
8917 "TFSR_EL12\0"
8918 "FAR_EL12\0"
8919 "PFAR_EL12\0"
8920 "PMSCR_EL12\0"
8921 "PMBSR_EL12\0"
8922 "TRBSR_EL12\0"
8923 "MAIR_EL12\0"
8924 "MAIR2_EL12\0"
8925 "PIRE0_EL12\0"
8926 "PIR_EL12\0"
8927 "POR_EL12\0"
8928 "TTTBRU_EL12\0"
8929 "TTTBRP_EL12\0"
8930 "AMAIR_EL12\0"
8931 "AMAIR2_EL12\0"
8932 "MPAM1_EL12\0"
8933 "MPAMCTL_EL12\0"
8934 "MPAMBW1_EL12\0"
8935 "VBAR_EL12\0"
8936 "TPIDR3_EL12\0"
8937 "CONTEXTIDR_EL12\0"
8938 "SCXTNUM_EL12\0"
8939 "CNTKCTL_EL12\0"
8940 "CNTP_TVAL_EL02\0"
8941 "CNTP_CTL_EL02\0"
8942 "CNTP_CVAL_EL02\0"
8943 "CNTV_TVAL_EL02\0"
8944 "CNTV_CTL_EL02\0"
8945 "CNTV_CVAL_EL02\0"
8946 "SCTLR_EL3\0"
8947 "ACTLR_EL3\0"
8948 "SCTLR2_EL3\0"
8949 "SCR_EL3\0"
8950 "SDER32_EL3\0"
8951 "CPTR_EL3\0"
8952 "FGWTE3_EL3\0"
8953 "ZCR_EL3\0"
8954 "SCR2_EL3\0"
8955 "SMCR_EL3\0"
8956 "MDCR_EL3\0"
8957 "TTBR0_EL3\0"
8958 "TCR_EL3\0"
8959 "IRTBRP_EL3\0"
8960 "DPOTBR0_EL3\0"
8961 "GPTBR_EL3\0"
8962 "GPCBW_EL3\0"
8963 "GPCCR_EL3\0"
8964 "GCSCR_EL3\0"
8965 "GCSPR_EL3\0"
8966 "FGDTP0_EL3\0"
8967 "FGDTP1_EL3\0"
8968 "FGDTP2_EL3\0"
8969 "FGDTP3_EL3\0"
8970 "FGDTP4_EL3\0"
8971 "FGDTP5_EL3\0"
8972 "FGDTP6_EL3\0"
8973 "FGDTP7_EL3\0"
8974 "FGDTP8_EL3\0"
8975 "FGDTP9_EL3\0"
8976 "FGDTP10_EL3\0"
8977 "FGDTP11_EL3\0"
8978 "FGDTP12_EL3\0"
8979 "FGDTP13_EL3\0"
8980 "FGDTP14_EL3\0"
8981 "FGDTP15_EL3\0"
8982 "AFGDTP0_EL3\0"
8983 "AFGDTP1_EL3\0"
8984 "AFGDTP2_EL3\0"
8985 "AFGDTP3_EL3\0"
8986 "AFGDTP4_EL3\0"
8987 "AFGDTP5_EL3\0"
8988 "AFGDTP6_EL3\0"
8989 "AFGDTP7_EL3\0"
8990 "AFGDTP8_EL3\0"
8991 "AFGDTP9_EL3\0"
8992 "AFGDTP10_EL3\0"
8993 "AFGDTP11_EL3\0"
8994 "AFGDTP12_EL3\0"
8995 "AFGDTP13_EL3\0"
8996 "AFGDTP14_EL3\0"
8997 "AFGDTP15_EL3\0"
8998 "SPSR_EL3\0"
8999 "ELR_EL3\0"
9000 "STINDEX_EL3\0"
9001 "TINDEX_EL3\0"
9002 "SP_EL2\0"
9003 "AFSR0_EL3\0"
9004 "AFSR1_EL3\0"
9005 "ESR_EL3\0"
9006 "VSESR_EL3\0"
9007 "TFSR_EL3\0"
9008 "FAR_EL3\0"
9009 "MFAR_EL3\0"
9010 "PMBSR_EL3\0"
9011 "TRBSR_EL3\0"
9012 "MAIR2_EL3\0"
9013 "MAIR_EL3\0"
9014 "PIR_EL3\0"
9015 "POR_EL3\0"
9016 "TTTBRP_EL3\0"
9017 "AMAIR_EL3\0"
9018 "AMAIR2_EL3\0"
9019 "MPAM3_EL3\0"
9020 "MPAMCTL_EL3\0"
9021 "MPAMBW3_EL3\0"
9022 "MECID_RL_A_EL3\0"
9023 "VBAR_EL3\0"
9024 "RVBAR_EL3\0"
9025 "RMR_EL3\0"
9026 "VDISR_EL3\0"
9027 "ICC_APR_EL3\0"
9028 "ICC_PCR_EL3\0"
9029 "ICC_DOMHPPIR_EL3\0"
9030 "ICC_PPI_DOMAINR0_EL3\0"
9031 "ICC_PPI_DOMAINR1_EL3\0"
9032 "ICC_PPI_DOMAINR2_EL3\0"
9033 "ICC_PPI_DOMAINR3_EL3\0"
9034 "ICC_CR0_EL3\0"
9035 "ICC_HPPIR_EL3\0"
9036 "ICC_CTLR_EL3\0"
9037 "ICC_SRE_EL3\0"
9038 "ICC_IGRPEN1_EL3\0"
9039 "TPIDR3_EL3\0"
9040 "TPIDR_EL3\0"
9041 "SCXTNUM_EL3\0"
9042 "CNTPS_TVAL_EL1\0"
9043 "CNTPS_CTL_EL1\0"
9044 "CNTPS_CVAL_EL1\0"
9045 "APDAKEYHI_EL1\0"
9046 "APDAKEYLO_EL1\0"
9047 "APDBKEYHI_EL1\0"
9048 "APDBKEYLO_EL1\0"
9049 "APGAKEYHI_EL1\0"
9050 "APGAKEYLO_EL1\0"
9051 "APIAKEYHI_EL1\0"
9052 "APIAKEYLO_EL1\0"
9053 "APIBKEYHI_EL1\0"
9054 "APIBKEYLO_EL1\0"
9055 "CURRENTEL\0"
9056 "SPSEL\0"
9057 "SPSR_ABT\0"
9058 "SPSR_FIQ\0"
9059 "SPSR_IRQ\0"
9060 "SPSR_UND\0"
9061 ;
9062#ifdef __GNUC__
9063#pragma GCC diagnostic pop
9064#endif
9065
9066static constexpr llvm::StringTable
9067SysRegsListStrings = SysRegsListStringsStorage;
9068
9069StringRef getSysRegStr(StringTable::Offset Offset) {
9070 return SysRegsListStrings[Offset];
9071}
9072
9073llvm::iterator_range<const SysReg *> lookupSysRegByEncoding(uint16_t Encoding) {
9074 struct KeyType {
9075 uint16_t Encoding;
9076 };
9077 KeyType Key = {Encoding};
9078 struct Comp {
9079 bool operator()(const SysReg &LHS, const KeyType &RHS) const {
9080 if (LHS.Encoding < RHS.Encoding)
9081 return true;
9082 if (LHS.Encoding > RHS.Encoding)
9083 return false;
9084 return false;
9085 }
9086 bool operator()(const KeyType &LHS, const SysReg &RHS) const {
9087 if (LHS.Encoding < RHS.Encoding)
9088 return true;
9089 if (LHS.Encoding > RHS.Encoding)
9090 return false;
9091 return false;
9092 }
9093 };
9094 auto Table = ArrayRef(SysRegsList);
9095 auto It = std::equal_range(Table.begin(), Table.end(), Key, Comp());
9096 return llvm::make_range(It.first, It.second);
9097}
9098
9099const SysReg *lookupSysRegByName(StringRef Name) {
9100 struct IndexType {
9101 unsigned Name;
9102 unsigned _index;
9103 };
9104 static const struct IndexType Index[] = {
9105 { 11647 /* "ACCDATA_EL1" */, 902 },
9106 { 7396 /* "ACTLRALIAS_EL1" */, 587 },
9107 { 7338 /* "ACTLRMASK_EL1" */, 583 },
9108 { 18829 /* "ACTLRMASK_EL12" */, 1446 },
9109 { 14373 /* "ACTLRMASK_EL2" */, 1110 },
9110 { 7226 /* "ACTLR_EL1" */, 572 },
9111 { 18736 /* "ACTLR_EL12" */, 1438 },
9112 { 14188 /* "ACTLR_EL2" */, 1092 },
9113 { 20331 /* "ACTLR_EL3" */, 1567 },
9114 { 8167 /* "AFGDTP0_EL1" */, 652 },
9115 { 19470 /* "AFGDTP0_EL12" */, 1498 },
9116 { 15373 /* "AFGDTP0_EL2" */, 1196 },
9117 { 20699 /* "AFGDTP0_EL3" */, 1602 },
9118 { 8287 /* "AFGDTP10_EL1" */, 662 },
9119 { 19600 /* "AFGDTP10_EL12" */, 1508 },
9120 { 15493 /* "AFGDTP10_EL2" */, 1206 },
9121 { 20819 /* "AFGDTP10_EL3" */, 1612 },
9122 { 8300 /* "AFGDTP11_EL1" */, 663 },
9123 { 19614 /* "AFGDTP11_EL12" */, 1509 },
9124 { 15506 /* "AFGDTP11_EL2" */, 1207 },
9125 { 20832 /* "AFGDTP11_EL3" */, 1613 },
9126 { 8313 /* "AFGDTP12_EL1" */, 664 },
9127 { 19628 /* "AFGDTP12_EL12" */, 1510 },
9128 { 15519 /* "AFGDTP12_EL2" */, 1208 },
9129 { 20845 /* "AFGDTP12_EL3" */, 1614 },
9130 { 8326 /* "AFGDTP13_EL1" */, 665 },
9131 { 19642 /* "AFGDTP13_EL12" */, 1511 },
9132 { 15532 /* "AFGDTP13_EL2" */, 1209 },
9133 { 20858 /* "AFGDTP13_EL3" */, 1615 },
9134 { 8339 /* "AFGDTP14_EL1" */, 666 },
9135 { 19656 /* "AFGDTP14_EL12" */, 1512 },
9136 { 15545 /* "AFGDTP14_EL2" */, 1210 },
9137 { 20871 /* "AFGDTP14_EL3" */, 1616 },
9138 { 8352 /* "AFGDTP15_EL1" */, 667 },
9139 { 19670 /* "AFGDTP15_EL12" */, 1513 },
9140 { 15558 /* "AFGDTP15_EL2" */, 1211 },
9141 { 20884 /* "AFGDTP15_EL3" */, 1617 },
9142 { 8179 /* "AFGDTP1_EL1" */, 653 },
9143 { 19483 /* "AFGDTP1_EL12" */, 1499 },
9144 { 15385 /* "AFGDTP1_EL2" */, 1197 },
9145 { 20711 /* "AFGDTP1_EL3" */, 1603 },
9146 { 8191 /* "AFGDTP2_EL1" */, 654 },
9147 { 19496 /* "AFGDTP2_EL12" */, 1500 },
9148 { 15397 /* "AFGDTP2_EL2" */, 1198 },
9149 { 20723 /* "AFGDTP2_EL3" */, 1604 },
9150 { 8203 /* "AFGDTP3_EL1" */, 655 },
9151 { 19509 /* "AFGDTP3_EL12" */, 1501 },
9152 { 15409 /* "AFGDTP3_EL2" */, 1199 },
9153 { 20735 /* "AFGDTP3_EL3" */, 1605 },
9154 { 8215 /* "AFGDTP4_EL1" */, 656 },
9155 { 19522 /* "AFGDTP4_EL12" */, 1502 },
9156 { 15421 /* "AFGDTP4_EL2" */, 1200 },
9157 { 20747 /* "AFGDTP4_EL3" */, 1606 },
9158 { 8227 /* "AFGDTP5_EL1" */, 657 },
9159 { 19535 /* "AFGDTP5_EL12" */, 1503 },
9160 { 15433 /* "AFGDTP5_EL2" */, 1201 },
9161 { 20759 /* "AFGDTP5_EL3" */, 1607 },
9162 { 8239 /* "AFGDTP6_EL1" */, 658 },
9163 { 19548 /* "AFGDTP6_EL12" */, 1504 },
9164 { 15445 /* "AFGDTP6_EL2" */, 1202 },
9165 { 20771 /* "AFGDTP6_EL3" */, 1608 },
9166 { 8251 /* "AFGDTP7_EL1" */, 659 },
9167 { 19561 /* "AFGDTP7_EL12" */, 1505 },
9168 { 15457 /* "AFGDTP7_EL2" */, 1203 },
9169 { 20783 /* "AFGDTP7_EL3" */, 1609 },
9170 { 8263 /* "AFGDTP8_EL1" */, 660 },
9171 { 19574 /* "AFGDTP8_EL12" */, 1506 },
9172 { 15469 /* "AFGDTP8_EL2" */, 1204 },
9173 { 20795 /* "AFGDTP8_EL3" */, 1610 },
9174 { 8275 /* "AFGDTP9_EL1" */, 661 },
9175 { 19587 /* "AFGDTP9_EL12" */, 1507 },
9176 { 15481 /* "AFGDTP9_EL2" */, 1205 },
9177 { 20807 /* "AFGDTP9_EL3" */, 1611 },
9178 { 8365 /* "AFGDTU0_EL1" */, 668 },
9179 { 19684 /* "AFGDTU0_EL12" */, 1514 },
9180 { 15571 /* "AFGDTU0_EL2" */, 1212 },
9181 { 8485 /* "AFGDTU10_EL1" */, 678 },
9182 { 19814 /* "AFGDTU10_EL12" */, 1524 },
9183 { 15691 /* "AFGDTU10_EL2" */, 1222 },
9184 { 8498 /* "AFGDTU11_EL1" */, 679 },
9185 { 19828 /* "AFGDTU11_EL12" */, 1525 },
9186 { 15704 /* "AFGDTU11_EL2" */, 1223 },
9187 { 8511 /* "AFGDTU12_EL1" */, 680 },
9188 { 19842 /* "AFGDTU12_EL12" */, 1526 },
9189 { 15717 /* "AFGDTU12_EL2" */, 1224 },
9190 { 8524 /* "AFGDTU13_EL1" */, 681 },
9191 { 19856 /* "AFGDTU13_EL12" */, 1527 },
9192 { 15730 /* "AFGDTU13_EL2" */, 1225 },
9193 { 8537 /* "AFGDTU14_EL1" */, 682 },
9194 { 19870 /* "AFGDTU14_EL12" */, 1528 },
9195 { 15743 /* "AFGDTU14_EL2" */, 1226 },
9196 { 8550 /* "AFGDTU15_EL1" */, 683 },
9197 { 19884 /* "AFGDTU15_EL12" */, 1529 },
9198 { 15756 /* "AFGDTU15_EL2" */, 1227 },
9199 { 8377 /* "AFGDTU1_EL1" */, 669 },
9200 { 19697 /* "AFGDTU1_EL12" */, 1515 },
9201 { 15583 /* "AFGDTU1_EL2" */, 1213 },
9202 { 8389 /* "AFGDTU2_EL1" */, 670 },
9203 { 19710 /* "AFGDTU2_EL12" */, 1516 },
9204 { 15595 /* "AFGDTU2_EL2" */, 1214 },
9205 { 8401 /* "AFGDTU3_EL1" */, 671 },
9206 { 19723 /* "AFGDTU3_EL12" */, 1517 },
9207 { 15607 /* "AFGDTU3_EL2" */, 1215 },
9208 { 8413 /* "AFGDTU4_EL1" */, 672 },
9209 { 19736 /* "AFGDTU4_EL12" */, 1518 },
9210 { 15619 /* "AFGDTU4_EL2" */, 1216 },
9211 { 8425 /* "AFGDTU5_EL1" */, 673 },
9212 { 19749 /* "AFGDTU5_EL12" */, 1519 },
9213 { 15631 /* "AFGDTU5_EL2" */, 1217 },
9214 { 8437 /* "AFGDTU6_EL1" */, 674 },
9215 { 19762 /* "AFGDTU6_EL12" */, 1520 },
9216 { 15643 /* "AFGDTU6_EL2" */, 1218 },
9217 { 8449 /* "AFGDTU7_EL1" */, 675 },
9218 { 19775 /* "AFGDTU7_EL12" */, 1521 },
9219 { 15655 /* "AFGDTU7_EL2" */, 1219 },
9220 { 8461 /* "AFGDTU8_EL1" */, 676 },
9221 { 19788 /* "AFGDTU8_EL12" */, 1522 },
9222 { 15667 /* "AFGDTU8_EL2" */, 1220 },
9223 { 8473 /* "AFGDTU9_EL1" */, 677 },
9224 { 19801 /* "AFGDTU9_EL12" */, 1523 },
9225 { 15679 /* "AFGDTU9_EL2" */, 1221 },
9226 { 8656 /* "AFSR0_EL1" */, 696 },
9227 { 19942 /* "AFSR0_EL12" */, 1534 },
9228 { 15863 /* "AFSR0_EL2" */, 1238 },
9229 { 20944 /* "AFSR0_EL3" */, 1623 },
9230 { 8666 /* "AFSR1_EL1" */, 697 },
9231 { 19953 /* "AFSR1_EL12" */, 1535 },
9232 { 15873 /* "AFSR1_EL2" */, 1239 },
9233 { 20954 /* "AFSR1_EL3" */, 1624 },
9234 { 11747 /* "AIDR_EL1" */, 911 },
9235 { 8634 /* "ALLINT" */, 693 },
9236 { 9709 /* "AMAIR2_EL1" */, 790 },
9237 { 20120 /* "AMAIR2_EL12" */, 1551 },
9238 { 16449 /* "AMAIR2_EL2" */, 1293 },
9239 { 21084 /* "AMAIR2_EL3" */, 1638 },
9240 { 9699 /* "AMAIR_EL1" */, 789 },
9241 { 20109 /* "AMAIR_EL12" */, 1550 },
9242 { 16439 /* "AMAIR_EL2" */, 1292 },
9243 { 21074 /* "AMAIR_EL3" */, 1637 },
9244 { 12306 /* "AMCFGR_EL0" */, 966 },
9245 { 12374 /* "AMCG1IDR_EL0" */, 971 },
9246 { 12317 /* "AMCGCR_EL0" */, 967 },
9247 { 12342 /* "AMCNTENCLR0_EL0" */, 969 },
9248 { 12387 /* "AMCNTENCLR1_EL0" */, 972 },
9249 { 12358 /* "AMCNTENSET0_EL0" */, 970 },
9250 { 12403 /* "AMCNTENSET1_EL0" */, 973 },
9251 { 12297 /* "AMCR_EL0" */, 965 },
9252 { 12419 /* "AMEVCNTR00_EL0" */, 974 },
9253 { 12434 /* "AMEVCNTR01_EL0" */, 975 },
9254 { 12449 /* "AMEVCNTR02_EL0" */, 976 },
9255 { 12464 /* "AMEVCNTR03_EL0" */, 977 },
9256 { 12543 /* "AMEVCNTR10_EL0" */, 982 },
9257 { 12693 /* "AMEVCNTR110_EL0" */, 992 },
9258 { 12709 /* "AMEVCNTR111_EL0" */, 993 },
9259 { 12725 /* "AMEVCNTR112_EL0" */, 994 },
9260 { 12741 /* "AMEVCNTR113_EL0" */, 995 },
9261 { 12757 /* "AMEVCNTR114_EL0" */, 996 },
9262 { 12773 /* "AMEVCNTR115_EL0" */, 997 },
9263 { 12558 /* "AMEVCNTR11_EL0" */, 983 },
9264 { 12573 /* "AMEVCNTR12_EL0" */, 984 },
9265 { 12588 /* "AMEVCNTR13_EL0" */, 985 },
9266 { 12603 /* "AMEVCNTR14_EL0" */, 986 },
9267 { 12618 /* "AMEVCNTR15_EL0" */, 987 },
9268 { 12633 /* "AMEVCNTR16_EL0" */, 988 },
9269 { 12648 /* "AMEVCNTR17_EL0" */, 989 },
9270 { 12663 /* "AMEVCNTR18_EL0" */, 990 },
9271 { 12678 /* "AMEVCNTR19_EL0" */, 991 },
9272 { 17880 /* "AMEVCNTVOFF00_EL2" */, 1387 },
9273 { 18060 /* "AMEVCNTVOFF010_EL2" */, 1397 },
9274 { 18079 /* "AMEVCNTVOFF011_EL2" */, 1398 },
9275 { 18098 /* "AMEVCNTVOFF012_EL2" */, 1399 },
9276 { 18117 /* "AMEVCNTVOFF013_EL2" */, 1400 },
9277 { 18136 /* "AMEVCNTVOFF014_EL2" */, 1401 },
9278 { 18155 /* "AMEVCNTVOFF015_EL2" */, 1402 },
9279 { 17898 /* "AMEVCNTVOFF01_EL2" */, 1388 },
9280 { 17916 /* "AMEVCNTVOFF02_EL2" */, 1389 },
9281 { 17934 /* "AMEVCNTVOFF03_EL2" */, 1390 },
9282 { 17952 /* "AMEVCNTVOFF04_EL2" */, 1391 },
9283 { 17970 /* "AMEVCNTVOFF05_EL2" */, 1392 },
9284 { 17988 /* "AMEVCNTVOFF06_EL2" */, 1393 },
9285 { 18006 /* "AMEVCNTVOFF07_EL2" */, 1394 },
9286 { 18024 /* "AMEVCNTVOFF08_EL2" */, 1395 },
9287 { 18042 /* "AMEVCNTVOFF09_EL2" */, 1396 },
9288 { 18174 /* "AMEVCNTVOFF10_EL2" */, 1403 },
9289 { 18354 /* "AMEVCNTVOFF110_EL2" */, 1413 },
9290 { 18373 /* "AMEVCNTVOFF111_EL2" */, 1414 },
9291 { 18392 /* "AMEVCNTVOFF112_EL2" */, 1415 },
9292 { 18411 /* "AMEVCNTVOFF113_EL2" */, 1416 },
9293 { 18430 /* "AMEVCNTVOFF114_EL2" */, 1417 },
9294 { 18449 /* "AMEVCNTVOFF115_EL2" */, 1418 },
9295 { 18192 /* "AMEVCNTVOFF11_EL2" */, 1404 },
9296 { 18210 /* "AMEVCNTVOFF12_EL2" */, 1405 },
9297 { 18228 /* "AMEVCNTVOFF13_EL2" */, 1406 },
9298 { 18246 /* "AMEVCNTVOFF14_EL2" */, 1407 },
9299 { 18264 /* "AMEVCNTVOFF15_EL2" */, 1408 },
9300 { 18282 /* "AMEVCNTVOFF16_EL2" */, 1409 },
9301 { 18300 /* "AMEVCNTVOFF17_EL2" */, 1410 },
9302 { 18318 /* "AMEVCNTVOFF18_EL2" */, 1411 },
9303 { 18336 /* "AMEVCNTVOFF19_EL2" */, 1412 },
9304 { 12479 /* "AMEVTYPER00_EL0" */, 978 },
9305 { 12495 /* "AMEVTYPER01_EL0" */, 979 },
9306 { 12511 /* "AMEVTYPER02_EL0" */, 980 },
9307 { 12527 /* "AMEVTYPER03_EL0" */, 981 },
9308 { 12789 /* "AMEVTYPER10_EL0" */, 998 },
9309 { 12949 /* "AMEVTYPER110_EL0" */, 1008 },
9310 { 12966 /* "AMEVTYPER111_EL0" */, 1009 },
9311 { 12983 /* "AMEVTYPER112_EL0" */, 1010 },
9312 { 13000 /* "AMEVTYPER113_EL0" */, 1011 },
9313 { 13017 /* "AMEVTYPER114_EL0" */, 1012 },
9314 { 13034 /* "AMEVTYPER115_EL0" */, 1013 },
9315 { 12805 /* "AMEVTYPER11_EL0" */, 999 },
9316 { 12821 /* "AMEVTYPER12_EL0" */, 1000 },
9317 { 12837 /* "AMEVTYPER13_EL0" */, 1001 },
9318 { 12853 /* "AMEVTYPER14_EL0" */, 1002 },
9319 { 12869 /* "AMEVTYPER15_EL0" */, 1003 },
9320 { 12885 /* "AMEVTYPER16_EL0" */, 1004 },
9321 { 12901 /* "AMEVTYPER17_EL0" */, 1005 },
9322 { 12917 /* "AMEVTYPER18_EL0" */, 1006 },
9323 { 12933 /* "AMEVTYPER19_EL0" */, 1007 },
9324 { 12328 /* "AMUSERENR_EL0" */, 968 },
9325 { 21450 /* "APDAKEYHI_EL1" */, 604 },
9326 { 21464 /* "APDAKEYLO_EL1" */, 603 },
9327 { 21478 /* "APDBKEYHI_EL1" */, 606 },
9328 { 21492 /* "APDBKEYLO_EL1" */, 605 },
9329 { 21506 /* "APGAKEYHI_EL1" */, 612 },
9330 { 21520 /* "APGAKEYLO_EL1" */, 611 },
9331 { 21534 /* "APIAKEYHI_EL1" */, 599 },
9332 { 21548 /* "APIAKEYLO_EL1" */, 598 },
9333 { 21562 /* "APIBKEYHI_EL1" */, 601 },
9334 { 21576 /* "APIBKEYLO_EL1" */, 600 },
9335 { 5171 /* "BRBCR_EL1" */, 433 },
9336 { 6507 /* "BRBCR_EL12" */, 520 },
9337 { 6482 /* "BRBCR_EL2" */, 518 },
9338 { 5181 /* "BRBFCR_EL1" */, 434 },
9339 { 5244 /* "BRBIDR0_EL1" */, 439 },
9340 { 3953 /* "BRBINF0_EL1" */, 337 },
9341 { 4703 /* "BRBINF10_EL1" */, 397 },
9342 { 4781 /* "BRBINF11_EL1" */, 403 },
9343 { 4859 /* "BRBINF12_EL1" */, 409 },
9344 { 4937 /* "BRBINF13_EL1" */, 415 },
9345 { 5015 /* "BRBINF14_EL1" */, 421 },
9346 { 5093 /* "BRBINF15_EL1" */, 427 },
9347 { 3989 /* "BRBINF16_EL1" */, 340 },
9348 { 4064 /* "BRBINF17_EL1" */, 346 },
9349 { 4139 /* "BRBINF18_EL1" */, 352 },
9350 { 4214 /* "BRBINF19_EL1" */, 358 },
9351 { 4028 /* "BRBINF1_EL1" */, 343 },
9352 { 4289 /* "BRBINF20_EL1" */, 364 },
9353 { 4364 /* "BRBINF21_EL1" */, 370 },
9354 { 4439 /* "BRBINF22_EL1" */, 376 },
9355 { 4514 /* "BRBINF23_EL1" */, 382 },
9356 { 4589 /* "BRBINF24_EL1" */, 388 },
9357 { 4664 /* "BRBINF25_EL1" */, 394 },
9358 { 4742 /* "BRBINF26_EL1" */, 400 },
9359 { 4820 /* "BRBINF27_EL1" */, 406 },
9360 { 4898 /* "BRBINF28_EL1" */, 412 },
9361 { 4976 /* "BRBINF29_EL1" */, 418 },
9362 { 4103 /* "BRBINF2_EL1" */, 349 },
9363 { 5054 /* "BRBINF30_EL1" */, 424 },
9364 { 5132 /* "BRBINF31_EL1" */, 430 },
9365 { 4178 /* "BRBINF3_EL1" */, 355 },
9366 { 4253 /* "BRBINF4_EL1" */, 361 },
9367 { 4328 /* "BRBINF5_EL1" */, 367 },
9368 { 4403 /* "BRBINF6_EL1" */, 373 },
9369 { 4478 /* "BRBINF7_EL1" */, 379 },
9370 { 4553 /* "BRBINF8_EL1" */, 385 },
9371 { 4628 /* "BRBINF9_EL1" */, 391 },
9372 { 5202 /* "BRBINFINJ_EL1" */, 436 },
9373 { 3965 /* "BRBSRC0_EL1" */, 338 },
9374 { 4716 /* "BRBSRC10_EL1" */, 398 },
9375 { 4794 /* "BRBSRC11_EL1" */, 404 },
9376 { 4872 /* "BRBSRC12_EL1" */, 410 },
9377 { 4950 /* "BRBSRC13_EL1" */, 416 },
9378 { 5028 /* "BRBSRC14_EL1" */, 422 },
9379 { 5106 /* "BRBSRC15_EL1" */, 428 },
9380 { 4002 /* "BRBSRC16_EL1" */, 341 },
9381 { 4077 /* "BRBSRC17_EL1" */, 347 },
9382 { 4152 /* "BRBSRC18_EL1" */, 353 },
9383 { 4227 /* "BRBSRC19_EL1" */, 359 },
9384 { 4040 /* "BRBSRC1_EL1" */, 344 },
9385 { 4302 /* "BRBSRC20_EL1" */, 365 },
9386 { 4377 /* "BRBSRC21_EL1" */, 371 },
9387 { 4452 /* "BRBSRC22_EL1" */, 377 },
9388 { 4527 /* "BRBSRC23_EL1" */, 383 },
9389 { 4602 /* "BRBSRC24_EL1" */, 389 },
9390 { 4677 /* "BRBSRC25_EL1" */, 395 },
9391 { 4755 /* "BRBSRC26_EL1" */, 401 },
9392 { 4833 /* "BRBSRC27_EL1" */, 407 },
9393 { 4911 /* "BRBSRC28_EL1" */, 413 },
9394 { 4989 /* "BRBSRC29_EL1" */, 419 },
9395 { 4115 /* "BRBSRC2_EL1" */, 350 },
9396 { 5067 /* "BRBSRC30_EL1" */, 425 },
9397 { 5145 /* "BRBSRC31_EL1" */, 431 },
9398 { 4190 /* "BRBSRC3_EL1" */, 356 },
9399 { 4265 /* "BRBSRC4_EL1" */, 362 },
9400 { 4340 /* "BRBSRC5_EL1" */, 368 },
9401 { 4415 /* "BRBSRC6_EL1" */, 374 },
9402 { 4490 /* "BRBSRC7_EL1" */, 380 },
9403 { 4565 /* "BRBSRC8_EL1" */, 386 },
9404 { 4640 /* "BRBSRC9_EL1" */, 392 },
9405 { 5216 /* "BRBSRCINJ_EL1" */, 437 },
9406 { 3977 /* "BRBTGT0_EL1" */, 339 },
9407 { 4729 /* "BRBTGT10_EL1" */, 399 },
9408 { 4807 /* "BRBTGT11_EL1" */, 405 },
9409 { 4885 /* "BRBTGT12_EL1" */, 411 },
9410 { 4963 /* "BRBTGT13_EL1" */, 417 },
9411 { 5041 /* "BRBTGT14_EL1" */, 423 },
9412 { 5119 /* "BRBTGT15_EL1" */, 429 },
9413 { 4015 /* "BRBTGT16_EL1" */, 342 },
9414 { 4090 /* "BRBTGT17_EL1" */, 348 },
9415 { 4165 /* "BRBTGT18_EL1" */, 354 },
9416 { 4240 /* "BRBTGT19_EL1" */, 360 },
9417 { 4052 /* "BRBTGT1_EL1" */, 345 },
9418 { 4315 /* "BRBTGT20_EL1" */, 366 },
9419 { 4390 /* "BRBTGT21_EL1" */, 372 },
9420 { 4465 /* "BRBTGT22_EL1" */, 378 },
9421 { 4540 /* "BRBTGT23_EL1" */, 384 },
9422 { 4615 /* "BRBTGT24_EL1" */, 390 },
9423 { 4690 /* "BRBTGT25_EL1" */, 396 },
9424 { 4768 /* "BRBTGT26_EL1" */, 402 },
9425 { 4846 /* "BRBTGT27_EL1" */, 408 },
9426 { 4924 /* "BRBTGT28_EL1" */, 414 },
9427 { 5002 /* "BRBTGT29_EL1" */, 420 },
9428 { 4127 /* "BRBTGT2_EL1" */, 351 },
9429 { 5080 /* "BRBTGT30_EL1" */, 426 },
9430 { 5158 /* "BRBTGT31_EL1" */, 432 },
9431 { 4202 /* "BRBTGT3_EL1" */, 357 },
9432 { 4277 /* "BRBTGT4_EL1" */, 363 },
9433 { 4352 /* "BRBTGT5_EL1" */, 369 },
9434 { 4427 /* "BRBTGT6_EL1" */, 375 },
9435 { 4502 /* "BRBTGT7_EL1" */, 381 },
9436 { 4577 /* "BRBTGT8_EL1" */, 387 },
9437 { 4652 /* "BRBTGT9_EL1" */, 393 },
9438 { 5230 /* "BRBTGTINJ_EL1" */, 438 },
9439 { 5192 /* "BRBTS_EL1" */, 435 },
9440 { 11716 /* "CCSIDR2_EL1" */, 908 },
9441 { 11695 /* "CCSIDR_EL1" */, 906 },
9442 { 11706 /* "CLIDR_EL1" */, 907 },
9443 { 13051 /* "CNTFRQ_EL0" */, 1014 },
9444 { 18531 /* "CNTHCTL_EL2" */, 1424 },
9445 { 18694 /* "CNTHPS_CTL_EL2" */, 1435 },
9446 { 18709 /* "CNTHPS_CVAL_EL2" */, 1436 },
9447 { 18678 /* "CNTHPS_TVAL_EL2" */, 1434 },
9448 { 18558 /* "CNTHP_CTL_EL2" */, 1426 },
9449 { 18572 /* "CNTHP_CVAL_EL2" */, 1427 },
9450 { 18543 /* "CNTHP_TVAL_EL2" */, 1425 },
9451 { 18647 /* "CNTHVS_CTL_EL2" */, 1432 },
9452 { 18662 /* "CNTHVS_CVAL_EL2" */, 1433 },
9453 { 18631 /* "CNTHVS_TVAL_EL2" */, 1431 },
9454 { 18602 /* "CNTHV_CTL_EL2" */, 1429 },
9455 { 18616 /* "CNTHV_CVAL_EL2" */, 1430 },
9456 { 18587 /* "CNTHV_TVAL_EL2" */, 1428 },
9457 { 18493 /* "CNTISCALE_EL2" */, 1421 },
9458 { 11683 /* "CNTKCTL_EL1" */, 905 },
9459 { 20220 /* "CNTKCTL_EL12" */, 1559 },
9460 { 13084 /* "CNTPCTSS_EL0" */, 1017 },
9461 { 13062 /* "CNTPCT_EL0" */, 1015 },
9462 { 18507 /* "CNTPOFF_EL2" */, 1422 },
9463 { 21421 /* "CNTPS_CTL_EL1" */, 1663 },
9464 { 21435 /* "CNTPS_CVAL_EL1" */, 1664 },
9465 { 21406 /* "CNTPS_TVAL_EL1" */, 1662 },
9466 { 13124 /* "CNTP_CTL_EL0" */, 1020 },
9467 { 20248 /* "CNTP_CTL_EL02" */, 1561 },
9468 { 13137 /* "CNTP_CVAL_EL0" */, 1021 },
9469 { 20262 /* "CNTP_CVAL_EL02" */, 1562 },
9470 { 13110 /* "CNTP_TVAL_EL0" */, 1019 },
9471 { 20233 /* "CNTP_TVAL_EL02" */, 1560 },
9472 { 18480 /* "CNTSCALE_EL2" */, 1420 },
9473 { 13097 /* "CNTVCTSS_EL0" */, 1018 },
9474 { 13073 /* "CNTVCT_EL0" */, 1016 },
9475 { 18519 /* "CNTVFRQ_EL2" */, 1423 },
9476 { 18468 /* "CNTVOFF_EL2" */, 1419 },
9477 { 13165 /* "CNTV_CTL_EL0" */, 1023 },
9478 { 20292 /* "CNTV_CTL_EL02" */, 1564 },
9479 { 13178 /* "CNTV_CVAL_EL0" */, 1024 },
9480 { 20306 /* "CNTV_CVAL_EL02" */, 1565 },
9481 { 13151 /* "CNTV_TVAL_EL0" */, 1022 },
9482 { 20277 /* "CNTV_TVAL_EL02" */, 1563 },
9483 { 11609 /* "CONTEXTIDR_EL1" */, 899 },
9484 { 20191 /* "CONTEXTIDR_EL12" */, 1557 },
9485 { 17843 /* "CONTEXTIDR_EL2" */, 1384 },
9486 { 7381 /* "CPACRALIAS_EL1" */, 586 },
9487 { 7352 /* "CPACRMASK_EL1" */, 584 },
9488 { 18844 /* "CPACRMASK_EL12" */, 1447 },
9489 { 7236 /* "CPACR_EL1" */, 573 },
9490 { 18747 /* "CPACR_EL12" */, 1439 },
9491 { 14387 /* "CPTRMASK_EL2" */, 1111 },
9492 { 14226 /* "CPTR_EL2" */, 1096 },
9493 { 20371 /* "CPTR_EL3" */, 1571 },
9494 { 11854 /* "CSSELR_EL1" */, 920 },
9495 { 11865 /* "CTR_EL0" */, 921 },
9496 { 21590 /* "CURRENTEL" */, 690 },
9497 { 14900 /* "DACR32_EL2" */, 1155 },
9498 { 11965 /* "DAIF" */, 932 },
9499 { 958 /* "DBGAUTHSTATUS_EL1" */, 78 },
9500 { 25 /* "DBGBCR0_EL1" */, 2 },
9501 { 575 /* "DBGBCR10_EL1" */, 48 },
9502 { 627 /* "DBGBCR11_EL1" */, 52 },
9503 { 679 /* "DBGBCR12_EL1" */, 56 },
9504 { 731 /* "DBGBCR13_EL1" */, 60 },
9505 { 783 /* "DBGBCR14_EL1" */, 64 },
9506 { 835 /* "DBGBCR15_EL1" */, 68 },
9507 { 73 /* "DBGBCR1_EL1" */, 6 },
9508 { 143 /* "DBGBCR2_EL1" */, 12 },
9509 { 203 /* "DBGBCR3_EL1" */, 17 },
9510 { 262 /* "DBGBCR4_EL1" */, 22 },
9511 { 323 /* "DBGBCR5_EL1" */, 27 },
9512 { 382 /* "DBGBCR6_EL1" */, 32 },
9513 { 430 /* "DBGBCR7_EL1" */, 36 },
9514 { 478 /* "DBGBCR8_EL1" */, 40 },
9515 { 526 /* "DBGBCR9_EL1" */, 44 },
9516 { 13 /* "DBGBVR0_EL1" */, 1 },
9517 { 562 /* "DBGBVR10_EL1" */, 47 },
9518 { 614 /* "DBGBVR11_EL1" */, 51 },
9519 { 666 /* "DBGBVR12_EL1" */, 55 },
9520 { 718 /* "DBGBVR13_EL1" */, 59 },
9521 { 770 /* "DBGBVR14_EL1" */, 63 },
9522 { 822 /* "DBGBVR15_EL1" */, 67 },
9523 { 61 /* "DBGBVR1_EL1" */, 5 },
9524 { 131 /* "DBGBVR2_EL1" */, 11 },
9525 { 191 /* "DBGBVR3_EL1" */, 16 },
9526 { 250 /* "DBGBVR4_EL1" */, 21 },
9527 { 311 /* "DBGBVR5_EL1" */, 26 },
9528 { 370 /* "DBGBVR6_EL1" */, 31 },
9529 { 418 /* "DBGBVR7_EL1" */, 35 },
9530 { 466 /* "DBGBVR8_EL1" */, 39 },
9531 { 514 /* "DBGBVR9_EL1" */, 43 },
9532 { 942 /* "DBGCLAIMCLR_EL1" */, 77 },
9533 { 926 /* "DBGCLAIMSET_EL1" */, 76 },
9534 { 5303 /* "DBGDTRRX_EL0" */, 444 },
9535 { 5316 /* "DBGDTRTX_EL0" */, 445 },
9536 { 5292 /* "DBGDTR_EL0" */, 443 },
9537 { 914 /* "DBGPRCR_EL1" */, 75 },
9538 { 6469 /* "DBGVCR32_EL2" */, 517 },
9539 { 49 /* "DBGWCR0_EL1" */, 4 },
9540 { 601 /* "DBGWCR10_EL1" */, 50 },
9541 { 653 /* "DBGWCR11_EL1" */, 54 },
9542 { 705 /* "DBGWCR12_EL1" */, 58 },
9543 { 757 /* "DBGWCR13_EL1" */, 62 },
9544 { 809 /* "DBGWCR14_EL1" */, 66 },
9545 { 861 /* "DBGWCR15_EL1" */, 70 },
9546 { 97 /* "DBGWCR1_EL1" */, 8 },
9547 { 167 /* "DBGWCR2_EL1" */, 14 },
9548 { 227 /* "DBGWCR3_EL1" */, 19 },
9549 { 286 /* "DBGWCR4_EL1" */, 24 },
9550 { 347 /* "DBGWCR5_EL1" */, 29 },
9551 { 406 /* "DBGWCR6_EL1" */, 34 },
9552 { 454 /* "DBGWCR7_EL1" */, 38 },
9553 { 502 /* "DBGWCR8_EL1" */, 42 },
9554 { 550 /* "DBGWCR9_EL1" */, 46 },
9555 { 37 /* "DBGWVR0_EL1" */, 3 },
9556 { 588 /* "DBGWVR10_EL1" */, 49 },
9557 { 640 /* "DBGWVR11_EL1" */, 53 },
9558 { 692 /* "DBGWVR12_EL1" */, 57 },
9559 { 744 /* "DBGWVR13_EL1" */, 61 },
9560 { 796 /* "DBGWVR14_EL1" */, 65 },
9561 { 848 /* "DBGWVR15_EL1" */, 69 },
9562 { 85 /* "DBGWVR1_EL1" */, 7 },
9563 { 155 /* "DBGWVR2_EL1" */, 13 },
9564 { 215 /* "DBGWVR3_EL1" */, 18 },
9565 { 274 /* "DBGWVR4_EL1" */, 23 },
9566 { 335 /* "DBGWVR5_EL1" */, 28 },
9567 { 394 /* "DBGWVR6_EL1" */, 33 },
9568 { 442 /* "DBGWVR7_EL1" */, 37 },
9569 { 490 /* "DBGWVR8_EL1" */, 41 },
9570 { 538 /* "DBGWVR9_EL1" */, 45 },
9571 { 11873 /* "DCZID_EL0" */, 922 },
9572 { 9922 /* "DISR_EL1" */, 810 },
9573 { 11975 /* "DIT" */, 934 },
9574 { 12013 /* "DLR_EL0" */, 941 },
9575 { 12021 /* "DPOCR_EL0" */, 942 },
9576 { 7501 /* "DPOTBR0_EL1" */, 596 },
9577 { 18940 /* "DPOTBR0_EL12" */, 1455 },
9578 { 14560 /* "DPOTBR0_EL2" */, 1126 },
9579 { 20455 /* "DPOTBR0_EL3" */, 1580 },
9580 { 7513 /* "DPOTBR1_EL1" */, 597 },
9581 { 18953 /* "DPOTBR1_EL12" */, 1456 },
9582 { 14572 /* "DPOTBR1_EL2" */, 1127 },
9583 { 12003 /* "DSPSR_EL0" */, 940 },
9584 { 8572 /* "ELR_EL1" */, 685 },
9585 { 19908 /* "ELR_EL12" */, 1531 },
9586 { 15778 /* "ELR_EL2" */, 1229 },
9587 { 20906 /* "ELR_EL3" */, 1619 },
9588 { 8684 /* "ERRIDR_EL1" */, 699 },
9589 { 8695 /* "ERRSELR_EL1" */, 700 },
9590 { 8754 /* "ERXADDR_EL1" */, 705 },
9591 { 8728 /* "ERXCTLR_EL1" */, 703 },
9592 { 8718 /* "ERXFR_EL1" */, 702 },
9593 { 8707 /* "ERXGSR_EL1" */, 701 },
9594 { 8806 /* "ERXMISC0_EL1" */, 709 },
9595 { 8819 /* "ERXMISC1_EL1" */, 710 },
9596 { 8832 /* "ERXMISC2_EL1" */, 711 },
9597 { 8845 /* "ERXMISC3_EL1" */, 712 },
9598 { 8792 /* "ERXPFGCDN_EL1" */, 708 },
9599 { 8778 /* "ERXPFGCTL_EL1" */, 707 },
9600 { 8766 /* "ERXPFGF_EL1" */, 706 },
9601 { 8740 /* "ERXSTATUS_EL1" */, 704 },
9602 { 8676 /* "ESR_EL1" */, 698 },
9603 { 19964 /* "ESR_EL12" */, 1536 },
9604 { 15883 /* "ESR_EL2" */, 1240 },
9605 { 20964 /* "ESR_EL3" */, 1625 },
9606 { 8878 /* "FAR_EL1" */, 715 },
9607 { 19983 /* "FAR_EL12" */, 1538 },
9608 { 15922 /* "FAR_EL2" */, 1244 },
9609 { 20991 /* "FAR_EL3" */, 1628 },
9610 { 7803 /* "FGDTP0_EL1" */, 620 },
9611 { 19074 /* "FGDTP0_EL12" */, 1466 },
9612 { 15009 /* "FGDTP0_EL2" */, 1164 },
9613 { 20517 /* "FGDTP0_EL3" */, 1586 },
9614 { 7913 /* "FGDTP10_EL1" */, 630 },
9615 { 19194 /* "FGDTP10_EL12" */, 1476 },
9616 { 15119 /* "FGDTP10_EL2" */, 1174 },
9617 { 20627 /* "FGDTP10_EL3" */, 1596 },
9618 { 7925 /* "FGDTP11_EL1" */, 631 },
9619 { 19207 /* "FGDTP11_EL12" */, 1477 },
9620 { 15131 /* "FGDTP11_EL2" */, 1175 },
9621 { 20639 /* "FGDTP11_EL3" */, 1597 },
9622 { 7937 /* "FGDTP12_EL1" */, 632 },
9623 { 19220 /* "FGDTP12_EL12" */, 1478 },
9624 { 15143 /* "FGDTP12_EL2" */, 1176 },
9625 { 20651 /* "FGDTP12_EL3" */, 1598 },
9626 { 7949 /* "FGDTP13_EL1" */, 633 },
9627 { 19233 /* "FGDTP13_EL12" */, 1479 },
9628 { 15155 /* "FGDTP13_EL2" */, 1177 },
9629 { 20663 /* "FGDTP13_EL3" */, 1599 },
9630 { 7961 /* "FGDTP14_EL1" */, 634 },
9631 { 19246 /* "FGDTP14_EL12" */, 1480 },
9632 { 15167 /* "FGDTP14_EL2" */, 1178 },
9633 { 20675 /* "FGDTP14_EL3" */, 1600 },
9634 { 7973 /* "FGDTP15_EL1" */, 635 },
9635 { 19259 /* "FGDTP15_EL12" */, 1481 },
9636 { 15179 /* "FGDTP15_EL2" */, 1179 },
9637 { 20687 /* "FGDTP15_EL3" */, 1601 },
9638 { 7814 /* "FGDTP1_EL1" */, 621 },
9639 { 19086 /* "FGDTP1_EL12" */, 1467 },
9640 { 15020 /* "FGDTP1_EL2" */, 1165 },
9641 { 20528 /* "FGDTP1_EL3" */, 1587 },
9642 { 7825 /* "FGDTP2_EL1" */, 622 },
9643 { 19098 /* "FGDTP2_EL12" */, 1468 },
9644 { 15031 /* "FGDTP2_EL2" */, 1166 },
9645 { 20539 /* "FGDTP2_EL3" */, 1588 },
9646 { 7836 /* "FGDTP3_EL1" */, 623 },
9647 { 19110 /* "FGDTP3_EL12" */, 1469 },
9648 { 15042 /* "FGDTP3_EL2" */, 1167 },
9649 { 20550 /* "FGDTP3_EL3" */, 1589 },
9650 { 7847 /* "FGDTP4_EL1" */, 624 },
9651 { 19122 /* "FGDTP4_EL12" */, 1470 },
9652 { 15053 /* "FGDTP4_EL2" */, 1168 },
9653 { 20561 /* "FGDTP4_EL3" */, 1590 },
9654 { 7858 /* "FGDTP5_EL1" */, 625 },
9655 { 19134 /* "FGDTP5_EL12" */, 1471 },
9656 { 15064 /* "FGDTP5_EL2" */, 1169 },
9657 { 20572 /* "FGDTP5_EL3" */, 1591 },
9658 { 7869 /* "FGDTP6_EL1" */, 626 },
9659 { 19146 /* "FGDTP6_EL12" */, 1472 },
9660 { 15075 /* "FGDTP6_EL2" */, 1170 },
9661 { 20583 /* "FGDTP6_EL3" */, 1592 },
9662 { 7880 /* "FGDTP7_EL1" */, 627 },
9663 { 19158 /* "FGDTP7_EL12" */, 1473 },
9664 { 15086 /* "FGDTP7_EL2" */, 1171 },
9665 { 20594 /* "FGDTP7_EL3" */, 1593 },
9666 { 7891 /* "FGDTP8_EL1" */, 628 },
9667 { 19170 /* "FGDTP8_EL12" */, 1474 },
9668 { 15097 /* "FGDTP8_EL2" */, 1172 },
9669 { 20605 /* "FGDTP8_EL3" */, 1594 },
9670 { 7902 /* "FGDTP9_EL1" */, 629 },
9671 { 19182 /* "FGDTP9_EL12" */, 1475 },
9672 { 15108 /* "FGDTP9_EL2" */, 1173 },
9673 { 20616 /* "FGDTP9_EL3" */, 1595 },
9674 { 7985 /* "FGDTU0_EL1" */, 636 },
9675 { 19272 /* "FGDTU0_EL12" */, 1482 },
9676 { 15191 /* "FGDTU0_EL2" */, 1180 },
9677 { 8095 /* "FGDTU10_EL1" */, 646 },
9678 { 19392 /* "FGDTU10_EL12" */, 1492 },
9679 { 15301 /* "FGDTU10_EL2" */, 1190 },
9680 { 8107 /* "FGDTU11_EL1" */, 647 },
9681 { 19405 /* "FGDTU11_EL12" */, 1493 },
9682 { 15313 /* "FGDTU11_EL2" */, 1191 },
9683 { 8119 /* "FGDTU12_EL1" */, 648 },
9684 { 19418 /* "FGDTU12_EL12" */, 1494 },
9685 { 15325 /* "FGDTU12_EL2" */, 1192 },
9686 { 8131 /* "FGDTU13_EL1" */, 649 },
9687 { 19431 /* "FGDTU13_EL12" */, 1495 },
9688 { 15337 /* "FGDTU13_EL2" */, 1193 },
9689 { 8143 /* "FGDTU14_EL1" */, 650 },
9690 { 19444 /* "FGDTU14_EL12" */, 1496 },
9691 { 15349 /* "FGDTU14_EL2" */, 1194 },
9692 { 8155 /* "FGDTU15_EL1" */, 651 },
9693 { 19457 /* "FGDTU15_EL12" */, 1497 },
9694 { 15361 /* "FGDTU15_EL2" */, 1195 },
9695 { 7996 /* "FGDTU1_EL1" */, 637 },
9696 { 19284 /* "FGDTU1_EL12" */, 1483 },
9697 { 15202 /* "FGDTU1_EL2" */, 1181 },
9698 { 8007 /* "FGDTU2_EL1" */, 638 },
9699 { 19296 /* "FGDTU2_EL12" */, 1484 },
9700 { 15213 /* "FGDTU2_EL2" */, 1182 },
9701 { 8018 /* "FGDTU3_EL1" */, 639 },
9702 { 19308 /* "FGDTU3_EL12" */, 1485 },
9703 { 15224 /* "FGDTU3_EL2" */, 1183 },
9704 { 8029 /* "FGDTU4_EL1" */, 640 },
9705 { 19320 /* "FGDTU4_EL12" */, 1486 },
9706 { 15235 /* "FGDTU4_EL2" */, 1184 },
9707 { 8040 /* "FGDTU5_EL1" */, 641 },
9708 { 19332 /* "FGDTU5_EL12" */, 1487 },
9709 { 15246 /* "FGDTU5_EL2" */, 1185 },
9710 { 8051 /* "FGDTU6_EL1" */, 642 },
9711 { 19344 /* "FGDTU6_EL12" */, 1488 },
9712 { 15257 /* "FGDTU6_EL2" */, 1186 },
9713 { 8062 /* "FGDTU7_EL1" */, 643 },
9714 { 19356 /* "FGDTU7_EL12" */, 1489 },
9715 { 15268 /* "FGDTU7_EL2" */, 1187 },
9716 { 8073 /* "FGDTU8_EL1" */, 644 },
9717 { 19368 /* "FGDTU8_EL12" */, 1490 },
9718 { 15279 /* "FGDTU8_EL2" */, 1188 },
9719 { 8084 /* "FGDTU9_EL1" */, 645 },
9720 { 19380 /* "FGDTU9_EL12" */, 1491 },
9721 { 15290 /* "FGDTU9_EL2" */, 1189 },
9722 { 20380 /* "FGWTE3_EL3" */, 1572 },
9723 { 11988 /* "FPCR" */, 937 },
9724 { 15901 /* "FPEXC32_EL2" */, 1242 },
9725 { 11998 /* "FPMR" */, 939 },
9726 { 11993 /* "FPSR" */, 938 },
9727 { 7266 /* "GCR_EL1" */, 576 },
9728 { 7739 /* "GCSCRE0_EL1" */, 615 },
9729 { 7719 /* "GCSCR_EL1" */, 613 },
9730 { 19025 /* "GCSCR_EL12" */, 1462 },
9731 { 14730 /* "GCSCR_EL2" */, 1141 },
9732 { 20497 /* "GCSCR_EL3" */, 1584 },
9733 { 11939 /* "GCSPR_EL0" */, 929 },
9734 { 7729 /* "GCSPR_EL1" */, 614 },
9735 { 19036 /* "GCSPR_EL12" */, 1463 },
9736 { 14740 /* "GCSPR_EL2" */, 1142 },
9737 { 20507 /* "GCSPR_EL3" */, 1585 },
9738 { 11728 /* "GMID_EL1" */, 909 },
9739 { 20477 /* "GPCBW_EL3" */, 1582 },
9740 { 20487 /* "GPCCR_EL3" */, 1583 },
9741 { 20467 /* "GPTBR_EL3" */, 1581 },
9742 { 14702 /* "HACDBSBR_EL2" */, 1139 },
9743 { 14715 /* "HACDBSCONS_EL2" */, 1140 },
9744 { 14277 /* "HACR_EL2" */, 1101 },
9745 { 14985 /* "HAFGRTR_EL2" */, 1162 },
9746 { 14465 /* "HCRMASK_EL2" */, 1117 },
9747 { 14477 /* "HCRXMASK_EL2" */, 1118 },
9748 { 14304 /* "HCRX_EL2" */, 1104 },
9749 { 14209 /* "HCR_EL2" */, 1094 },
9750 { 14676 /* "HDBSSBR_EL2" */, 1137 },
9751 { 14688 /* "HDBSSPROD_EL2" */, 1138 },
9752 { 14911 /* "HDFGRTR2_EL2" */, 1156 },
9753 { 14961 /* "HDFGRTR_EL2" */, 1160 },
9754 { 14924 /* "HDFGWTR2_EL2" */, 1157 },
9755 { 14973 /* "HDFGWTR_EL2" */, 1161 },
9756 { 14997 /* "HFGITR2_EL2" */, 1163 },
9757 { 14266 /* "HFGITR_EL2" */, 1100 },
9758 { 14937 /* "HFGRTR2_EL2" */, 1158 },
9759 { 14244 /* "HFGRTR_EL2" */, 1098 },
9760 { 14949 /* "HFGWTR2_EL2" */, 1159 },
9761 { 14255 /* "HFGWTR_EL2" */, 1099 },
9762 { 15930 /* "HPFAR_EL2" */, 1245 },
9763 { 14235 /* "HSTR_EL2" */, 1097 },
9764 { 9986 /* "ICC_AP0R0_EL1" */, 815 },
9765 { 10000 /* "ICC_AP0R1_EL1" */, 816 },
9766 { 10014 /* "ICC_AP0R2_EL1" */, 817 },
9767 { 10028 /* "ICC_AP0R3_EL1" */, 818 },
9768 { 10042 /* "ICC_AP1R0_EL1" */, 819 },
9769 { 10056 /* "ICC_AP1R1_EL1" */, 820 },
9770 { 10070 /* "ICC_AP1R2_EL1" */, 821 },
9771 { 10084 /* "ICC_AP1R3_EL1" */, 822 },
9772 { 11756 /* "ICC_APR_EL1" */, 912 },
9773 { 21181 /* "ICC_APR_EL3" */, 1647 },
9774 { 10373 /* "ICC_ASGI1R_EL1" */, 840 },
9775 { 9973 /* "ICC_BPR0_EL1" */, 814 },
9776 { 10444 /* "ICC_BPR1_EL1" */, 845 },
9777 { 11780 /* "ICC_CR0_EL1" */, 914 },
9778 { 21306 /* "ICC_CR0_EL3" */, 1654 },
9779 { 10457 /* "ICC_CTLR_EL1" */, 846 },
9780 { 21332 /* "ICC_CTLR_EL3" */, 1656 },
9781 { 10335 /* "ICC_DIR_EL1" */, 837 },
9782 { 21205 /* "ICC_DOMHPPIR_EL3" */, 1649 },
9783 { 9944 /* "ICC_EOIR0_EL1" */, 812 },
9784 { 10415 /* "ICC_EOIR1_EL1" */, 843 },
9785 { 11828 /* "ICC_HAPR_EL1" */, 918 },
9786 { 9958 /* "ICC_HPPIR0_EL1" */, 813 },
9787 { 10429 /* "ICC_HPPIR1_EL1" */, 844 },
9788 { 10194 /* "ICC_HPPIR_EL1" */, 829 },
9789 { 21318 /* "ICC_HPPIR_EL3" */, 1655 },
9790 { 10235 /* "ICC_IAFFIDR_EL1" */, 832 },
9791 { 9931 /* "ICC_IAR0_EL1" */, 811 },
9792 { 10402 /* "ICC_IAR1_EL1" */, 842 },
9793 { 10222 /* "ICC_ICSR_EL1" */, 831 },
9794 { 10181 /* "ICC_IDR0_EL1" */, 828 },
9795 { 10482 /* "ICC_IGRPEN0_EL1" */, 848 },
9796 { 10498 /* "ICC_IGRPEN1_EL1" */, 849 },
9797 { 21357 /* "ICC_IGRPEN1_EL3" */, 1658 },
9798 { 10098 /* "ICC_NMIAR1_EL1" */, 823 },
9799 { 11804 /* "ICC_PCR_EL1" */, 916 },
9800 { 21193 /* "ICC_PCR_EL3" */, 1648 },
9801 { 8644 /* "ICC_PMR_EL1" */, 695 },
9802 { 10514 /* "ICC_PPI_CACTIVER0_EL1" */, 850 },
9803 { 10558 /* "ICC_PPI_CACTIVER1_EL1" */, 852 },
9804 { 10690 /* "ICC_PPI_CPENDR0_EL1" */, 858 },
9805 { 10730 /* "ICC_PPI_CPENDR1_EL1" */, 860 },
9806 { 21222 /* "ICC_PPI_DOMAINR0_EL3" */, 1650 },
9807 { 21243 /* "ICC_PPI_DOMAINR1_EL3" */, 1651 },
9808 { 21264 /* "ICC_PPI_DOMAINR2_EL3" */, 1652 },
9809 { 21285 /* "ICC_PPI_DOMAINR3_EL3" */, 1653 },
9810 { 10251 /* "ICC_PPI_ENABLER0_EL1" */, 833 },
9811 { 10293 /* "ICC_PPI_ENABLER1_EL1" */, 835 },
9812 { 10113 /* "ICC_PPI_HMR0_EL1" */, 824 },
9813 { 10147 /* "ICC_PPI_HMR1_EL1" */, 826 },
9814 { 10850 /* "ICC_PPI_PRIORITYR0_EL1" */, 866 },
9815 { 11310 /* "ICC_PPI_PRIORITYR10_EL1" */, 886 },
9816 { 11358 /* "ICC_PPI_PRIORITYR11_EL1" */, 888 },
9817 { 11406 /* "ICC_PPI_PRIORITYR12_EL1" */, 890 },
9818 { 11454 /* "ICC_PPI_PRIORITYR13_EL1" */, 892 },
9819 { 11502 /* "ICC_PPI_PRIORITYR14_EL1" */, 894 },
9820 { 11550 /* "ICC_PPI_PRIORITYR15_EL1" */, 896 },
9821 { 10896 /* "ICC_PPI_PRIORITYR1_EL1" */, 868 },
9822 { 10942 /* "ICC_PPI_PRIORITYR2_EL1" */, 870 },
9823 { 10988 /* "ICC_PPI_PRIORITYR3_EL1" */, 872 },
9824 { 11034 /* "ICC_PPI_PRIORITYR4_EL1" */, 874 },
9825 { 11080 /* "ICC_PPI_PRIORITYR5_EL1" */, 876 },
9826 { 11126 /* "ICC_PPI_PRIORITYR6_EL1" */, 878 },
9827 { 11172 /* "ICC_PPI_PRIORITYR7_EL1" */, 880 },
9828 { 11218 /* "ICC_PPI_PRIORITYR8_EL1" */, 882 },
9829 { 11264 /* "ICC_PPI_PRIORITYR9_EL1" */, 884 },
9830 { 10602 /* "ICC_PPI_SACTIVER0_EL1" */, 854 },
9831 { 10646 /* "ICC_PPI_SACTIVER1_EL1" */, 856 },
9832 { 10770 /* "ICC_PPI_SPENDR0_EL1" */, 862 },
9833 { 10810 /* "ICC_PPI_SPENDR1_EL1" */, 864 },
9834 { 10347 /* "ICC_RPR_EL1" */, 838 },
9835 { 10388 /* "ICC_SGI0R_EL1" */, 841 },
9836 { 10359 /* "ICC_SGI1R_EL1" */, 839 },
9837 { 10470 /* "ICC_SRE_EL1" */, 847 },
9838 { 16952 /* "ICC_SRE_EL2" */, 1332 },
9839 { 21345 /* "ICC_SRE_EL3" */, 1657 },
9840 { 16799 /* "ICH_AP0R0_EL2" */, 1321 },
9841 { 16813 /* "ICH_AP0R1_EL2" */, 1322 },
9842 { 16827 /* "ICH_AP0R2_EL2" */, 1323 },
9843 { 16841 /* "ICH_AP0R3_EL2" */, 1324 },
9844 { 16881 /* "ICH_AP1R0_EL2" */, 1327 },
9845 { 16895 /* "ICH_AP1R1_EL2" */, 1328 },
9846 { 16909 /* "ICH_AP1R2_EL2" */, 1329 },
9847 { 16923 /* "ICH_AP1R3_EL2" */, 1330 },
9848 { 16855 /* "ICH_APR_EL2" */, 1325 },
9849 { 17230 /* "ICH_CONTEXTR_EL2" */, 1349 },
9850 { 17189 /* "ICH_EISR_EL2" */, 1346 },
9851 { 17216 /* "ICH_ELRSR_EL2" */, 1348 },
9852 { 17152 /* "ICH_HCR_EL2" */, 1343 },
9853 { 16979 /* "ICH_HFGITR_EL2" */, 1334 },
9854 { 16937 /* "ICH_HFGRTR_EL2" */, 1331 },
9855 { 16964 /* "ICH_HFGWTR_EL2" */, 1333 },
9856 { 16867 /* "ICH_HPPIR_EL2" */, 1326 },
9857 { 17260 /* "ICH_LR0_EL2" */, 1351 },
9858 { 17380 /* "ICH_LR10_EL2" */, 1361 },
9859 { 17393 /* "ICH_LR11_EL2" */, 1362 },
9860 { 17406 /* "ICH_LR12_EL2" */, 1363 },
9861 { 17419 /* "ICH_LR13_EL2" */, 1364 },
9862 { 17432 /* "ICH_LR14_EL2" */, 1365 },
9863 { 17445 /* "ICH_LR15_EL2" */, 1366 },
9864 { 17272 /* "ICH_LR1_EL2" */, 1352 },
9865 { 17284 /* "ICH_LR2_EL2" */, 1353 },
9866 { 17296 /* "ICH_LR3_EL2" */, 1354 },
9867 { 17308 /* "ICH_LR4_EL2" */, 1355 },
9868 { 17320 /* "ICH_LR5_EL2" */, 1356 },
9869 { 17332 /* "ICH_LR6_EL2" */, 1357 },
9870 { 17344 /* "ICH_LR7_EL2" */, 1358 },
9871 { 17356 /* "ICH_LR8_EL2" */, 1359 },
9872 { 17368 /* "ICH_LR9_EL2" */, 1360 },
9873 { 17176 /* "ICH_MISR_EL2" */, 1345 },
9874 { 17110 /* "ICH_PPI_ACTIVER0_EL2" */, 1341 },
9875 { 17131 /* "ICH_PPI_ACTIVER1_EL2" */, 1342 },
9876 { 16994 /* "ICH_PPI_DVIR0_EL2" */, 1335 },
9877 { 17012 /* "ICH_PPI_DVIR1_EL2" */, 1336 },
9878 { 17030 /* "ICH_PPI_ENABLER0_EL2" */, 1337 },
9879 { 17051 /* "ICH_PPI_ENABLER1_EL2" */, 1338 },
9880 { 16763 /* "ICH_PPI_HVIR0_EL2" */, 1319 },
9881 { 16781 /* "ICH_PPI_HVIR1_EL2" */, 1320 },
9882 { 17072 /* "ICH_PPI_PENDR0_EL2" */, 1339 },
9883 { 17091 /* "ICH_PPI_PENDR1_EL2" */, 1340 },
9884 { 17458 /* "ICH_PPI_PRIORITYR0_EL2" */, 1367 },
9885 { 17688 /* "ICH_PPI_PRIORITYR10_EL2" */, 1377 },
9886 { 17712 /* "ICH_PPI_PRIORITYR11_EL2" */, 1378 },
9887 { 17736 /* "ICH_PPI_PRIORITYR12_EL2" */, 1379 },
9888 { 17760 /* "ICH_PPI_PRIORITYR13_EL2" */, 1380 },
9889 { 17784 /* "ICH_PPI_PRIORITYR14_EL2" */, 1381 },
9890 { 17808 /* "ICH_PPI_PRIORITYR15_EL2" */, 1382 },
9891 { 17481 /* "ICH_PPI_PRIORITYR1_EL2" */, 1368 },
9892 { 17504 /* "ICH_PPI_PRIORITYR2_EL2" */, 1369 },
9893 { 17527 /* "ICH_PPI_PRIORITYR3_EL2" */, 1370 },
9894 { 17550 /* "ICH_PPI_PRIORITYR4_EL2" */, 1371 },
9895 { 17573 /* "ICH_PPI_PRIORITYR5_EL2" */, 1372 },
9896 { 17596 /* "ICH_PPI_PRIORITYR6_EL2" */, 1373 },
9897 { 17619 /* "ICH_PPI_PRIORITYR7_EL2" */, 1374 },
9898 { 17642 /* "ICH_PPI_PRIORITYR8_EL2" */, 1375 },
9899 { 17665 /* "ICH_PPI_PRIORITYR9_EL2" */, 1376 },
9900 { 17202 /* "ICH_VCTLR_EL2" */, 1347 },
9901 { 17247 /* "ICH_VMCR_EL2" */, 1350 },
9902 { 17164 /* "ICH_VTR_EL2" */, 1344 },
9903 { 11768 /* "ICV_APR_EL1" */, 913 },
9904 { 11792 /* "ICV_CR0_EL1" */, 915 },
9905 { 11841 /* "ICV_HAPR_EL1" */, 919 },
9906 { 10208 /* "ICV_HPPIR_EL1" */, 830 },
9907 { 11816 /* "ICV_PCR_EL1" */, 917 },
9908 { 10536 /* "ICV_PPI_CACTIVER0_EL1" */, 851 },
9909 { 10580 /* "ICV_PPI_CACTIVER1_EL1" */, 853 },
9910 { 10710 /* "ICV_PPI_CPENDR0_EL1" */, 859 },
9911 { 10750 /* "ICV_PPI_CPENDR1_EL1" */, 861 },
9912 { 10272 /* "ICV_PPI_ENABLER0_EL1" */, 834 },
9913 { 10314 /* "ICV_PPI_ENABLER1_EL1" */, 836 },
9914 { 10130 /* "ICV_PPI_HMR0_EL1" */, 825 },
9915 { 10164 /* "ICV_PPI_HMR1_EL1" */, 827 },
9916 { 10873 /* "ICV_PPI_PRIORITYR0_EL1" */, 867 },
9917 { 11334 /* "ICV_PPI_PRIORITYR10_EL1" */, 887 },
9918 { 11382 /* "ICV_PPI_PRIORITYR11_EL1" */, 889 },
9919 { 11430 /* "ICV_PPI_PRIORITYR12_EL1" */, 891 },
9920 { 11478 /* "ICV_PPI_PRIORITYR13_EL1" */, 893 },
9921 { 11526 /* "ICV_PPI_PRIORITYR14_EL1" */, 895 },
9922 { 11574 /* "ICV_PPI_PRIORITYR15_EL1" */, 897 },
9923 { 10919 /* "ICV_PPI_PRIORITYR1_EL1" */, 869 },
9924 { 10965 /* "ICV_PPI_PRIORITYR2_EL1" */, 871 },
9925 { 11011 /* "ICV_PPI_PRIORITYR3_EL1" */, 873 },
9926 { 11057 /* "ICV_PPI_PRIORITYR4_EL1" */, 875 },
9927 { 11103 /* "ICV_PPI_PRIORITYR5_EL1" */, 877 },
9928 { 11149 /* "ICV_PPI_PRIORITYR6_EL1" */, 879 },
9929 { 11195 /* "ICV_PPI_PRIORITYR7_EL1" */, 881 },
9930 { 11241 /* "ICV_PPI_PRIORITYR8_EL1" */, 883 },
9931 { 11287 /* "ICV_PPI_PRIORITYR9_EL1" */, 885 },
9932 { 10624 /* "ICV_PPI_SACTIVER0_EL1" */, 855 },
9933 { 10668 /* "ICV_PPI_SACTIVER1_EL1" */, 857 },
9934 { 10790 /* "ICV_PPI_SPENDR0_EL1" */, 863 },
9935 { 10830 /* "ICV_PPI_SPENDR1_EL1" */, 865 },
9936 { 7031 /* "ID_AA64AFR0_EL1" */, 560 },
9937 { 7047 /* "ID_AA64AFR1_EL1" */, 561 },
9938 { 6983 /* "ID_AA64DFR0_EL1" */, 557 },
9939 { 6999 /* "ID_AA64DFR1_EL1" */, 558 },
9940 { 7015 /* "ID_AA64DFR2_EL1" */, 559 },
9941 { 6966 /* "ID_AA64FPFR0_EL1" */, 556 },
9942 { 7063 /* "ID_AA64ISAR0_EL1" */, 562 },
9943 { 7080 /* "ID_AA64ISAR1_EL1" */, 563 },
9944 { 7097 /* "ID_AA64ISAR2_EL1" */, 564 },
9945 { 7114 /* "ID_AA64ISAR3_EL1" */, 565 },
9946 { 7131 /* "ID_AA64MMFR0_EL1" */, 566 },
9947 { 7148 /* "ID_AA64MMFR1_EL1" */, 567 },
9948 { 7165 /* "ID_AA64MMFR2_EL1" */, 568 },
9949 { 7182 /* "ID_AA64MMFR3_EL1" */, 569 },
9950 { 7199 /* "ID_AA64MMFR4_EL1" */, 570 },
9951 { 6885 /* "ID_AA64PFR0_EL1" */, 551 },
9952 { 6901 /* "ID_AA64PFR1_EL1" */, 552 },
9953 { 6917 /* "ID_AA64PFR2_EL1" */, 553 },
9954 { 6949 /* "ID_AA64SMFR0_EL1" */, 555 },
9955 { 6933 /* "ID_AA64ZFR0_EL1" */, 554 },
9956 { 6650 /* "ID_AFR0_EL1" */, 532 },
9957 { 6638 /* "ID_DFR0_EL1" */, 531 },
9958 { 6860 /* "ID_DFR1_EL1" */, 549 },
9959 { 6714 /* "ID_ISAR0_EL1" */, 537 },
9960 { 6727 /* "ID_ISAR1_EL1" */, 538 },
9961 { 6740 /* "ID_ISAR2_EL1" */, 539 },
9962 { 6753 /* "ID_ISAR3_EL1" */, 540 },
9963 { 6766 /* "ID_ISAR4_EL1" */, 541 },
9964 { 6779 /* "ID_ISAR5_EL1" */, 542 },
9965 { 6805 /* "ID_ISAR6_EL1" */, 544 },
9966 { 6662 /* "ID_MMFR0_EL1" */, 533 },
9967 { 6675 /* "ID_MMFR1_EL1" */, 534 },
9968 { 6688 /* "ID_MMFR2_EL1" */, 535 },
9969 { 6701 /* "ID_MMFR3_EL1" */, 536 },
9970 { 6792 /* "ID_MMFR4_EL1" */, 543 },
9971 { 6872 /* "ID_MMFR5_EL1" */, 550 },
9972 { 6614 /* "ID_PFR0_EL1" */, 529 },
9973 { 6626 /* "ID_PFR1_EL1" */, 530 },
9974 { 6848 /* "ID_PFR2_EL1" */, 548 },
9975 { 15852 /* "IFSR32_EL2" */, 1237 },
9976 { 7490 /* "IRTBRP_EL1" */, 595 },
9977 { 18928 /* "IRTBRP_EL12" */, 1454 },
9978 { 14549 /* "IRTBRP_EL2" */, 1125 },
9979 { 20444 /* "IRTBRP_EL3" */, 1579 },
9980 { 7479 /* "IRTBRU_EL1" */, 594 },
9981 { 18916 /* "IRTBRU_EL12" */, 1453 },
9982 { 14538 /* "IRTBRU_EL2" */, 1124 },
9983 { 9914 /* "ISR_EL1" */, 809 },
9984 { 7581 /* "LDSTT_EL1" */, 602 },
9985 { 18966 /* "LDSTT_EL12" */, 1457 },
9986 { 14603 /* "LDSTT_EL2" */, 1130 },
9987 { 9749 /* "LORC_EL1" */, 794 },
9988 { 9730 /* "LOREA_EL1" */, 792 },
9989 { 9797 /* "LORID_EL1" */, 798 },
9990 { 9740 /* "LORN_EL1" */, 793 },
9991 { 9720 /* "LORSA_EL1" */, 791 },
9992 { 9631 /* "MAIR2_EL1" */, 782 },
9993 { 20045 /* "MAIR2_EL12" */, 1544 },
9994 { 16362 /* "MAIR2_EL2" */, 1284 },
9995 { 21028 /* "MAIR2_EL3" */, 1632 },
9996 { 9622 /* "MAIR_EL1" */, 781 },
9997 { 20035 /* "MAIR_EL12" */, 1543 },
9998 { 16372 /* "MAIR_EL2" */, 1285 },
9999 { 21038 /* "MAIR_EL3" */, 1633 },
10000 { 109 /* "MDCCINT_EL1" */, 9 },
10001 { 5281 /* "MDCCSR_EL0" */, 442 },
10002 { 14217 /* "MDCR_EL2" */, 1095 },
10003 { 20417 /* "MDCR_EL3" */, 1576 },
10004 { 874 /* "MDRAR_EL1" */, 71 },
10005 { 121 /* "MDSCR_EL1" */, 10 },
10006 { 239 /* "MDSELR_EL1" */, 20 },
10007 { 298 /* "MDSTEPOP_EL1" */, 25 },
10008 { 16689 /* "MECIDR_EL2" */, 1312 },
10009 { 16650 /* "MECID_A0_EL2" */, 1309 },
10010 { 16676 /* "MECID_A1_EL2" */, 1311 },
10011 { 16637 /* "MECID_P0_EL2" */, 1308 },
10012 { 16663 /* "MECID_P1_EL2" */, 1310 },
10013 { 21129 /* "MECID_RL_A_EL3" */, 1642 },
10014 { 20999 /* "MFAR_EL3" */, 1629 },
10015 { 6574 /* "MIDR_EL1" */, 525 },
10016 { 9817 /* "MPAM0_EL1" */, 800 },
10017 { 9807 /* "MPAM1_EL1" */, 799 },
10018 { 20132 /* "MPAM1_EL12" */, 1552 },
10019 { 16485 /* "MPAM2_EL2" */, 1296 },
10020 { 21095 /* "MPAM3_EL3" */, 1639 },
10021 { 9862 /* "MPAMBW0_EL1" */, 804 },
10022 { 9850 /* "MPAMBW1_EL1" */, 803 },
10023 { 20156 /* "MPAMBW1_EL12" */, 1554 },
10024 { 16507 /* "MPAMBW2_EL2" */, 1298 },
10025 { 21117 /* "MPAMBW3_EL3" */, 1641 },
10026 { 16519 /* "MPAMBWCAP_EL2" */, 1299 },
10027 { 9770 /* "MPAMBWIDR_EL1" */, 796 },
10028 { 9874 /* "MPAMBWSM_EL1" */, 805 },
10029 { 9827 /* "MPAMCTL_EL1" */, 801 },
10030 { 20143 /* "MPAMCTL_EL12" */, 1553 },
10031 { 16495 /* "MPAMCTL_EL2" */, 1297 },
10032 { 21105 /* "MPAMCTL_EL3" */, 1640 },
10033 { 16460 /* "MPAMHCR_EL2" */, 1294 },
10034 { 9758 /* "MPAMIDR_EL1" */, 795 },
10035 { 9839 /* "MPAMSM_EL1" */, 802 },
10036 { 16533 /* "MPAMVPM0_EL2" */, 1300 },
10037 { 16546 /* "MPAMVPM1_EL2" */, 1301 },
10038 { 16559 /* "MPAMVPM2_EL2" */, 1302 },
10039 { 16572 /* "MPAMVPM3_EL2" */, 1303 },
10040 { 16585 /* "MPAMVPM4_EL2" */, 1304 },
10041 { 16598 /* "MPAMVPM5_EL2" */, 1305 },
10042 { 16611 /* "MPAMVPM6_EL2" */, 1306 },
10043 { 16624 /* "MPAMVPM7_EL2" */, 1307 },
10044 { 16472 /* "MPAMVPMV_EL2" */, 1295 },
10045 { 6593 /* "MPIDR_EL1" */, 527 },
10046 { 6583 /* "MPUIR_EL1" */, 526 },
10047 { 14157 /* "MPUIR_EL2" */, 1089 },
10048 { 6818 /* "MVFR0_EL1" */, 545 },
10049 { 6828 /* "MVFR1_EL1" */, 546 },
10050 { 6838 /* "MVFR2_EL1" */, 547 },
10051 { 14436 /* "NVHCRMASK_EL2" */, 1115 },
10052 { 14450 /* "NVHCRXMASK_EL2" */, 1116 },
10053 { 14425 /* "NVHCRX_EL2" */, 1114 },
10054 { 14415 /* "NVHCR_EL2" */, 1113 },
10055 { 11960 /* "NZCV" */, 931 },
10056 { 904 /* "OSDLR_EL1" */, 74 },
10057 { 1 /* "OSDTRRX_EL1" */, 0 },
10058 { 179 /* "OSDTRTX_EL1" */, 15 },
10059 { 359 /* "OSECCR_EL1" */, 30 },
10060 { 884 /* "OSLAR_EL1" */, 72 },
10061 { 894 /* "OSLSR_EL1" */, 73 },
10062 { 8626 /* "PAN" */, 691 },
10063 { 9278 /* "PAR_EL1" */, 751 },
10064 { 8886 /* "PFAR_EL1" */, 716 },
10065 { 19992 /* "PFAR_EL12" */, 1539 },
10066 { 15940 /* "PFAR_EL2" */, 1246 },
10067 { 9641 /* "PIRE0_EL1" */, 783 },
10068 { 20056 /* "PIRE0_EL12" */, 1545 },
10069 { 16381 /* "PIRE0_EL2" */, 1286 },
10070 { 9651 /* "PIR_EL1" */, 784 },
10071 { 20067 /* "PIR_EL12" */, 1546 },
10072 { 16391 /* "PIR_EL2" */, 1287 },
10073 { 21047 /* "PIR_EL3" */, 1634 },
10074 { 8641 /* "PM" */, 694 },
10075 { 9436 /* "PMBIDR_EL1" */, 765 },
10076 { 9378 /* "PMBLIMITR_EL1" */, 760 },
10077 { 9425 /* "PMBMAR_EL1" */, 764 },
10078 { 9392 /* "PMBPTR_EL1" */, 761 },
10079 { 9403 /* "PMBSR_EL1" */, 762 },
10080 { 20013 /* "PMBSR_EL12" */, 1541 },
10081 { 16342 /* "PMBSR_EL2" */, 1282 },
10082 { 21008 /* "PMBSR_EL3" */, 1630 },
10083 { 14133 /* "PMCCFILTR_EL0" */, 1087 },
10084 { 12156 /* "PMCCNTR_EL0" */, 953 },
10085 { 1619 /* "PMCCNTSVR_EL1" */, 119 },
10086 { 12132 /* "PMCEID0_EL0" */, 951 },
10087 { 12144 /* "PMCEID1_EL0" */, 952 },
10088 { 12081 /* "PMCNTENCLR_EL0" */, 947 },
10089 { 12066 /* "PMCNTENSET_EL0" */, 946 },
10090 { 12057 /* "PMCR_EL0" */, 945 },
10091 { 9592 /* "PMECR_EL1" */, 778 },
10092 { 13192 /* "PMEVCNTR0_EL0" */, 1025 },
10093 { 13332 /* "PMEVCNTR10_EL0" */, 1035 },
10094 { 13347 /* "PMEVCNTR11_EL0" */, 1036 },
10095 { 13362 /* "PMEVCNTR12_EL0" */, 1037 },
10096 { 13377 /* "PMEVCNTR13_EL0" */, 1038 },
10097 { 13392 /* "PMEVCNTR14_EL0" */, 1039 },
10098 { 13407 /* "PMEVCNTR15_EL0" */, 1040 },
10099 { 13422 /* "PMEVCNTR16_EL0" */, 1041 },
10100 { 13437 /* "PMEVCNTR17_EL0" */, 1042 },
10101 { 13452 /* "PMEVCNTR18_EL0" */, 1043 },
10102 { 13467 /* "PMEVCNTR19_EL0" */, 1044 },
10103 { 13206 /* "PMEVCNTR1_EL0" */, 1026 },
10104 { 13482 /* "PMEVCNTR20_EL0" */, 1045 },
10105 { 13497 /* "PMEVCNTR21_EL0" */, 1046 },
10106 { 13512 /* "PMEVCNTR22_EL0" */, 1047 },
10107 { 13527 /* "PMEVCNTR23_EL0" */, 1048 },
10108 { 13542 /* "PMEVCNTR24_EL0" */, 1049 },
10109 { 13557 /* "PMEVCNTR25_EL0" */, 1050 },
10110 { 13572 /* "PMEVCNTR26_EL0" */, 1051 },
10111 { 13587 /* "PMEVCNTR27_EL0" */, 1052 },
10112 { 13602 /* "PMEVCNTR28_EL0" */, 1053 },
10113 { 13617 /* "PMEVCNTR29_EL0" */, 1054 },
10114 { 13220 /* "PMEVCNTR2_EL0" */, 1027 },
10115 { 13632 /* "PMEVCNTR30_EL0" */, 1055 },
10116 { 13234 /* "PMEVCNTR3_EL0" */, 1028 },
10117 { 13248 /* "PMEVCNTR4_EL0" */, 1029 },
10118 { 13262 /* "PMEVCNTR5_EL0" */, 1030 },
10119 { 13276 /* "PMEVCNTR6_EL0" */, 1031 },
10120 { 13290 /* "PMEVCNTR7_EL0" */, 1032 },
10121 { 13304 /* "PMEVCNTR8_EL0" */, 1033 },
10122 { 13318 /* "PMEVCNTR9_EL0" */, 1034 },
10123 { 1102 /* "PMEVCNTSVR0_EL1" */, 88 },
10124 { 1262 /* "PMEVCNTSVR10_EL1" */, 98 },
10125 { 1279 /* "PMEVCNTSVR11_EL1" */, 99 },
10126 { 1296 /* "PMEVCNTSVR12_EL1" */, 100 },
10127 { 1313 /* "PMEVCNTSVR13_EL1" */, 101 },
10128 { 1330 /* "PMEVCNTSVR14_EL1" */, 102 },
10129 { 1347 /* "PMEVCNTSVR15_EL1" */, 103 },
10130 { 1364 /* "PMEVCNTSVR16_EL1" */, 104 },
10131 { 1381 /* "PMEVCNTSVR17_EL1" */, 105 },
10132 { 1398 /* "PMEVCNTSVR18_EL1" */, 106 },
10133 { 1415 /* "PMEVCNTSVR19_EL1" */, 107 },
10134 { 1118 /* "PMEVCNTSVR1_EL1" */, 89 },
10135 { 1432 /* "PMEVCNTSVR20_EL1" */, 108 },
10136 { 1449 /* "PMEVCNTSVR21_EL1" */, 109 },
10137 { 1466 /* "PMEVCNTSVR22_EL1" */, 110 },
10138 { 1483 /* "PMEVCNTSVR23_EL1" */, 111 },
10139 { 1500 /* "PMEVCNTSVR24_EL1" */, 112 },
10140 { 1517 /* "PMEVCNTSVR25_EL1" */, 113 },
10141 { 1534 /* "PMEVCNTSVR26_EL1" */, 114 },
10142 { 1551 /* "PMEVCNTSVR27_EL1" */, 115 },
10143 { 1568 /* "PMEVCNTSVR28_EL1" */, 116 },
10144 { 1585 /* "PMEVCNTSVR29_EL1" */, 117 },
10145 { 1134 /* "PMEVCNTSVR2_EL1" */, 90 },
10146 { 1602 /* "PMEVCNTSVR30_EL1" */, 118 },
10147 { 1150 /* "PMEVCNTSVR3_EL1" */, 91 },
10148 { 1166 /* "PMEVCNTSVR4_EL1" */, 92 },
10149 { 1182 /* "PMEVCNTSVR5_EL1" */, 93 },
10150 { 1198 /* "PMEVCNTSVR6_EL1" */, 94 },
10151 { 1214 /* "PMEVCNTSVR7_EL1" */, 95 },
10152 { 1230 /* "PMEVCNTSVR8_EL1" */, 96 },
10153 { 1246 /* "PMEVCNTSVR9_EL1" */, 97 },
10154 { 13647 /* "PMEVTYPER0_EL0" */, 1056 },
10155 { 13797 /* "PMEVTYPER10_EL0" */, 1066 },
10156 { 13813 /* "PMEVTYPER11_EL0" */, 1067 },
10157 { 13829 /* "PMEVTYPER12_EL0" */, 1068 },
10158 { 13845 /* "PMEVTYPER13_EL0" */, 1069 },
10159 { 13861 /* "PMEVTYPER14_EL0" */, 1070 },
10160 { 13877 /* "PMEVTYPER15_EL0" */, 1071 },
10161 { 13893 /* "PMEVTYPER16_EL0" */, 1072 },
10162 { 13909 /* "PMEVTYPER17_EL0" */, 1073 },
10163 { 13925 /* "PMEVTYPER18_EL0" */, 1074 },
10164 { 13941 /* "PMEVTYPER19_EL0" */, 1075 },
10165 { 13662 /* "PMEVTYPER1_EL0" */, 1057 },
10166 { 13957 /* "PMEVTYPER20_EL0" */, 1076 },
10167 { 13973 /* "PMEVTYPER21_EL0" */, 1077 },
10168 { 13989 /* "PMEVTYPER22_EL0" */, 1078 },
10169 { 14005 /* "PMEVTYPER23_EL0" */, 1079 },
10170 { 14021 /* "PMEVTYPER24_EL0" */, 1080 },
10171 { 14037 /* "PMEVTYPER25_EL0" */, 1081 },
10172 { 14053 /* "PMEVTYPER26_EL0" */, 1082 },
10173 { 14069 /* "PMEVTYPER27_EL0" */, 1083 },
10174 { 14085 /* "PMEVTYPER28_EL0" */, 1084 },
10175 { 14101 /* "PMEVTYPER29_EL0" */, 1085 },
10176 { 13677 /* "PMEVTYPER2_EL0" */, 1058 },
10177 { 14117 /* "PMEVTYPER30_EL0" */, 1086 },
10178 { 13692 /* "PMEVTYPER3_EL0" */, 1059 },
10179 { 13707 /* "PMEVTYPER4_EL0" */, 1060 },
10180 { 13722 /* "PMEVTYPER5_EL0" */, 1061 },
10181 { 13737 /* "PMEVTYPER6_EL0" */, 1062 },
10182 { 13752 /* "PMEVTYPER7_EL0" */, 1063 },
10183 { 13767 /* "PMEVTYPER8_EL0" */, 1064 },
10184 { 13782 /* "PMEVTYPER9_EL0" */, 1065 },
10185 { 9612 /* "PMIAR_EL1" */, 780 },
10186 { 12043 /* "PMICFILTR_EL0" */, 944 },
10187 { 12031 /* "PMICNTR_EL0" */, 943 },
10188 { 1633 /* "PMICNTSVR_EL1" */, 120 },
10189 { 9566 /* "PMINTENCLR_EL1" */, 776 },
10190 { 9551 /* "PMINTENSET_EL1" */, 775 },
10191 { 9602 /* "PMMIR_EL1" */, 779 },
10192 { 12096 /* "PMOVSCLR_EL0" */, 948 },
10193 { 12220 /* "PMOVSSET_EL0" */, 958 },
10194 { 9286 /* "PMSCR_EL1" */, 752 },
10195 { 20002 /* "PMSCR_EL12" */, 1540 },
10196 { 16332 /* "PMSCR_EL2" */, 1281 },
10197 { 9413 /* "PMSDSFR_EL1" */, 763 },
10198 { 12121 /* "PMSELR_EL0" */, 950 },
10199 { 9342 /* "PMSEVFR_EL1" */, 757 },
10200 { 9331 /* "PMSFCR_EL1" */, 756 },
10201 { 9309 /* "PMSICR_EL1" */, 754 },
10202 { 9367 /* "PMSIDR_EL1" */, 759 },
10203 { 9320 /* "PMSIRR_EL1" */, 755 },
10204 { 9354 /* "PMSLATFR_EL1" */, 758 },
10205 { 9296 /* "PMSNEVFR_EL1" */, 753 },
10206 { 9540 /* "PMSSCR_EL1" */, 774 },
10207 { 12109 /* "PMSWINC_EL0" */, 949 },
10208 { 9581 /* "PMUACR_EL1" */, 777 },
10209 { 12206 /* "PMUSERENR_EL0" */, 957 },
10210 { 12183 /* "PMXEVCNTR_EL0" */, 955 },
10211 { 12168 /* "PMXEVTYPER_EL0" */, 954 },
10212 { 12197 /* "PMZR_EL0" */, 956 },
10213 { 12233 /* "POR_EL0" */, 959 },
10214 { 9659 /* "POR_EL1" */, 785 },
10215 { 20076 /* "POR_EL12" */, 1547 },
10216 { 16399 /* "POR_EL2" */, 1288 },
10217 { 21055 /* "POR_EL3" */, 1635 },
10218 { 9134 /* "PRBAR10_EL1" */, 739 },
10219 { 16188 /* "PRBAR10_EL2" */, 1269 },
10220 { 9158 /* "PRBAR11_EL1" */, 741 },
10221 { 16212 /* "PRBAR11_EL2" */, 1271 },
10222 { 9182 /* "PRBAR12_EL1" */, 743 },
10223 { 16236 /* "PRBAR12_EL2" */, 1273 },
10224 { 9206 /* "PRBAR13_EL1" */, 745 },
10225 { 16260 /* "PRBAR13_EL2" */, 1275 },
10226 { 9230 /* "PRBAR14_EL1" */, 747 },
10227 { 16284 /* "PRBAR14_EL2" */, 1277 },
10228 { 9254 /* "PRBAR15_EL1" */, 749 },
10229 { 16308 /* "PRBAR15_EL2" */, 1279 },
10230 { 8936 /* "PRBAR1_EL1" */, 721 },
10231 { 15990 /* "PRBAR1_EL2" */, 1251 },
10232 { 8958 /* "PRBAR2_EL1" */, 723 },
10233 { 16012 /* "PRBAR2_EL2" */, 1253 },
10234 { 8980 /* "PRBAR3_EL1" */, 725 },
10235 { 16034 /* "PRBAR3_EL2" */, 1255 },
10236 { 9002 /* "PRBAR4_EL1" */, 727 },
10237 { 16056 /* "PRBAR4_EL2" */, 1257 },
10238 { 9024 /* "PRBAR5_EL1" */, 729 },
10239 { 16078 /* "PRBAR5_EL2" */, 1259 },
10240 { 9046 /* "PRBAR6_EL1" */, 731 },
10241 { 16100 /* "PRBAR6_EL2" */, 1261 },
10242 { 9068 /* "PRBAR7_EL1" */, 733 },
10243 { 16122 /* "PRBAR7_EL2" */, 1263 },
10244 { 9090 /* "PRBAR8_EL1" */, 735 },
10245 { 16144 /* "PRBAR8_EL2" */, 1265 },
10246 { 9112 /* "PRBAR9_EL1" */, 737 },
10247 { 16166 /* "PRBAR9_EL2" */, 1267 },
10248 { 8916 /* "PRBAR_EL1" */, 719 },
10249 { 15970 /* "PRBAR_EL2" */, 1249 },
10250 { 8895 /* "PRENR_EL1" */, 717 },
10251 { 15949 /* "PRENR_EL2" */, 1247 },
10252 { 9146 /* "PRLAR10_EL1" */, 740 },
10253 { 16200 /* "PRLAR10_EL2" */, 1270 },
10254 { 9170 /* "PRLAR11_EL1" */, 742 },
10255 { 16224 /* "PRLAR11_EL2" */, 1272 },
10256 { 9194 /* "PRLAR12_EL1" */, 744 },
10257 { 16248 /* "PRLAR12_EL2" */, 1274 },
10258 { 9218 /* "PRLAR13_EL1" */, 746 },
10259 { 16272 /* "PRLAR13_EL2" */, 1276 },
10260 { 9242 /* "PRLAR14_EL1" */, 748 },
10261 { 16296 /* "PRLAR14_EL2" */, 1278 },
10262 { 9266 /* "PRLAR15_EL1" */, 750 },
10263 { 16320 /* "PRLAR15_EL2" */, 1280 },
10264 { 8947 /* "PRLAR1_EL1" */, 722 },
10265 { 16001 /* "PRLAR1_EL2" */, 1252 },
10266 { 8969 /* "PRLAR2_EL1" */, 724 },
10267 { 16023 /* "PRLAR2_EL2" */, 1254 },
10268 { 8991 /* "PRLAR3_EL1" */, 726 },
10269 { 16045 /* "PRLAR3_EL2" */, 1256 },
10270 { 9013 /* "PRLAR4_EL1" */, 728 },
10271 { 16067 /* "PRLAR4_EL2" */, 1258 },
10272 { 9035 /* "PRLAR5_EL1" */, 730 },
10273 { 16089 /* "PRLAR5_EL2" */, 1260 },
10274 { 9057 /* "PRLAR6_EL1" */, 732 },
10275 { 16111 /* "PRLAR6_EL2" */, 1262 },
10276 { 9079 /* "PRLAR7_EL1" */, 734 },
10277 { 16133 /* "PRLAR7_EL2" */, 1264 },
10278 { 9101 /* "PRLAR8_EL1" */, 736 },
10279 { 16155 /* "PRLAR8_EL2" */, 1266 },
10280 { 9123 /* "PRLAR9_EL1" */, 738 },
10281 { 16177 /* "PRLAR9_EL2" */, 1268 },
10282 { 8926 /* "PRLAR_EL1" */, 720 },
10283 { 15980 /* "PRLAR_EL2" */, 1250 },
10284 { 8905 /* "PRSELR_EL1" */, 718 },
10285 { 15959 /* "PRSELR_EL2" */, 1248 },
10286 { 11659 /* "RCWMASK_EL1" */, 903 },
10287 { 11624 /* "RCWSMASK_EL1" */, 900 },
10288 { 6603 /* "REVIDR_EL1" */, 528 },
10289 { 7257 /* "RGSR_EL1" */, 575 },
10290 { 9906 /* "RMR_EL1" */, 808 },
10291 { 16745 /* "RMR_EL2" */, 1317 },
10292 { 21163 /* "RMR_EL3" */, 1645 },
10293 { 11927 /* "RNDR" */, 927 },
10294 { 11932 /* "RNDRRS" */, 928 },
10295 { 9896 /* "RVBAR_EL1" */, 807 },
10296 { 16735 /* "RVBAR_EL2" */, 1316 },
10297 { 21153 /* "RVBAR_EL3" */, 1644 },
10298 { 16407 /* "S2PIR_EL2" */, 1289 },
10299 { 9667 /* "S2POR_EL1" */, 786 },
10300 { 20399 /* "SCR2_EL3" */, 1574 },
10301 { 20352 /* "SCR_EL3" */, 1569 },
10302 { 7426 /* "SCTLR2ALIAS_EL1" */, 589 },
10303 { 7366 /* "SCTLR2MASK_EL1" */, 585 },
10304 { 18859 /* "SCTLR2MASK_EL12" */, 1448 },
10305 { 14400 /* "SCTLR2MASK_EL2" */, 1112 },
10306 { 7246 /* "SCTLR2_EL1" */, 574 },
10307 { 18758 /* "SCTLR2_EL12" */, 1440 },
10308 { 14198 /* "SCTLR2_EL2" */, 1093 },
10309 { 20341 /* "SCTLR2_EL3" */, 1568 },
10310 { 7411 /* "SCTLRALIAS_EL1" */, 588 },
10311 { 7324 /* "SCTLRMASK_EL1" */, 582 },
10312 { 18814 /* "SCTLRMASK_EL12" */, 1445 },
10313 { 14359 /* "SCTLRMASK_EL2" */, 1109 },
10314 { 7216 /* "SCTLR_EL1" */, 571 },
10315 { 18725 /* "SCTLR_EL12" */, 1437 },
10316 { 14178 /* "SCTLR_EL2" */, 1091 },
10317 { 20321 /* "SCTLR_EL3" */, 1566 },
10318 { 12285 /* "SCXTNUM_EL0" */, 964 },
10319 { 11671 /* "SCXTNUM_EL1" */, 904 },
10320 { 20207 /* "SCXTNUM_EL12" */, 1558 },
10321 { 17868 /* "SCXTNUM_EL2" */, 1386 },
10322 { 21394 /* "SCXTNUM_EL3" */, 1661 },
10323 { 14348 /* "SDER32_EL2" */, 1108 },
10324 { 20360 /* "SDER32_EL3" */, 1570 },
10325 { 7315 /* "SMCR_EL1" */, 581 },
10326 { 18804 /* "SMCR_EL12" */, 1444 },
10327 { 14339 /* "SMCR_EL2" */, 1107 },
10328 { 20408 /* "SMCR_EL3" */, 1575 },
10329 { 11737 /* "SMIDR_EL1" */, 910 },
10330 { 14326 /* "SMPRIMAP_EL2" */, 1106 },
10331 { 7305 /* "SMPRI_EL1" */, 580 },
10332 { 1002 /* "SPMACCESSR_EL1" */, 81 },
10333 { 6518 /* "SPMACCESSR_EL12" */, 521 },
10334 { 6492 /* "SPMACCESSR_EL2" */, 519 },
10335 { 6534 /* "SPMACCESSR_EL3" */, 522 },
10336 { 1058 /* "SPMCFGR_EL1" */, 85 },
10337 { 976 /* "SPMCGCR0_EL1" */, 79 },
10338 { 989 /* "SPMCGCR1_EL1" */, 80 },
10339 { 5355 /* "SPMCNTENCLR_EL0" */, 448 },
10340 { 5339 /* "SPMCNTENSET_EL0" */, 447 },
10341 { 5329 /* "SPMCR_EL0" */, 446 },
10342 { 1044 /* "SPMDEVAFF_EL1" */, 84 },
10343 { 1029 /* "SPMDEVARCH_EL1" */, 83 },
10344 { 5421 /* "SPMEVCNTR0_EL0" */, 453 },
10345 { 5571 /* "SPMEVCNTR10_EL0" */, 463 },
10346 { 5587 /* "SPMEVCNTR11_EL0" */, 464 },
10347 { 5603 /* "SPMEVCNTR12_EL0" */, 465 },
10348 { 5619 /* "SPMEVCNTR13_EL0" */, 466 },
10349 { 5635 /* "SPMEVCNTR14_EL0" */, 467 },
10350 { 5651 /* "SPMEVCNTR15_EL0" */, 468 },
10351 { 5436 /* "SPMEVCNTR1_EL0" */, 454 },
10352 { 5451 /* "SPMEVCNTR2_EL0" */, 455 },
10353 { 5466 /* "SPMEVCNTR3_EL0" */, 456 },
10354 { 5481 /* "SPMEVCNTR4_EL0" */, 457 },
10355 { 5496 /* "SPMEVCNTR5_EL0" */, 458 },
10356 { 5511 /* "SPMEVCNTR6_EL0" */, 459 },
10357 { 5526 /* "SPMEVCNTR7_EL0" */, 460 },
10358 { 5541 /* "SPMEVCNTR8_EL0" */, 461 },
10359 { 5556 /* "SPMEVCNTR9_EL0" */, 462 },
10360 { 6191 /* "SPMEVFILT2R0_EL0" */, 501 },
10361 { 6361 /* "SPMEVFILT2R10_EL0" */, 511 },
10362 { 6379 /* "SPMEVFILT2R11_EL0" */, 512 },
10363 { 6397 /* "SPMEVFILT2R12_EL0" */, 513 },
10364 { 6415 /* "SPMEVFILT2R13_EL0" */, 514 },
10365 { 6433 /* "SPMEVFILT2R14_EL0" */, 515 },
10366 { 6451 /* "SPMEVFILT2R15_EL0" */, 516 },
10367 { 6208 /* "SPMEVFILT2R1_EL0" */, 502 },
10368 { 6225 /* "SPMEVFILT2R2_EL0" */, 503 },
10369 { 6242 /* "SPMEVFILT2R3_EL0" */, 504 },
10370 { 6259 /* "SPMEVFILT2R4_EL0" */, 505 },
10371 { 6276 /* "SPMEVFILT2R5_EL0" */, 506 },
10372 { 6293 /* "SPMEVFILT2R6_EL0" */, 507 },
10373 { 6310 /* "SPMEVFILT2R7_EL0" */, 508 },
10374 { 6327 /* "SPMEVFILT2R8_EL0" */, 509 },
10375 { 6344 /* "SPMEVFILT2R9_EL0" */, 510 },
10376 { 5929 /* "SPMEVFILTR0_EL0" */, 485 },
10377 { 6089 /* "SPMEVFILTR10_EL0" */, 495 },
10378 { 6106 /* "SPMEVFILTR11_EL0" */, 496 },
10379 { 6123 /* "SPMEVFILTR12_EL0" */, 497 },
10380 { 6140 /* "SPMEVFILTR13_EL0" */, 498 },
10381 { 6157 /* "SPMEVFILTR14_EL0" */, 499 },
10382 { 6174 /* "SPMEVFILTR15_EL0" */, 500 },
10383 { 5945 /* "SPMEVFILTR1_EL0" */, 486 },
10384 { 5961 /* "SPMEVFILTR2_EL0" */, 487 },
10385 { 5977 /* "SPMEVFILTR3_EL0" */, 488 },
10386 { 5993 /* "SPMEVFILTR4_EL0" */, 489 },
10387 { 6009 /* "SPMEVFILTR5_EL0" */, 490 },
10388 { 6025 /* "SPMEVFILTR6_EL0" */, 491 },
10389 { 6041 /* "SPMEVFILTR7_EL0" */, 492 },
10390 { 6057 /* "SPMEVFILTR8_EL0" */, 493 },
10391 { 6073 /* "SPMEVFILTR9_EL0" */, 494 },
10392 { 5667 /* "SPMEVTYPER0_EL0" */, 469 },
10393 { 5827 /* "SPMEVTYPER10_EL0" */, 479 },
10394 { 5844 /* "SPMEVTYPER11_EL0" */, 480 },
10395 { 5861 /* "SPMEVTYPER12_EL0" */, 481 },
10396 { 5878 /* "SPMEVTYPER13_EL0" */, 482 },
10397 { 5895 /* "SPMEVTYPER14_EL0" */, 483 },
10398 { 5912 /* "SPMEVTYPER15_EL0" */, 484 },
10399 { 5683 /* "SPMEVTYPER1_EL0" */, 470 },
10400 { 5699 /* "SPMEVTYPER2_EL0" */, 471 },
10401 { 5715 /* "SPMEVTYPER3_EL0" */, 472 },
10402 { 5731 /* "SPMEVTYPER4_EL0" */, 473 },
10403 { 5747 /* "SPMEVTYPER5_EL0" */, 474 },
10404 { 5763 /* "SPMEVTYPER6_EL0" */, 475 },
10405 { 5779 /* "SPMEVTYPER7_EL0" */, 476 },
10406 { 5795 /* "SPMEVTYPER8_EL0" */, 477 },
10407 { 5811 /* "SPMEVTYPER9_EL0" */, 478 },
10408 { 1017 /* "SPMIIDR_EL1" */, 82 },
10409 { 1086 /* "SPMINTENCLR_EL1" */, 87 },
10410 { 1070 /* "SPMINTENSET_EL1" */, 86 },
10411 { 5371 /* "SPMOVSCLR_EL0" */, 449 },
10412 { 5407 /* "SPMOVSSET_EL0" */, 452 },
10413 { 6549 /* "SPMROOTCR_EL3" */, 523 },
10414 { 6563 /* "SPMSCR_EL1" */, 524 },
10415 { 5395 /* "SPMSELR_EL0" */, 451 },
10416 { 5385 /* "SPMZR_EL0" */, 450 },
10417 { 21600 /* "SPSEL" */, 689 },
10418 { 21606 /* "SPSR_ABT" */, 1234 },
10419 { 8563 /* "SPSR_EL1" */, 684 },
10420 { 19898 /* "SPSR_EL12" */, 1530 },
10421 { 15769 /* "SPSR_EL2" */, 1228 },
10422 { 20897 /* "SPSR_EL3" */, 1618 },
10423 { 21615 /* "SPSR_FIQ" */, 1236 },
10424 { 21624 /* "SPSR_IRQ" */, 1233 },
10425 { 21633 /* "SPSR_UND" */, 1235 },
10426 { 8603 /* "SP_EL0" */, 688 },
10427 { 15809 /* "SP_EL1" */, 1232 },
10428 { 20937 /* "SP_EL2" */, 1622 },
10429 { 11979 /* "SSBS" */, 935 },
10430 { 8580 /* "STINDEX_EL1" */, 686 },
10431 { 19917 /* "STINDEX_EL12" */, 1532 },
10432 { 15786 /* "STINDEX_EL2" */, 1230 },
10433 { 20914 /* "STINDEX_EL3" */, 1620 },
10434 { 11970 /* "SVCR" */, 933 },
10435 { 11984 /* "TCO" */, 936 },
10436 { 7789 /* "TCR2ALIAS_EL1" */, 619 },
10437 { 7763 /* "TCR2MASK_EL1" */, 617 },
10438 { 19060 /* "TCR2MASK_EL12" */, 1465 },
10439 { 14783 /* "TCR2MASK_EL2" */, 1146 },
10440 { 7470 /* "TCR2_EL1" */, 593 },
10441 { 18906 /* "TCR2_EL12" */, 1452 },
10442 { 14529 /* "TCR2_EL2" */, 1123 },
10443 { 7776 /* "TCRALIAS_EL1" */, 618 },
10444 { 7751 /* "TCRMASK_EL1" */, 616 },
10445 { 19047 /* "TCRMASK_EL12" */, 1464 },
10446 { 14771 /* "TCRMASK_EL2" */, 1145 },
10447 { 7462 /* "TCR_EL1" */, 592 },
10448 { 18897 /* "TCR_EL12" */, 1451 },
10449 { 14521 /* "TCR_EL2" */, 1122 },
10450 { 20436 /* "TCR_EL3" */, 1578 },
10451 { 5256 /* "TEECR32_EL1" */, 440 },
10452 { 5268 /* "TEEHBR32_EL1" */, 441 },
10453 { 8867 /* "TFSRE0_EL1" */, 714 },
10454 { 8858 /* "TFSR_EL1" */, 713 },
10455 { 19973 /* "TFSR_EL12" */, 1537 },
10456 { 15913 /* "TFSR_EL2" */, 1243 },
10457 { 20982 /* "TFSR_EL3" */, 1627 },
10458 { 11949 /* "TINDEX_EL0" */, 930 },
10459 { 8592 /* "TINDEX_EL1" */, 687 },
10460 { 19930 /* "TINDEX_EL12" */, 1533 },
10461 { 15798 /* "TINDEX_EL2" */, 1231 },
10462 { 20926 /* "TINDEX_EL3" */, 1621 },
10463 { 9784 /* "TLBIDIDR_EL1" */, 797 },
10464 { 12274 /* "TPIDR2_EL0" */, 963 },
10465 { 12241 /* "TPIDR3_EL0" */, 960 },
10466 { 11598 /* "TPIDR3_EL1" */, 898 },
10467 { 20179 /* "TPIDR3_EL12" */, 1556 },
10468 { 17832 /* "TPIDR3_EL2" */, 1383 },
10469 { 21373 /* "TPIDR3_EL3" */, 1659 },
10470 { 12262 /* "TPIDRRO_EL0" */, 962 },
10471 { 12252 /* "TPIDR_EL0" */, 961 },
10472 { 11637 /* "TPIDR_EL1" */, 901 },
10473 { 17858 /* "TPIDR_EL2" */, 1385 },
10474 { 21384 /* "TPIDR_EL3" */, 1660 },
10475 { 11894 /* "TPMAX0_EL0" */, 924 },
10476 { 7658 /* "TPMAX0_EL1" */, 608 },
10477 { 18989 /* "TPMAX0_EL12" */, 1459 },
10478 { 14643 /* "TPMAX0_EL2" */, 1134 },
10479 { 11916 /* "TPMAX1_EL0" */, 926 },
10480 { 7680 /* "TPMAX1_EL1" */, 610 },
10481 { 19013 /* "TPMAX1_EL12" */, 1461 },
10482 { 14665 /* "TPMAX1_EL2" */, 1136 },
10483 { 11883 /* "TPMIN0_EL0" */, 923 },
10484 { 7647 /* "TPMIN0_EL1" */, 607 },
10485 { 18977 /* "TPMIN0_EL12" */, 1458 },
10486 { 14632 /* "TPMIN0_EL2" */, 1133 },
10487 { 11905 /* "TPMIN1_EL0" */, 925 },
10488 { 7669 /* "TPMIN1_EL1" */, 609 },
10489 { 19001 /* "TPMIN1_EL12" */, 1460 },
10490 { 14654 /* "TPMIN1_EL2" */, 1135 },
10491 { 9472 /* "TRBBASER_EL1" */, 768 },
10492 { 9529 /* "TRBIDR_EL1" */, 773 },
10493 { 9447 /* "TRBLIMITR_EL1" */, 766 },
10494 { 9495 /* "TRBMAR_EL1" */, 770 },
10495 { 9506 /* "TRBMPAM_EL1" */, 771 },
10496 { 9461 /* "TRBPTR_EL1" */, 767 },
10497 { 9485 /* "TRBSR_EL1" */, 769 },
10498 { 20024 /* "TRBSR_EL12" */, 1542 },
10499 { 16352 /* "TRBSR_EL2" */, 1283 },
10500 { 21018 /* "TRBSR_EL3" */, 1631 },
10501 { 9518 /* "TRBTRG_EL1" */, 772 },
10502 { 3034 /* "TRCACATR0" */, 248 },
10503 { 3112 /* "TRCACATR1" */, 256 },
10504 { 3161 /* "TRCACATR10" */, 261 },
10505 { 3241 /* "TRCACATR11" */, 269 },
10506 { 3281 /* "TRCACATR12" */, 273 },
10507 { 3361 /* "TRCACATR13" */, 281 },
10508 { 3401 /* "TRCACATR14" */, 285 },
10509 { 3481 /* "TRCACATR15" */, 293 },
10510 { 3151 /* "TRCACATR2" */, 260 },
10511 { 3231 /* "TRCACATR3" */, 268 },
10512 { 3271 /* "TRCACATR4" */, 272 },
10513 { 3351 /* "TRCACATR5" */, 280 },
10514 { 3391 /* "TRCACATR6" */, 284 },
10515 { 3471 /* "TRCACATR7" */, 292 },
10516 { 3044 /* "TRCACATR8" */, 249 },
10517 { 3122 /* "TRCACATR9" */, 257 },
10518 { 3016 /* "TRCACVR0" */, 246 },
10519 { 3094 /* "TRCACVR1" */, 254 },
10520 { 3141 /* "TRCACVR10" */, 259 },
10521 { 3221 /* "TRCACVR11" */, 267 },
10522 { 3261 /* "TRCACVR12" */, 271 },
10523 { 3341 /* "TRCACVR13" */, 279 },
10524 { 3381 /* "TRCACVR14" */, 283 },
10525 { 3461 /* "TRCACVR15" */, 291 },
10526 { 3132 /* "TRCACVR2" */, 258 },
10527 { 3212 /* "TRCACVR3" */, 266 },
10528 { 3252 /* "TRCACVR4" */, 270 },
10529 { 3332 /* "TRCACVR5" */, 278 },
10530 { 3372 /* "TRCACVR6" */, 282 },
10531 { 3452 /* "TRCACVR7" */, 290 },
10532 { 3025 /* "TRCACVR8" */, 247 },
10533 { 3103 /* "TRCACVR9" */, 255 },
10534 { 3910 /* "TRCAUTHSTATUS" */, 333 },
10535 { 1997 /* "TRCAUXCTLR" */, 153 },
10536 { 2356 /* "TRCBBCTLR" */, 186 },
10537 { 2338 /* "TRCCCCTLR" */, 184 },
10538 { 3515 /* "TRCCIDCCTLR0" */, 296 },
10539 { 3528 /* "TRCCIDCCTLR1" */, 297 },
10540 { 3492 /* "TRCCIDCVR0" */, 294 },
10541 { 3541 /* "TRCCIDCVR1" */, 298 },
10542 { 3592 /* "TRCCIDCVR2" */, 302 },
10543 { 3615 /* "TRCCIDCVR3" */, 304 },
10544 { 3638 /* "TRCCIDCVR4" */, 306 },
10545 { 3661 /* "TRCCIDCVR5" */, 308 },
10546 { 3684 /* "TRCCIDCVR6" */, 310 },
10547 { 3707 /* "TRCCIDCVR7" */, 312 },
10548 { 3885 /* "TRCCIDR0" */, 330 },
10549 { 3901 /* "TRCCIDR1" */, 332 },
10550 { 3924 /* "TRCCIDR2" */, 334 },
10551 { 3944 /* "TRCCIDR3" */, 336 },
10552 { 3817 /* "TRCCLAIMCLR" */, 323 },
10553 { 3796 /* "TRCCLAIMSET" */, 321 },
10554 { 1933 /* "TRCCNTCTLR0" */, 147 },
10555 { 1965 /* "TRCCNTCTLR1" */, 150 },
10556 { 2021 /* "TRCCNTCTLR2" */, 155 },
10557 { 2054 /* "TRCCNTCTLR3" */, 158 },
10558 { 1680 /* "TRCCNTRLDVR0" */, 124 },
10559 { 1755 /* "TRCCNTRLDVR1" */, 131 },
10560 { 1833 /* "TRCCNTRLDVR2" */, 138 },
10561 { 1889 /* "TRCCNTRLDVR3" */, 143 },
10562 { 2128 /* "TRCCNTVR0" */, 164 },
10563 { 2187 /* "TRCCNTVR1" */, 169 },
10564 { 2239 /* "TRCCNTVR2" */, 174 },
10565 { 2284 /* "TRCCNTVR3" */, 178 },
10566 { 1922 /* "TRCCONFIGR" */, 146 },
10567 { 3838 /* "TRCDEVAFF0" */, 325 },
10568 { 3858 /* "TRCDEVAFF1" */, 327 },
10569 { 3933 /* "TRCDEVARCH" */, 335 },
10570 { 3740 /* "TRCDEVID" */, 315 },
10571 { 3749 /* "TRCDEVTYPE" */, 316 },
10572 { 3074 /* "TRCDVCMR0" */, 252 },
10573 { 3192 /* "TRCDVCMR1" */, 264 },
10574 { 3312 /* "TRCDVCMR2" */, 276 },
10575 { 3432 /* "TRCDVCMR3" */, 288 },
10576 { 3084 /* "TRCDVCMR4" */, 253 },
10577 { 3202 /* "TRCDVCMR5" */, 265 },
10578 { 3322 /* "TRCDVCMR6" */, 277 },
10579 { 3442 /* "TRCDVCMR7" */, 289 },
10580 { 3054 /* "TRCDVCVR0" */, 250 },
10581 { 3172 /* "TRCDVCVR1" */, 262 },
10582 { 3292 /* "TRCDVCVR2" */, 274 },
10583 { 3412 /* "TRCDVCVR3" */, 286 },
10584 { 3064 /* "TRCDVCVR4" */, 251 },
10585 { 3182 /* "TRCDVCVR5" */, 263 },
10586 { 3302 /* "TRCDVCVR6" */, 275 },
10587 { 3422 /* "TRCDVCVR7" */, 287 },
10588 { 2077 /* "TRCEVENTCTL0R" */, 160 },
10589 { 2146 /* "TRCEVENTCTL1R" */, 166 },
10590 { 2101 /* "TRCEXTINSELR" */, 162 },
10591 { 2114 /* "TRCEXTINSELR0" */, 163 },
10592 { 2173 /* "TRCEXTINSELR1" */, 168 },
10593 { 2225 /* "TRCEXTINSELR2" */, 173 },
10594 { 2270 /* "TRCEXTINSELR3" */, 177 },
10595 { 2138 /* "TRCIDR0" */, 165 },
10596 { 2197 /* "TRCIDR1" */, 170 },
10597 { 1846 /* "TRCIDR10" */, 139 },
10598 { 1902 /* "TRCIDR11" */, 144 },
10599 { 1945 /* "TRCIDR12" */, 148 },
10600 { 1977 /* "TRCIDR13" */, 151 },
10601 { 2249 /* "TRCIDR2" */, 175 },
10602 { 2294 /* "TRCIDR3" */, 179 },
10603 { 2312 /* "TRCIDR4" */, 181 },
10604 { 2330 /* "TRCIDR5" */, 183 },
10605 { 2348 /* "TRCIDR6" */, 185 },
10606 { 2366 /* "TRCIDR7" */, 187 },
10607 { 1693 /* "TRCIDR8" */, 125 },
10608 { 1768 /* "TRCIDR9" */, 132 },
10609 { 1701 /* "TRCIMSPEC0" */, 126 },
10610 { 1776 /* "TRCIMSPEC1" */, 133 },
10611 { 1855 /* "TRCIMSPEC2" */, 140 },
10612 { 1911 /* "TRCIMSPEC3" */, 145 },
10613 { 1954 /* "TRCIMSPEC4" */, 149 },
10614 { 1986 /* "TRCIMSPEC5" */, 152 },
10615 { 2033 /* "TRCIMSPEC6" */, 156 },
10616 { 2066 /* "TRCIMSPEC7" */, 159 },
10617 { 3730 /* "TRCITCTRL" */, 314 },
10618 { 7292 /* "TRCITECR_EL1" */, 579 },
10619 { 18790 /* "TRCITECR_EL12" */, 1443 },
10620 { 14313 /* "TRCITECR_EL2" */, 1105 },
10621 { 1799 /* "TRCITEEDCR" */, 135 },
10622 { 3878 /* "TRCLAR" */, 329 },
10623 { 3894 /* "TRCLSR" */, 331 },
10624 { 2408 /* "TRCOSLAR" */, 191 },
10625 { 2451 /* "TRCOSLSR" */, 195 },
10626 { 2595 /* "TRCPDCR" */, 208 },
10627 { 2648 /* "TRCPDSR" */, 213 },
10628 { 3808 /* "TRCPIDR0" */, 322 },
10629 { 3829 /* "TRCPIDR1" */, 324 },
10630 { 3849 /* "TRCPIDR2" */, 326 },
10631 { 3869 /* "TRCPIDR3" */, 328 },
10632 { 3760 /* "TRCPIDR4" */, 317 },
10633 { 3769 /* "TRCPIDR5" */, 318 },
10634 { 3778 /* "TRCPIDR6" */, 319 },
10635 { 3787 /* "TRCPIDR7" */, 320 },
10636 { 1712 /* "TRCPRGCTLR" */, 127 },
10637 { 1787 /* "TRCPROCSELR" */, 134 },
10638 { 1723 /* "TRCQCTLR" */, 128 },
10639 { 2812 /* "TRCRSCTLR10" */, 228 },
10640 { 2846 /* "TRCRSCTLR11" */, 231 },
10641 { 2880 /* "TRCRSCTLR12" */, 234 },
10642 { 2914 /* "TRCRSCTLR13" */, 237 },
10643 { 2948 /* "TRCRSCTLR14" */, 240 },
10644 { 2982 /* "TRCRSCTLR15" */, 243 },
10645 { 2374 /* "TRCRSCTLR16" */, 188 },
10646 { 2417 /* "TRCRSCTLR17" */, 192 },
10647 { 2471 /* "TRCRSCTLR18" */, 197 },
10648 { 2516 /* "TRCRSCTLR19" */, 201 },
10649 { 2460 /* "TRCRSCTLR2" */, 196 },
10650 { 2561 /* "TRCRSCTLR20" */, 205 },
10651 { 2614 /* "TRCRSCTLR21" */, 210 },
10652 { 2667 /* "TRCRSCTLR22" */, 215 },
10653 { 2712 /* "TRCRSCTLR23" */, 219 },
10654 { 2757 /* "TRCRSCTLR24" */, 223 },
10655 { 2790 /* "TRCRSCTLR25" */, 226 },
10656 { 2824 /* "TRCRSCTLR26" */, 229 },
10657 { 2858 /* "TRCRSCTLR27" */, 232 },
10658 { 2892 /* "TRCRSCTLR28" */, 235 },
10659 { 2926 /* "TRCRSCTLR29" */, 238 },
10660 { 2505 /* "TRCRSCTLR3" */, 200 },
10661 { 2960 /* "TRCRSCTLR30" */, 241 },
10662 { 2994 /* "TRCRSCTLR31" */, 244 },
10663 { 2550 /* "TRCRSCTLR4" */, 204 },
10664 { 2603 /* "TRCRSCTLR5" */, 209 },
10665 { 2656 /* "TRCRSCTLR6" */, 214 },
10666 { 2701 /* "TRCRSCTLR7" */, 218 },
10667 { 2746 /* "TRCRSCTLR8" */, 222 },
10668 { 2779 /* "TRCRSCTLR9" */, 225 },
10669 { 2205 /* "TRCRSR" */, 171 },
10670 { 1669 /* "TRCSEQEVR0" */, 123 },
10671 { 1744 /* "TRCSEQEVR1" */, 130 },
10672 { 1822 /* "TRCSEQEVR2" */, 137 },
10673 { 2008 /* "TRCSEQRSTEVR" */, 154 },
10674 { 2044 /* "TRCSEQSTR" */, 157 },
10675 { 2386 /* "TRCSSCCR0" */, 189 },
10676 { 2429 /* "TRCSSCCR1" */, 193 },
10677 { 2483 /* "TRCSSCCR2" */, 198 },
10678 { 2528 /* "TRCSSCCR3" */, 202 },
10679 { 2573 /* "TRCSSCCR4" */, 206 },
10680 { 2626 /* "TRCSSCCR5" */, 211 },
10681 { 2679 /* "TRCSSCCR6" */, 216 },
10682 { 2724 /* "TRCSSCCR7" */, 220 },
10683 { 2769 /* "TRCSSCSR0" */, 224 },
10684 { 2802 /* "TRCSSCSR1" */, 227 },
10685 { 2836 /* "TRCSSCSR2" */, 230 },
10686 { 2870 /* "TRCSSCSR3" */, 233 },
10687 { 2904 /* "TRCSSCSR4" */, 236 },
10688 { 2938 /* "TRCSSCSR5" */, 239 },
10689 { 2972 /* "TRCSSCSR6" */, 242 },
10690 { 3006 /* "TRCSSCSR7" */, 245 },
10691 { 2396 /* "TRCSSPCICR0" */, 190 },
10692 { 2439 /* "TRCSSPCICR1" */, 194 },
10693 { 2493 /* "TRCSSPCICR2" */, 199 },
10694 { 2538 /* "TRCSSPCICR3" */, 203 },
10695 { 2583 /* "TRCSSPCICR4" */, 207 },
10696 { 2636 /* "TRCSSPCICR5" */, 212 },
10697 { 2689 /* "TRCSSPCICR6" */, 217 },
10698 { 2734 /* "TRCSSPCICR7" */, 221 },
10699 { 2257 /* "TRCSTALLCTLR" */, 176 },
10700 { 1866 /* "TRCSTATR" */, 141 },
10701 { 2320 /* "TRCSYNCPR" */, 182 },
10702 { 1647 /* "TRCTRACEIDR" */, 121 },
10703 { 2302 /* "TRCTSCTLR" */, 180 },
10704 { 2212 /* "TRCVDARCCTLR" */, 172 },
10705 { 2091 /* "TRCVDCTLR" */, 161 },
10706 { 2160 /* "TRCVDSACCTLR" */, 167 },
10707 { 1659 /* "TRCVICTLR" */, 122 },
10708 { 1732 /* "TRCVIIECTLR" */, 129 },
10709 { 1875 /* "TRCVIPCSSCTLR" */, 142 },
10710 { 1810 /* "TRCVISSCTLR" */, 136 },
10711 { 3564 /* "TRCVMIDCCTLR0" */, 300 },
10712 { 3578 /* "TRCVMIDCCTLR1" */, 301 },
10713 { 3503 /* "TRCVMIDCVR0" */, 295 },
10714 { 3552 /* "TRCVMIDCVR1" */, 299 },
10715 { 3603 /* "TRCVMIDCVR2" */, 303 },
10716 { 3626 /* "TRCVMIDCVR3" */, 305 },
10717 { 3649 /* "TRCVMIDCVR4" */, 307 },
10718 { 3672 /* "TRCVMIDCVR5" */, 309 },
10719 { 3695 /* "TRCVMIDCVR6" */, 311 },
10720 { 3718 /* "TRCVMIDCVR7" */, 313 },
10721 { 7282 /* "TRFCR_EL1" */, 578 },
10722 { 18779 /* "TRFCR_EL12" */, 1442 },
10723 { 14294 /* "TRFCR_EL2" */, 1103 },
10724 { 7442 /* "TTBR0_EL1" */, 590 },
10725 { 18875 /* "TTBR0_EL12" */, 1449 },
10726 { 14490 /* "TTBR0_EL2" */, 1119 },
10727 { 20426 /* "TTBR0_EL3" */, 1577 },
10728 { 7452 /* "TTBR1_EL1" */, 591 },
10729 { 18886 /* "TTBR1_EL12" */, 1450 },
10730 { 14511 /* "TTBR1_EL2" */, 1121 },
10731 { 9688 /* "TTTBRP_EL1" */, 788 },
10732 { 20097 /* "TTTBRP_EL12" */, 1549 },
10733 { 16428 /* "TTTBRP_EL2" */, 1291 },
10734 { 21063 /* "TTTBRP_EL3" */, 1636 },
10735 { 9677 /* "TTTBRU_EL1" */, 787 },
10736 { 20085 /* "TTTBRU_EL12" */, 1548 },
10737 { 16417 /* "TTTBRU_EL2" */, 1290 },
10738 { 8630 /* "UAO" */, 692 },
10739 { 9887 /* "VBAR_EL1" */, 806 },
10740 { 20169 /* "VBAR_EL12" */, 1555 },
10741 { 16726 /* "VBAR_EL2" */, 1315 },
10742 { 21144 /* "VBAR_EL3" */, 1643 },
10743 { 16753 /* "VDISR_EL2" */, 1318 },
10744 { 21171 /* "VDISR_EL3" */, 1646 },
10745 { 16713 /* "VMECID_A_EL2" */, 1314 },
10746 { 16700 /* "VMECID_P_EL2" */, 1313 },
10747 { 14167 /* "VMPIDR_EL2" */, 1090 },
10748 { 14622 /* "VNCCR_EL2" */, 1132 },
10749 { 14613 /* "VNCR_EL2" */, 1131 },
10750 { 14147 /* "VPIDR_EL2" */, 1088 },
10751 { 14500 /* "VSCTLR_EL2" */, 1120 },
10752 { 15891 /* "VSESR_EL2" */, 1241 },
10753 { 20972 /* "VSESR_EL3" */, 1626 },
10754 { 14761 /* "VSTCR_EL2" */, 1144 },
10755 { 14750 /* "VSTTBR_EL2" */, 1143 },
10756 { 14594 /* "VTCR_EL2" */, 1129 },
10757 { 14796 /* "VTLBID0_EL2" */, 1147 },
10758 { 14808 /* "VTLBID1_EL2" */, 1148 },
10759 { 14820 /* "VTLBID2_EL2" */, 1149 },
10760 { 14832 /* "VTLBID3_EL2" */, 1150 },
10761 { 14844 /* "VTLBIDOS0_EL2" */, 1151 },
10762 { 14858 /* "VTLBIDOS1_EL2" */, 1152 },
10763 { 14872 /* "VTLBIDOS2_EL2" */, 1153 },
10764 { 14886 /* "VTLBIDOS3_EL2" */, 1154 },
10765 { 14584 /* "VTTBR_EL2" */, 1128 },
10766 { 7274 /* "ZCR_EL1" */, 577 },
10767 { 18770 /* "ZCR_EL12" */, 1441 },
10768 { 14286 /* "ZCR_EL2" */, 1102 },
10769 { 20391 /* "ZCR_EL3" */, 1573 },
10770 };
10771
10772 struct KeyType {
10773 std::string Name;
10774 };
10775 KeyType Key = {Name.upper()};
10776 struct Comp {
10777 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
10778 StringRef LHSStr = SysRegsListStrings[LHS.Name];
10779 StringRef RHSStr = RHS.Name;
10780 int CmpName = LHSStr.compare(RHSStr);
10781 if (CmpName < 0) return true;
10782 if (CmpName > 0) return false;
10783 return false;
10784 }
10785 };
10786 auto Table = ArrayRef(Index);
10787 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
10788 if (Idx == Table.end() ||
10789 Key.Name != SysRegsListStrings[Idx->Name])
10790 return nullptr;
10791
10792 return &SysRegsList[Idx->_index];
10793}
10794#endif
10795
10796#ifdef GET_TLBIPTable_DECL
10797const TLBIP *lookupTLBIPByEncoding(uint16_t Encoding);
10798const TLBIP *lookupTLBIPByName(StringRef Name);
10799StringRef getTLBIPStr(StringTable::Offset);
10800#endif
10801
10802#ifdef GET_TLBIPTable_IMPL
10803constexpr TLBIP TLBIPTable[] = {
10804 { 1 /* "VAE1OS" */, 0x409, REG_REQUIRED, { } , true }, // 0
10805 { 8 /* "VAAE1OS" */, 0x40B, REG_REQUIRED, { } , true }, // 1
10806 { 16 /* "VALE1OS" */, 0x40D, REG_REQUIRED, { } , true }, // 2
10807 { 24 /* "VAALE1OS" */, 0x40F, REG_REQUIRED, { } , true }, // 3
10808 { 33 /* "RVAE1IS" */, 0x411, REG_REQUIRED, { } , true }, // 4
10809 { 41 /* "RVAAE1IS" */, 0x413, REG_REQUIRED, { } , true }, // 5
10810 { 50 /* "RVALE1IS" */, 0x415, REG_REQUIRED, { } , true }, // 6
10811 { 59 /* "RVAALE1IS" */, 0x417, REG_REQUIRED, { } , true }, // 7
10812 { 69 /* "VAE1IS" */, 0x419, REG_REQUIRED, { } , true }, // 8
10813 { 76 /* "VAAE1IS" */, 0x41B, REG_REQUIRED, { } , true }, // 9
10814 { 84 /* "VALE1IS" */, 0x41D, REG_REQUIRED, { } , true }, // 10
10815 { 92 /* "VAALE1IS" */, 0x41F, REG_REQUIRED, { } , true }, // 11
10816 { 101 /* "RVAE1OS" */, 0x429, REG_REQUIRED, { } , true }, // 12
10817 { 109 /* "RVAAE1OS" */, 0x42B, REG_REQUIRED, { } , true }, // 13
10818 { 118 /* "RVALE1OS" */, 0x42D, REG_REQUIRED, { } , true }, // 14
10819 { 127 /* "RVAALE1OS" */, 0x42F, REG_REQUIRED, { } , true }, // 15
10820 { 137 /* "RVAE1" */, 0x431, REG_REQUIRED, { } , false }, // 16
10821 { 143 /* "RVAAE1" */, 0x433, REG_REQUIRED, { } , false }, // 17
10822 { 150 /* "RVALE1" */, 0x435, REG_REQUIRED, { } , false }, // 18
10823 { 157 /* "RVAALE1" */, 0x437, REG_REQUIRED, { } , false }, // 19
10824 { 165 /* "VAE1" */, 0x439, REG_REQUIRED, { } , false }, // 20
10825 { 170 /* "VAAE1" */, 0x43B, REG_REQUIRED, { } , false }, // 21
10826 { 176 /* "VALE1" */, 0x43D, REG_REQUIRED, { } , false }, // 22
10827 { 182 /* "VAALE1" */, 0x43F, REG_REQUIRED, { } , false }, // 23
10828 { 189 /* "VAE1OSnXS" */, 0x489, REG_REQUIRED, { } , true }, // 24
10829 { 199 /* "VAAE1OSnXS" */, 0x48B, REG_REQUIRED, { } , true }, // 25
10830 { 210 /* "VALE1OSnXS" */, 0x48D, REG_REQUIRED, { } , true }, // 26
10831 { 221 /* "VAALE1OSnXS" */, 0x48F, REG_REQUIRED, { } , true }, // 27
10832 { 233 /* "RVAE1ISnXS" */, 0x491, REG_REQUIRED, { } , true }, // 28
10833 { 244 /* "RVAAE1ISnXS" */, 0x493, REG_REQUIRED, { } , true }, // 29
10834 { 256 /* "RVALE1ISnXS" */, 0x495, REG_REQUIRED, { } , true }, // 30
10835 { 268 /* "RVAALE1ISnXS" */, 0x497, REG_REQUIRED, { } , true }, // 31
10836 { 281 /* "VAE1ISnXS" */, 0x499, REG_REQUIRED, { } , true }, // 32
10837 { 291 /* "VAAE1ISnXS" */, 0x49B, REG_REQUIRED, { } , true }, // 33
10838 { 302 /* "VALE1ISnXS" */, 0x49D, REG_REQUIRED, { } , true }, // 34
10839 { 313 /* "VAALE1ISnXS" */, 0x49F, REG_REQUIRED, { } , true }, // 35
10840 { 325 /* "RVAE1OSnXS" */, 0x4A9, REG_REQUIRED, { } , true }, // 36
10841 { 336 /* "RVAAE1OSnXS" */, 0x4AB, REG_REQUIRED, { } , true }, // 37
10842 { 348 /* "RVALE1OSnXS" */, 0x4AD, REG_REQUIRED, { } , true }, // 38
10843 { 360 /* "RVAALE1OSnXS" */, 0x4AF, REG_REQUIRED, { } , true }, // 39
10844 { 373 /* "RVAE1nXS" */, 0x4B1, REG_REQUIRED, { } , false }, // 40
10845 { 382 /* "RVAAE1nXS" */, 0x4B3, REG_REQUIRED, { } , false }, // 41
10846 { 392 /* "RVALE1nXS" */, 0x4B5, REG_REQUIRED, { } , false }, // 42
10847 { 402 /* "RVAALE1nXS" */, 0x4B7, REG_REQUIRED, { } , false }, // 43
10848 { 413 /* "VAE1nXS" */, 0x4B9, REG_REQUIRED, { } , false }, // 44
10849 { 421 /* "VAAE1nXS" */, 0x4BB, REG_REQUIRED, { } , false }, // 45
10850 { 430 /* "VALE1nXS" */, 0x4BD, REG_REQUIRED, { } , false }, // 46
10851 { 439 /* "VAALE1nXS" */, 0x4BF, REG_REQUIRED, { } , false }, // 47
10852 { 449 /* "IPAS2E1IS" */, 0x2401, REG_REQUIRED, { } , true }, // 48
10853 { 459 /* "RIPAS2E1IS" */, 0x2402, REG_REQUIRED, { } , true }, // 49
10854 { 470 /* "IPAS2LE1IS" */, 0x2405, REG_REQUIRED, { } , true }, // 50
10855 { 481 /* "RIPAS2LE1IS" */, 0x2406, REG_REQUIRED, { } , true }, // 51
10856 { 493 /* "VAE2OS" */, 0x2409, REG_REQUIRED, { } , true }, // 52
10857 { 500 /* "VALE2OS" */, 0x240D, REG_REQUIRED, { } , true }, // 53
10858 { 508 /* "RVAE2IS" */, 0x2411, REG_REQUIRED, { } , true }, // 54
10859 { 516 /* "RVALE2IS" */, 0x2415, REG_REQUIRED, { } , true }, // 55
10860 { 525 /* "VAE2IS" */, 0x2419, REG_REQUIRED, { } , true }, // 56
10861 { 532 /* "VALE2IS" */, 0x241D, REG_REQUIRED, { } , true }, // 57
10862 { 540 /* "IPAS2E1OS" */, 0x2420, REG_REQUIRED, { } , true }, // 58
10863 { 550 /* "IPAS2E1" */, 0x2421, REG_REQUIRED, { } , false }, // 59
10864 { 558 /* "RIPAS2E1" */, 0x2422, REG_REQUIRED, { } , false }, // 60
10865 { 567 /* "RIPAS2E1OS" */, 0x2423, REG_REQUIRED, { } , true }, // 61
10866 { 578 /* "IPAS2LE1OS" */, 0x2424, REG_REQUIRED, { } , true }, // 62
10867 { 589 /* "IPAS2LE1" */, 0x2425, REG_REQUIRED, { } , false }, // 63
10868 { 598 /* "RIPAS2LE1" */, 0x2426, REG_REQUIRED, { } , false }, // 64
10869 { 608 /* "RIPAS2LE1OS" */, 0x2427, REG_REQUIRED, { } , true }, // 65
10870 { 620 /* "RVAE2OS" */, 0x2429, REG_REQUIRED, { } , true }, // 66
10871 { 628 /* "RVALE2OS" */, 0x242D, REG_REQUIRED, { } , true }, // 67
10872 { 637 /* "RVAE2" */, 0x2431, REG_REQUIRED, { } , false }, // 68
10873 { 643 /* "RVALE2" */, 0x2435, REG_REQUIRED, { } , false }, // 69
10874 { 650 /* "VAE2" */, 0x2439, REG_REQUIRED, { } , false }, // 70
10875 { 655 /* "VALE2" */, 0x243D, REG_REQUIRED, { } , false }, // 71
10876 { 661 /* "IPAS2E1ISnXS" */, 0x2481, REG_REQUIRED, { } , true }, // 72
10877 { 674 /* "RIPAS2E1ISnXS" */, 0x2482, REG_REQUIRED, { } , true }, // 73
10878 { 688 /* "IPAS2LE1ISnXS" */, 0x2485, REG_REQUIRED, { } , true }, // 74
10879 { 702 /* "RIPAS2LE1ISnXS" */, 0x2486, REG_REQUIRED, { } , true }, // 75
10880 { 717 /* "VAE2OSnXS" */, 0x2489, REG_REQUIRED, { } , true }, // 76
10881 { 727 /* "VALE2OSnXS" */, 0x248D, REG_REQUIRED, { } , true }, // 77
10882 { 738 /* "RVAE2ISnXS" */, 0x2491, REG_REQUIRED, { } , true }, // 78
10883 { 749 /* "RVALE2ISnXS" */, 0x2495, REG_REQUIRED, { } , true }, // 79
10884 { 761 /* "VAE2ISnXS" */, 0x2499, REG_REQUIRED, { } , true }, // 80
10885 { 771 /* "VALE2ISnXS" */, 0x249D, REG_REQUIRED, { } , true }, // 81
10886 { 782 /* "IPAS2E1OSnXS" */, 0x24A0, REG_REQUIRED, { } , true }, // 82
10887 { 795 /* "IPAS2E1nXS" */, 0x24A1, REG_REQUIRED, { } , false }, // 83
10888 { 806 /* "RIPAS2E1nXS" */, 0x24A2, REG_REQUIRED, { } , false }, // 84
10889 { 818 /* "RIPAS2E1OSnXS" */, 0x24A3, REG_REQUIRED, { } , true }, // 85
10890 { 832 /* "IPAS2LE1OSnXS" */, 0x24A4, REG_REQUIRED, { } , true }, // 86
10891 { 846 /* "IPAS2LE1nXS" */, 0x24A5, REG_REQUIRED, { } , false }, // 87
10892 { 858 /* "RIPAS2LE1nXS" */, 0x24A6, REG_REQUIRED, { } , false }, // 88
10893 { 871 /* "RIPAS2LE1OSnXS" */, 0x24A7, REG_REQUIRED, { } , true }, // 89
10894 { 886 /* "RVAE2OSnXS" */, 0x24A9, REG_REQUIRED, { } , true }, // 90
10895 { 897 /* "RVALE2OSnXS" */, 0x24AD, REG_REQUIRED, { } , true }, // 91
10896 { 909 /* "RVAE2nXS" */, 0x24B1, REG_REQUIRED, { } , false }, // 92
10897 { 918 /* "RVALE2nXS" */, 0x24B5, REG_REQUIRED, { } , false }, // 93
10898 { 928 /* "VAE2nXS" */, 0x24B9, REG_REQUIRED, { } , false }, // 94
10899 { 936 /* "VALE2nXS" */, 0x24BD, REG_REQUIRED, { } , false }, // 95
10900 { 945 /* "VAE3OS" */, 0x3409, REG_REQUIRED, { } , false }, // 96
10901 { 952 /* "VALE3OS" */, 0x340D, REG_REQUIRED, { } , false }, // 97
10902 { 960 /* "RVAE3IS" */, 0x3411, REG_REQUIRED, { } , false }, // 98
10903 { 968 /* "RVALE3IS" */, 0x3415, REG_REQUIRED, { } , false }, // 99
10904 { 977 /* "VAE3IS" */, 0x3419, REG_REQUIRED, { } , false }, // 100
10905 { 984 /* "VALE3IS" */, 0x341D, REG_REQUIRED, { } , false }, // 101
10906 { 992 /* "RVAE3OS" */, 0x3429, REG_REQUIRED, { } , false }, // 102
10907 { 1000 /* "RVALE3OS" */, 0x342D, REG_REQUIRED, { } , false }, // 103
10908 { 1009 /* "RVAE3" */, 0x3431, REG_REQUIRED, { } , false }, // 104
10909 { 1015 /* "RVALE3" */, 0x3435, REG_REQUIRED, { } , false }, // 105
10910 { 1022 /* "VAE3" */, 0x3439, REG_REQUIRED, { } , false }, // 106
10911 { 1027 /* "VALE3" */, 0x343D, REG_REQUIRED, { } , false }, // 107
10912 { 1033 /* "VAE3OSnXS" */, 0x3489, REG_REQUIRED, { } , false }, // 108
10913 { 1043 /* "VALE3OSnXS" */, 0x348D, REG_REQUIRED, { } , false }, // 109
10914 { 1054 /* "RVAE3ISnXS" */, 0x3491, REG_REQUIRED, { } , false }, // 110
10915 { 1065 /* "RVALE3ISnXS" */, 0x3495, REG_REQUIRED, { } , false }, // 111
10916 { 1077 /* "VAE3ISnXS" */, 0x3499, REG_REQUIRED, { } , false }, // 112
10917 { 1087 /* "VALE3ISnXS" */, 0x349D, REG_REQUIRED, { } , false }, // 113
10918 { 1098 /* "RVAE3OSnXS" */, 0x34A9, REG_REQUIRED, { } , false }, // 114
10919 { 1109 /* "RVALE3OSnXS" */, 0x34AD, REG_REQUIRED, { } , false }, // 115
10920 { 1121 /* "RVAE3nXS" */, 0x34B1, REG_REQUIRED, { } , false }, // 116
10921 { 1130 /* "RVALE3nXS" */, 0x34B5, REG_REQUIRED, { } , false }, // 117
10922 { 1140 /* "VAE3nXS" */, 0x34B9, REG_REQUIRED, { } , false }, // 118
10923 { 1148 /* "VALE3nXS" */, 0x34BD, REG_REQUIRED, { } , false }, // 119
10924 };
10925
10926#ifdef __GNUC__
10927#pragma GCC diagnostic push
10928#pragma GCC diagnostic ignored "-Woverlength-strings"
10929#endif
10930static constexpr char TLBIPTableStringsStorage[] =
10931 "\0"
10932 "VAE1OS\0"
10933 "VAAE1OS\0"
10934 "VALE1OS\0"
10935 "VAALE1OS\0"
10936 "RVAE1IS\0"
10937 "RVAAE1IS\0"
10938 "RVALE1IS\0"
10939 "RVAALE1IS\0"
10940 "VAE1IS\0"
10941 "VAAE1IS\0"
10942 "VALE1IS\0"
10943 "VAALE1IS\0"
10944 "RVAE1OS\0"
10945 "RVAAE1OS\0"
10946 "RVALE1OS\0"
10947 "RVAALE1OS\0"
10948 "RVAE1\0"
10949 "RVAAE1\0"
10950 "RVALE1\0"
10951 "RVAALE1\0"
10952 "VAE1\0"
10953 "VAAE1\0"
10954 "VALE1\0"
10955 "VAALE1\0"
10956 "VAE1OSnXS\0"
10957 "VAAE1OSnXS\0"
10958 "VALE1OSnXS\0"
10959 "VAALE1OSnXS\0"
10960 "RVAE1ISnXS\0"
10961 "RVAAE1ISnXS\0"
10962 "RVALE1ISnXS\0"
10963 "RVAALE1ISnXS\0"
10964 "VAE1ISnXS\0"
10965 "VAAE1ISnXS\0"
10966 "VALE1ISnXS\0"
10967 "VAALE1ISnXS\0"
10968 "RVAE1OSnXS\0"
10969 "RVAAE1OSnXS\0"
10970 "RVALE1OSnXS\0"
10971 "RVAALE1OSnXS\0"
10972 "RVAE1nXS\0"
10973 "RVAAE1nXS\0"
10974 "RVALE1nXS\0"
10975 "RVAALE1nXS\0"
10976 "VAE1nXS\0"
10977 "VAAE1nXS\0"
10978 "VALE1nXS\0"
10979 "VAALE1nXS\0"
10980 "IPAS2E1IS\0"
10981 "RIPAS2E1IS\0"
10982 "IPAS2LE1IS\0"
10983 "RIPAS2LE1IS\0"
10984 "VAE2OS\0"
10985 "VALE2OS\0"
10986 "RVAE2IS\0"
10987 "RVALE2IS\0"
10988 "VAE2IS\0"
10989 "VALE2IS\0"
10990 "IPAS2E1OS\0"
10991 "IPAS2E1\0"
10992 "RIPAS2E1\0"
10993 "RIPAS2E1OS\0"
10994 "IPAS2LE1OS\0"
10995 "IPAS2LE1\0"
10996 "RIPAS2LE1\0"
10997 "RIPAS2LE1OS\0"
10998 "RVAE2OS\0"
10999 "RVALE2OS\0"
11000 "RVAE2\0"
11001 "RVALE2\0"
11002 "VAE2\0"
11003 "VALE2\0"
11004 "IPAS2E1ISnXS\0"
11005 "RIPAS2E1ISnXS\0"
11006 "IPAS2LE1ISnXS\0"
11007 "RIPAS2LE1ISnXS\0"
11008 "VAE2OSnXS\0"
11009 "VALE2OSnXS\0"
11010 "RVAE2ISnXS\0"
11011 "RVALE2ISnXS\0"
11012 "VAE2ISnXS\0"
11013 "VALE2ISnXS\0"
11014 "IPAS2E1OSnXS\0"
11015 "IPAS2E1nXS\0"
11016 "RIPAS2E1nXS\0"
11017 "RIPAS2E1OSnXS\0"
11018 "IPAS2LE1OSnXS\0"
11019 "IPAS2LE1nXS\0"
11020 "RIPAS2LE1nXS\0"
11021 "RIPAS2LE1OSnXS\0"
11022 "RVAE2OSnXS\0"
11023 "RVALE2OSnXS\0"
11024 "RVAE2nXS\0"
11025 "RVALE2nXS\0"
11026 "VAE2nXS\0"
11027 "VALE2nXS\0"
11028 "VAE3OS\0"
11029 "VALE3OS\0"
11030 "RVAE3IS\0"
11031 "RVALE3IS\0"
11032 "VAE3IS\0"
11033 "VALE3IS\0"
11034 "RVAE3OS\0"
11035 "RVALE3OS\0"
11036 "RVAE3\0"
11037 "RVALE3\0"
11038 "VAE3\0"
11039 "VALE3\0"
11040 "VAE3OSnXS\0"
11041 "VALE3OSnXS\0"
11042 "RVAE3ISnXS\0"
11043 "RVALE3ISnXS\0"
11044 "VAE3ISnXS\0"
11045 "VALE3ISnXS\0"
11046 "RVAE3OSnXS\0"
11047 "RVALE3OSnXS\0"
11048 "RVAE3nXS\0"
11049 "RVALE3nXS\0"
11050 "VAE3nXS\0"
11051 "VALE3nXS\0"
11052 "IPAS2E1ISNXS\0"
11053 "IPAS2E1NXS\0"
11054 "IPAS2E1OSNXS\0"
11055 "IPAS2LE1ISNXS\0"
11056 "IPAS2LE1NXS\0"
11057 "IPAS2LE1OSNXS\0"
11058 "RIPAS2E1ISNXS\0"
11059 "RIPAS2E1NXS\0"
11060 "RIPAS2E1OSNXS\0"
11061 "RIPAS2LE1ISNXS\0"
11062 "RIPAS2LE1NXS\0"
11063 "RIPAS2LE1OSNXS\0"
11064 "RVAAE1ISNXS\0"
11065 "RVAAE1NXS\0"
11066 "RVAAE1OSNXS\0"
11067 "RVAALE1ISNXS\0"
11068 "RVAALE1NXS\0"
11069 "RVAALE1OSNXS\0"
11070 "RVAE1ISNXS\0"
11071 "RVAE1NXS\0"
11072 "RVAE1OSNXS\0"
11073 "RVAE2ISNXS\0"
11074 "RVAE2NXS\0"
11075 "RVAE2OSNXS\0"
11076 "RVAE3ISNXS\0"
11077 "RVAE3NXS\0"
11078 "RVAE3OSNXS\0"
11079 "RVALE1ISNXS\0"
11080 "RVALE1NXS\0"
11081 "RVALE1OSNXS\0"
11082 "RVALE2ISNXS\0"
11083 "RVALE2NXS\0"
11084 "RVALE2OSNXS\0"
11085 "RVALE3ISNXS\0"
11086 "RVALE3NXS\0"
11087 "RVALE3OSNXS\0"
11088 "VAAE1ISNXS\0"
11089 "VAAE1NXS\0"
11090 "VAAE1OSNXS\0"
11091 "VAALE1ISNXS\0"
11092 "VAALE1NXS\0"
11093 "VAALE1OSNXS\0"
11094 "VAE1ISNXS\0"
11095 "VAE1NXS\0"
11096 "VAE1OSNXS\0"
11097 "VAE2ISNXS\0"
11098 "VAE2NXS\0"
11099 "VAE2OSNXS\0"
11100 "VAE3ISNXS\0"
11101 "VAE3NXS\0"
11102 "VAE3OSNXS\0"
11103 "VALE1ISNXS\0"
11104 "VALE1NXS\0"
11105 "VALE1OSNXS\0"
11106 "VALE2ISNXS\0"
11107 "VALE2NXS\0"
11108 "VALE2OSNXS\0"
11109 "VALE3ISNXS\0"
11110 "VALE3NXS\0"
11111 "VALE3OSNXS\0"
11112 ;
11113#ifdef __GNUC__
11114#pragma GCC diagnostic pop
11115#endif
11116
11117static constexpr llvm::StringTable
11118TLBIPTableStrings = TLBIPTableStringsStorage;
11119
11120StringRef getTLBIPStr(StringTable::Offset Offset) {
11121 return TLBIPTableStrings[Offset];
11122}
11123
11124const TLBIP *lookupTLBIPByEncoding(uint16_t Encoding) {
11125 struct KeyType {
11126 uint16_t Encoding;
11127 };
11128 KeyType Key = {Encoding};
11129 struct Comp {
11130 bool operator()(const TLBIP &LHS, const KeyType &RHS) const {
11131 if (LHS.Encoding < RHS.Encoding)
11132 return true;
11133 if (LHS.Encoding > RHS.Encoding)
11134 return false;
11135 return false;
11136 }
11137 };
11138 auto Table = ArrayRef(TLBIPTable);
11139 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11140 if (Idx == Table.end() ||
11141 Key.Encoding != Idx->Encoding)
11142 return nullptr;
11143
11144 return &*Idx;
11145}
11146
11147const TLBIP *lookupTLBIPByName(StringRef Name) {
11148 struct IndexType {
11149 unsigned Name;
11150 unsigned _index;
11151 };
11152 static const struct IndexType Index[] = {
11153 { 550 /* "IPAS2E1" */, 59 },
11154 { 449 /* "IPAS2E1IS" */, 48 },
11155 { 1157 /* "IPAS2E1ISNXS" */, 72 },
11156 { 1170 /* "IPAS2E1NXS" */, 83 },
11157 { 540 /* "IPAS2E1OS" */, 58 },
11158 { 1181 /* "IPAS2E1OSNXS" */, 82 },
11159 { 589 /* "IPAS2LE1" */, 63 },
11160 { 470 /* "IPAS2LE1IS" */, 50 },
11161 { 1194 /* "IPAS2LE1ISNXS" */, 74 },
11162 { 1208 /* "IPAS2LE1NXS" */, 87 },
11163 { 578 /* "IPAS2LE1OS" */, 62 },
11164 { 1220 /* "IPAS2LE1OSNXS" */, 86 },
11165 { 558 /* "RIPAS2E1" */, 60 },
11166 { 459 /* "RIPAS2E1IS" */, 49 },
11167 { 1234 /* "RIPAS2E1ISNXS" */, 73 },
11168 { 1248 /* "RIPAS2E1NXS" */, 84 },
11169 { 567 /* "RIPAS2E1OS" */, 61 },
11170 { 1260 /* "RIPAS2E1OSNXS" */, 85 },
11171 { 598 /* "RIPAS2LE1" */, 64 },
11172 { 481 /* "RIPAS2LE1IS" */, 51 },
11173 { 1274 /* "RIPAS2LE1ISNXS" */, 75 },
11174 { 1289 /* "RIPAS2LE1NXS" */, 88 },
11175 { 608 /* "RIPAS2LE1OS" */, 65 },
11176 { 1302 /* "RIPAS2LE1OSNXS" */, 89 },
11177 { 143 /* "RVAAE1" */, 17 },
11178 { 41 /* "RVAAE1IS" */, 5 },
11179 { 1317 /* "RVAAE1ISNXS" */, 29 },
11180 { 1329 /* "RVAAE1NXS" */, 41 },
11181 { 109 /* "RVAAE1OS" */, 13 },
11182 { 1339 /* "RVAAE1OSNXS" */, 37 },
11183 { 157 /* "RVAALE1" */, 19 },
11184 { 59 /* "RVAALE1IS" */, 7 },
11185 { 1351 /* "RVAALE1ISNXS" */, 31 },
11186 { 1364 /* "RVAALE1NXS" */, 43 },
11187 { 127 /* "RVAALE1OS" */, 15 },
11188 { 1375 /* "RVAALE1OSNXS" */, 39 },
11189 { 137 /* "RVAE1" */, 16 },
11190 { 33 /* "RVAE1IS" */, 4 },
11191 { 1388 /* "RVAE1ISNXS" */, 28 },
11192 { 1399 /* "RVAE1NXS" */, 40 },
11193 { 101 /* "RVAE1OS" */, 12 },
11194 { 1408 /* "RVAE1OSNXS" */, 36 },
11195 { 637 /* "RVAE2" */, 68 },
11196 { 508 /* "RVAE2IS" */, 54 },
11197 { 1419 /* "RVAE2ISNXS" */, 78 },
11198 { 1430 /* "RVAE2NXS" */, 92 },
11199 { 620 /* "RVAE2OS" */, 66 },
11200 { 1439 /* "RVAE2OSNXS" */, 90 },
11201 { 1009 /* "RVAE3" */, 104 },
11202 { 960 /* "RVAE3IS" */, 98 },
11203 { 1450 /* "RVAE3ISNXS" */, 110 },
11204 { 1461 /* "RVAE3NXS" */, 116 },
11205 { 992 /* "RVAE3OS" */, 102 },
11206 { 1470 /* "RVAE3OSNXS" */, 114 },
11207 { 150 /* "RVALE1" */, 18 },
11208 { 50 /* "RVALE1IS" */, 6 },
11209 { 1481 /* "RVALE1ISNXS" */, 30 },
11210 { 1493 /* "RVALE1NXS" */, 42 },
11211 { 118 /* "RVALE1OS" */, 14 },
11212 { 1503 /* "RVALE1OSNXS" */, 38 },
11213 { 643 /* "RVALE2" */, 69 },
11214 { 516 /* "RVALE2IS" */, 55 },
11215 { 1515 /* "RVALE2ISNXS" */, 79 },
11216 { 1527 /* "RVALE2NXS" */, 93 },
11217 { 628 /* "RVALE2OS" */, 67 },
11218 { 1537 /* "RVALE2OSNXS" */, 91 },
11219 { 1015 /* "RVALE3" */, 105 },
11220 { 968 /* "RVALE3IS" */, 99 },
11221 { 1549 /* "RVALE3ISNXS" */, 111 },
11222 { 1561 /* "RVALE3NXS" */, 117 },
11223 { 1000 /* "RVALE3OS" */, 103 },
11224 { 1571 /* "RVALE3OSNXS" */, 115 },
11225 { 170 /* "VAAE1" */, 21 },
11226 { 76 /* "VAAE1IS" */, 9 },
11227 { 1583 /* "VAAE1ISNXS" */, 33 },
11228 { 1594 /* "VAAE1NXS" */, 45 },
11229 { 8 /* "VAAE1OS" */, 1 },
11230 { 1603 /* "VAAE1OSNXS" */, 25 },
11231 { 182 /* "VAALE1" */, 23 },
11232 { 92 /* "VAALE1IS" */, 11 },
11233 { 1614 /* "VAALE1ISNXS" */, 35 },
11234 { 1626 /* "VAALE1NXS" */, 47 },
11235 { 24 /* "VAALE1OS" */, 3 },
11236 { 1636 /* "VAALE1OSNXS" */, 27 },
11237 { 165 /* "VAE1" */, 20 },
11238 { 69 /* "VAE1IS" */, 8 },
11239 { 1648 /* "VAE1ISNXS" */, 32 },
11240 { 1658 /* "VAE1NXS" */, 44 },
11241 { 1 /* "VAE1OS" */, 0 },
11242 { 1666 /* "VAE1OSNXS" */, 24 },
11243 { 650 /* "VAE2" */, 70 },
11244 { 525 /* "VAE2IS" */, 56 },
11245 { 1676 /* "VAE2ISNXS" */, 80 },
11246 { 1686 /* "VAE2NXS" */, 94 },
11247 { 493 /* "VAE2OS" */, 52 },
11248 { 1694 /* "VAE2OSNXS" */, 76 },
11249 { 1022 /* "VAE3" */, 106 },
11250 { 977 /* "VAE3IS" */, 100 },
11251 { 1704 /* "VAE3ISNXS" */, 112 },
11252 { 1714 /* "VAE3NXS" */, 118 },
11253 { 945 /* "VAE3OS" */, 96 },
11254 { 1722 /* "VAE3OSNXS" */, 108 },
11255 { 176 /* "VALE1" */, 22 },
11256 { 84 /* "VALE1IS" */, 10 },
11257 { 1732 /* "VALE1ISNXS" */, 34 },
11258 { 1743 /* "VALE1NXS" */, 46 },
11259 { 16 /* "VALE1OS" */, 2 },
11260 { 1752 /* "VALE1OSNXS" */, 26 },
11261 { 655 /* "VALE2" */, 71 },
11262 { 532 /* "VALE2IS" */, 57 },
11263 { 1763 /* "VALE2ISNXS" */, 81 },
11264 { 1774 /* "VALE2NXS" */, 95 },
11265 { 500 /* "VALE2OS" */, 53 },
11266 { 1783 /* "VALE2OSNXS" */, 77 },
11267 { 1027 /* "VALE3" */, 107 },
11268 { 984 /* "VALE3IS" */, 101 },
11269 { 1794 /* "VALE3ISNXS" */, 113 },
11270 { 1805 /* "VALE3NXS" */, 119 },
11271 { 952 /* "VALE3OS" */, 97 },
11272 { 1814 /* "VALE3OSNXS" */, 109 },
11273 };
11274
11275 struct KeyType {
11276 std::string Name;
11277 };
11278 KeyType Key = {Name.upper()};
11279 struct Comp {
11280 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
11281 StringRef LHSStr = TLBIPTableStrings[LHS.Name];
11282 StringRef RHSStr = RHS.Name;
11283 int CmpName = LHSStr.compare(RHSStr);
11284 if (CmpName < 0) return true;
11285 if (CmpName > 0) return false;
11286 return false;
11287 }
11288 };
11289 auto Table = ArrayRef(Index);
11290 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11291 if (Idx == Table.end() ||
11292 Key.Name != TLBIPTableStrings[Idx->Name])
11293 return nullptr;
11294
11295 return &TLBIPTable[Idx->_index];
11296}
11297#endif
11298
11299#ifdef GET_TLBITable_DECL
11300const TLBI *lookupTLBIByEncoding(uint16_t Encoding);
11301const TLBI *lookupTLBIByName(StringRef Name);
11302StringRef getTLBIStr(StringTable::Offset);
11303#endif
11304
11305#ifdef GET_TLBITable_IMPL
11306constexpr TLBI TLBITable[] = {
11307 { 1 /* "VMALLE1OS" */, 0x408, REG_OPTIONAL, { AArch64::FeatureTLB_RMI } }, // 0
11308 { 11 /* "VAE1OS" */, 0x409, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 1
11309 { 18 /* "ASIDE1OS" */, 0x40A, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 2
11310 { 27 /* "VAAE1OS" */, 0x40B, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 3
11311 { 35 /* "VALE1OS" */, 0x40D, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 4
11312 { 43 /* "VAALE1OS" */, 0x40F, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 5
11313 { 52 /* "RVAE1IS" */, 0x411, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 6
11314 { 60 /* "RVAAE1IS" */, 0x413, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 7
11315 { 69 /* "RVALE1IS" */, 0x415, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 8
11316 { 78 /* "RVAALE1IS" */, 0x417, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 9
11317 { 88 /* "VMALLE1IS" */, 0x418, REG_OPTIONAL, { } }, // 10
11318 { 98 /* "VAE1IS" */, 0x419, REG_REQUIRED, { } }, // 11
11319 { 105 /* "ASIDE1IS" */, 0x41A, REG_REQUIRED, { } }, // 12
11320 { 114 /* "VAAE1IS" */, 0x41B, REG_REQUIRED, { } }, // 13
11321 { 122 /* "VALE1IS" */, 0x41D, REG_REQUIRED, { } }, // 14
11322 { 130 /* "VAALE1IS" */, 0x41F, REG_REQUIRED, { } }, // 15
11323 { 139 /* "RVAE1OS" */, 0x429, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 16
11324 { 147 /* "RVAAE1OS" */, 0x42B, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 17
11325 { 156 /* "RVALE1OS" */, 0x42D, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 18
11326 { 165 /* "RVAALE1OS" */, 0x42F, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 19
11327 { 175 /* "RVAE1" */, 0x431, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 20
11328 { 181 /* "RVAAE1" */, 0x433, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 21
11329 { 188 /* "RVALE1" */, 0x435, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 22
11330 { 195 /* "RVAALE1" */, 0x437, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 23
11331 { 203 /* "VMALLE1" */, 0x438, REG_NONE, { } }, // 24
11332 { 211 /* "VAE1" */, 0x439, REG_REQUIRED, { } }, // 25
11333 { 216 /* "ASIDE1" */, 0x43A, REG_REQUIRED, { } }, // 26
11334 { 223 /* "VAAE1" */, 0x43B, REG_REQUIRED, { } }, // 27
11335 { 229 /* "VALE1" */, 0x43D, REG_REQUIRED, { } }, // 28
11336 { 235 /* "VAALE1" */, 0x43F, REG_REQUIRED, { } }, // 29
11337 { 242 /* "VMALLE1OSnXS" */, 0x488, REG_OPTIONAL, { AArch64::FeatureXS } }, // 30
11338 { 255 /* "VAE1OSnXS" */, 0x489, REG_REQUIRED, { AArch64::FeatureXS } }, // 31
11339 { 265 /* "ASIDE1OSnXS" */, 0x48A, REG_REQUIRED, { AArch64::FeatureXS } }, // 32
11340 { 277 /* "VAAE1OSnXS" */, 0x48B, REG_REQUIRED, { AArch64::FeatureXS } }, // 33
11341 { 288 /* "VALE1OSnXS" */, 0x48D, REG_REQUIRED, { AArch64::FeatureXS } }, // 34
11342 { 299 /* "VAALE1OSnXS" */, 0x48F, REG_REQUIRED, { AArch64::FeatureXS } }, // 35
11343 { 311 /* "RVAE1ISnXS" */, 0x491, REG_REQUIRED, { AArch64::FeatureXS } }, // 36
11344 { 322 /* "RVAAE1ISnXS" */, 0x493, REG_REQUIRED, { AArch64::FeatureXS } }, // 37
11345 { 334 /* "RVALE1ISnXS" */, 0x495, REG_REQUIRED, { AArch64::FeatureXS } }, // 38
11346 { 346 /* "RVAALE1ISnXS" */, 0x497, REG_REQUIRED, { AArch64::FeatureXS } }, // 39
11347 { 359 /* "VMALLE1ISnXS" */, 0x498, REG_OPTIONAL, { AArch64::FeatureXS } }, // 40
11348 { 372 /* "VAE1ISnXS" */, 0x499, REG_REQUIRED, { AArch64::FeatureXS } }, // 41
11349 { 382 /* "ASIDE1ISnXS" */, 0x49A, REG_REQUIRED, { AArch64::FeatureXS } }, // 42
11350 { 394 /* "VAAE1ISnXS" */, 0x49B, REG_REQUIRED, { AArch64::FeatureXS } }, // 43
11351 { 405 /* "VALE1ISnXS" */, 0x49D, REG_REQUIRED, { AArch64::FeatureXS } }, // 44
11352 { 416 /* "VAALE1ISnXS" */, 0x49F, REG_REQUIRED, { AArch64::FeatureXS } }, // 45
11353 { 428 /* "RVAE1OSnXS" */, 0x4A9, REG_REQUIRED, { AArch64::FeatureXS } }, // 46
11354 { 439 /* "RVAAE1OSnXS" */, 0x4AB, REG_REQUIRED, { AArch64::FeatureXS } }, // 47
11355 { 451 /* "RVALE1OSnXS" */, 0x4AD, REG_REQUIRED, { AArch64::FeatureXS } }, // 48
11356 { 463 /* "RVAALE1OSnXS" */, 0x4AF, REG_REQUIRED, { AArch64::FeatureXS } }, // 49
11357 { 476 /* "RVAE1nXS" */, 0x4B1, REG_REQUIRED, { AArch64::FeatureXS } }, // 50
11358 { 485 /* "RVAAE1nXS" */, 0x4B3, REG_REQUIRED, { AArch64::FeatureXS } }, // 51
11359 { 495 /* "RVALE1nXS" */, 0x4B5, REG_REQUIRED, { AArch64::FeatureXS } }, // 52
11360 { 505 /* "RVAALE1nXS" */, 0x4B7, REG_REQUIRED, { AArch64::FeatureXS } }, // 53
11361 { 516 /* "VMALLE1nXS" */, 0x4B8, REG_NONE, { AArch64::FeatureXS } }, // 54
11362 { 527 /* "VAE1nXS" */, 0x4B9, REG_REQUIRED, { AArch64::FeatureXS } }, // 55
11363 { 535 /* "ASIDE1nXS" */, 0x4BA, REG_REQUIRED, { AArch64::FeatureXS } }, // 56
11364 { 545 /* "VAAE1nXS" */, 0x4BB, REG_REQUIRED, { AArch64::FeatureXS } }, // 57
11365 { 554 /* "VALE1nXS" */, 0x4BD, REG_REQUIRED, { AArch64::FeatureXS } }, // 58
11366 { 563 /* "VAALE1nXS" */, 0x4BF, REG_REQUIRED, { AArch64::FeatureXS } }, // 59
11367 { 573 /* "IPAS2E1IS" */, 0x2401, REG_REQUIRED, { } }, // 60
11368 { 583 /* "RIPAS2E1IS" */, 0x2402, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 61
11369 { 594 /* "IPAS2LE1IS" */, 0x2405, REG_REQUIRED, { } }, // 62
11370 { 605 /* "RIPAS2LE1IS" */, 0x2406, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 63
11371 { 617 /* "ALLE2OS" */, 0x2408, REG_OPTIONAL, { AArch64::FeatureTLB_RMI } }, // 64
11372 { 625 /* "VAE2OS" */, 0x2409, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 65
11373 { 632 /* "ALLE1OS" */, 0x240C, REG_OPTIONAL, { AArch64::FeatureTLB_RMI } }, // 66
11374 { 640 /* "VALE2OS" */, 0x240D, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 67
11375 { 648 /* "VMALLS12E1OS" */, 0x240E, REG_OPTIONAL, { AArch64::FeatureTLB_RMI } }, // 68
11376 { 661 /* "RVAE2IS" */, 0x2411, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 69
11377 { 669 /* "VMALLWS2E1IS" */, 0x2412, REG_OPTIONAL, { AArch64::FeatureTLBIW } }, // 70
11378 { 682 /* "RVALE2IS" */, 0x2415, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 71
11379 { 691 /* "ALLE2IS" */, 0x2418, REG_OPTIONAL, { } }, // 72
11380 { 699 /* "VAE2IS" */, 0x2419, REG_REQUIRED, { } }, // 73
11381 { 706 /* "ALLE1IS" */, 0x241C, REG_OPTIONAL, { } }, // 74
11382 { 714 /* "VALE2IS" */, 0x241D, REG_REQUIRED, { } }, // 75
11383 { 722 /* "VMALLS12E1IS" */, 0x241E, REG_OPTIONAL, { } }, // 76
11384 { 735 /* "IPAS2E1OS" */, 0x2420, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 77
11385 { 745 /* "IPAS2E1" */, 0x2421, REG_REQUIRED, { } }, // 78
11386 { 753 /* "RIPAS2E1" */, 0x2422, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 79
11387 { 762 /* "RIPAS2E1OS" */, 0x2423, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 80
11388 { 773 /* "IPAS2LE1OS" */, 0x2424, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 81
11389 { 784 /* "IPAS2LE1" */, 0x2425, REG_REQUIRED, { } }, // 82
11390 { 793 /* "RIPAS2LE1" */, 0x2426, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 83
11391 { 803 /* "RIPAS2LE1OS" */, 0x2427, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 84
11392 { 815 /* "RVAE2OS" */, 0x2429, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 85
11393 { 823 /* "VMALLWS2E1OS" */, 0x242A, REG_OPTIONAL, { AArch64::FeatureTLBIW } }, // 86
11394 { 836 /* "RVALE2OS" */, 0x242D, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 87
11395 { 845 /* "RVAE2" */, 0x2431, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 88
11396 { 851 /* "VMALLWS2E1" */, 0x2432, REG_NONE, { AArch64::FeatureTLBIW } }, // 89
11397 { 862 /* "RVALE2" */, 0x2435, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 90
11398 { 869 /* "ALLE2" */, 0x2438, REG_NONE, { } }, // 91
11399 { 875 /* "VAE2" */, 0x2439, REG_REQUIRED, { } }, // 92
11400 { 880 /* "ALLE1" */, 0x243C, REG_NONE, { } }, // 93
11401 { 886 /* "VALE2" */, 0x243D, REG_REQUIRED, { } }, // 94
11402 { 892 /* "VMALLS12E1" */, 0x243E, REG_NONE, { } }, // 95
11403 { 903 /* "IPAS2E1ISnXS" */, 0x2481, REG_REQUIRED, { AArch64::FeatureXS } }, // 96
11404 { 916 /* "RIPAS2E1ISnXS" */, 0x2482, REG_REQUIRED, { AArch64::FeatureXS } }, // 97
11405 { 930 /* "IPAS2LE1ISnXS" */, 0x2485, REG_REQUIRED, { AArch64::FeatureXS } }, // 98
11406 { 944 /* "RIPAS2LE1ISnXS" */, 0x2486, REG_REQUIRED, { AArch64::FeatureXS } }, // 99
11407 { 959 /* "ALLE2OSnXS" */, 0x2488, REG_OPTIONAL, { AArch64::FeatureXS } }, // 100
11408 { 970 /* "VAE2OSnXS" */, 0x2489, REG_REQUIRED, { AArch64::FeatureXS } }, // 101
11409 { 980 /* "ALLE1OSnXS" */, 0x248C, REG_OPTIONAL, { AArch64::FeatureXS } }, // 102
11410 { 991 /* "VALE2OSnXS" */, 0x248D, REG_REQUIRED, { AArch64::FeatureXS } }, // 103
11411 { 1002 /* "VMALLS12E1OSnXS" */, 0x248E, REG_OPTIONAL, { AArch64::FeatureXS } }, // 104
11412 { 1018 /* "RVAE2ISnXS" */, 0x2491, REG_REQUIRED, { AArch64::FeatureXS } }, // 105
11413 { 1029 /* "VMALLWS2E1ISnXS" */, 0x2492, REG_OPTIONAL, { AArch64::FeatureTLBIW } }, // 106
11414 { 1045 /* "RVALE2ISnXS" */, 0x2495, REG_REQUIRED, { AArch64::FeatureXS } }, // 107
11415 { 1057 /* "ALLE2ISnXS" */, 0x2498, REG_OPTIONAL, { AArch64::FeatureXS } }, // 108
11416 { 1068 /* "VAE2ISnXS" */, 0x2499, REG_REQUIRED, { AArch64::FeatureXS } }, // 109
11417 { 1078 /* "ALLE1ISnXS" */, 0x249C, REG_OPTIONAL, { AArch64::FeatureXS } }, // 110
11418 { 1089 /* "VALE2ISnXS" */, 0x249D, REG_REQUIRED, { AArch64::FeatureXS } }, // 111
11419 { 1100 /* "VMALLS12E1ISnXS" */, 0x249E, REG_OPTIONAL, { AArch64::FeatureXS } }, // 112
11420 { 1116 /* "IPAS2E1OSnXS" */, 0x24A0, REG_REQUIRED, { AArch64::FeatureXS } }, // 113
11421 { 1129 /* "IPAS2E1nXS" */, 0x24A1, REG_REQUIRED, { AArch64::FeatureXS } }, // 114
11422 { 1140 /* "RIPAS2E1nXS" */, 0x24A2, REG_REQUIRED, { AArch64::FeatureXS } }, // 115
11423 { 1152 /* "RIPAS2E1OSnXS" */, 0x24A3, REG_REQUIRED, { AArch64::FeatureXS } }, // 116
11424 { 1166 /* "IPAS2LE1OSnXS" */, 0x24A4, REG_REQUIRED, { AArch64::FeatureXS } }, // 117
11425 { 1180 /* "IPAS2LE1nXS" */, 0x24A5, REG_REQUIRED, { AArch64::FeatureXS } }, // 118
11426 { 1192 /* "RIPAS2LE1nXS" */, 0x24A6, REG_REQUIRED, { AArch64::FeatureXS } }, // 119
11427 { 1205 /* "RIPAS2LE1OSnXS" */, 0x24A7, REG_REQUIRED, { AArch64::FeatureXS } }, // 120
11428 { 1220 /* "RVAE2OSnXS" */, 0x24A9, REG_REQUIRED, { AArch64::FeatureXS } }, // 121
11429 { 1231 /* "VMALLWS2E1OSnXS" */, 0x24AA, REG_OPTIONAL, { AArch64::FeatureTLBIW } }, // 122
11430 { 1247 /* "RVALE2OSnXS" */, 0x24AD, REG_REQUIRED, { AArch64::FeatureXS } }, // 123
11431 { 1259 /* "RVAE2nXS" */, 0x24B1, REG_REQUIRED, { AArch64::FeatureXS } }, // 124
11432 { 1268 /* "VMALLWS2E1nXS" */, 0x24B2, REG_NONE, { AArch64::FeatureTLBIW } }, // 125
11433 { 1282 /* "RVALE2nXS" */, 0x24B5, REG_REQUIRED, { AArch64::FeatureXS } }, // 126
11434 { 1292 /* "ALLE2nXS" */, 0x24B8, REG_NONE, { AArch64::FeatureXS } }, // 127
11435 { 1301 /* "VAE2nXS" */, 0x24B9, REG_REQUIRED, { AArch64::FeatureXS } }, // 128
11436 { 1309 /* "ALLE1nXS" */, 0x24BC, REG_NONE, { AArch64::FeatureXS } }, // 129
11437 { 1318 /* "VALE2nXS" */, 0x24BD, REG_REQUIRED, { AArch64::FeatureXS } }, // 130
11438 { 1327 /* "VMALLS12E1nXS" */, 0x24BE, REG_NONE, { AArch64::FeatureXS } }, // 131
11439 { 1341 /* "ALLE3OS" */, 0x3408, REG_OPTIONAL, { AArch64::FeatureTLB_RMI } }, // 132
11440 { 1349 /* "VAE3OS" */, 0x3409, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 133
11441 { 1356 /* "PAALLOS" */, 0x340C, REG_NONE, { AArch64::FeatureRME } }, // 134
11442 { 1364 /* "VALE3OS" */, 0x340D, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 135
11443 { 1372 /* "RVAE3IS" */, 0x3411, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 136
11444 { 1380 /* "RVALE3IS" */, 0x3415, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 137
11445 { 1389 /* "ALLE3IS" */, 0x3418, REG_OPTIONAL, { } }, // 138
11446 { 1397 /* "VAE3IS" */, 0x3419, REG_REQUIRED, { } }, // 139
11447 { 1404 /* "VALE3IS" */, 0x341D, REG_REQUIRED, { } }, // 140
11448 { 1412 /* "RPAOS" */, 0x3423, REG_REQUIRED, { AArch64::FeatureRME } }, // 141
11449 { 1418 /* "RPALOS" */, 0x3427, REG_REQUIRED, { AArch64::FeatureRME } }, // 142
11450 { 1425 /* "RVAE3OS" */, 0x3429, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 143
11451 { 1433 /* "RVALE3OS" */, 0x342D, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 144
11452 { 1442 /* "RVAE3" */, 0x3431, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 145
11453 { 1448 /* "RVALE3" */, 0x3435, REG_REQUIRED, { AArch64::FeatureTLB_RMI } }, // 146
11454 { 1455 /* "ALLE3" */, 0x3438, REG_NONE, { } }, // 147
11455 { 1461 /* "VAE3" */, 0x3439, REG_REQUIRED, { } }, // 148
11456 { 1466 /* "PAALL" */, 0x343C, REG_NONE, { AArch64::FeatureRME } }, // 149
11457 { 1472 /* "VALE3" */, 0x343D, REG_REQUIRED, { } }, // 150
11458 { 1478 /* "ALLE3OSnXS" */, 0x3488, REG_OPTIONAL, { AArch64::FeatureXS } }, // 151
11459 { 1489 /* "VAE3OSnXS" */, 0x3489, REG_REQUIRED, { AArch64::FeatureXS } }, // 152
11460 { 1499 /* "VALE3OSnXS" */, 0x348D, REG_REQUIRED, { AArch64::FeatureXS } }, // 153
11461 { 1510 /* "RVAE3ISnXS" */, 0x3491, REG_REQUIRED, { AArch64::FeatureXS } }, // 154
11462 { 1521 /* "RVALE3ISnXS" */, 0x3495, REG_REQUIRED, { AArch64::FeatureXS } }, // 155
11463 { 1533 /* "ALLE3ISnXS" */, 0x3498, REG_OPTIONAL, { AArch64::FeatureXS } }, // 156
11464 { 1544 /* "VAE3ISnXS" */, 0x3499, REG_REQUIRED, { AArch64::FeatureXS } }, // 157
11465 { 1554 /* "VALE3ISnXS" */, 0x349D, REG_REQUIRED, { AArch64::FeatureXS } }, // 158
11466 { 1565 /* "RVAE3OSnXS" */, 0x34A9, REG_REQUIRED, { AArch64::FeatureXS } }, // 159
11467 { 1576 /* "RVALE3OSnXS" */, 0x34AD, REG_REQUIRED, { AArch64::FeatureXS } }, // 160
11468 { 1588 /* "RVAE3nXS" */, 0x34B1, REG_REQUIRED, { AArch64::FeatureXS } }, // 161
11469 { 1597 /* "RVALE3nXS" */, 0x34B5, REG_REQUIRED, { AArch64::FeatureXS } }, // 162
11470 { 1607 /* "ALLE3nXS" */, 0x34B8, REG_NONE, { AArch64::FeatureXS } }, // 163
11471 { 1616 /* "VAE3nXS" */, 0x34B9, REG_REQUIRED, { AArch64::FeatureXS } }, // 164
11472 { 1624 /* "VALE3nXS" */, 0x34BD, REG_REQUIRED, { AArch64::FeatureXS } }, // 165
11473 };
11474
11475#ifdef __GNUC__
11476#pragma GCC diagnostic push
11477#pragma GCC diagnostic ignored "-Woverlength-strings"
11478#endif
11479static constexpr char TLBITableStringsStorage[] =
11480 "\0"
11481 "VMALLE1OS\0"
11482 "VAE1OS\0"
11483 "ASIDE1OS\0"
11484 "VAAE1OS\0"
11485 "VALE1OS\0"
11486 "VAALE1OS\0"
11487 "RVAE1IS\0"
11488 "RVAAE1IS\0"
11489 "RVALE1IS\0"
11490 "RVAALE1IS\0"
11491 "VMALLE1IS\0"
11492 "VAE1IS\0"
11493 "ASIDE1IS\0"
11494 "VAAE1IS\0"
11495 "VALE1IS\0"
11496 "VAALE1IS\0"
11497 "RVAE1OS\0"
11498 "RVAAE1OS\0"
11499 "RVALE1OS\0"
11500 "RVAALE1OS\0"
11501 "RVAE1\0"
11502 "RVAAE1\0"
11503 "RVALE1\0"
11504 "RVAALE1\0"
11505 "VMALLE1\0"
11506 "VAE1\0"
11507 "ASIDE1\0"
11508 "VAAE1\0"
11509 "VALE1\0"
11510 "VAALE1\0"
11511 "VMALLE1OSnXS\0"
11512 "VAE1OSnXS\0"
11513 "ASIDE1OSnXS\0"
11514 "VAAE1OSnXS\0"
11515 "VALE1OSnXS\0"
11516 "VAALE1OSnXS\0"
11517 "RVAE1ISnXS\0"
11518 "RVAAE1ISnXS\0"
11519 "RVALE1ISnXS\0"
11520 "RVAALE1ISnXS\0"
11521 "VMALLE1ISnXS\0"
11522 "VAE1ISnXS\0"
11523 "ASIDE1ISnXS\0"
11524 "VAAE1ISnXS\0"
11525 "VALE1ISnXS\0"
11526 "VAALE1ISnXS\0"
11527 "RVAE1OSnXS\0"
11528 "RVAAE1OSnXS\0"
11529 "RVALE1OSnXS\0"
11530 "RVAALE1OSnXS\0"
11531 "RVAE1nXS\0"
11532 "RVAAE1nXS\0"
11533 "RVALE1nXS\0"
11534 "RVAALE1nXS\0"
11535 "VMALLE1nXS\0"
11536 "VAE1nXS\0"
11537 "ASIDE1nXS\0"
11538 "VAAE1nXS\0"
11539 "VALE1nXS\0"
11540 "VAALE1nXS\0"
11541 "IPAS2E1IS\0"
11542 "RIPAS2E1IS\0"
11543 "IPAS2LE1IS\0"
11544 "RIPAS2LE1IS\0"
11545 "ALLE2OS\0"
11546 "VAE2OS\0"
11547 "ALLE1OS\0"
11548 "VALE2OS\0"
11549 "VMALLS12E1OS\0"
11550 "RVAE2IS\0"
11551 "VMALLWS2E1IS\0"
11552 "RVALE2IS\0"
11553 "ALLE2IS\0"
11554 "VAE2IS\0"
11555 "ALLE1IS\0"
11556 "VALE2IS\0"
11557 "VMALLS12E1IS\0"
11558 "IPAS2E1OS\0"
11559 "IPAS2E1\0"
11560 "RIPAS2E1\0"
11561 "RIPAS2E1OS\0"
11562 "IPAS2LE1OS\0"
11563 "IPAS2LE1\0"
11564 "RIPAS2LE1\0"
11565 "RIPAS2LE1OS\0"
11566 "RVAE2OS\0"
11567 "VMALLWS2E1OS\0"
11568 "RVALE2OS\0"
11569 "RVAE2\0"
11570 "VMALLWS2E1\0"
11571 "RVALE2\0"
11572 "ALLE2\0"
11573 "VAE2\0"
11574 "ALLE1\0"
11575 "VALE2\0"
11576 "VMALLS12E1\0"
11577 "IPAS2E1ISnXS\0"
11578 "RIPAS2E1ISnXS\0"
11579 "IPAS2LE1ISnXS\0"
11580 "RIPAS2LE1ISnXS\0"
11581 "ALLE2OSnXS\0"
11582 "VAE2OSnXS\0"
11583 "ALLE1OSnXS\0"
11584 "VALE2OSnXS\0"
11585 "VMALLS12E1OSnXS\0"
11586 "RVAE2ISnXS\0"
11587 "VMALLWS2E1ISnXS\0"
11588 "RVALE2ISnXS\0"
11589 "ALLE2ISnXS\0"
11590 "VAE2ISnXS\0"
11591 "ALLE1ISnXS\0"
11592 "VALE2ISnXS\0"
11593 "VMALLS12E1ISnXS\0"
11594 "IPAS2E1OSnXS\0"
11595 "IPAS2E1nXS\0"
11596 "RIPAS2E1nXS\0"
11597 "RIPAS2E1OSnXS\0"
11598 "IPAS2LE1OSnXS\0"
11599 "IPAS2LE1nXS\0"
11600 "RIPAS2LE1nXS\0"
11601 "RIPAS2LE1OSnXS\0"
11602 "RVAE2OSnXS\0"
11603 "VMALLWS2E1OSnXS\0"
11604 "RVALE2OSnXS\0"
11605 "RVAE2nXS\0"
11606 "VMALLWS2E1nXS\0"
11607 "RVALE2nXS\0"
11608 "ALLE2nXS\0"
11609 "VAE2nXS\0"
11610 "ALLE1nXS\0"
11611 "VALE2nXS\0"
11612 "VMALLS12E1nXS\0"
11613 "ALLE3OS\0"
11614 "VAE3OS\0"
11615 "PAALLOS\0"
11616 "VALE3OS\0"
11617 "RVAE3IS\0"
11618 "RVALE3IS\0"
11619 "ALLE3IS\0"
11620 "VAE3IS\0"
11621 "VALE3IS\0"
11622 "RPAOS\0"
11623 "RPALOS\0"
11624 "RVAE3OS\0"
11625 "RVALE3OS\0"
11626 "RVAE3\0"
11627 "RVALE3\0"
11628 "ALLE3\0"
11629 "VAE3\0"
11630 "PAALL\0"
11631 "VALE3\0"
11632 "ALLE3OSnXS\0"
11633 "VAE3OSnXS\0"
11634 "VALE3OSnXS\0"
11635 "RVAE3ISnXS\0"
11636 "RVALE3ISnXS\0"
11637 "ALLE3ISnXS\0"
11638 "VAE3ISnXS\0"
11639 "VALE3ISnXS\0"
11640 "RVAE3OSnXS\0"
11641 "RVALE3OSnXS\0"
11642 "RVAE3nXS\0"
11643 "RVALE3nXS\0"
11644 "ALLE3nXS\0"
11645 "VAE3nXS\0"
11646 "VALE3nXS\0"
11647 "ALLE1ISNXS\0"
11648 "ALLE1NXS\0"
11649 "ALLE1OSNXS\0"
11650 "ALLE2ISNXS\0"
11651 "ALLE2NXS\0"
11652 "ALLE2OSNXS\0"
11653 "ALLE3ISNXS\0"
11654 "ALLE3NXS\0"
11655 "ALLE3OSNXS\0"
11656 "ASIDE1ISNXS\0"
11657 "ASIDE1NXS\0"
11658 "ASIDE1OSNXS\0"
11659 "IPAS2E1ISNXS\0"
11660 "IPAS2E1NXS\0"
11661 "IPAS2E1OSNXS\0"
11662 "IPAS2LE1ISNXS\0"
11663 "IPAS2LE1NXS\0"
11664 "IPAS2LE1OSNXS\0"
11665 "RIPAS2E1ISNXS\0"
11666 "RIPAS2E1NXS\0"
11667 "RIPAS2E1OSNXS\0"
11668 "RIPAS2LE1ISNXS\0"
11669 "RIPAS2LE1NXS\0"
11670 "RIPAS2LE1OSNXS\0"
11671 "RVAAE1ISNXS\0"
11672 "RVAAE1NXS\0"
11673 "RVAAE1OSNXS\0"
11674 "RVAALE1ISNXS\0"
11675 "RVAALE1NXS\0"
11676 "RVAALE1OSNXS\0"
11677 "RVAE1ISNXS\0"
11678 "RVAE1NXS\0"
11679 "RVAE1OSNXS\0"
11680 "RVAE2ISNXS\0"
11681 "RVAE2NXS\0"
11682 "RVAE2OSNXS\0"
11683 "RVAE3ISNXS\0"
11684 "RVAE3NXS\0"
11685 "RVAE3OSNXS\0"
11686 "RVALE1ISNXS\0"
11687 "RVALE1NXS\0"
11688 "RVALE1OSNXS\0"
11689 "RVALE2ISNXS\0"
11690 "RVALE2NXS\0"
11691 "RVALE2OSNXS\0"
11692 "RVALE3ISNXS\0"
11693 "RVALE3NXS\0"
11694 "RVALE3OSNXS\0"
11695 "VAAE1ISNXS\0"
11696 "VAAE1NXS\0"
11697 "VAAE1OSNXS\0"
11698 "VAALE1ISNXS\0"
11699 "VAALE1NXS\0"
11700 "VAALE1OSNXS\0"
11701 "VAE1ISNXS\0"
11702 "VAE1NXS\0"
11703 "VAE1OSNXS\0"
11704 "VAE2ISNXS\0"
11705 "VAE2NXS\0"
11706 "VAE2OSNXS\0"
11707 "VAE3ISNXS\0"
11708 "VAE3NXS\0"
11709 "VAE3OSNXS\0"
11710 "VALE1ISNXS\0"
11711 "VALE1NXS\0"
11712 "VALE1OSNXS\0"
11713 "VALE2ISNXS\0"
11714 "VALE2NXS\0"
11715 "VALE2OSNXS\0"
11716 "VALE3ISNXS\0"
11717 "VALE3NXS\0"
11718 "VALE3OSNXS\0"
11719 "VMALLE1ISNXS\0"
11720 "VMALLE1NXS\0"
11721 "VMALLE1OSNXS\0"
11722 "VMALLS12E1ISNXS\0"
11723 "VMALLS12E1NXS\0"
11724 "VMALLS12E1OSNXS\0"
11725 "VMALLWS2E1ISNXS\0"
11726 "VMALLWS2E1NXS\0"
11727 "VMALLWS2E1OSNXS\0"
11728 ;
11729#ifdef __GNUC__
11730#pragma GCC diagnostic pop
11731#endif
11732
11733static constexpr llvm::StringTable
11734TLBITableStrings = TLBITableStringsStorage;
11735
11736StringRef getTLBIStr(StringTable::Offset Offset) {
11737 return TLBITableStrings[Offset];
11738}
11739
11740const TLBI *lookupTLBIByEncoding(uint16_t Encoding) {
11741 struct KeyType {
11742 uint16_t Encoding;
11743 };
11744 KeyType Key = {Encoding};
11745 struct Comp {
11746 bool operator()(const TLBI &LHS, const KeyType &RHS) const {
11747 if (LHS.Encoding < RHS.Encoding)
11748 return true;
11749 if (LHS.Encoding > RHS.Encoding)
11750 return false;
11751 return false;
11752 }
11753 };
11754 auto Table = ArrayRef(TLBITable);
11755 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11756 if (Idx == Table.end() ||
11757 Key.Encoding != Idx->Encoding)
11758 return nullptr;
11759
11760 return &*Idx;
11761}
11762
11763const TLBI *lookupTLBIByName(StringRef Name) {
11764 struct IndexType {
11765 unsigned Name;
11766 unsigned _index;
11767 };
11768 static const struct IndexType Index[] = {
11769 { 880 /* "ALLE1" */, 93 },
11770 { 706 /* "ALLE1IS" */, 74 },
11771 { 1633 /* "ALLE1ISNXS" */, 110 },
11772 { 1644 /* "ALLE1NXS" */, 129 },
11773 { 632 /* "ALLE1OS" */, 66 },
11774 { 1653 /* "ALLE1OSNXS" */, 102 },
11775 { 869 /* "ALLE2" */, 91 },
11776 { 691 /* "ALLE2IS" */, 72 },
11777 { 1664 /* "ALLE2ISNXS" */, 108 },
11778 { 1675 /* "ALLE2NXS" */, 127 },
11779 { 617 /* "ALLE2OS" */, 64 },
11780 { 1684 /* "ALLE2OSNXS" */, 100 },
11781 { 1455 /* "ALLE3" */, 147 },
11782 { 1389 /* "ALLE3IS" */, 138 },
11783 { 1695 /* "ALLE3ISNXS" */, 156 },
11784 { 1706 /* "ALLE3NXS" */, 163 },
11785 { 1341 /* "ALLE3OS" */, 132 },
11786 { 1715 /* "ALLE3OSNXS" */, 151 },
11787 { 216 /* "ASIDE1" */, 26 },
11788 { 105 /* "ASIDE1IS" */, 12 },
11789 { 1726 /* "ASIDE1ISNXS" */, 42 },
11790 { 1738 /* "ASIDE1NXS" */, 56 },
11791 { 18 /* "ASIDE1OS" */, 2 },
11792 { 1748 /* "ASIDE1OSNXS" */, 32 },
11793 { 745 /* "IPAS2E1" */, 78 },
11794 { 573 /* "IPAS2E1IS" */, 60 },
11795 { 1760 /* "IPAS2E1ISNXS" */, 96 },
11796 { 1773 /* "IPAS2E1NXS" */, 114 },
11797 { 735 /* "IPAS2E1OS" */, 77 },
11798 { 1784 /* "IPAS2E1OSNXS" */, 113 },
11799 { 784 /* "IPAS2LE1" */, 82 },
11800 { 594 /* "IPAS2LE1IS" */, 62 },
11801 { 1797 /* "IPAS2LE1ISNXS" */, 98 },
11802 { 1811 /* "IPAS2LE1NXS" */, 118 },
11803 { 773 /* "IPAS2LE1OS" */, 81 },
11804 { 1823 /* "IPAS2LE1OSNXS" */, 117 },
11805 { 1466 /* "PAALL" */, 149 },
11806 { 1356 /* "PAALLOS" */, 134 },
11807 { 753 /* "RIPAS2E1" */, 79 },
11808 { 583 /* "RIPAS2E1IS" */, 61 },
11809 { 1837 /* "RIPAS2E1ISNXS" */, 97 },
11810 { 1851 /* "RIPAS2E1NXS" */, 115 },
11811 { 762 /* "RIPAS2E1OS" */, 80 },
11812 { 1863 /* "RIPAS2E1OSNXS" */, 116 },
11813 { 793 /* "RIPAS2LE1" */, 83 },
11814 { 605 /* "RIPAS2LE1IS" */, 63 },
11815 { 1877 /* "RIPAS2LE1ISNXS" */, 99 },
11816 { 1892 /* "RIPAS2LE1NXS" */, 119 },
11817 { 803 /* "RIPAS2LE1OS" */, 84 },
11818 { 1905 /* "RIPAS2LE1OSNXS" */, 120 },
11819 { 1418 /* "RPALOS" */, 142 },
11820 { 1412 /* "RPAOS" */, 141 },
11821 { 181 /* "RVAAE1" */, 21 },
11822 { 60 /* "RVAAE1IS" */, 7 },
11823 { 1920 /* "RVAAE1ISNXS" */, 37 },
11824 { 1932 /* "RVAAE1NXS" */, 51 },
11825 { 147 /* "RVAAE1OS" */, 17 },
11826 { 1942 /* "RVAAE1OSNXS" */, 47 },
11827 { 195 /* "RVAALE1" */, 23 },
11828 { 78 /* "RVAALE1IS" */, 9 },
11829 { 1954 /* "RVAALE1ISNXS" */, 39 },
11830 { 1967 /* "RVAALE1NXS" */, 53 },
11831 { 165 /* "RVAALE1OS" */, 19 },
11832 { 1978 /* "RVAALE1OSNXS" */, 49 },
11833 { 175 /* "RVAE1" */, 20 },
11834 { 52 /* "RVAE1IS" */, 6 },
11835 { 1991 /* "RVAE1ISNXS" */, 36 },
11836 { 2002 /* "RVAE1NXS" */, 50 },
11837 { 139 /* "RVAE1OS" */, 16 },
11838 { 2011 /* "RVAE1OSNXS" */, 46 },
11839 { 845 /* "RVAE2" */, 88 },
11840 { 661 /* "RVAE2IS" */, 69 },
11841 { 2022 /* "RVAE2ISNXS" */, 105 },
11842 { 2033 /* "RVAE2NXS" */, 124 },
11843 { 815 /* "RVAE2OS" */, 85 },
11844 { 2042 /* "RVAE2OSNXS" */, 121 },
11845 { 1442 /* "RVAE3" */, 145 },
11846 { 1372 /* "RVAE3IS" */, 136 },
11847 { 2053 /* "RVAE3ISNXS" */, 154 },
11848 { 2064 /* "RVAE3NXS" */, 161 },
11849 { 1425 /* "RVAE3OS" */, 143 },
11850 { 2073 /* "RVAE3OSNXS" */, 159 },
11851 { 188 /* "RVALE1" */, 22 },
11852 { 69 /* "RVALE1IS" */, 8 },
11853 { 2084 /* "RVALE1ISNXS" */, 38 },
11854 { 2096 /* "RVALE1NXS" */, 52 },
11855 { 156 /* "RVALE1OS" */, 18 },
11856 { 2106 /* "RVALE1OSNXS" */, 48 },
11857 { 862 /* "RVALE2" */, 90 },
11858 { 682 /* "RVALE2IS" */, 71 },
11859 { 2118 /* "RVALE2ISNXS" */, 107 },
11860 { 2130 /* "RVALE2NXS" */, 126 },
11861 { 836 /* "RVALE2OS" */, 87 },
11862 { 2140 /* "RVALE2OSNXS" */, 123 },
11863 { 1448 /* "RVALE3" */, 146 },
11864 { 1380 /* "RVALE3IS" */, 137 },
11865 { 2152 /* "RVALE3ISNXS" */, 155 },
11866 { 2164 /* "RVALE3NXS" */, 162 },
11867 { 1433 /* "RVALE3OS" */, 144 },
11868 { 2174 /* "RVALE3OSNXS" */, 160 },
11869 { 223 /* "VAAE1" */, 27 },
11870 { 114 /* "VAAE1IS" */, 13 },
11871 { 2186 /* "VAAE1ISNXS" */, 43 },
11872 { 2197 /* "VAAE1NXS" */, 57 },
11873 { 27 /* "VAAE1OS" */, 3 },
11874 { 2206 /* "VAAE1OSNXS" */, 33 },
11875 { 235 /* "VAALE1" */, 29 },
11876 { 130 /* "VAALE1IS" */, 15 },
11877 { 2217 /* "VAALE1ISNXS" */, 45 },
11878 { 2229 /* "VAALE1NXS" */, 59 },
11879 { 43 /* "VAALE1OS" */, 5 },
11880 { 2239 /* "VAALE1OSNXS" */, 35 },
11881 { 211 /* "VAE1" */, 25 },
11882 { 98 /* "VAE1IS" */, 11 },
11883 { 2251 /* "VAE1ISNXS" */, 41 },
11884 { 2261 /* "VAE1NXS" */, 55 },
11885 { 11 /* "VAE1OS" */, 1 },
11886 { 2269 /* "VAE1OSNXS" */, 31 },
11887 { 875 /* "VAE2" */, 92 },
11888 { 699 /* "VAE2IS" */, 73 },
11889 { 2279 /* "VAE2ISNXS" */, 109 },
11890 { 2289 /* "VAE2NXS" */, 128 },
11891 { 625 /* "VAE2OS" */, 65 },
11892 { 2297 /* "VAE2OSNXS" */, 101 },
11893 { 1461 /* "VAE3" */, 148 },
11894 { 1397 /* "VAE3IS" */, 139 },
11895 { 2307 /* "VAE3ISNXS" */, 157 },
11896 { 2317 /* "VAE3NXS" */, 164 },
11897 { 1349 /* "VAE3OS" */, 133 },
11898 { 2325 /* "VAE3OSNXS" */, 152 },
11899 { 229 /* "VALE1" */, 28 },
11900 { 122 /* "VALE1IS" */, 14 },
11901 { 2335 /* "VALE1ISNXS" */, 44 },
11902 { 2346 /* "VALE1NXS" */, 58 },
11903 { 35 /* "VALE1OS" */, 4 },
11904 { 2355 /* "VALE1OSNXS" */, 34 },
11905 { 886 /* "VALE2" */, 94 },
11906 { 714 /* "VALE2IS" */, 75 },
11907 { 2366 /* "VALE2ISNXS" */, 111 },
11908 { 2377 /* "VALE2NXS" */, 130 },
11909 { 640 /* "VALE2OS" */, 67 },
11910 { 2386 /* "VALE2OSNXS" */, 103 },
11911 { 1472 /* "VALE3" */, 150 },
11912 { 1404 /* "VALE3IS" */, 140 },
11913 { 2397 /* "VALE3ISNXS" */, 158 },
11914 { 2408 /* "VALE3NXS" */, 165 },
11915 { 1364 /* "VALE3OS" */, 135 },
11916 { 2417 /* "VALE3OSNXS" */, 153 },
11917 { 203 /* "VMALLE1" */, 24 },
11918 { 88 /* "VMALLE1IS" */, 10 },
11919 { 2428 /* "VMALLE1ISNXS" */, 40 },
11920 { 2441 /* "VMALLE1NXS" */, 54 },
11921 { 1 /* "VMALLE1OS" */, 0 },
11922 { 2452 /* "VMALLE1OSNXS" */, 30 },
11923 { 892 /* "VMALLS12E1" */, 95 },
11924 { 722 /* "VMALLS12E1IS" */, 76 },
11925 { 2465 /* "VMALLS12E1ISNXS" */, 112 },
11926 { 2481 /* "VMALLS12E1NXS" */, 131 },
11927 { 648 /* "VMALLS12E1OS" */, 68 },
11928 { 2495 /* "VMALLS12E1OSNXS" */, 104 },
11929 { 851 /* "VMALLWS2E1" */, 89 },
11930 { 669 /* "VMALLWS2E1IS" */, 70 },
11931 { 2511 /* "VMALLWS2E1ISNXS" */, 106 },
11932 { 2527 /* "VMALLWS2E1NXS" */, 125 },
11933 { 823 /* "VMALLWS2E1OS" */, 86 },
11934 { 2541 /* "VMALLWS2E1OSNXS" */, 122 },
11935 };
11936
11937 struct KeyType {
11938 std::string Name;
11939 };
11940 KeyType Key = {Name.upper()};
11941 struct Comp {
11942 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
11943 StringRef LHSStr = TLBITableStrings[LHS.Name];
11944 StringRef RHSStr = RHS.Name;
11945 int CmpName = LHSStr.compare(RHSStr);
11946 if (CmpName < 0) return true;
11947 if (CmpName > 0) return false;
11948 return false;
11949 }
11950 };
11951 auto Table = ArrayRef(Index);
11952 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
11953 if (Idx == Table.end() ||
11954 Key.Name != TLBITableStrings[Idx->Name])
11955 return nullptr;
11956
11957 return &TLBITable[Idx->_index];
11958}
11959#endif
11960
11961#ifdef GET_TSBsList_DECL
11962const TSB *lookupTSBByEncoding(uint8_t Encoding);
11963const TSB *lookupTSBByName(StringRef Name);
11964StringRef getTSBStr(StringTable::Offset);
11965#endif
11966
11967#ifdef GET_TSBsList_IMPL
11968constexpr TSB TSBsList[] = {
11969 { 1 /* "csync" */, 0x2, {AArch64::FeatureTRACEV8_4} }, // 0
11970 };
11971
11972#ifdef __GNUC__
11973#pragma GCC diagnostic push
11974#pragma GCC diagnostic ignored "-Woverlength-strings"
11975#endif
11976static constexpr char TSBsListStringsStorage[] =
11977 "\0"
11978 "csync\0"
11979 "CSYNC\0"
11980 ;
11981#ifdef __GNUC__
11982#pragma GCC diagnostic pop
11983#endif
11984
11985static constexpr llvm::StringTable
11986TSBsListStrings = TSBsListStringsStorage;
11987
11988StringRef getTSBStr(StringTable::Offset Offset) {
11989 return TSBsListStrings[Offset];
11990}
11991
11992const TSB *lookupTSBByEncoding(uint8_t Encoding) {
11993 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0x2, 0x2))
11994 return nullptr;
11995
11996 auto Table = ArrayRef(TSBsList);
11997 size_t Idx = Encoding - 0x2;
11998 return &Table[Idx];
11999}
12000
12001const TSB *lookupTSBByName(StringRef Name) {
12002 struct IndexType {
12003 unsigned Name;
12004 unsigned _index;
12005 };
12006 static const struct IndexType Index[] = {
12007 { 7 /* "CSYNC" */, 0 },
12008 };
12009
12010 struct KeyType {
12011 std::string Name;
12012 };
12013 KeyType Key = {Name.upper()};
12014 struct Comp {
12015 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12016 StringRef LHSStr = TSBsListStrings[LHS.Name];
12017 StringRef RHSStr = RHS.Name;
12018 int CmpName = LHSStr.compare(RHSStr);
12019 if (CmpName < 0) return true;
12020 if (CmpName > 0) return false;
12021 return false;
12022 }
12023 };
12024 auto Table = ArrayRef(Index);
12025 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12026 if (Idx == Table.end() ||
12027 Key.Name != TSBsListStrings[Idx->Name])
12028 return nullptr;
12029
12030 return &TSBsList[Idx->_index];
12031}
12032#endif
12033
12034#ifdef GET_CMHPRIORITYHINT_DECL
12035const CMHPriorityHint *lookupCMHPriorityHintByName(StringRef Name);
12036const CMHPriorityHint *lookupCMHPriorityHintByEncoding(uint8_t Encoding);
12037StringRef getCMHPriorityHintStr(StringTable::Offset);
12038#endif
12039
12040#ifdef GET_CMHPRIORITYHINT_IMPL
12041constexpr CMHPriorityHint CMHPriorityHintsList[] = {
12042 { 1 /* "ph" */, 0x1 }, // 0
12043 };
12044
12045#ifdef __GNUC__
12046#pragma GCC diagnostic push
12047#pragma GCC diagnostic ignored "-Woverlength-strings"
12048#endif
12049static constexpr char CMHPriorityHintsListStringsStorage[] =
12050 "\0"
12051 "ph\0"
12052 "PH\0"
12053 ;
12054#ifdef __GNUC__
12055#pragma GCC diagnostic pop
12056#endif
12057
12058static constexpr llvm::StringTable
12059CMHPriorityHintsListStrings = CMHPriorityHintsListStringsStorage;
12060
12061StringRef getCMHPriorityHintStr(StringTable::Offset Offset) {
12062 return CMHPriorityHintsListStrings[Offset];
12063}
12064
12065const CMHPriorityHint *lookupCMHPriorityHintByName(StringRef Name) {
12066 struct IndexType {
12067 unsigned Name;
12068 unsigned _index;
12069 };
12070 static const struct IndexType Index[] = {
12071 { 4 /* "PH" */, 0 },
12072 };
12073
12074 struct KeyType {
12075 std::string Name;
12076 };
12077 KeyType Key = {Name.upper()};
12078 struct Comp {
12079 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12080 StringRef LHSStr = CMHPriorityHintsListStrings[LHS.Name];
12081 StringRef RHSStr = RHS.Name;
12082 int CmpName = LHSStr.compare(RHSStr);
12083 if (CmpName < 0) return true;
12084 if (CmpName > 0) return false;
12085 return false;
12086 }
12087 };
12088 auto Table = ArrayRef(Index);
12089 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12090 if (Idx == Table.end() ||
12091 Key.Name != CMHPriorityHintsListStrings[Idx->Name])
12092 return nullptr;
12093
12094 return &CMHPriorityHintsList[Idx->_index];
12095}
12096
12097const CMHPriorityHint *lookupCMHPriorityHintByEncoding(uint8_t Encoding) {
12098 struct IndexType {
12099 uint8_t Encoding;
12100 unsigned _index;
12101 };
12102 static const struct IndexType Index[] = {
12103 { 0x1, 0 },
12104 };
12105
12106 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0x1, 0x1))
12107 return nullptr;
12108
12109 auto Table = ArrayRef(Index);
12110 size_t Idx = Encoding - 0x1;
12111 return &CMHPriorityHintsList[Table[Idx]._index];
12112}
12113#endif
12114
12115#ifdef GET_TINDEX_DECL
12116const TIndex *lookupTIndexByName(StringRef Name);
12117const TIndex *lookupTIndexByEncoding(uint8_t Encoding);
12118StringRef getTIndexStr(StringTable::Offset);
12119#endif
12120
12121#ifdef GET_TINDEX_IMPL
12122constexpr TIndex TIndexsList[] = {
12123 { 1 /* "nb" */, 0x1 }, // 0
12124 };
12125
12126#ifdef __GNUC__
12127#pragma GCC diagnostic push
12128#pragma GCC diagnostic ignored "-Woverlength-strings"
12129#endif
12130static constexpr char TIndexsListStringsStorage[] =
12131 "\0"
12132 "nb\0"
12133 "NB\0"
12134 ;
12135#ifdef __GNUC__
12136#pragma GCC diagnostic pop
12137#endif
12138
12139static constexpr llvm::StringTable
12140TIndexsListStrings = TIndexsListStringsStorage;
12141
12142StringRef getTIndexStr(StringTable::Offset Offset) {
12143 return TIndexsListStrings[Offset];
12144}
12145
12146const TIndex *lookupTIndexByName(StringRef Name) {
12147 struct IndexType {
12148 unsigned Name;
12149 unsigned _index;
12150 };
12151 static const struct IndexType Index[] = {
12152 { 4 /* "NB" */, 0 },
12153 };
12154
12155 struct KeyType {
12156 std::string Name;
12157 };
12158 KeyType Key = {Name.upper()};
12159 struct Comp {
12160 bool operator()(const IndexType &LHS, const KeyType &RHS) const {
12161 StringRef LHSStr = TIndexsListStrings[LHS.Name];
12162 StringRef RHSStr = RHS.Name;
12163 int CmpName = LHSStr.compare(RHSStr);
12164 if (CmpName < 0) return true;
12165 if (CmpName > 0) return false;
12166 return false;
12167 }
12168 };
12169 auto Table = ArrayRef(Index);
12170 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, Comp());
12171 if (Idx == Table.end() ||
12172 Key.Name != TIndexsListStrings[Idx->Name])
12173 return nullptr;
12174
12175 return &TIndexsList[Idx->_index];
12176}
12177
12178const TIndex *lookupTIndexByEncoding(uint8_t Encoding) {
12179 struct IndexType {
12180 uint8_t Encoding;
12181 unsigned _index;
12182 };
12183 static const struct IndexType Index[] = {
12184 { 0x1, 0 },
12185 };
12186
12187 if ((uint8_t)Encoding != std::clamp<uint8_t>(Encoding, 0x1, 0x1))
12188 return nullptr;
12189
12190 auto Table = ArrayRef(Index);
12191 size_t Idx = Encoding - 0x1;
12192 return &TIndexsList[Table[Idx]._index];
12193}
12194#endif
12195
12196#undef GET_ATValues_DECL
12197#undef GET_ATsList_DECL
12198#undef GET_ATsList_IMPL
12199#undef GET_BTIValues_DECL
12200#undef GET_BTIsList_DECL
12201#undef GET_BTIsList_IMPL
12202#undef GET_CMHPRIORITYHINT_DECL
12203#undef GET_CMHPRIORITYHINT_IMPL
12204#undef GET_DBValues_DECL
12205#undef GET_DBnXSValues_DECL
12206#undef GET_DBnXSsList_DECL
12207#undef GET_DBnXSsList_IMPL
12208#undef GET_DBsList_DECL
12209#undef GET_DBsList_IMPL
12210#undef GET_DCValues_DECL
12211#undef GET_DCsList_DECL
12212#undef GET_DCsList_IMPL
12213#undef GET_ExactFPImmValues_DECL
12214#undef GET_ExactFPImmsList_DECL
12215#undef GET_ExactFPImmsList_IMPL
12216#undef GET_GICRTable_DECL
12217#undef GET_GICRTable_IMPL
12218#undef GET_GICTable_DECL
12219#undef GET_GICTable_IMPL
12220#undef GET_GSBTable_DECL
12221#undef GET_GSBTable_IMPL
12222#undef GET_ICValues_DECL
12223#undef GET_ICsList_DECL
12224#undef GET_ICsList_IMPL
12225#undef GET_ISBValues_DECL
12226#undef GET_ISBsList_DECL
12227#undef GET_ISBsList_IMPL
12228#undef GET_LFIVariantTable_DECL
12229#undef GET_LFIVariantTable_IMPL
12230#undef GET_MemInfoTable_DECL
12231#undef GET_MemInfoTable_IMPL
12232#undef GET_PHintValues_DECL
12233#undef GET_PHintsList_DECL
12234#undef GET_PHintsList_IMPL
12235#undef GET_PLBITable_DECL
12236#undef GET_PLBITable_IMPL
12237#undef GET_PRFMValues_DECL
12238#undef GET_PRFMsList_DECL
12239#undef GET_PRFMsList_IMPL
12240#undef GET_PSBValues_DECL
12241#undef GET_PSBsList_DECL
12242#undef GET_PSBsList_IMPL
12243#undef GET_PStateImm0_15Values_DECL
12244#undef GET_PStateImm0_15sList_DECL
12245#undef GET_PStateImm0_15sList_IMPL
12246#undef GET_PStateImm0_1Values_DECL
12247#undef GET_PStateImm0_1sList_DECL
12248#undef GET_PStateImm0_1sList_IMPL
12249#undef GET_PairVariantTable_DECL
12250#undef GET_PairVariantTable_IMPL
12251#undef GET_RPRFMValues_DECL
12252#undef GET_RPRFMsList_DECL
12253#undef GET_RPRFMsList_IMPL
12254#undef GET_SIMDPostTable_DECL
12255#undef GET_SIMDPostTable_IMPL
12256#undef GET_SVCRValues_DECL
12257#undef GET_SVCRsList_DECL
12258#undef GET_SVCRsList_IMPL
12259#undef GET_SVEPREDPATValues_DECL
12260#undef GET_SVEPREDPATsList_DECL
12261#undef GET_SVEPREDPATsList_IMPL
12262#undef GET_SVEPRFMValues_DECL
12263#undef GET_SVEPRFMsList_DECL
12264#undef GET_SVEPRFMsList_IMPL
12265#undef GET_SVEVECLENSPECIFIERValues_DECL
12266#undef GET_SVEVECLENSPECIFIERsList_DECL
12267#undef GET_SVEVECLENSPECIFIERsList_IMPL
12268#undef GET_SysAliasRegUse_DECL
12269#undef GET_SysRegValues_DECL
12270#undef GET_SysRegsList_DECL
12271#undef GET_SysRegsList_IMPL
12272#undef GET_TINDEX_DECL
12273#undef GET_TINDEX_IMPL
12274#undef GET_TLBIPTable_DECL
12275#undef GET_TLBIPTable_IMPL
12276#undef GET_TLBITable_DECL
12277#undef GET_TLBITable_IMPL
12278#undef GET_TSBValues_DECL
12279#undef GET_TSBsList_DECL
12280#undef GET_TSBsList_IMPL
12281