1#ifdef GET_AT_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}; 18#endif 19 20#ifdef GET_BTI_DECL 21enum BTIValues { 22 c = 2, 23 j = 4, 24 jc = 6, 25}; 26#endif 27 28#ifdef GET_DB_DECL 29enum DBValues { 30 oshld = 1, 31 oshst = 2, 32 osh = 3, 33 nshld = 5, 34 nshst = 6, 35 nsh = 7, 36 ishld = 9, 37 ishst = 10, 38 ish = 11, 39 ld = 13, 40 st = 14, 41 sy = 15, 42}; 43#endif 44 45#ifdef GET_DBNXS_DECL 46enum DBnXSValues { 47 oshnxs = 3, 48 nshnxs = 7, 49 ishnxs = 11, 50 synxs = 15, 51}; 52#endif 53 54#ifdef GET_DC_DECL 55enum DCValues { 56 ZVA = 7073, 57 IVAC = 945, 58 ISW = 946, 59 CVAC = 7121, 60 CSW = 978, 61 CVAU = 7129, 62 CIVAC = 7153, 63 CISW = 1010, 64 CVAP = 7137, 65 CVADP = 7145, 66 IGVAC = 947, 67 IGSW = 948, 68 CGSW = 980, 69 CIGSW = 1012, 70 CGVAC = 7123, 71 CGVAP = 7139, 72 CGVADP = 7147, 73 CIGVAC = 7155, 74 GVA = 7075, 75 IGDVAC = 949, 76 IGDSW = 950, 77 CGDSW = 982, 78 CIGDSW = 1014, 79 CGDVAC = 7125, 80 CGDVAP = 7141, 81 CGDVADP = 7149, 82 CIGDVAC = 7157, 83 GZVA = 7076, 84 CIPAE = 9200, 85 CIGDPAE = 9207, 86}; 87#endif 88 89#ifdef GET_EXACTFPIMM_DECL 90enum ExactFPImmValues { 91 zero = 0, 92 half = 1, 93 one = 2, 94 two = 3, 95}; 96#endif 97 98#ifdef GET_IC_DECL 99enum ICValues { 100 IALLUIS = 904, 101 IALLU = 936, 102 IVAU = 7081, 103}; 104#endif 105 106#ifdef GET_ISB_DECL 107enum ISBValues { 108 sy = 15, 109}; 110#endif 111 112#ifdef GET_PRFM_DECL 113enum PRFMValues { 114 pldl1keep = 0, 115 pldl1strm = 1, 116 pldl2keep = 2, 117 pldl2strm = 3, 118 pldl3keep = 4, 119 pldl3strm = 5, 120 pldslckeep = 6, 121 pldslcstrm = 7, 122 plil1keep = 8, 123 plil1strm = 9, 124 plil2keep = 10, 125 plil2strm = 11, 126 plil3keep = 12, 127 plil3strm = 13, 128 plislckeep = 14, 129 plislcstrm = 15, 130 pstl1keep = 16, 131 pstl1strm = 17, 132 pstl2keep = 18, 133 pstl2strm = 19, 134 pstl3keep = 20, 135 pstl3strm = 21, 136 pstslckeep = 22, 137 pstslcstrm = 23, 138}; 139#endif 140 141#ifdef GET_PSB_DECL 142enum PSBValues { 143 csync = 17, 144}; 145#endif 146 147#ifdef GET_PSTATEIMM0_1_DECL 148enum PStateImm0_1Values { 149 ALLINT = 8, 150 PM = 72, 151}; 152#endif 153 154#ifdef GET_PSTATEIMM0_15_DECL 155enum PStateImm0_15Values { 156 SPSel = 5, 157 DAIFSet = 30, 158 DAIFClr = 31, 159 PAN = 4, 160 UAO = 3, 161 DIT = 26, 162 SSBS = 25, 163 TCO = 28, 164}; 165#endif 166 167#ifdef GET_RPRFM_DECL 168enum RPRFMValues { 169 pldkeep = 0, 170 pstkeep = 1, 171 pldstrm = 4, 172 pststrm = 5, 173}; 174#endif 175 176#ifdef GET_SVCR_DECL 177enum SVCRValues { 178 SVCRSM = 1, 179 SVCRZA = 2, 180 SVCRSMZA = 3, 181}; 182#endif 183 184#ifdef GET_SVEPREDPAT_DECL 185enum SVEPREDPATValues { 186 pow2 = 0, 187 vl1 = 1, 188 vl2 = 2, 189 vl3 = 3, 190 vl4 = 4, 191 vl5 = 5, 192 vl6 = 6, 193 vl7 = 7, 194 vl8 = 8, 195 vl16 = 9, 196 vl32 = 10, 197 vl64 = 11, 198 vl128 = 12, 199 vl256 = 13, 200 mul4 = 29, 201 mul3 = 30, 202 all = 31, 203}; 204#endif 205 206#ifdef GET_SVEPRFM_DECL 207enum SVEPRFMValues { 208 pldl1keep = 0, 209 pldl1strm = 1, 210 pldl2keep = 2, 211 pldl2strm = 3, 212 pldl3keep = 4, 213 pldl3strm = 5, 214 pstl1keep = 8, 215 pstl1strm = 9, 216 pstl2keep = 10, 217 pstl2strm = 11, 218 pstl3keep = 12, 219 pstl3strm = 13, 220}; 221#endif 222 223#ifdef GET_SVEVECLENSPECIFIER_DECL 224enum SVEVECLENSPECIFIERValues { 225 vlx2 = 0, 226 vlx4 = 1, 227}; 228#endif 229 230#ifdef GET_SYSREG_DECL 231enum SysRegValues { 232 MDCCSR_EL0 = 38920, 233 DBGDTRRX_EL0 = 38952, 234 MDRAR_EL1 = 32896, 235 OSLSR_EL1 = 32908, 236 DBGAUTHSTATUS_EL1 = 33782, 237 PMCEID0_EL0 = 56550, 238 PMCEID1_EL0 = 56551, 239 PMMIR_EL1 = 50422, 240 MIDR_EL1 = 49152, 241 CCSIDR_EL1 = 51200, 242 CCSIDR2_EL1 = 51202, 243 CLIDR_EL1 = 51201, 244 CTR_EL0 = 55297, 245 MPIDR_EL1 = 49157, 246 REVIDR_EL1 = 49158, 247 AIDR_EL1 = 51207, 248 DCZID_EL0 = 55303, 249 ID_PFR0_EL1 = 49160, 250 ID_PFR1_EL1 = 49161, 251 ID_PFR2_EL1 = 49180, 252 ID_DFR0_EL1 = 49162, 253 ID_DFR1_EL1 = 49181, 254 ID_AFR0_EL1 = 49163, 255 ID_MMFR0_EL1 = 49164, 256 ID_MMFR1_EL1 = 49165, 257 ID_MMFR2_EL1 = 49166, 258 ID_MMFR3_EL1 = 49167, 259 ID_ISAR0_EL1 = 49168, 260 ID_ISAR1_EL1 = 49169, 261 ID_ISAR2_EL1 = 49170, 262 ID_ISAR3_EL1 = 49171, 263 ID_ISAR4_EL1 = 49172, 264 ID_ISAR5_EL1 = 49173, 265 ID_ISAR6_EL1 = 49175, 266 ID_AA64PFR0_EL1 = 49184, 267 ID_AA64PFR1_EL1 = 49185, 268 ID_AA64PFR2_EL1 = 49186, 269 ID_AA64DFR0_EL1 = 49192, 270 ID_AA64DFR1_EL1 = 49193, 271 ID_AA64AFR0_EL1 = 49196, 272 ID_AA64AFR1_EL1 = 49197, 273 ID_AA64ISAR0_EL1 = 49200, 274 ID_AA64ISAR1_EL1 = 49201, 275 ID_AA64ISAR2_EL1 = 49202, 276 ID_AA64MMFR0_EL1 = 49208, 277 ID_AA64MMFR1_EL1 = 49209, 278 ID_AA64MMFR2_EL1 = 49210, 279 ID_AA64MMFR3_EL1 = 49211, 280 ID_AA64MMFR4_EL1 = 49212, 281 MVFR0_EL1 = 49176, 282 MVFR1_EL1 = 49177, 283 MVFR2_EL1 = 49178, 284 RVBAR_EL1 = 50689, 285 RVBAR_EL2 = 58881, 286 RVBAR_EL3 = 62977, 287 ISR_EL1 = 50696, 288 CNTPCT_EL0 = 57089, 289 CNTVCT_EL0 = 57090, 290 ID_MMFR4_EL1 = 49174, 291 ID_MMFR5_EL1 = 49182, 292 TRCSTATR = 34840, 293 TRCIDR8 = 34822, 294 TRCIDR9 = 34830, 295 TRCIDR10 = 34838, 296 TRCIDR11 = 34846, 297 TRCIDR12 = 34854, 298 TRCIDR13 = 34862, 299 TRCIDR0 = 34887, 300 TRCIDR1 = 34895, 301 TRCIDR2 = 34903, 302 TRCIDR3 = 34911, 303 TRCIDR4 = 34919, 304 TRCIDR5 = 34927, 305 TRCIDR6 = 34935, 306 TRCIDR7 = 34943, 307 TRCOSLSR = 34956, 308 TRCPDSR = 34988, 309 TRCDEVAFF0 = 35798, 310 TRCDEVAFF1 = 35806, 311 TRCLSR = 35822, 312 TRCAUTHSTATUS = 35830, 313 TRCDEVARCH = 35838, 314 TRCDEVID = 35735, 315 TRCDEVTYPE = 35743, 316 TRCPIDR4 = 35751, 317 TRCPIDR5 = 35759, 318 TRCPIDR6 = 35767, 319 TRCPIDR7 = 35775, 320 TRCPIDR0 = 35783, 321 TRCPIDR1 = 35791, 322 TRCPIDR2 = 35799, 323 TRCPIDR3 = 35807, 324 TRCCIDR0 = 35815, 325 TRCCIDR1 = 35823, 326 TRCCIDR2 = 35831, 327 TRCCIDR3 = 35839, 328 ICC_IAR1_EL1 = 50784, 329 ICC_IAR0_EL1 = 50752, 330 ICC_HPPIR1_EL1 = 50786, 331 ICC_HPPIR0_EL1 = 50754, 332 ICC_RPR_EL1 = 50779, 333 ICH_VTR_EL2 = 58969, 334 ICH_EISR_EL2 = 58971, 335 ICH_ELRSR_EL2 = 58973, 336 ID_AA64ZFR0_EL1 = 49188, 337 LORID_EL1 = 50471, 338 ERRIDR_EL1 = 49816, 339 ERXFR_EL1 = 49824, 340 RNDR = 55584, 341 RNDRRS = 55585, 342 SCXTNUM_EL0 = 56967, 343 SCXTNUM_EL1 = 50823, 344 SCXTNUM_EL2 = 59015, 345 SCXTNUM_EL3 = 63111, 346 SCXTNUM_EL12 = 61063, 347 GPCCR_EL3 = 61710, 348 GPTBR_EL3 = 61708, 349 MFAR_EL3 = 62213, 350 MECIDR_EL2 = 58695, 351 MECID_P0_EL2 = 58688, 352 MECID_A0_EL2 = 58689, 353 MECID_P1_EL2 = 58690, 354 MECID_A1_EL2 = 58691, 355 VMECID_P_EL2 = 58696, 356 VMECID_A_EL2 = 58697, 357 MECID_RL_A_EL3 = 62801, 358 ID_AA64SMFR0_EL1 = 49189, 359 DBGDTRTX_EL0 = 38952, 360 OSLAR_EL1 = 32900, 361 PMSWINC_EL0 = 56548, 362 TRCOSLAR = 34948, 363 TRCLAR = 35814, 364 ICC_EOIR1_EL1 = 50785, 365 ICC_EOIR0_EL1 = 50753, 366 ICC_DIR_EL1 = 50777, 367 ICC_SGI1R_EL1 = 50781, 368 ICC_ASGI1R_EL1 = 50782, 369 ICC_SGI0R_EL1 = 50783, 370 OSDTRRX_EL1 = 32770, 371 OSDTRTX_EL1 = 32794, 372 TEECR32_EL1 = 36864, 373 MDCCINT_EL1 = 32784, 374 MDSCR_EL1 = 32786, 375 DBGDTR_EL0 = 38944, 376 OSECCR_EL1 = 32818, 377 DBGVCR32_EL2 = 41016, 378 DBGBVR0_EL1 = 32772, 379 DBGBCR0_EL1 = 32773, 380 DBGWVR0_EL1 = 32774, 381 DBGWCR0_EL1 = 32775, 382 DBGBVR1_EL1 = 32780, 383 DBGBCR1_EL1 = 32781, 384 DBGWVR1_EL1 = 32782, 385 DBGWCR1_EL1 = 32783, 386 DBGBVR2_EL1 = 32788, 387 DBGBCR2_EL1 = 32789, 388 DBGWVR2_EL1 = 32790, 389 DBGWCR2_EL1 = 32791, 390 DBGBVR3_EL1 = 32796, 391 DBGBCR3_EL1 = 32797, 392 DBGWVR3_EL1 = 32798, 393 DBGWCR3_EL1 = 32799, 394 DBGBVR4_EL1 = 32804, 395 DBGBCR4_EL1 = 32805, 396 DBGWVR4_EL1 = 32806, 397 DBGWCR4_EL1 = 32807, 398 DBGBVR5_EL1 = 32812, 399 DBGBCR5_EL1 = 32813, 400 DBGWVR5_EL1 = 32814, 401 DBGWCR5_EL1 = 32815, 402 DBGBVR6_EL1 = 32820, 403 DBGBCR6_EL1 = 32821, 404 DBGWVR6_EL1 = 32822, 405 DBGWCR6_EL1 = 32823, 406 DBGBVR7_EL1 = 32828, 407 DBGBCR7_EL1 = 32829, 408 DBGWVR7_EL1 = 32830, 409 DBGWCR7_EL1 = 32831, 410 DBGBVR8_EL1 = 32836, 411 DBGBCR8_EL1 = 32837, 412 DBGWVR8_EL1 = 32838, 413 DBGWCR8_EL1 = 32839, 414 DBGBVR9_EL1 = 32844, 415 DBGBCR9_EL1 = 32845, 416 DBGWVR9_EL1 = 32846, 417 DBGWCR9_EL1 = 32847, 418 DBGBVR10_EL1 = 32852, 419 DBGBCR10_EL1 = 32853, 420 DBGWVR10_EL1 = 32854, 421 DBGWCR10_EL1 = 32855, 422 DBGBVR11_EL1 = 32860, 423 DBGBCR11_EL1 = 32861, 424 DBGWVR11_EL1 = 32862, 425 DBGWCR11_EL1 = 32863, 426 DBGBVR12_EL1 = 32868, 427 DBGBCR12_EL1 = 32869, 428 DBGWVR12_EL1 = 32870, 429 DBGWCR12_EL1 = 32871, 430 DBGBVR13_EL1 = 32876, 431 DBGBCR13_EL1 = 32877, 432 DBGWVR13_EL1 = 32878, 433 DBGWCR13_EL1 = 32879, 434 DBGBVR14_EL1 = 32884, 435 DBGBCR14_EL1 = 32885, 436 DBGWVR14_EL1 = 32886, 437 DBGWCR14_EL1 = 32887, 438 DBGBVR15_EL1 = 32892, 439 DBGBCR15_EL1 = 32893, 440 DBGWVR15_EL1 = 32894, 441 DBGWCR15_EL1 = 32895, 442 TEEHBR32_EL1 = 36992, 443 OSDLR_EL1 = 32924, 444 DBGPRCR_EL1 = 32932, 445 DBGCLAIMSET_EL1 = 33734, 446 DBGCLAIMCLR_EL1 = 33742, 447 CSSELR_EL1 = 53248, 448 VPIDR_EL2 = 57344, 449 VMPIDR_EL2 = 57349, 450 CPACR_EL1 = 49282, 451 SCTLR_EL1 = 49280, 452 SCTLR_EL2 = 57472, 453 SCTLR_EL3 = 61568, 454 ACTLR_EL1 = 49281, 455 ACTLR_EL2 = 57473, 456 ACTLR_EL3 = 61569, 457 HCR_EL2 = 57480, 458 HCRX_EL2 = 57490, 459 SCR_EL3 = 61576, 460 MDCR_EL2 = 57481, 461 SDER32_EL3 = 61577, 462 CPTR_EL2 = 57482, 463 CPTR_EL3 = 61578, 464 HSTR_EL2 = 57483, 465 HACR_EL2 = 57487, 466 MDCR_EL3 = 61593, 467 TTBR0_EL1 = 49408, 468 TTBR0_EL3 = 61696, 469 TTBR0_EL2 = 57600, 470 VTTBR_EL2 = 57608, 471 TTBR1_EL1 = 49409, 472 TCR_EL1 = 49410, 473 TCR_EL2 = 57602, 474 TCR_EL3 = 61698, 475 VTCR_EL2 = 57610, 476 DACR32_EL2 = 57728, 477 SPSR_EL1 = 49664, 478 SPSR_EL2 = 57856, 479 SPSR_EL3 = 61952, 480 ELR_EL1 = 49665, 481 ELR_EL2 = 57857, 482 ELR_EL3 = 61953, 483 SP_EL0 = 49672, 484 SP_EL1 = 57864, 485 SP_EL2 = 61960, 486 SPSel = 49680, 487 NZCV = 55824, 488 DAIF = 55825, 489 CurrentEL = 49682, 490 SPSR_irq = 57880, 491 SPSR_abt = 57881, 492 SPSR_und = 57882, 493 SPSR_fiq = 57883, 494 FPCR = 55840, 495 FPSR = 55841, 496 DSPSR_EL0 = 55848, 497 DLR_EL0 = 55849, 498 IFSR32_EL2 = 57985, 499 AFSR0_EL1 = 49800, 500 AFSR0_EL2 = 57992, 501 AFSR0_EL3 = 62088, 502 AFSR1_EL1 = 49801, 503 AFSR1_EL2 = 57993, 504 AFSR1_EL3 = 62089, 505 ESR_EL1 = 49808, 506 ESR_EL2 = 58000, 507 ESR_EL3 = 62096, 508 FPEXC32_EL2 = 58008, 509 FAR_EL1 = 49920, 510 FAR_EL2 = 58112, 511 FAR_EL3 = 62208, 512 HPFAR_EL2 = 58116, 513 PAR_EL1 = 50080, 514 PMCR_EL0 = 56544, 515 PMCNTENSET_EL0 = 56545, 516 PMCNTENCLR_EL0 = 56546, 517 PMOVSCLR_EL0 = 56547, 518 PMSELR_EL0 = 56549, 519 PMCCNTR_EL0 = 56552, 520 PMXEVTYPER_EL0 = 56553, 521 PMXEVCNTR_EL0 = 56554, 522 PMUSERENR_EL0 = 56560, 523 PMINTENSET_EL1 = 50417, 524 PMINTENCLR_EL1 = 50418, 525 PMOVSSET_EL0 = 56563, 526 MAIR_EL1 = 50448, 527 MAIR_EL2 = 58640, 528 MAIR_EL3 = 62736, 529 AMAIR_EL1 = 50456, 530 AMAIR_EL2 = 58648, 531 AMAIR_EL3 = 62744, 532 VBAR_EL1 = 50688, 533 VBAR_EL2 = 58880, 534 VBAR_EL3 = 62976, 535 RMR_EL1 = 50690, 536 RMR_EL2 = 58882, 537 RMR_EL3 = 62978, 538 CONTEXTIDR_EL1 = 50817, 539 TPIDR_EL0 = 56962, 540 TPIDR_EL2 = 59010, 541 TPIDR_EL3 = 63106, 542 TPIDRRO_EL0 = 56963, 543 TPIDR_EL1 = 50820, 544 CNTFRQ_EL0 = 57088, 545 CNTVOFF_EL2 = 59139, 546 CNTKCTL_EL1 = 50952, 547 CNTHCTL_EL2 = 59144, 548 CNTP_TVAL_EL0 = 57104, 549 CNTHP_TVAL_EL2 = 59152, 550 CNTPS_TVAL_EL1 = 65296, 551 CNTP_CTL_EL0 = 57105, 552 CNTHP_CTL_EL2 = 59153, 553 CNTPS_CTL_EL1 = 65297, 554 CNTP_CVAL_EL0 = 57106, 555 CNTHP_CVAL_EL2 = 59154, 556 CNTPS_CVAL_EL1 = 65298, 557 CNTV_TVAL_EL0 = 57112, 558 CNTV_CTL_EL0 = 57113, 559 CNTV_CVAL_EL0 = 57114, 560 PMEVCNTR0_EL0 = 57152, 561 PMEVCNTR1_EL0 = 57153, 562 PMEVCNTR2_EL0 = 57154, 563 PMEVCNTR3_EL0 = 57155, 564 PMEVCNTR4_EL0 = 57156, 565 PMEVCNTR5_EL0 = 57157, 566 PMEVCNTR6_EL0 = 57158, 567 PMEVCNTR7_EL0 = 57159, 568 PMEVCNTR8_EL0 = 57160, 569 PMEVCNTR9_EL0 = 57161, 570 PMEVCNTR10_EL0 = 57162, 571 PMEVCNTR11_EL0 = 57163, 572 PMEVCNTR12_EL0 = 57164, 573 PMEVCNTR13_EL0 = 57165, 574 PMEVCNTR14_EL0 = 57166, 575 PMEVCNTR15_EL0 = 57167, 576 PMEVCNTR16_EL0 = 57168, 577 PMEVCNTR17_EL0 = 57169, 578 PMEVCNTR18_EL0 = 57170, 579 PMEVCNTR19_EL0 = 57171, 580 PMEVCNTR20_EL0 = 57172, 581 PMEVCNTR21_EL0 = 57173, 582 PMEVCNTR22_EL0 = 57174, 583 PMEVCNTR23_EL0 = 57175, 584 PMEVCNTR24_EL0 = 57176, 585 PMEVCNTR25_EL0 = 57177, 586 PMEVCNTR26_EL0 = 57178, 587 PMEVCNTR27_EL0 = 57179, 588 PMEVCNTR28_EL0 = 57180, 589 PMEVCNTR29_EL0 = 57181, 590 PMEVCNTR30_EL0 = 57182, 591 PMCCFILTR_EL0 = 57215, 592 PMEVTYPER0_EL0 = 57184, 593 PMEVTYPER1_EL0 = 57185, 594 PMEVTYPER2_EL0 = 57186, 595 PMEVTYPER3_EL0 = 57187, 596 PMEVTYPER4_EL0 = 57188, 597 PMEVTYPER5_EL0 = 57189, 598 PMEVTYPER6_EL0 = 57190, 599 PMEVTYPER7_EL0 = 57191, 600 PMEVTYPER8_EL0 = 57192, 601 PMEVTYPER9_EL0 = 57193, 602 PMEVTYPER10_EL0 = 57194, 603 PMEVTYPER11_EL0 = 57195, 604 PMEVTYPER12_EL0 = 57196, 605 PMEVTYPER13_EL0 = 57197, 606 PMEVTYPER14_EL0 = 57198, 607 PMEVTYPER15_EL0 = 57199, 608 PMEVTYPER16_EL0 = 57200, 609 PMEVTYPER17_EL0 = 57201, 610 PMEVTYPER18_EL0 = 57202, 611 PMEVTYPER19_EL0 = 57203, 612 PMEVTYPER20_EL0 = 57204, 613 PMEVTYPER21_EL0 = 57205, 614 PMEVTYPER22_EL0 = 57206, 615 PMEVTYPER23_EL0 = 57207, 616 PMEVTYPER24_EL0 = 57208, 617 PMEVTYPER25_EL0 = 57209, 618 PMEVTYPER26_EL0 = 57210, 619 PMEVTYPER27_EL0 = 57211, 620 PMEVTYPER28_EL0 = 57212, 621 PMEVTYPER29_EL0 = 57213, 622 PMEVTYPER30_EL0 = 57214, 623 TRCPRGCTLR = 34824, 624 TRCPROCSELR = 34832, 625 TRCCONFIGR = 34848, 626 TRCAUXCTLR = 34864, 627 TRCEVENTCTL0R = 34880, 628 TRCEVENTCTL1R = 34888, 629 TRCSTALLCTLR = 34904, 630 TRCTSCTLR = 34912, 631 TRCSYNCPR = 34920, 632 TRCCCCTLR = 34928, 633 TRCBBCTLR = 34936, 634 TRCTRACEIDR = 34817, 635 TRCQCTLR = 34825, 636 TRCVICTLR = 34818, 637 TRCVIIECTLR = 34826, 638 TRCVISSCTLR = 34834, 639 TRCVIPCSSCTLR = 34842, 640 TRCVDCTLR = 34882, 641 TRCVDSACCTLR = 34890, 642 TRCVDARCCTLR = 34898, 643 TRCSEQEVR0 = 34820, 644 TRCSEQEVR1 = 34828, 645 TRCSEQEVR2 = 34836, 646 TRCSEQRSTEVR = 34868, 647 TRCSEQSTR = 34876, 648 TRCEXTINSELR = 34884, 649 TRCCNTRLDVR0 = 34821, 650 TRCCNTRLDVR1 = 34829, 651 TRCCNTRLDVR2 = 34837, 652 TRCCNTRLDVR3 = 34845, 653 TRCCNTCTLR0 = 34853, 654 TRCCNTCTLR1 = 34861, 655 TRCCNTCTLR2 = 34869, 656 TRCCNTCTLR3 = 34877, 657 TRCCNTVR0 = 34885, 658 TRCCNTVR1 = 34893, 659 TRCCNTVR2 = 34901, 660 TRCCNTVR3 = 34909, 661 TRCIMSPEC0 = 34823, 662 TRCIMSPEC1 = 34831, 663 TRCIMSPEC2 = 34839, 664 TRCIMSPEC3 = 34847, 665 TRCIMSPEC4 = 34855, 666 TRCIMSPEC5 = 34863, 667 TRCIMSPEC6 = 34871, 668 TRCIMSPEC7 = 34879, 669 TRCRSCTLR2 = 34960, 670 TRCRSCTLR3 = 34968, 671 TRCRSCTLR4 = 34976, 672 TRCRSCTLR5 = 34984, 673 TRCRSCTLR6 = 34992, 674 TRCRSCTLR7 = 35000, 675 TRCRSCTLR8 = 35008, 676 TRCRSCTLR9 = 35016, 677 TRCRSCTLR10 = 35024, 678 TRCRSCTLR11 = 35032, 679 TRCRSCTLR12 = 35040, 680 TRCRSCTLR13 = 35048, 681 TRCRSCTLR14 = 35056, 682 TRCRSCTLR15 = 35064, 683 TRCRSCTLR16 = 34945, 684 TRCRSCTLR17 = 34953, 685 TRCRSCTLR18 = 34961, 686 TRCRSCTLR19 = 34969, 687 TRCRSCTLR20 = 34977, 688 TRCRSCTLR21 = 34985, 689 TRCRSCTLR22 = 34993, 690 TRCRSCTLR23 = 35001, 691 TRCRSCTLR24 = 35009, 692 TRCRSCTLR25 = 35017, 693 TRCRSCTLR26 = 35025, 694 TRCRSCTLR27 = 35033, 695 TRCRSCTLR28 = 35041, 696 TRCRSCTLR29 = 35049, 697 TRCRSCTLR30 = 35057, 698 TRCRSCTLR31 = 35065, 699 TRCSSCCR0 = 34946, 700 TRCSSCCR1 = 34954, 701 TRCSSCCR2 = 34962, 702 TRCSSCCR3 = 34970, 703 TRCSSCCR4 = 34978, 704 TRCSSCCR5 = 34986, 705 TRCSSCCR6 = 34994, 706 TRCSSCCR7 = 35002, 707 TRCSSCSR0 = 35010, 708 TRCSSCSR1 = 35018, 709 TRCSSCSR2 = 35026, 710 TRCSSCSR3 = 35034, 711 TRCSSCSR4 = 35042, 712 TRCSSCSR5 = 35050, 713 TRCSSCSR6 = 35058, 714 TRCSSCSR7 = 35066, 715 TRCSSPCICR0 = 34947, 716 TRCSSPCICR1 = 34955, 717 TRCSSPCICR2 = 34963, 718 TRCSSPCICR3 = 34971, 719 TRCSSPCICR4 = 34979, 720 TRCSSPCICR5 = 34987, 721 TRCSSPCICR6 = 34995, 722 TRCSSPCICR7 = 35003, 723 TRCPDCR = 34980, 724 TRCACVR0 = 35072, 725 TRCACVR1 = 35088, 726 TRCACVR2 = 35104, 727 TRCACVR3 = 35120, 728 TRCACVR4 = 35136, 729 TRCACVR5 = 35152, 730 TRCACVR6 = 35168, 731 TRCACVR7 = 35184, 732 TRCACVR8 = 35073, 733 TRCACVR9 = 35089, 734 TRCACVR10 = 35105, 735 TRCACVR11 = 35121, 736 TRCACVR12 = 35137, 737 TRCACVR13 = 35153, 738 TRCACVR14 = 35169, 739 TRCACVR15 = 35185, 740 TRCACATR0 = 35074, 741 TRCACATR1 = 35090, 742 TRCACATR2 = 35106, 743 TRCACATR3 = 35122, 744 TRCACATR4 = 35138, 745 TRCACATR5 = 35154, 746 TRCACATR6 = 35170, 747 TRCACATR7 = 35186, 748 TRCACATR8 = 35075, 749 TRCACATR9 = 35091, 750 TRCACATR10 = 35107, 751 TRCACATR11 = 35123, 752 TRCACATR12 = 35139, 753 TRCACATR13 = 35155, 754 TRCACATR14 = 35171, 755 TRCACATR15 = 35187, 756 TRCDVCVR0 = 35076, 757 TRCDVCVR1 = 35108, 758 TRCDVCVR2 = 35140, 759 TRCDVCVR3 = 35172, 760 TRCDVCVR4 = 35077, 761 TRCDVCVR5 = 35109, 762 TRCDVCVR6 = 35141, 763 TRCDVCVR7 = 35173, 764 TRCDVCMR0 = 35078, 765 TRCDVCMR1 = 35110, 766 TRCDVCMR2 = 35142, 767 TRCDVCMR3 = 35174, 768 TRCDVCMR4 = 35079, 769 TRCDVCMR5 = 35111, 770 TRCDVCMR6 = 35143, 771 TRCDVCMR7 = 35175, 772 TRCCIDCVR0 = 35200, 773 TRCCIDCVR1 = 35216, 774 TRCCIDCVR2 = 35232, 775 TRCCIDCVR3 = 35248, 776 TRCCIDCVR4 = 35264, 777 TRCCIDCVR5 = 35280, 778 TRCCIDCVR6 = 35296, 779 TRCCIDCVR7 = 35312, 780 TRCVMIDCVR0 = 35201, 781 TRCVMIDCVR1 = 35217, 782 TRCVMIDCVR2 = 35233, 783 TRCVMIDCVR3 = 35249, 784 TRCVMIDCVR4 = 35265, 785 TRCVMIDCVR5 = 35281, 786 TRCVMIDCVR6 = 35297, 787 TRCVMIDCVR7 = 35313, 788 TRCCIDCCTLR0 = 35202, 789 TRCCIDCCTLR1 = 35210, 790 TRCVMIDCCTLR0 = 35218, 791 TRCVMIDCCTLR1 = 35226, 792 TRCITCTRL = 35716, 793 TRCCLAIMSET = 35782, 794 TRCCLAIMCLR = 35790, 795 ICC_BPR1_EL1 = 50787, 796 ICC_BPR0_EL1 = 50755, 797 ICC_PMR_EL1 = 49712, 798 ICC_CTLR_EL1 = 50788, 799 ICC_CTLR_EL3 = 63076, 800 ICC_SRE_EL1 = 50789, 801 ICC_SRE_EL2 = 58957, 802 ICC_SRE_EL3 = 63077, 803 ICC_IGRPEN0_EL1 = 50790, 804 ICC_IGRPEN1_EL1 = 50791, 805 ICC_IGRPEN1_EL3 = 63079, 806 ICC_AP0R0_EL1 = 50756, 807 ICC_AP0R1_EL1 = 50757, 808 ICC_AP0R2_EL1 = 50758, 809 ICC_AP0R3_EL1 = 50759, 810 ICC_AP1R0_EL1 = 50760, 811 ICC_AP1R1_EL1 = 50761, 812 ICC_AP1R2_EL1 = 50762, 813 ICC_AP1R3_EL1 = 50763, 814 ICH_AP0R0_EL2 = 58944, 815 ICH_AP0R1_EL2 = 58945, 816 ICH_AP0R2_EL2 = 58946, 817 ICH_AP0R3_EL2 = 58947, 818 ICH_AP1R0_EL2 = 58952, 819 ICH_AP1R1_EL2 = 58953, 820 ICH_AP1R2_EL2 = 58954, 821 ICH_AP1R3_EL2 = 58955, 822 ICH_HCR_EL2 = 58968, 823 ICH_MISR_EL2 = 58970, 824 ICH_VMCR_EL2 = 58975, 825 ICH_LR0_EL2 = 58976, 826 ICH_LR1_EL2 = 58977, 827 ICH_LR2_EL2 = 58978, 828 ICH_LR3_EL2 = 58979, 829 ICH_LR4_EL2 = 58980, 830 ICH_LR5_EL2 = 58981, 831 ICH_LR6_EL2 = 58982, 832 ICH_LR7_EL2 = 58983, 833 ICH_LR8_EL2 = 58984, 834 ICH_LR9_EL2 = 58985, 835 ICH_LR10_EL2 = 58986, 836 ICH_LR11_EL2 = 58987, 837 ICH_LR12_EL2 = 58988, 838 ICH_LR13_EL2 = 58989, 839 ICH_LR14_EL2 = 58990, 840 ICH_LR15_EL2 = 58991, 841 VSCTLR_EL2 = 57600, 842 MPUIR_EL1 = 49156, 843 MPUIR_EL2 = 57348, 844 PRENR_EL1 = 49929, 845 PRENR_EL2 = 58121, 846 PRSELR_EL1 = 49937, 847 PRSELR_EL2 = 58129, 848 PRBAR_EL1 = 49984, 849 PRBAR_EL2 = 58176, 850 PRLAR_EL1 = 49985, 851 PRLAR_EL2 = 58177, 852 PRBAR1_EL1 = 49988, 853 PRLAR1_EL1 = 49989, 854 PRBAR1_EL2 = 58180, 855 PRLAR1_EL2 = 58181, 856 PRBAR2_EL1 = 49992, 857 PRLAR2_EL1 = 49993, 858 PRBAR2_EL2 = 58184, 859 PRLAR2_EL2 = 58185, 860 PRBAR3_EL1 = 49996, 861 PRLAR3_EL1 = 49997, 862 PRBAR3_EL2 = 58188, 863 PRLAR3_EL2 = 58189, 864 PRBAR4_EL1 = 50000, 865 PRLAR4_EL1 = 50001, 866 PRBAR4_EL2 = 58192, 867 PRLAR4_EL2 = 58193, 868 PRBAR5_EL1 = 50004, 869 PRLAR5_EL1 = 50005, 870 PRBAR5_EL2 = 58196, 871 PRLAR5_EL2 = 58197, 872 PRBAR6_EL1 = 50008, 873 PRLAR6_EL1 = 50009, 874 PRBAR6_EL2 = 58200, 875 PRLAR6_EL2 = 58201, 876 PRBAR7_EL1 = 50012, 877 PRLAR7_EL1 = 50013, 878 PRBAR7_EL2 = 58204, 879 PRLAR7_EL2 = 58205, 880 PRBAR8_EL1 = 50016, 881 PRLAR8_EL1 = 50017, 882 PRBAR8_EL2 = 58208, 883 PRLAR8_EL2 = 58209, 884 PRBAR9_EL1 = 50020, 885 PRLAR9_EL1 = 50021, 886 PRBAR9_EL2 = 58212, 887 PRLAR9_EL2 = 58213, 888 PRBAR10_EL1 = 50024, 889 PRLAR10_EL1 = 50025, 890 PRBAR10_EL2 = 58216, 891 PRLAR10_EL2 = 58217, 892 PRBAR11_EL1 = 50028, 893 PRLAR11_EL1 = 50029, 894 PRBAR11_EL2 = 58220, 895 PRLAR11_EL2 = 58221, 896 PRBAR12_EL1 = 50032, 897 PRLAR12_EL1 = 50033, 898 PRBAR12_EL2 = 58224, 899 PRLAR12_EL2 = 58225, 900 PRBAR13_EL1 = 50036, 901 PRLAR13_EL1 = 50037, 902 PRBAR13_EL2 = 58228, 903 PRLAR13_EL2 = 58229, 904 PRBAR14_EL1 = 50040, 905 PRLAR14_EL1 = 50041, 906 PRBAR14_EL2 = 58232, 907 PRLAR14_EL2 = 58233, 908 PRBAR15_EL1 = 50044, 909 PRLAR15_EL1 = 50045, 910 PRBAR15_EL2 = 58236, 911 PRLAR15_EL2 = 58237, 912 PAN = 49683, 913 LORSA_EL1 = 50464, 914 LOREA_EL1 = 50465, 915 LORN_EL1 = 50466, 916 LORC_EL1 = 50467, 917 TTBR1_EL2 = 57601, 918 CNTHV_TVAL_EL2 = 59160, 919 CNTHV_CVAL_EL2 = 59162, 920 CNTHV_CTL_EL2 = 59161, 921 SCTLR_EL12 = 59520, 922 CPACR_EL12 = 59522, 923 TTBR0_EL12 = 59648, 924 TTBR1_EL12 = 59649, 925 TCR_EL12 = 59650, 926 AFSR0_EL12 = 60040, 927 AFSR1_EL12 = 60041, 928 ESR_EL12 = 60048, 929 FAR_EL12 = 60160, 930 MAIR_EL12 = 60688, 931 AMAIR_EL12 = 60696, 932 VBAR_EL12 = 60928, 933 CONTEXTIDR_EL12 = 61057, 934 CNTKCTL_EL12 = 61192, 935 CNTP_TVAL_EL02 = 61200, 936 CNTP_CTL_EL02 = 61201, 937 CNTP_CVAL_EL02 = 61202, 938 CNTV_TVAL_EL02 = 61208, 939 CNTV_CTL_EL02 = 61209, 940 CNTV_CVAL_EL02 = 61210, 941 SPSR_EL12 = 59904, 942 ELR_EL12 = 59905, 943 CONTEXTIDR_EL2 = 59009, 944 UAO = 49684, 945 PMBLIMITR_EL1 = 50384, 946 PMBPTR_EL1 = 50385, 947 PMBSR_EL1 = 50387, 948 PMBIDR_EL1 = 50391, 949 PMSCR_EL2 = 58568, 950 PMSCR_EL12 = 60616, 951 PMSCR_EL1 = 50376, 952 PMSICR_EL1 = 50378, 953 PMSIRR_EL1 = 50379, 954 PMSFCR_EL1 = 50380, 955 PMSEVFR_EL1 = 50381, 956 PMSLATFR_EL1 = 50382, 957 PMSIDR_EL1 = 50383, 958 ERRSELR_EL1 = 49817, 959 ERXCTLR_EL1 = 49825, 960 ERXSTATUS_EL1 = 49826, 961 ERXADDR_EL1 = 49827, 962 ERXMISC0_EL1 = 49832, 963 ERXMISC1_EL1 = 49833, 964 DISR_EL1 = 50697, 965 VDISR_EL2 = 58889, 966 VSESR_EL2 = 58003, 967 APIAKeyLo_EL1 = 49416, 968 APIAKeyHi_EL1 = 49417, 969 APIBKeyLo_EL1 = 49418, 970 APIBKeyHi_EL1 = 49419, 971 APDAKeyLo_EL1 = 49424, 972 APDAKeyHi_EL1 = 49425, 973 APDBKeyLo_EL1 = 49426, 974 APDBKeyHi_EL1 = 49427, 975 APGAKeyLo_EL1 = 49432, 976 APGAKeyHi_EL1 = 49433, 977 VSTCR_EL2 = 57650, 978 VSTTBR_EL2 = 57648, 979 CNTHVS_TVAL_EL2 = 59168, 980 CNTHVS_CVAL_EL2 = 59170, 981 CNTHVS_CTL_EL2 = 59169, 982 CNTHPS_TVAL_EL2 = 59176, 983 CNTHPS_CVAL_EL2 = 59178, 984 CNTHPS_CTL_EL2 = 59177, 985 SDER32_EL2 = 57497, 986 ERXPFGCTL_EL1 = 49829, 987 ERXPFGCDN_EL1 = 49830, 988 ERXMISC2_EL1 = 49834, 989 ERXMISC3_EL1 = 49835, 990 ERXPFGF_EL1 = 49828, 991 MPAM0_EL1 = 50473, 992 MPAM1_EL1 = 50472, 993 MPAM2_EL2 = 58664, 994 MPAM3_EL3 = 62760, 995 MPAM1_EL12 = 60712, 996 MPAMHCR_EL2 = 58656, 997 MPAMVPMV_EL2 = 58657, 998 MPAMVPM0_EL2 = 58672, 999 MPAMVPM1_EL2 = 58673, 1000 MPAMVPM2_EL2 = 58674, 1001 MPAMVPM3_EL2 = 58675, 1002 MPAMVPM4_EL2 = 58676, 1003 MPAMVPM5_EL2 = 58677, 1004 MPAMVPM6_EL2 = 58678, 1005 MPAMVPM7_EL2 = 58679, 1006 MPAMIDR_EL1 = 50468, 1007 AMCR_EL0 = 56976, 1008 AMCFGR_EL0 = 56977, 1009 AMCGCR_EL0 = 56978, 1010 AMUSERENR_EL0 = 56979, 1011 AMCNTENCLR0_EL0 = 56980, 1012 AMCNTENSET0_EL0 = 56981, 1013 AMEVCNTR00_EL0 = 56992, 1014 AMEVCNTR01_EL0 = 56993, 1015 AMEVCNTR02_EL0 = 56994, 1016 AMEVCNTR03_EL0 = 56995, 1017 AMEVTYPER00_EL0 = 57008, 1018 AMEVTYPER01_EL0 = 57009, 1019 AMEVTYPER02_EL0 = 57010, 1020 AMEVTYPER03_EL0 = 57011, 1021 AMCNTENCLR1_EL0 = 56984, 1022 AMCNTENSET1_EL0 = 56985, 1023 AMEVCNTR10_EL0 = 57056, 1024 AMEVCNTR11_EL0 = 57057, 1025 AMEVCNTR12_EL0 = 57058, 1026 AMEVCNTR13_EL0 = 57059, 1027 AMEVCNTR14_EL0 = 57060, 1028 AMEVCNTR15_EL0 = 57061, 1029 AMEVCNTR16_EL0 = 57062, 1030 AMEVCNTR17_EL0 = 57063, 1031 AMEVCNTR18_EL0 = 57064, 1032 AMEVCNTR19_EL0 = 57065, 1033 AMEVCNTR110_EL0 = 57066, 1034 AMEVCNTR111_EL0 = 57067, 1035 AMEVCNTR112_EL0 = 57068, 1036 AMEVCNTR113_EL0 = 57069, 1037 AMEVCNTR114_EL0 = 57070, 1038 AMEVCNTR115_EL0 = 57071, 1039 AMEVTYPER10_EL0 = 57072, 1040 AMEVTYPER11_EL0 = 57073, 1041 AMEVTYPER12_EL0 = 57074, 1042 AMEVTYPER13_EL0 = 57075, 1043 AMEVTYPER14_EL0 = 57076, 1044 AMEVTYPER15_EL0 = 57077, 1045 AMEVTYPER16_EL0 = 57078, 1046 AMEVTYPER17_EL0 = 57079, 1047 AMEVTYPER18_EL0 = 57080, 1048 AMEVTYPER19_EL0 = 57081, 1049 AMEVTYPER110_EL0 = 57082, 1050 AMEVTYPER111_EL0 = 57083, 1051 AMEVTYPER112_EL0 = 57084, 1052 AMEVTYPER113_EL0 = 57085, 1053 AMEVTYPER114_EL0 = 57086, 1054 AMEVTYPER115_EL0 = 57087, 1055 TRFCR_EL1 = 49297, 1056 TRFCR_EL2 = 57489, 1057 TRFCR_EL12 = 59537, 1058 DIT = 55829, 1059 VNCR_EL2 = 57616, 1060 ZCR_EL1 = 49296, 1061 ZCR_EL2 = 57488, 1062 ZCR_EL3 = 61584, 1063 ZCR_EL12 = 59536, 1064 SSBS = 55830, 1065 TCO = 55831, 1066 GCR_EL1 = 49286, 1067 RGSR_EL1 = 49285, 1068 TFSR_EL1 = 49840, 1069 TFSR_EL2 = 58032, 1070 TFSR_EL3 = 62128, 1071 TFSR_EL12 = 60080, 1072 TFSRE0_EL1 = 49841, 1073 GMID_EL1 = 51204, 1074 TRCRSR = 34896, 1075 TRCEXTINSELR0 = 34884, 1076 TRCEXTINSELR1 = 34892, 1077 TRCEXTINSELR2 = 34900, 1078 TRCEXTINSELR3 = 34908, 1079 TRBLIMITR_EL1 = 50392, 1080 TRBPTR_EL1 = 50393, 1081 TRBBASER_EL1 = 50394, 1082 TRBSR_EL1 = 50395, 1083 TRBMAR_EL1 = 50396, 1084 TRBTRG_EL1 = 50398, 1085 TRBIDR_EL1 = 50399, 1086 AMCG1IDR_EL0 = 56982, 1087 AMEVCNTVOFF00_EL2 = 59072, 1088 AMEVCNTVOFF10_EL2 = 59088, 1089 AMEVCNTVOFF01_EL2 = 59073, 1090 AMEVCNTVOFF11_EL2 = 59089, 1091 AMEVCNTVOFF02_EL2 = 59074, 1092 AMEVCNTVOFF12_EL2 = 59090, 1093 AMEVCNTVOFF03_EL2 = 59075, 1094 AMEVCNTVOFF13_EL2 = 59091, 1095 AMEVCNTVOFF04_EL2 = 59076, 1096 AMEVCNTVOFF14_EL2 = 59092, 1097 AMEVCNTVOFF05_EL2 = 59077, 1098 AMEVCNTVOFF15_EL2 = 59093, 1099 AMEVCNTVOFF06_EL2 = 59078, 1100 AMEVCNTVOFF16_EL2 = 59094, 1101 AMEVCNTVOFF07_EL2 = 59079, 1102 AMEVCNTVOFF17_EL2 = 59095, 1103 AMEVCNTVOFF08_EL2 = 59080, 1104 AMEVCNTVOFF18_EL2 = 59096, 1105 AMEVCNTVOFF09_EL2 = 59081, 1106 AMEVCNTVOFF19_EL2 = 59097, 1107 AMEVCNTVOFF010_EL2 = 59082, 1108 AMEVCNTVOFF110_EL2 = 59098, 1109 AMEVCNTVOFF011_EL2 = 59083, 1110 AMEVCNTVOFF111_EL2 = 59099, 1111 AMEVCNTVOFF012_EL2 = 59084, 1112 AMEVCNTVOFF112_EL2 = 59100, 1113 AMEVCNTVOFF013_EL2 = 59085, 1114 AMEVCNTVOFF113_EL2 = 59101, 1115 AMEVCNTVOFF014_EL2 = 59086, 1116 AMEVCNTVOFF114_EL2 = 59102, 1117 AMEVCNTVOFF015_EL2 = 59087, 1118 AMEVCNTVOFF115_EL2 = 59103, 1119 HFGRTR_EL2 = 57484, 1120 HFGWTR_EL2 = 57485, 1121 HFGITR_EL2 = 57486, 1122 HDFGRTR_EL2 = 57740, 1123 HDFGWTR_EL2 = 57741, 1124 HAFGRTR_EL2 = 57742, 1125 HDFGRTR2_EL2 = 57736, 1126 HDFGWTR2_EL2 = 57737, 1127 HFGRTR2_EL2 = 57738, 1128 HFGWTR2_EL2 = 57739, 1129 HFGITR2_EL2 = 57743, 1130 CNTSCALE_EL2 = 59140, 1131 CNTISCALE_EL2 = 59141, 1132 CNTPOFF_EL2 = 59142, 1133 CNTVFRQ_EL2 = 59143, 1134 CNTPCTSS_EL0 = 57093, 1135 CNTVCTSS_EL0 = 57094, 1136 ACCDATA_EL1 = 50821, 1137 BRBCR_EL1 = 35968, 1138 BRBCR_EL12 = 44160, 1139 BRBCR_EL2 = 42112, 1140 BRBFCR_EL1 = 35969, 1141 BRBIDR0_EL1 = 35984, 1142 BRBINFINJ_EL1 = 35976, 1143 BRBSRCINJ_EL1 = 35977, 1144 BRBTGTINJ_EL1 = 35978, 1145 BRBTS_EL1 = 35970, 1146 BRBINF0_EL1 = 35840, 1147 BRBSRC0_EL1 = 35841, 1148 BRBTGT0_EL1 = 35842, 1149 BRBINF1_EL1 = 35848, 1150 BRBSRC1_EL1 = 35849, 1151 BRBTGT1_EL1 = 35850, 1152 BRBINF2_EL1 = 35856, 1153 BRBSRC2_EL1 = 35857, 1154 BRBTGT2_EL1 = 35858, 1155 BRBINF3_EL1 = 35864, 1156 BRBSRC3_EL1 = 35865, 1157 BRBTGT3_EL1 = 35866, 1158 BRBINF4_EL1 = 35872, 1159 BRBSRC4_EL1 = 35873, 1160 BRBTGT4_EL1 = 35874, 1161 BRBINF5_EL1 = 35880, 1162 BRBSRC5_EL1 = 35881, 1163 BRBTGT5_EL1 = 35882, 1164 BRBINF6_EL1 = 35888, 1165 BRBSRC6_EL1 = 35889, 1166 BRBTGT6_EL1 = 35890, 1167 BRBINF7_EL1 = 35896, 1168 BRBSRC7_EL1 = 35897, 1169 BRBTGT7_EL1 = 35898, 1170 BRBINF8_EL1 = 35904, 1171 BRBSRC8_EL1 = 35905, 1172 BRBTGT8_EL1 = 35906, 1173 BRBINF9_EL1 = 35912, 1174 BRBSRC9_EL1 = 35913, 1175 BRBTGT9_EL1 = 35914, 1176 BRBINF10_EL1 = 35920, 1177 BRBSRC10_EL1 = 35921, 1178 BRBTGT10_EL1 = 35922, 1179 BRBINF11_EL1 = 35928, 1180 BRBSRC11_EL1 = 35929, 1181 BRBTGT11_EL1 = 35930, 1182 BRBINF12_EL1 = 35936, 1183 BRBSRC12_EL1 = 35937, 1184 BRBTGT12_EL1 = 35938, 1185 BRBINF13_EL1 = 35944, 1186 BRBSRC13_EL1 = 35945, 1187 BRBTGT13_EL1 = 35946, 1188 BRBINF14_EL1 = 35952, 1189 BRBSRC14_EL1 = 35953, 1190 BRBTGT14_EL1 = 35954, 1191 BRBINF15_EL1 = 35960, 1192 BRBSRC15_EL1 = 35961, 1193 BRBTGT15_EL1 = 35962, 1194 BRBINF16_EL1 = 35844, 1195 BRBSRC16_EL1 = 35845, 1196 BRBTGT16_EL1 = 35846, 1197 BRBINF17_EL1 = 35852, 1198 BRBSRC17_EL1 = 35853, 1199 BRBTGT17_EL1 = 35854, 1200 BRBINF18_EL1 = 35860, 1201 BRBSRC18_EL1 = 35861, 1202 BRBTGT18_EL1 = 35862, 1203 BRBINF19_EL1 = 35868, 1204 BRBSRC19_EL1 = 35869, 1205 BRBTGT19_EL1 = 35870, 1206 BRBINF20_EL1 = 35876, 1207 BRBSRC20_EL1 = 35877, 1208 BRBTGT20_EL1 = 35878, 1209 BRBINF21_EL1 = 35884, 1210 BRBSRC21_EL1 = 35885, 1211 BRBTGT21_EL1 = 35886, 1212 BRBINF22_EL1 = 35892, 1213 BRBSRC22_EL1 = 35893, 1214 BRBTGT22_EL1 = 35894, 1215 BRBINF23_EL1 = 35900, 1216 BRBSRC23_EL1 = 35901, 1217 BRBTGT23_EL1 = 35902, 1218 BRBINF24_EL1 = 35908, 1219 BRBSRC24_EL1 = 35909, 1220 BRBTGT24_EL1 = 35910, 1221 BRBINF25_EL1 = 35916, 1222 BRBSRC25_EL1 = 35917, 1223 BRBTGT25_EL1 = 35918, 1224 BRBINF26_EL1 = 35924, 1225 BRBSRC26_EL1 = 35925, 1226 BRBTGT26_EL1 = 35926, 1227 BRBINF27_EL1 = 35932, 1228 BRBSRC27_EL1 = 35933, 1229 BRBTGT27_EL1 = 35934, 1230 BRBINF28_EL1 = 35940, 1231 BRBSRC28_EL1 = 35941, 1232 BRBTGT28_EL1 = 35942, 1233 BRBINF29_EL1 = 35948, 1234 BRBSRC29_EL1 = 35949, 1235 BRBTGT29_EL1 = 35950, 1236 BRBINF30_EL1 = 35956, 1237 BRBSRC30_EL1 = 35957, 1238 BRBTGT30_EL1 = 35958, 1239 BRBINF31_EL1 = 35964, 1240 BRBSRC31_EL1 = 35965, 1241 BRBTGT31_EL1 = 35966, 1242 PMSNEVFR_EL1 = 50377, 1243 CPM_IOACC_CTL_EL3 = 65424, 1244 SMCR_EL1 = 49302, 1245 SMCR_EL2 = 57494, 1246 SMCR_EL3 = 61590, 1247 SMCR_EL12 = 59542, 1248 SVCR = 55826, 1249 SMPRI_EL1 = 49300, 1250 SMPRIMAP_EL2 = 57493, 1251 SMIDR_EL1 = 51206, 1252 TPIDR2_EL0 = 56965, 1253 MPAMSM_EL1 = 50475, 1254 ALLINT = 49688, 1255 ICC_NMIAR1_EL1 = 50765, 1256 AMAIR2_EL1 = 50457, 1257 AMAIR2_EL12 = 60697, 1258 AMAIR2_EL2 = 58649, 1259 AMAIR2_EL3 = 62745, 1260 MAIR2_EL1 = 50449, 1261 MAIR2_EL12 = 60689, 1262 MAIR2_EL2 = 58633, 1263 MAIR2_EL3 = 62729, 1264 PIRE0_EL1 = 50450, 1265 PIRE0_EL12 = 60690, 1266 PIRE0_EL2 = 58642, 1267 PIR_EL1 = 50451, 1268 PIR_EL12 = 60691, 1269 PIR_EL2 = 58643, 1270 PIR_EL3 = 62739, 1271 S2PIR_EL2 = 58645, 1272 POR_EL0 = 56596, 1273 POR_EL1 = 50452, 1274 POR_EL12 = 60692, 1275 POR_EL2 = 58644, 1276 POR_EL3 = 62740, 1277 S2POR_EL1 = 50453, 1278 SCTLR2_EL1 = 49283, 1279 SCTLR2_EL12 = 59523, 1280 SCTLR2_EL2 = 57475, 1281 SCTLR2_EL3 = 61571, 1282 TCR2_EL1 = 49411, 1283 TCR2_EL12 = 59651, 1284 TCR2_EL2 = 57603, 1285 RCWMASK_EL1 = 50822, 1286 RCWSMASK_EL1 = 50819, 1287 MDSELR_EL1 = 32802, 1288 PMUACR_EL1 = 50420, 1289 PMCCNTSVR_EL1 = 34655, 1290 PMICNTSVR_EL1 = 34656, 1291 PMSSCR_EL1 = 50411, 1292 PMEVCNTSVR0_EL1 = 34624, 1293 PMEVCNTSVR1_EL1 = 34625, 1294 PMEVCNTSVR2_EL1 = 34626, 1295 PMEVCNTSVR3_EL1 = 34627, 1296 PMEVCNTSVR4_EL1 = 34628, 1297 PMEVCNTSVR5_EL1 = 34629, 1298 PMEVCNTSVR6_EL1 = 34630, 1299 PMEVCNTSVR7_EL1 = 34631, 1300 PMEVCNTSVR8_EL1 = 34632, 1301 PMEVCNTSVR9_EL1 = 34633, 1302 PMEVCNTSVR10_EL1 = 34634, 1303 PMEVCNTSVR11_EL1 = 34635, 1304 PMEVCNTSVR12_EL1 = 34636, 1305 PMEVCNTSVR13_EL1 = 34637, 1306 PMEVCNTSVR14_EL1 = 34638, 1307 PMEVCNTSVR15_EL1 = 34639, 1308 PMEVCNTSVR16_EL1 = 34640, 1309 PMEVCNTSVR17_EL1 = 34641, 1310 PMEVCNTSVR18_EL1 = 34642, 1311 PMEVCNTSVR19_EL1 = 34643, 1312 PMEVCNTSVR20_EL1 = 34644, 1313 PMEVCNTSVR21_EL1 = 34645, 1314 PMEVCNTSVR22_EL1 = 34646, 1315 PMEVCNTSVR23_EL1 = 34647, 1316 PMEVCNTSVR24_EL1 = 34648, 1317 PMEVCNTSVR25_EL1 = 34649, 1318 PMEVCNTSVR26_EL1 = 34650, 1319 PMEVCNTSVR27_EL1 = 34651, 1320 PMEVCNTSVR28_EL1 = 34652, 1321 PMEVCNTSVR29_EL1 = 34653, 1322 PMEVCNTSVR30_EL1 = 34654, 1323 PMICNTR_EL0 = 56480, 1324 PMICFILTR_EL0 = 56496, 1325 PMZR_EL0 = 56556, 1326 PMECR_EL1 = 50421, 1327 PMIAR_EL1 = 50423, 1328 SPMACCESSR_EL1 = 34027, 1329 SPMACCESSR_EL12 = 44267, 1330 SPMACCESSR_EL2 = 42219, 1331 SPMACCESSR_EL3 = 46315, 1332 SPMCNTENCLR_EL0 = 40162, 1333 SPMCNTENSET_EL0 = 40161, 1334 SPMCR_EL0 = 40160, 1335 SPMDEVAFF_EL1 = 34030, 1336 SPMDEVARCH_EL1 = 34029, 1337 SPMEVCNTR0_EL0 = 40704, 1338 SPMEVFILT2R0_EL0 = 40752, 1339 SPMEVFILTR0_EL0 = 40736, 1340 SPMEVTYPER0_EL0 = 40720, 1341 SPMEVCNTR1_EL0 = 40705, 1342 SPMEVFILT2R1_EL0 = 40753, 1343 SPMEVFILTR1_EL0 = 40737, 1344 SPMEVTYPER1_EL0 = 40721, 1345 SPMEVCNTR2_EL0 = 40706, 1346 SPMEVFILT2R2_EL0 = 40754, 1347 SPMEVFILTR2_EL0 = 40738, 1348 SPMEVTYPER2_EL0 = 40722, 1349 SPMEVCNTR3_EL0 = 40707, 1350 SPMEVFILT2R3_EL0 = 40755, 1351 SPMEVFILTR3_EL0 = 40739, 1352 SPMEVTYPER3_EL0 = 40723, 1353 SPMEVCNTR4_EL0 = 40708, 1354 SPMEVFILT2R4_EL0 = 40756, 1355 SPMEVFILTR4_EL0 = 40740, 1356 SPMEVTYPER4_EL0 = 40724, 1357 SPMEVCNTR5_EL0 = 40709, 1358 SPMEVFILT2R5_EL0 = 40757, 1359 SPMEVFILTR5_EL0 = 40741, 1360 SPMEVTYPER5_EL0 = 40725, 1361 SPMEVCNTR6_EL0 = 40710, 1362 SPMEVFILT2R6_EL0 = 40758, 1363 SPMEVFILTR6_EL0 = 40742, 1364 SPMEVTYPER6_EL0 = 40726, 1365 SPMEVCNTR7_EL0 = 40711, 1366 SPMEVFILT2R7_EL0 = 40759, 1367 SPMEVFILTR7_EL0 = 40743, 1368 SPMEVTYPER7_EL0 = 40727, 1369 SPMEVCNTR8_EL0 = 40712, 1370 SPMEVFILT2R8_EL0 = 40760, 1371 SPMEVFILTR8_EL0 = 40744, 1372 SPMEVTYPER8_EL0 = 40728, 1373 SPMEVCNTR9_EL0 = 40713, 1374 SPMEVFILT2R9_EL0 = 40761, 1375 SPMEVFILTR9_EL0 = 40745, 1376 SPMEVTYPER9_EL0 = 40729, 1377 SPMEVCNTR10_EL0 = 40714, 1378 SPMEVFILT2R10_EL0 = 40762, 1379 SPMEVFILTR10_EL0 = 40746, 1380 SPMEVTYPER10_EL0 = 40730, 1381 SPMEVCNTR11_EL0 = 40715, 1382 SPMEVFILT2R11_EL0 = 40763, 1383 SPMEVFILTR11_EL0 = 40747, 1384 SPMEVTYPER11_EL0 = 40731, 1385 SPMEVCNTR12_EL0 = 40716, 1386 SPMEVFILT2R12_EL0 = 40764, 1387 SPMEVFILTR12_EL0 = 40748, 1388 SPMEVTYPER12_EL0 = 40732, 1389 SPMEVCNTR13_EL0 = 40717, 1390 SPMEVFILT2R13_EL0 = 40765, 1391 SPMEVFILTR13_EL0 = 40749, 1392 SPMEVTYPER13_EL0 = 40733, 1393 SPMEVCNTR14_EL0 = 40718, 1394 SPMEVFILT2R14_EL0 = 40766, 1395 SPMEVFILTR14_EL0 = 40750, 1396 SPMEVTYPER14_EL0 = 40734, 1397 SPMEVCNTR15_EL0 = 40719, 1398 SPMEVFILT2R15_EL0 = 40767, 1399 SPMEVFILTR15_EL0 = 40751, 1400 SPMEVTYPER15_EL0 = 40735, 1401 SPMIIDR_EL1 = 34028, 1402 SPMINTENCLR_EL1 = 34034, 1403 SPMINTENSET_EL1 = 34033, 1404 SPMOVSCLR_EL0 = 40163, 1405 SPMOVSSET_EL0 = 40179, 1406 SPMSELR_EL0 = 40165, 1407 SPMCGCR0_EL1 = 34024, 1408 SPMCGCR1_EL1 = 34025, 1409 SPMCFGR_EL1 = 34031, 1410 SPMROOTCR_EL3 = 46327, 1411 SPMSCR_EL1 = 48375, 1412 TRCITEEDCR = 34833, 1413 TRCITECR_EL1 = 49299, 1414 TRCITECR_EL12 = 59539, 1415 TRCITECR_EL2 = 57491, 1416 PMSDSFR_EL1 = 50388, 1417 ERXGSR_EL1 = 49818, 1418 PFAR_EL1 = 49925, 1419 PFAR_EL12 = 60165, 1420 PFAR_EL2 = 58117, 1421 PM = 49689, 1422}; 1423#endif 1424 1425#ifdef GET_TSB_DECL 1426enum TSBValues { 1427 csync = 0, 1428}; 1429#endif 1430 1431#ifdef GET_TLBITable_DECL 1432const TLBI *lookupTLBIByEncoding(uint16_t Encoding); 1433const TLBI *lookupTLBIByName(StringRef Name); 1434#endif 1435 1436#ifdef GET_TLBITable_IMPL 1437constexpr TLBI TLBITable[] = { 1438 { "ALLE1", 0x243C, false, { } }, // 0 1439 { "ALLE1IS", 0x241C, false, { } }, // 1 1440 { "ALLE1ISnXS", 0x249C, false, { AArch64::FeatureXS } }, // 2 1441 { "ALLE1nXS", 0x24BC, false, { AArch64::FeatureXS } }, // 3 1442 { "ALLE1OS", 0x240C, false, { AArch64::FeatureTLB_RMI } }, // 4 1443 { "ALLE1OSnXS", 0x248C, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 5 1444 { "ALLE2", 0x2438, false, { } }, // 6 1445 { "ALLE2IS", 0x2418, false, { } }, // 7 1446 { "ALLE2ISnXS", 0x2498, false, { AArch64::FeatureXS } }, // 8 1447 { "ALLE2nXS", 0x24B8, false, { AArch64::FeatureXS } }, // 9 1448 { "ALLE2OS", 0x2408, false, { AArch64::FeatureTLB_RMI } }, // 10 1449 { "ALLE2OSnXS", 0x2488, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 11 1450 { "ALLE3", 0x3438, false, { } }, // 12 1451 { "ALLE3IS", 0x3418, false, { } }, // 13 1452 { "ALLE3ISnXS", 0x3498, false, { AArch64::FeatureXS } }, // 14 1453 { "ALLE3nXS", 0x34B8, false, { AArch64::FeatureXS } }, // 15 1454 { "ALLE3OS", 0x3408, false, { AArch64::FeatureTLB_RMI } }, // 16 1455 { "ALLE3OSnXS", 0x3488, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 17 1456 { "ASIDE1", 0x43A, true, { } }, // 18 1457 { "ASIDE1IS", 0x41A, true, { } }, // 19 1458 { "ASIDE1ISnXS", 0x49A, true, { AArch64::FeatureXS } }, // 20 1459 { "ASIDE1nXS", 0x4BA, true, { AArch64::FeatureXS } }, // 21 1460 { "ASIDE1OS", 0x40A, true, { AArch64::FeatureTLB_RMI } }, // 22 1461 { "ASIDE1OSnXS", 0x48A, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 23 1462 { "IPAS2E1", 0x2421, true, { } }, // 24 1463 { "IPAS2E1IS", 0x2401, true, { } }, // 25 1464 { "IPAS2E1ISnXS", 0x2481, true, { AArch64::FeatureXS } }, // 26 1465 { "IPAS2E1nXS", 0x24A1, true, { AArch64::FeatureXS } }, // 27 1466 { "IPAS2E1OS", 0x2420, true, { AArch64::FeatureTLB_RMI } }, // 28 1467 { "IPAS2E1OSnXS", 0x24A0, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 29 1468 { "IPAS2LE1", 0x2425, true, { } }, // 30 1469 { "IPAS2LE1IS", 0x2405, true, { } }, // 31 1470 { "IPAS2LE1ISnXS", 0x2485, true, { AArch64::FeatureXS } }, // 32 1471 { "IPAS2LE1nXS", 0x24A5, true, { AArch64::FeatureXS } }, // 33 1472 { "IPAS2LE1OS", 0x2424, true, { AArch64::FeatureTLB_RMI } }, // 34 1473 { "IPAS2LE1OSnXS", 0x24A4, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 35 1474 { "PAALL", 0x343C, false, { AArch64::FeatureRME } }, // 36 1475 { "PAALLnXS", 0x34BC, false, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 37 1476 { "PAALLOS", 0x340C, false, { AArch64::FeatureRME } }, // 38 1477 { "PAALLOSnXS", 0x348C, false, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 39 1478 { "RIPAS2E1", 0x2422, true, { AArch64::FeatureTLB_RMI } }, // 40 1479 { "RIPAS2E1IS", 0x2402, true, { AArch64::FeatureTLB_RMI } }, // 41 1480 { "RIPAS2E1ISnXS", 0x2482, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 42 1481 { "RIPAS2E1nXS", 0x24A2, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 43 1482 { "RIPAS2E1OS", 0x2423, true, { AArch64::FeatureTLB_RMI } }, // 44 1483 { "RIPAS2E1OSnXS", 0x24A3, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 45 1484 { "RIPAS2LE1", 0x2426, true, { AArch64::FeatureTLB_RMI } }, // 46 1485 { "RIPAS2LE1IS", 0x2406, true, { AArch64::FeatureTLB_RMI } }, // 47 1486 { "RIPAS2LE1ISnXS", 0x2486, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 48 1487 { "RIPAS2LE1nXS", 0x24A6, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 49 1488 { "RIPAS2LE1OS", 0x2427, true, { AArch64::FeatureTLB_RMI } }, // 50 1489 { "RIPAS2LE1OSnXS", 0x24A7, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 51 1490 { "RPALOS", 0x3427, true, { AArch64::FeatureRME } }, // 52 1491 { "RPALOSnXS", 0x34A7, true, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 53 1492 { "RPAOS", 0x3423, true, { AArch64::FeatureRME } }, // 54 1493 { "RPAOSnXS", 0x34A3, true, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 55 1494 { "RVAAE1", 0x433, true, { AArch64::FeatureTLB_RMI } }, // 56 1495 { "RVAAE1IS", 0x413, true, { AArch64::FeatureTLB_RMI } }, // 57 1496 { "RVAAE1ISnXS", 0x493, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 58 1497 { "RVAAE1nXS", 0x4B3, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 59 1498 { "RVAAE1OS", 0x42B, true, { AArch64::FeatureTLB_RMI } }, // 60 1499 { "RVAAE1OSnXS", 0x4AB, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 61 1500 { "RVAALE1", 0x437, true, { AArch64::FeatureTLB_RMI } }, // 62 1501 { "RVAALE1IS", 0x417, true, { AArch64::FeatureTLB_RMI } }, // 63 1502 { "RVAALE1ISnXS", 0x497, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 64 1503 { "RVAALE1nXS", 0x4B7, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 65 1504 { "RVAALE1OS", 0x42F, true, { AArch64::FeatureTLB_RMI } }, // 66 1505 { "RVAALE1OSnXS", 0x4AF, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 67 1506 { "RVAE1", 0x431, true, { AArch64::FeatureTLB_RMI } }, // 68 1507 { "RVAE1IS", 0x411, true, { AArch64::FeatureTLB_RMI } }, // 69 1508 { "RVAE1ISnXS", 0x491, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 70 1509 { "RVAE1nXS", 0x4B1, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 71 1510 { "RVAE1OS", 0x429, true, { AArch64::FeatureTLB_RMI } }, // 72 1511 { "RVAE1OSnXS", 0x4A9, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 73 1512 { "RVAE2", 0x2431, true, { AArch64::FeatureTLB_RMI } }, // 74 1513 { "RVAE2IS", 0x2411, true, { AArch64::FeatureTLB_RMI } }, // 75 1514 { "RVAE2ISnXS", 0x2491, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 76 1515 { "RVAE2nXS", 0x24B1, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 77 1516 { "RVAE2OS", 0x2429, true, { AArch64::FeatureTLB_RMI } }, // 78 1517 { "RVAE2OSnXS", 0x24A9, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 79 1518 { "RVAE3", 0x3431, true, { AArch64::FeatureTLB_RMI } }, // 80 1519 { "RVAE3IS", 0x3411, true, { AArch64::FeatureTLB_RMI } }, // 81 1520 { "RVAE3ISnXS", 0x3491, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 82 1521 { "RVAE3nXS", 0x34B1, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 83 1522 { "RVAE3OS", 0x3429, true, { AArch64::FeatureTLB_RMI } }, // 84 1523 { "RVAE3OSnXS", 0x34A9, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 85 1524 { "RVALE1", 0x435, true, { AArch64::FeatureTLB_RMI } }, // 86 1525 { "RVALE1IS", 0x415, true, { AArch64::FeatureTLB_RMI } }, // 87 1526 { "RVALE1ISnXS", 0x495, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 88 1527 { "RVALE1nXS", 0x4B5, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 89 1528 { "RVALE1OS", 0x42D, true, { AArch64::FeatureTLB_RMI } }, // 90 1529 { "RVALE1OSnXS", 0x4AD, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 91 1530 { "RVALE2", 0x2435, true, { AArch64::FeatureTLB_RMI } }, // 92 1531 { "RVALE2IS", 0x2415, true, { AArch64::FeatureTLB_RMI } }, // 93 1532 { "RVALE2ISnXS", 0x2495, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 94 1533 { "RVALE2nXS", 0x24B5, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 95 1534 { "RVALE2OS", 0x242D, true, { AArch64::FeatureTLB_RMI } }, // 96 1535 { "RVALE2OSnXS", 0x24AD, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 97 1536 { "RVALE3", 0x3435, true, { AArch64::FeatureTLB_RMI } }, // 98 1537 { "RVALE3IS", 0x3415, true, { AArch64::FeatureTLB_RMI } }, // 99 1538 { "RVALE3ISnXS", 0x3495, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 100 1539 { "RVALE3nXS", 0x34B5, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 101 1540 { "RVALE3OS", 0x342D, true, { AArch64::FeatureTLB_RMI } }, // 102 1541 { "RVALE3OSnXS", 0x34AD, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 103 1542 { "VAAE1", 0x43B, true, { } }, // 104 1543 { "VAAE1IS", 0x41B, true, { } }, // 105 1544 { "VAAE1ISnXS", 0x49B, true, { AArch64::FeatureXS } }, // 106 1545 { "VAAE1nXS", 0x4BB, true, { AArch64::FeatureXS } }, // 107 1546 { "VAAE1OS", 0x40B, true, { AArch64::FeatureTLB_RMI } }, // 108 1547 { "VAAE1OSnXS", 0x48B, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 109 1548 { "VAALE1", 0x43F, true, { } }, // 110 1549 { "VAALE1IS", 0x41F, true, { } }, // 111 1550 { "VAALE1ISnXS", 0x49F, true, { AArch64::FeatureXS } }, // 112 1551 { "VAALE1nXS", 0x4BF, true, { AArch64::FeatureXS } }, // 113 1552 { "VAALE1OS", 0x40F, true, { AArch64::FeatureTLB_RMI } }, // 114 1553 { "VAALE1OSnXS", 0x48F, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 115 1554 { "VAE1", 0x439, true, { } }, // 116 1555 { "VAE1IS", 0x419, true, { } }, // 117 1556 { "VAE1ISnXS", 0x499, true, { AArch64::FeatureXS } }, // 118 1557 { "VAE1nXS", 0x4B9, true, { AArch64::FeatureXS } }, // 119 1558 { "VAE1OS", 0x409, true, { AArch64::FeatureTLB_RMI } }, // 120 1559 { "VAE1OSnXS", 0x489, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 121 1560 { "VAE2", 0x2439, true, { } }, // 122 1561 { "VAE2IS", 0x2419, true, { } }, // 123 1562 { "VAE2ISnXS", 0x2499, true, { AArch64::FeatureXS } }, // 124 1563 { "VAE2nXS", 0x24B9, true, { AArch64::FeatureXS } }, // 125 1564 { "VAE2OS", 0x2409, true, { AArch64::FeatureTLB_RMI } }, // 126 1565 { "VAE2OSnXS", 0x2489, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 127 1566 { "VAE3", 0x3439, true, { } }, // 128 1567 { "VAE3IS", 0x3419, true, { } }, // 129 1568 { "VAE3ISnXS", 0x3499, true, { AArch64::FeatureXS } }, // 130 1569 { "VAE3nXS", 0x34B9, true, { AArch64::FeatureXS } }, // 131 1570 { "VAE3OS", 0x3409, true, { AArch64::FeatureTLB_RMI } }, // 132 1571 { "VAE3OSnXS", 0x3489, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 133 1572 { "VALE1", 0x43D, true, { } }, // 134 1573 { "VALE1IS", 0x41D, true, { } }, // 135 1574 { "VALE1ISnXS", 0x49D, true, { AArch64::FeatureXS } }, // 136 1575 { "VALE1nXS", 0x4BD, true, { AArch64::FeatureXS } }, // 137 1576 { "VALE1OS", 0x40D, true, { AArch64::FeatureTLB_RMI } }, // 138 1577 { "VALE1OSnXS", 0x48D, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 139 1578 { "VALE2", 0x243D, true, { } }, // 140 1579 { "VALE2IS", 0x241D, true, { } }, // 141 1580 { "VALE2ISnXS", 0x249D, true, { AArch64::FeatureXS } }, // 142 1581 { "VALE2nXS", 0x24BD, true, { AArch64::FeatureXS } }, // 143 1582 { "VALE2OS", 0x240D, true, { AArch64::FeatureTLB_RMI } }, // 144 1583 { "VALE2OSnXS", 0x248D, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 145 1584 { "VALE3", 0x343D, true, { } }, // 146 1585 { "VALE3IS", 0x341D, true, { } }, // 147 1586 { "VALE3ISnXS", 0x349D, true, { AArch64::FeatureXS } }, // 148 1587 { "VALE3nXS", 0x34BD, true, { AArch64::FeatureXS } }, // 149 1588 { "VALE3OS", 0x340D, true, { AArch64::FeatureTLB_RMI } }, // 150 1589 { "VALE3OSnXS", 0x348D, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 151 1590 { "VMALLE1", 0x438, false, { } }, // 152 1591 { "VMALLE1IS", 0x418, false, { } }, // 153 1592 { "VMALLE1ISnXS", 0x498, false, { AArch64::FeatureXS } }, // 154 1593 { "VMALLE1nXS", 0x4B8, false, { AArch64::FeatureXS } }, // 155 1594 { "VMALLE1OS", 0x408, false, { AArch64::FeatureTLB_RMI } }, // 156 1595 { "VMALLE1OSnXS", 0x488, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 157 1596 { "VMALLS12E1", 0x243E, false, { } }, // 158 1597 { "VMALLS12E1IS", 0x241E, false, { } }, // 159 1598 { "VMALLS12E1ISnXS", 0x249E, false, { AArch64::FeatureXS } }, // 160 1599 { "VMALLS12E1nXS", 0x24BE, false, { AArch64::FeatureXS } }, // 161 1600 { "VMALLS12E1OS", 0x240E, false, { AArch64::FeatureTLB_RMI } }, // 162 1601 { "VMALLS12E1OSnXS", 0x248E, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 163 1602 }; 1603 1604const TLBI *lookupTLBIByEncoding(uint16_t Encoding) { 1605 struct IndexType { 1606 uint16_t Encoding; 1607 unsigned _index; 1608 }; 1609 static const struct IndexType Index[] = { 1610 { 0x408, 156 }, 1611 { 0x409, 120 }, 1612 { 0x40A, 22 }, 1613 { 0x40B, 108 }, 1614 { 0x40D, 138 }, 1615 { 0x40F, 114 }, 1616 { 0x411, 69 }, 1617 { 0x413, 57 }, 1618 { 0x415, 87 }, 1619 { 0x417, 63 }, 1620 { 0x418, 153 }, 1621 { 0x419, 117 }, 1622 { 0x41A, 19 }, 1623 { 0x41B, 105 }, 1624 { 0x41D, 135 }, 1625 { 0x41F, 111 }, 1626 { 0x429, 72 }, 1627 { 0x42B, 60 }, 1628 { 0x42D, 90 }, 1629 { 0x42F, 66 }, 1630 { 0x431, 68 }, 1631 { 0x433, 56 }, 1632 { 0x435, 86 }, 1633 { 0x437, 62 }, 1634 { 0x438, 152 }, 1635 { 0x439, 116 }, 1636 { 0x43A, 18 }, 1637 { 0x43B, 104 }, 1638 { 0x43D, 134 }, 1639 { 0x43F, 110 }, 1640 { 0x488, 157 }, 1641 { 0x489, 121 }, 1642 { 0x48A, 23 }, 1643 { 0x48B, 109 }, 1644 { 0x48D, 139 }, 1645 { 0x48F, 115 }, 1646 { 0x491, 70 }, 1647 { 0x493, 58 }, 1648 { 0x495, 88 }, 1649 { 0x497, 64 }, 1650 { 0x498, 154 }, 1651 { 0x499, 118 }, 1652 { 0x49A, 20 }, 1653 { 0x49B, 106 }, 1654 { 0x49D, 136 }, 1655 { 0x49F, 112 }, 1656 { 0x4A9, 73 }, 1657 { 0x4AB, 61 }, 1658 { 0x4AD, 91 }, 1659 { 0x4AF, 67 }, 1660 { 0x4B1, 71 }, 1661 { 0x4B3, 59 }, 1662 { 0x4B5, 89 }, 1663 { 0x4B7, 65 }, 1664 { 0x4B8, 155 }, 1665 { 0x4B9, 119 }, 1666 { 0x4BA, 21 }, 1667 { 0x4BB, 107 }, 1668 { 0x4BD, 137 }, 1669 { 0x4BF, 113 }, 1670 { 0x2401, 25 }, 1671 { 0x2402, 41 }, 1672 { 0x2405, 31 }, 1673 { 0x2406, 47 }, 1674 { 0x2408, 10 }, 1675 { 0x2409, 126 }, 1676 { 0x240C, 4 }, 1677 { 0x240D, 144 }, 1678 { 0x240E, 162 }, 1679 { 0x2411, 75 }, 1680 { 0x2415, 93 }, 1681 { 0x2418, 7 }, 1682 { 0x2419, 123 }, 1683 { 0x241C, 1 }, 1684 { 0x241D, 141 }, 1685 { 0x241E, 159 }, 1686 { 0x2420, 28 }, 1687 { 0x2421, 24 }, 1688 { 0x2422, 40 }, 1689 { 0x2423, 44 }, 1690 { 0x2424, 34 }, 1691 { 0x2425, 30 }, 1692 { 0x2426, 46 }, 1693 { 0x2427, 50 }, 1694 { 0x2429, 78 }, 1695 { 0x242D, 96 }, 1696 { 0x2431, 74 }, 1697 { 0x2435, 92 }, 1698 { 0x2438, 6 }, 1699 { 0x2439, 122 }, 1700 { 0x243C, 0 }, 1701 { 0x243D, 140 }, 1702 { 0x243E, 158 }, 1703 { 0x2481, 26 }, 1704 { 0x2482, 42 }, 1705 { 0x2485, 32 }, 1706 { 0x2486, 48 }, 1707 { 0x2488, 11 }, 1708 { 0x2489, 127 }, 1709 { 0x248C, 5 }, 1710 { 0x248D, 145 }, 1711 { 0x248E, 163 }, 1712 { 0x2491, 76 }, 1713 { 0x2495, 94 }, 1714 { 0x2498, 8 }, 1715 { 0x2499, 124 }, 1716 { 0x249C, 2 }, 1717 { 0x249D, 142 }, 1718 { 0x249E, 160 }, 1719 { 0x24A0, 29 }, 1720 { 0x24A1, 27 }, 1721 { 0x24A2, 43 }, 1722 { 0x24A3, 45 }, 1723 { 0x24A4, 35 }, 1724 { 0x24A5, 33 }, 1725 { 0x24A6, 49 }, 1726 { 0x24A7, 51 }, 1727 { 0x24A9, 79 }, 1728 { 0x24AD, 97 }, 1729 { 0x24B1, 77 }, 1730 { 0x24B5, 95 }, 1731 { 0x24B8, 9 }, 1732 { 0x24B9, 125 }, 1733 { 0x24BC, 3 }, 1734 { 0x24BD, 143 }, 1735 { 0x24BE, 161 }, 1736 { 0x3408, 16 }, 1737 { 0x3409, 132 }, 1738 { 0x340C, 38 }, 1739 { 0x340D, 150 }, 1740 { 0x3411, 81 }, 1741 { 0x3415, 99 }, 1742 { 0x3418, 13 }, 1743 { 0x3419, 129 }, 1744 { 0x341D, 147 }, 1745 { 0x3423, 54 }, 1746 { 0x3427, 52 }, 1747 { 0x3429, 84 }, 1748 { 0x342D, 102 }, 1749 { 0x3431, 80 }, 1750 { 0x3435, 98 }, 1751 { 0x3438, 12 }, 1752 { 0x3439, 128 }, 1753 { 0x343C, 36 }, 1754 { 0x343D, 146 }, 1755 { 0x3488, 17 }, 1756 { 0x3489, 133 }, 1757 { 0x348C, 39 }, 1758 { 0x348D, 151 }, 1759 { 0x3491, 82 }, 1760 { 0x3495, 100 }, 1761 { 0x3498, 14 }, 1762 { 0x3499, 130 }, 1763 { 0x349D, 148 }, 1764 { 0x34A3, 55 }, 1765 { 0x34A7, 53 }, 1766 { 0x34A9, 85 }, 1767 { 0x34AD, 103 }, 1768 { 0x34B1, 83 }, 1769 { 0x34B5, 101 }, 1770 { 0x34B8, 15 }, 1771 { 0x34B9, 131 }, 1772 { 0x34BC, 37 }, 1773 { 0x34BD, 149 }, 1774 }; 1775 1776 struct KeyType { 1777 uint16_t Encoding; 1778 }; 1779 KeyType Key = {Encoding}; 1780 auto Table = ArrayRef(Index); 1781 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 1782 [](const IndexType &LHS, const KeyType &RHS) { 1783 if (LHS.Encoding < RHS.Encoding) 1784 return true; 1785 if (LHS.Encoding > RHS.Encoding) 1786 return false; 1787 return false; 1788 }); 1789 1790 if (Idx == Table.end() || 1791 Key.Encoding != Idx->Encoding) 1792 return nullptr; 1793 return &TLBITable[Idx->_index]; 1794} 1795 1796const TLBI *lookupTLBIByName(StringRef Name) { 1797 struct IndexType { 1798 const char * Name; 1799 unsigned _index; 1800 }; 1801 static const struct IndexType Index[] = { 1802 { "ALLE1", 0 }, 1803 { "ALLE1IS", 1 }, 1804 { "ALLE1ISNXS", 2 }, 1805 { "ALLE1NXS", 3 }, 1806 { "ALLE1OS", 4 }, 1807 { "ALLE1OSNXS", 5 }, 1808 { "ALLE2", 6 }, 1809 { "ALLE2IS", 7 }, 1810 { "ALLE2ISNXS", 8 }, 1811 { "ALLE2NXS", 9 }, 1812 { "ALLE2OS", 10 }, 1813 { "ALLE2OSNXS", 11 }, 1814 { "ALLE3", 12 }, 1815 { "ALLE3IS", 13 }, 1816 { "ALLE3ISNXS", 14 }, 1817 { "ALLE3NXS", 15 }, 1818 { "ALLE3OS", 16 }, 1819 { "ALLE3OSNXS", 17 }, 1820 { "ASIDE1", 18 }, 1821 { "ASIDE1IS", 19 }, 1822 { "ASIDE1ISNXS", 20 }, 1823 { "ASIDE1NXS", 21 }, 1824 { "ASIDE1OS", 22 }, 1825 { "ASIDE1OSNXS", 23 }, 1826 { "IPAS2E1", 24 }, 1827 { "IPAS2E1IS", 25 }, 1828 { "IPAS2E1ISNXS", 26 }, 1829 { "IPAS2E1NXS", 27 }, 1830 { "IPAS2E1OS", 28 }, 1831 { "IPAS2E1OSNXS", 29 }, 1832 { "IPAS2LE1", 30 }, 1833 { "IPAS2LE1IS", 31 }, 1834 { "IPAS2LE1ISNXS", 32 }, 1835 { "IPAS2LE1NXS", 33 }, 1836 { "IPAS2LE1OS", 34 }, 1837 { "IPAS2LE1OSNXS", 35 }, 1838 { "PAALL", 36 }, 1839 { "PAALLNXS", 37 }, 1840 { "PAALLOS", 38 }, 1841 { "PAALLOSNXS", 39 }, 1842 { "RIPAS2E1", 40 }, 1843 { "RIPAS2E1IS", 41 }, 1844 { "RIPAS2E1ISNXS", 42 }, 1845 { "RIPAS2E1NXS", 43 }, 1846 { "RIPAS2E1OS", 44 }, 1847 { "RIPAS2E1OSNXS", 45 }, 1848 { "RIPAS2LE1", 46 }, 1849 { "RIPAS2LE1IS", 47 }, 1850 { "RIPAS2LE1ISNXS", 48 }, 1851 { "RIPAS2LE1NXS", 49 }, 1852 { "RIPAS2LE1OS", 50 }, 1853 { "RIPAS2LE1OSNXS", 51 }, 1854 { "RPALOS", 52 }, 1855 { "RPALOSNXS", 53 }, 1856 { "RPAOS", 54 }, 1857 { "RPAOSNXS", 55 }, 1858 { "RVAAE1", 56 }, 1859 { "RVAAE1IS", 57 }, 1860 { "RVAAE1ISNXS", 58 }, 1861 { "RVAAE1NXS", 59 }, 1862 { "RVAAE1OS", 60 }, 1863 { "RVAAE1OSNXS", 61 }, 1864 { "RVAALE1", 62 }, 1865 { "RVAALE1IS", 63 }, 1866 { "RVAALE1ISNXS", 64 }, 1867 { "RVAALE1NXS", 65 }, 1868 { "RVAALE1OS", 66 }, 1869 { "RVAALE1OSNXS", 67 }, 1870 { "RVAE1", 68 }, 1871 { "RVAE1IS", 69 }, 1872 { "RVAE1ISNXS", 70 }, 1873 { "RVAE1NXS", 71 }, 1874 { "RVAE1OS", 72 }, 1875 { "RVAE1OSNXS", 73 }, 1876 { "RVAE2", 74 }, 1877 { "RVAE2IS", 75 }, 1878 { "RVAE2ISNXS", 76 }, 1879 { "RVAE2NXS", 77 }, 1880 { "RVAE2OS", 78 }, 1881 { "RVAE2OSNXS", 79 }, 1882 { "RVAE3", 80 }, 1883 { "RVAE3IS", 81 }, 1884 { "RVAE3ISNXS", 82 }, 1885 { "RVAE3NXS", 83 }, 1886 { "RVAE3OS", 84 }, 1887 { "RVAE3OSNXS", 85 }, 1888 { "RVALE1", 86 }, 1889 { "RVALE1IS", 87 }, 1890 { "RVALE1ISNXS", 88 }, 1891 { "RVALE1NXS", 89 }, 1892 { "RVALE1OS", 90 }, 1893 { "RVALE1OSNXS", 91 }, 1894 { "RVALE2", 92 }, 1895 { "RVALE2IS", 93 }, 1896 { "RVALE2ISNXS", 94 }, 1897 { "RVALE2NXS", 95 }, 1898 { "RVALE2OS", 96 }, 1899 { "RVALE2OSNXS", 97 }, 1900 { "RVALE3", 98 }, 1901 { "RVALE3IS", 99 }, 1902 { "RVALE3ISNXS", 100 }, 1903 { "RVALE3NXS", 101 }, 1904 { "RVALE3OS", 102 }, 1905 { "RVALE3OSNXS", 103 }, 1906 { "VAAE1", 104 }, 1907 { "VAAE1IS", 105 }, 1908 { "VAAE1ISNXS", 106 }, 1909 { "VAAE1NXS", 107 }, 1910 { "VAAE1OS", 108 }, 1911 { "VAAE1OSNXS", 109 }, 1912 { "VAALE1", 110 }, 1913 { "VAALE1IS", 111 }, 1914 { "VAALE1ISNXS", 112 }, 1915 { "VAALE1NXS", 113 }, 1916 { "VAALE1OS", 114 }, 1917 { "VAALE1OSNXS", 115 }, 1918 { "VAE1", 116 }, 1919 { "VAE1IS", 117 }, 1920 { "VAE1ISNXS", 118 }, 1921 { "VAE1NXS", 119 }, 1922 { "VAE1OS", 120 }, 1923 { "VAE1OSNXS", 121 }, 1924 { "VAE2", 122 }, 1925 { "VAE2IS", 123 }, 1926 { "VAE2ISNXS", 124 }, 1927 { "VAE2NXS", 125 }, 1928 { "VAE2OS", 126 }, 1929 { "VAE2OSNXS", 127 }, 1930 { "VAE3", 128 }, 1931 { "VAE3IS", 129 }, 1932 { "VAE3ISNXS", 130 }, 1933 { "VAE3NXS", 131 }, 1934 { "VAE3OS", 132 }, 1935 { "VAE3OSNXS", 133 }, 1936 { "VALE1", 134 }, 1937 { "VALE1IS", 135 }, 1938 { "VALE1ISNXS", 136 }, 1939 { "VALE1NXS", 137 }, 1940 { "VALE1OS", 138 }, 1941 { "VALE1OSNXS", 139 }, 1942 { "VALE2", 140 }, 1943 { "VALE2IS", 141 }, 1944 { "VALE2ISNXS", 142 }, 1945 { "VALE2NXS", 143 }, 1946 { "VALE2OS", 144 }, 1947 { "VALE2OSNXS", 145 }, 1948 { "VALE3", 146 }, 1949 { "VALE3IS", 147 }, 1950 { "VALE3ISNXS", 148 }, 1951 { "VALE3NXS", 149 }, 1952 { "VALE3OS", 150 }, 1953 { "VALE3OSNXS", 151 }, 1954 { "VMALLE1", 152 }, 1955 { "VMALLE1IS", 153 }, 1956 { "VMALLE1ISNXS", 154 }, 1957 { "VMALLE1NXS", 155 }, 1958 { "VMALLE1OS", 156 }, 1959 { "VMALLE1OSNXS", 157 }, 1960 { "VMALLS12E1", 158 }, 1961 { "VMALLS12E1IS", 159 }, 1962 { "VMALLS12E1ISNXS", 160 }, 1963 { "VMALLS12E1NXS", 161 }, 1964 { "VMALLS12E1OS", 162 }, 1965 { "VMALLS12E1OSNXS", 163 }, 1966 }; 1967 1968 struct KeyType { 1969 std::string Name; 1970 }; 1971 KeyType Key = {Name.upper()}; 1972 auto Table = ArrayRef(Index); 1973 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 1974 [](const IndexType &LHS, const KeyType &RHS) { 1975 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 1976 if (CmpName < 0) return true; 1977 if (CmpName > 0) return false; 1978 return false; 1979 }); 1980 1981 if (Idx == Table.end() || 1982 Key.Name != Idx->Name) 1983 return nullptr; 1984 return &TLBITable[Idx->_index]; 1985} 1986#endif 1987 1988#ifdef GET_AT_DECL 1989const AT *lookupATByName(StringRef Name); 1990const AT *lookupATByEncoding(uint16_t Encoding); 1991#endif 1992 1993#ifdef GET_AT_IMPL 1994constexpr AT ATsList[] = { 1995 { "S12E0R", 0x23C6, {} }, // 0 1996 { "S12E0W", 0x23C7, {} }, // 1 1997 { "S12E1R", 0x23C4, {} }, // 2 1998 { "S12E1W", 0x23C5, {} }, // 3 1999 { "S1E0R", 0x3C2, {} }, // 4 2000 { "S1E0W", 0x3C3, {} }, // 5 2001 { "S1E1R", 0x3C0, {} }, // 6 2002 { "S1E1RP", 0x3C8, {AArch64::FeaturePAN_RWV} }, // 7 2003 { "S1E1W", 0x3C1, {} }, // 8 2004 { "S1E1WP", 0x3C9, {AArch64::FeaturePAN_RWV} }, // 9 2005 { "S1E2R", 0x23C0, {} }, // 10 2006 { "S1E2W", 0x23C1, {} }, // 11 2007 { "S1E3R", 0x33C0, {} }, // 12 2008 { "S1E3W", 0x33C1, {} }, // 13 2009 }; 2010 2011const AT *lookupATByName(StringRef Name) { 2012 struct IndexType { 2013 const char * Name; 2014 unsigned _index; 2015 }; 2016 static const struct IndexType Index[] = { 2017 { "S12E0R", 0 }, 2018 { "S12E0W", 1 }, 2019 { "S12E1R", 2 }, 2020 { "S12E1W", 3 }, 2021 { "S1E0R", 4 }, 2022 { "S1E0W", 5 }, 2023 { "S1E1R", 6 }, 2024 { "S1E1RP", 7 }, 2025 { "S1E1W", 8 }, 2026 { "S1E1WP", 9 }, 2027 { "S1E2R", 10 }, 2028 { "S1E2W", 11 }, 2029 { "S1E3R", 12 }, 2030 { "S1E3W", 13 }, 2031 }; 2032 2033 struct KeyType { 2034 std::string Name; 2035 }; 2036 KeyType Key = {Name.upper()}; 2037 auto Table = ArrayRef(Index); 2038 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2039 [](const IndexType &LHS, const KeyType &RHS) { 2040 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2041 if (CmpName < 0) return true; 2042 if (CmpName > 0) return false; 2043 return false; 2044 }); 2045 2046 if (Idx == Table.end() || 2047 Key.Name != Idx->Name) 2048 return nullptr; 2049 return &ATsList[Idx->_index]; 2050} 2051 2052const AT *lookupATByEncoding(uint16_t Encoding) { 2053 struct IndexType { 2054 uint16_t Encoding; 2055 unsigned _index; 2056 }; 2057 static const struct IndexType Index[] = { 2058 { 0x3C0, 6 }, 2059 { 0x3C1, 8 }, 2060 { 0x3C2, 4 }, 2061 { 0x3C3, 5 }, 2062 { 0x3C8, 7 }, 2063 { 0x3C9, 9 }, 2064 { 0x23C0, 10 }, 2065 { 0x23C1, 11 }, 2066 { 0x23C4, 2 }, 2067 { 0x23C5, 3 }, 2068 { 0x23C6, 0 }, 2069 { 0x23C7, 1 }, 2070 { 0x33C0, 12 }, 2071 { 0x33C1, 13 }, 2072 }; 2073 2074 struct KeyType { 2075 uint16_t Encoding; 2076 }; 2077 KeyType Key = {Encoding}; 2078 auto Table = ArrayRef(Index); 2079 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2080 [](const IndexType &LHS, const KeyType &RHS) { 2081 if (LHS.Encoding < RHS.Encoding) 2082 return true; 2083 if (LHS.Encoding > RHS.Encoding) 2084 return false; 2085 return false; 2086 }); 2087 2088 if (Idx == Table.end() || 2089 Key.Encoding != Idx->Encoding) 2090 return nullptr; 2091 return &ATsList[Idx->_index]; 2092} 2093#endif 2094 2095#ifdef GET_BTI_DECL 2096const BTI *lookupBTIByName(StringRef Name); 2097const BTI *lookupBTIByEncoding(uint8_t Encoding); 2098#endif 2099 2100#ifdef GET_BTI_IMPL 2101constexpr BTI BTIsList[] = { 2102 { "c", 0x2 }, // 0 2103 { "j", 0x4 }, // 1 2104 { "jc", 0x6 }, // 2 2105 }; 2106 2107const BTI *lookupBTIByName(StringRef Name) { 2108 struct IndexType { 2109 const char * Name; 2110 unsigned _index; 2111 }; 2112 static const struct IndexType Index[] = { 2113 { "C", 0 }, 2114 { "J", 1 }, 2115 { "JC", 2 }, 2116 }; 2117 2118 struct KeyType { 2119 std::string Name; 2120 }; 2121 KeyType Key = {Name.upper()}; 2122 auto Table = ArrayRef(Index); 2123 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2124 [](const IndexType &LHS, const KeyType &RHS) { 2125 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2126 if (CmpName < 0) return true; 2127 if (CmpName > 0) return false; 2128 return false; 2129 }); 2130 2131 if (Idx == Table.end() || 2132 Key.Name != Idx->Name) 2133 return nullptr; 2134 return &BTIsList[Idx->_index]; 2135} 2136 2137const BTI *lookupBTIByEncoding(uint8_t Encoding) { 2138 struct IndexType { 2139 uint8_t Encoding; 2140 unsigned _index; 2141 }; 2142 static const struct IndexType Index[] = { 2143 { 0x2, 0 }, 2144 { 0x4, 1 }, 2145 { 0x6, 2 }, 2146 }; 2147 2148 struct KeyType { 2149 uint8_t Encoding; 2150 }; 2151 KeyType Key = {Encoding}; 2152 auto Table = ArrayRef(Index); 2153 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2154 [](const IndexType &LHS, const KeyType &RHS) { 2155 if (LHS.Encoding < RHS.Encoding) 2156 return true; 2157 if (LHS.Encoding > RHS.Encoding) 2158 return false; 2159 return false; 2160 }); 2161 2162 if (Idx == Table.end() || 2163 Key.Encoding != Idx->Encoding) 2164 return nullptr; 2165 return &BTIsList[Idx->_index]; 2166} 2167#endif 2168 2169#ifdef GET_DB_DECL 2170const DB *lookupDBByName(StringRef Name); 2171const DB *lookupDBByEncoding(uint8_t Encoding); 2172#endif 2173 2174#ifdef GET_DB_IMPL 2175constexpr DB DBsList[] = { 2176 { "ish", 0xB }, // 0 2177 { "ishld", 0x9 }, // 1 2178 { "ishst", 0xA }, // 2 2179 { "ld", 0xD }, // 3 2180 { "nsh", 0x7 }, // 4 2181 { "nshld", 0x5 }, // 5 2182 { "nshst", 0x6 }, // 6 2183 { "osh", 0x3 }, // 7 2184 { "oshld", 0x1 }, // 8 2185 { "oshst", 0x2 }, // 9 2186 { "st", 0xE }, // 10 2187 { "sy", 0xF }, // 11 2188 }; 2189 2190const DB *lookupDBByName(StringRef Name) { 2191 struct IndexType { 2192 const char * Name; 2193 unsigned _index; 2194 }; 2195 static const struct IndexType Index[] = { 2196 { "ISH", 0 }, 2197 { "ISHLD", 1 }, 2198 { "ISHST", 2 }, 2199 { "LD", 3 }, 2200 { "NSH", 4 }, 2201 { "NSHLD", 5 }, 2202 { "NSHST", 6 }, 2203 { "OSH", 7 }, 2204 { "OSHLD", 8 }, 2205 { "OSHST", 9 }, 2206 { "ST", 10 }, 2207 { "SY", 11 }, 2208 }; 2209 2210 struct KeyType { 2211 std::string Name; 2212 }; 2213 KeyType Key = {Name.upper()}; 2214 auto Table = ArrayRef(Index); 2215 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2216 [](const IndexType &LHS, const KeyType &RHS) { 2217 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2218 if (CmpName < 0) return true; 2219 if (CmpName > 0) return false; 2220 return false; 2221 }); 2222 2223 if (Idx == Table.end() || 2224 Key.Name != Idx->Name) 2225 return nullptr; 2226 return &DBsList[Idx->_index]; 2227} 2228 2229const DB *lookupDBByEncoding(uint8_t Encoding) { 2230 struct IndexType { 2231 uint8_t Encoding; 2232 unsigned _index; 2233 }; 2234 static const struct IndexType Index[] = { 2235 { 0x1, 8 }, 2236 { 0x2, 9 }, 2237 { 0x3, 7 }, 2238 { 0x5, 5 }, 2239 { 0x6, 6 }, 2240 { 0x7, 4 }, 2241 { 0x9, 1 }, 2242 { 0xA, 2 }, 2243 { 0xB, 0 }, 2244 { 0xD, 3 }, 2245 { 0xE, 10 }, 2246 { 0xF, 11 }, 2247 }; 2248 2249 struct KeyType { 2250 uint8_t Encoding; 2251 }; 2252 KeyType Key = {Encoding}; 2253 auto Table = ArrayRef(Index); 2254 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2255 [](const IndexType &LHS, const KeyType &RHS) { 2256 if (LHS.Encoding < RHS.Encoding) 2257 return true; 2258 if (LHS.Encoding > RHS.Encoding) 2259 return false; 2260 return false; 2261 }); 2262 2263 if (Idx == Table.end() || 2264 Key.Encoding != Idx->Encoding) 2265 return nullptr; 2266 return &DBsList[Idx->_index]; 2267} 2268#endif 2269 2270#ifdef GET_DBNXS_DECL 2271const DBnXS *lookupDBnXSByName(StringRef Name); 2272const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding); 2273const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue); 2274#endif 2275 2276#ifdef GET_DBNXS_IMPL 2277constexpr DBnXS DBnXSsList[] = { 2278 { "ishnxs", 0xB, 0x18, {AArch64::FeatureXS} }, // 0 2279 { "nshnxs", 0x7, 0x14, {AArch64::FeatureXS} }, // 1 2280 { "oshnxs", 0x3, 0x10, {AArch64::FeatureXS} }, // 2 2281 { "synxs", 0xF, 0x1C, {AArch64::FeatureXS} }, // 3 2282 }; 2283 2284const DBnXS *lookupDBnXSByName(StringRef Name) { 2285 struct IndexType { 2286 const char * Name; 2287 unsigned _index; 2288 }; 2289 static const struct IndexType Index[] = { 2290 { "ISHNXS", 0 }, 2291 { "NSHNXS", 1 }, 2292 { "OSHNXS", 2 }, 2293 { "SYNXS", 3 }, 2294 }; 2295 2296 struct KeyType { 2297 std::string Name; 2298 }; 2299 KeyType Key = {Name.upper()}; 2300 auto Table = ArrayRef(Index); 2301 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2302 [](const IndexType &LHS, const KeyType &RHS) { 2303 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2304 if (CmpName < 0) return true; 2305 if (CmpName > 0) return false; 2306 return false; 2307 }); 2308 2309 if (Idx == Table.end() || 2310 Key.Name != Idx->Name) 2311 return nullptr; 2312 return &DBnXSsList[Idx->_index]; 2313} 2314 2315const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding) { 2316 struct IndexType { 2317 uint8_t Encoding; 2318 unsigned _index; 2319 }; 2320 static const struct IndexType Index[] = { 2321 { 0x3, 2 }, 2322 { 0x7, 1 }, 2323 { 0xB, 0 }, 2324 { 0xF, 3 }, 2325 }; 2326 2327 struct KeyType { 2328 uint8_t Encoding; 2329 }; 2330 KeyType Key = {Encoding}; 2331 auto Table = ArrayRef(Index); 2332 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2333 [](const IndexType &LHS, const KeyType &RHS) { 2334 if (LHS.Encoding < RHS.Encoding) 2335 return true; 2336 if (LHS.Encoding > RHS.Encoding) 2337 return false; 2338 return false; 2339 }); 2340 2341 if (Idx == Table.end() || 2342 Key.Encoding != Idx->Encoding) 2343 return nullptr; 2344 return &DBnXSsList[Idx->_index]; 2345} 2346 2347const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue) { 2348 struct IndexType { 2349 uint8_t ImmValue; 2350 unsigned _index; 2351 }; 2352 static const struct IndexType Index[] = { 2353 { 0x10, 2 }, 2354 { 0x14, 1 }, 2355 { 0x18, 0 }, 2356 { 0x1C, 3 }, 2357 }; 2358 2359 struct KeyType { 2360 uint8_t ImmValue; 2361 }; 2362 KeyType Key = {ImmValue}; 2363 auto Table = ArrayRef(Index); 2364 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2365 [](const IndexType &LHS, const KeyType &RHS) { 2366 if (LHS.ImmValue < RHS.ImmValue) 2367 return true; 2368 if (LHS.ImmValue > RHS.ImmValue) 2369 return false; 2370 return false; 2371 }); 2372 2373 if (Idx == Table.end() || 2374 Key.ImmValue != Idx->ImmValue) 2375 return nullptr; 2376 return &DBnXSsList[Idx->_index]; 2377} 2378#endif 2379 2380#ifdef GET_DC_DECL 2381const DC *lookupDCByName(StringRef Name); 2382const DC *lookupDCByEncoding(uint16_t Encoding); 2383#endif 2384 2385#ifdef GET_DC_IMPL 2386constexpr DC DCsList[] = { 2387 { "CGDSW", 0x3D6, {AArch64::FeatureMTE} }, // 0 2388 { "CGDVAC", 0x1BD5, {AArch64::FeatureMTE} }, // 1 2389 { "CGDVADP", 0x1BED, {AArch64::FeatureMTE} }, // 2 2390 { "CGDVAP", 0x1BE5, {AArch64::FeatureMTE} }, // 3 2391 { "CGSW", 0x3D4, {AArch64::FeatureMTE} }, // 4 2392 { "CGVAC", 0x1BD3, {AArch64::FeatureMTE} }, // 5 2393 { "CGVADP", 0x1BEB, {AArch64::FeatureMTE} }, // 6 2394 { "CGVAP", 0x1BE3, {AArch64::FeatureMTE} }, // 7 2395 { "CIGDPAE", 0x23F7, {AArch64::FeatureMEC} }, // 8 2396 { "CIGDSW", 0x3F6, {AArch64::FeatureMTE} }, // 9 2397 { "CIGDVAC", 0x1BF5, {AArch64::FeatureMTE} }, // 10 2398 { "CIGSW", 0x3F4, {AArch64::FeatureMTE} }, // 11 2399 { "CIGVAC", 0x1BF3, {AArch64::FeatureMTE} }, // 12 2400 { "CIPAE", 0x23F0, {AArch64::FeatureMEC} }, // 13 2401 { "CISW", 0x3F2, {} }, // 14 2402 { "CIVAC", 0x1BF1, {} }, // 15 2403 { "CSW", 0x3D2, {} }, // 16 2404 { "CVAC", 0x1BD1, {} }, // 17 2405 { "CVADP", 0x1BE9, {AArch64::FeatureCacheDeepPersist} }, // 18 2406 { "CVAP", 0x1BE1, {AArch64::FeatureCCPP} }, // 19 2407 { "CVAU", 0x1BD9, {} }, // 20 2408 { "GVA", 0x1BA3, {AArch64::FeatureMTE} }, // 21 2409 { "GZVA", 0x1BA4, {AArch64::FeatureMTE} }, // 22 2410 { "IGDSW", 0x3B6, {AArch64::FeatureMTE} }, // 23 2411 { "IGDVAC", 0x3B5, {AArch64::FeatureMTE} }, // 24 2412 { "IGSW", 0x3B4, {AArch64::FeatureMTE} }, // 25 2413 { "IGVAC", 0x3B3, {AArch64::FeatureMTE} }, // 26 2414 { "ISW", 0x3B2, {} }, // 27 2415 { "IVAC", 0x3B1, {} }, // 28 2416 { "ZVA", 0x1BA1, {} }, // 29 2417 }; 2418 2419const DC *lookupDCByName(StringRef Name) { 2420 struct IndexType { 2421 const char * Name; 2422 unsigned _index; 2423 }; 2424 static const struct IndexType Index[] = { 2425 { "CGDSW", 0 }, 2426 { "CGDVAC", 1 }, 2427 { "CGDVADP", 2 }, 2428 { "CGDVAP", 3 }, 2429 { "CGSW", 4 }, 2430 { "CGVAC", 5 }, 2431 { "CGVADP", 6 }, 2432 { "CGVAP", 7 }, 2433 { "CIGDPAE", 8 }, 2434 { "CIGDSW", 9 }, 2435 { "CIGDVAC", 10 }, 2436 { "CIGSW", 11 }, 2437 { "CIGVAC", 12 }, 2438 { "CIPAE", 13 }, 2439 { "CISW", 14 }, 2440 { "CIVAC", 15 }, 2441 { "CSW", 16 }, 2442 { "CVAC", 17 }, 2443 { "CVADP", 18 }, 2444 { "CVAP", 19 }, 2445 { "CVAU", 20 }, 2446 { "GVA", 21 }, 2447 { "GZVA", 22 }, 2448 { "IGDSW", 23 }, 2449 { "IGDVAC", 24 }, 2450 { "IGSW", 25 }, 2451 { "IGVAC", 26 }, 2452 { "ISW", 27 }, 2453 { "IVAC", 28 }, 2454 { "ZVA", 29 }, 2455 }; 2456 2457 struct KeyType { 2458 std::string Name; 2459 }; 2460 KeyType Key = {Name.upper()}; 2461 auto Table = ArrayRef(Index); 2462 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2463 [](const IndexType &LHS, const KeyType &RHS) { 2464 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2465 if (CmpName < 0) return true; 2466 if (CmpName > 0) return false; 2467 return false; 2468 }); 2469 2470 if (Idx == Table.end() || 2471 Key.Name != Idx->Name) 2472 return nullptr; 2473 return &DCsList[Idx->_index]; 2474} 2475 2476const DC *lookupDCByEncoding(uint16_t Encoding) { 2477 struct IndexType { 2478 uint16_t Encoding; 2479 unsigned _index; 2480 }; 2481 static const struct IndexType Index[] = { 2482 { 0x3B1, 28 }, 2483 { 0x3B2, 27 }, 2484 { 0x3B3, 26 }, 2485 { 0x3B4, 25 }, 2486 { 0x3B5, 24 }, 2487 { 0x3B6, 23 }, 2488 { 0x3D2, 16 }, 2489 { 0x3D4, 4 }, 2490 { 0x3D6, 0 }, 2491 { 0x3F2, 14 }, 2492 { 0x3F4, 11 }, 2493 { 0x3F6, 9 }, 2494 { 0x1BA1, 29 }, 2495 { 0x1BA3, 21 }, 2496 { 0x1BA4, 22 }, 2497 { 0x1BD1, 17 }, 2498 { 0x1BD3, 5 }, 2499 { 0x1BD5, 1 }, 2500 { 0x1BD9, 20 }, 2501 { 0x1BE1, 19 }, 2502 { 0x1BE3, 7 }, 2503 { 0x1BE5, 3 }, 2504 { 0x1BE9, 18 }, 2505 { 0x1BEB, 6 }, 2506 { 0x1BED, 2 }, 2507 { 0x1BF1, 15 }, 2508 { 0x1BF3, 12 }, 2509 { 0x1BF5, 10 }, 2510 { 0x23F0, 13 }, 2511 { 0x23F7, 8 }, 2512 }; 2513 2514 struct KeyType { 2515 uint16_t Encoding; 2516 }; 2517 KeyType Key = {Encoding}; 2518 auto Table = ArrayRef(Index); 2519 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2520 [](const IndexType &LHS, const KeyType &RHS) { 2521 if (LHS.Encoding < RHS.Encoding) 2522 return true; 2523 if (LHS.Encoding > RHS.Encoding) 2524 return false; 2525 return false; 2526 }); 2527 2528 if (Idx == Table.end() || 2529 Key.Encoding != Idx->Encoding) 2530 return nullptr; 2531 return &DCsList[Idx->_index]; 2532} 2533#endif 2534 2535#ifdef GET_EXACTFPIMM_DECL 2536const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum); 2537const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr); 2538#endif 2539 2540#ifdef GET_EXACTFPIMM_IMPL 2541constexpr ExactFPImm ExactFPImmsList[] = { 2542 { "half", 0x1, "0.5" }, // 0 2543 { "one", 0x2, "1.0" }, // 1 2544 { "two", 0x3, "2.0" }, // 2 2545 { "zero", 0x0, "0.0" }, // 3 2546 }; 2547 2548const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum) { 2549 struct IndexType { 2550 uint8_t Enum; 2551 unsigned _index; 2552 }; 2553 static const struct IndexType Index[] = { 2554 { 0x0, 3 }, 2555 { 0x1, 0 }, 2556 { 0x2, 1 }, 2557 { 0x3, 2 }, 2558 }; 2559 2560 auto Table = ArrayRef(Index); 2561 size_t Idx = Enum; 2562 return Idx >= Table.size() ? nullptr : &ExactFPImmsList[Table[Idx]._index]; 2563} 2564 2565const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr) { 2566 struct IndexType { 2567 const char * Repr; 2568 unsigned _index; 2569 }; 2570 static const struct IndexType Index[] = { 2571 { "0.0", 3 }, 2572 { "0.5", 0 }, 2573 { "1.0", 1 }, 2574 { "2.0", 2 }, 2575 }; 2576 2577 struct KeyType { 2578 std::string Repr; 2579 }; 2580 KeyType Key = {Repr.upper()}; 2581 auto Table = ArrayRef(Index); 2582 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2583 [](const IndexType &LHS, const KeyType &RHS) { 2584 int CmpRepr = StringRef(LHS.Repr).compare(RHS.Repr); 2585 if (CmpRepr < 0) return true; 2586 if (CmpRepr > 0) return false; 2587 return false; 2588 }); 2589 2590 if (Idx == Table.end() || 2591 Key.Repr != Idx->Repr) 2592 return nullptr; 2593 return &ExactFPImmsList[Idx->_index]; 2594} 2595#endif 2596 2597#ifdef GET_IC_DECL 2598const IC *lookupICByName(StringRef Name); 2599const IC *lookupICByEncoding(uint16_t Encoding); 2600#endif 2601 2602#ifdef GET_IC_IMPL 2603constexpr IC ICsList[] = { 2604 { "IALLU", 0x3A8, false }, // 0 2605 { "IALLUIS", 0x388, false }, // 1 2606 { "IVAU", 0x1BA9, true }, // 2 2607 }; 2608 2609const IC *lookupICByName(StringRef Name) { 2610 struct IndexType { 2611 const char * Name; 2612 unsigned _index; 2613 }; 2614 static const struct IndexType Index[] = { 2615 { "IALLU", 0 }, 2616 { "IALLUIS", 1 }, 2617 { "IVAU", 2 }, 2618 }; 2619 2620 struct KeyType { 2621 std::string Name; 2622 }; 2623 KeyType Key = {Name.upper()}; 2624 auto Table = ArrayRef(Index); 2625 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2626 [](const IndexType &LHS, const KeyType &RHS) { 2627 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2628 if (CmpName < 0) return true; 2629 if (CmpName > 0) return false; 2630 return false; 2631 }); 2632 2633 if (Idx == Table.end() || 2634 Key.Name != Idx->Name) 2635 return nullptr; 2636 return &ICsList[Idx->_index]; 2637} 2638 2639const IC *lookupICByEncoding(uint16_t Encoding) { 2640 struct IndexType { 2641 uint16_t Encoding; 2642 unsigned _index; 2643 }; 2644 static const struct IndexType Index[] = { 2645 { 0x388, 1 }, 2646 { 0x3A8, 0 }, 2647 { 0x1BA9, 2 }, 2648 }; 2649 2650 struct KeyType { 2651 uint16_t Encoding; 2652 }; 2653 KeyType Key = {Encoding}; 2654 auto Table = ArrayRef(Index); 2655 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2656 [](const IndexType &LHS, const KeyType &RHS) { 2657 if (LHS.Encoding < RHS.Encoding) 2658 return true; 2659 if (LHS.Encoding > RHS.Encoding) 2660 return false; 2661 return false; 2662 }); 2663 2664 if (Idx == Table.end() || 2665 Key.Encoding != Idx->Encoding) 2666 return nullptr; 2667 return &ICsList[Idx->_index]; 2668} 2669#endif 2670 2671#ifdef GET_ISB_DECL 2672const ISB *lookupISBByName(StringRef Name); 2673const ISB *lookupISBByEncoding(uint8_t Encoding); 2674#endif 2675 2676#ifdef GET_ISB_IMPL 2677constexpr ISB ISBsList[] = { 2678 { "sy", 0xF }, // 0 2679 }; 2680 2681const ISB *lookupISBByName(StringRef Name) { 2682 struct IndexType { 2683 const char * Name; 2684 unsigned _index; 2685 }; 2686 static const struct IndexType Index[] = { 2687 { "SY", 0 }, 2688 }; 2689 2690 struct KeyType { 2691 std::string Name; 2692 }; 2693 KeyType Key = {Name.upper()}; 2694 auto Table = ArrayRef(Index); 2695 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2696 [](const IndexType &LHS, const KeyType &RHS) { 2697 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2698 if (CmpName < 0) return true; 2699 if (CmpName > 0) return false; 2700 return false; 2701 }); 2702 2703 if (Idx == Table.end() || 2704 Key.Name != Idx->Name) 2705 return nullptr; 2706 return &ISBsList[Idx->_index]; 2707} 2708 2709const ISB *lookupISBByEncoding(uint8_t Encoding) { 2710 struct IndexType { 2711 uint8_t Encoding; 2712 unsigned _index; 2713 }; 2714 static const struct IndexType Index[] = { 2715 { 0xF, 0 }, 2716 }; 2717 2718 struct KeyType { 2719 uint8_t Encoding; 2720 }; 2721 KeyType Key = {Encoding}; 2722 auto Table = ArrayRef(Index); 2723 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2724 [](const IndexType &LHS, const KeyType &RHS) { 2725 if (LHS.Encoding < RHS.Encoding) 2726 return true; 2727 if (LHS.Encoding > RHS.Encoding) 2728 return false; 2729 return false; 2730 }); 2731 2732 if (Idx == Table.end() || 2733 Key.Encoding != Idx->Encoding) 2734 return nullptr; 2735 return &ISBsList[Idx->_index]; 2736} 2737#endif 2738 2739#ifdef GET_PRFM_DECL 2740const PRFM *lookupPRFMByName(StringRef Name); 2741const PRFM *lookupPRFMByEncoding(uint8_t Encoding); 2742#endif 2743 2744#ifdef GET_PRFM_IMPL 2745constexpr PRFM PRFMsList[] = { 2746 { "pldl1keep", 0x0, {} }, // 0 2747 { "pldl1strm", 0x1, {} }, // 1 2748 { "pldl2keep", 0x2, {} }, // 2 2749 { "pldl2strm", 0x3, {} }, // 3 2750 { "pldl3keep", 0x4, {} }, // 4 2751 { "pldl3strm", 0x5, {} }, // 5 2752 { "pldslckeep", 0x6, {AArch64::FeaturePRFM_SLC} }, // 6 2753 { "pldslcstrm", 0x7, {AArch64::FeaturePRFM_SLC} }, // 7 2754 { "plil1keep", 0x8, {} }, // 8 2755 { "plil1strm", 0x9, {} }, // 9 2756 { "plil2keep", 0xA, {} }, // 10 2757 { "plil2strm", 0xB, {} }, // 11 2758 { "plil3keep", 0xC, {} }, // 12 2759 { "plil3strm", 0xD, {} }, // 13 2760 { "plislckeep", 0xE, {AArch64::FeaturePRFM_SLC} }, // 14 2761 { "plislcstrm", 0xF, {AArch64::FeaturePRFM_SLC} }, // 15 2762 { "pstl1keep", 0x10, {} }, // 16 2763 { "pstl1strm", 0x11, {} }, // 17 2764 { "pstl2keep", 0x12, {} }, // 18 2765 { "pstl2strm", 0x13, {} }, // 19 2766 { "pstl3keep", 0x14, {} }, // 20 2767 { "pstl3strm", 0x15, {} }, // 21 2768 { "pstslckeep", 0x16, {AArch64::FeaturePRFM_SLC} }, // 22 2769 { "pstslcstrm", 0x17, {AArch64::FeaturePRFM_SLC} }, // 23 2770 }; 2771 2772const PRFM *lookupPRFMByName(StringRef Name) { 2773 struct IndexType { 2774 const char * Name; 2775 unsigned _index; 2776 }; 2777 static const struct IndexType Index[] = { 2778 { "PLDL1KEEP", 0 }, 2779 { "PLDL1STRM", 1 }, 2780 { "PLDL2KEEP", 2 }, 2781 { "PLDL2STRM", 3 }, 2782 { "PLDL3KEEP", 4 }, 2783 { "PLDL3STRM", 5 }, 2784 { "PLDSLCKEEP", 6 }, 2785 { "PLDSLCSTRM", 7 }, 2786 { "PLIL1KEEP", 8 }, 2787 { "PLIL1STRM", 9 }, 2788 { "PLIL2KEEP", 10 }, 2789 { "PLIL2STRM", 11 }, 2790 { "PLIL3KEEP", 12 }, 2791 { "PLIL3STRM", 13 }, 2792 { "PLISLCKEEP", 14 }, 2793 { "PLISLCSTRM", 15 }, 2794 { "PSTL1KEEP", 16 }, 2795 { "PSTL1STRM", 17 }, 2796 { "PSTL2KEEP", 18 }, 2797 { "PSTL2STRM", 19 }, 2798 { "PSTL3KEEP", 20 }, 2799 { "PSTL3STRM", 21 }, 2800 { "PSTSLCKEEP", 22 }, 2801 { "PSTSLCSTRM", 23 }, 2802 }; 2803 2804 struct KeyType { 2805 std::string Name; 2806 }; 2807 KeyType Key = {Name.upper()}; 2808 auto Table = ArrayRef(Index); 2809 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2810 [](const IndexType &LHS, const KeyType &RHS) { 2811 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2812 if (CmpName < 0) return true; 2813 if (CmpName > 0) return false; 2814 return false; 2815 }); 2816 2817 if (Idx == Table.end() || 2818 Key.Name != Idx->Name) 2819 return nullptr; 2820 return &PRFMsList[Idx->_index]; 2821} 2822 2823const PRFM *lookupPRFMByEncoding(uint8_t Encoding) { 2824 struct IndexType { 2825 uint8_t Encoding; 2826 unsigned _index; 2827 }; 2828 static const struct IndexType Index[] = { 2829 { 0x0, 0 }, 2830 { 0x1, 1 }, 2831 { 0x2, 2 }, 2832 { 0x3, 3 }, 2833 { 0x4, 4 }, 2834 { 0x5, 5 }, 2835 { 0x6, 6 }, 2836 { 0x7, 7 }, 2837 { 0x8, 8 }, 2838 { 0x9, 9 }, 2839 { 0xA, 10 }, 2840 { 0xB, 11 }, 2841 { 0xC, 12 }, 2842 { 0xD, 13 }, 2843 { 0xE, 14 }, 2844 { 0xF, 15 }, 2845 { 0x10, 16 }, 2846 { 0x11, 17 }, 2847 { 0x12, 18 }, 2848 { 0x13, 19 }, 2849 { 0x14, 20 }, 2850 { 0x15, 21 }, 2851 { 0x16, 22 }, 2852 { 0x17, 23 }, 2853 }; 2854 2855 auto Table = ArrayRef(Index); 2856 size_t Idx = Encoding; 2857 return Idx >= Table.size() ? nullptr : &PRFMsList[Table[Idx]._index]; 2858} 2859#endif 2860 2861#ifdef GET_PSB_DECL 2862const PSB *lookupPSBByName(StringRef Name); 2863const PSB *lookupPSBByEncoding(uint8_t Encoding); 2864#endif 2865 2866#ifdef GET_PSB_IMPL 2867constexpr PSB PSBsList[] = { 2868 { "csync", 0x11 }, // 0 2869 }; 2870 2871const PSB *lookupPSBByName(StringRef Name) { 2872 struct IndexType { 2873 const char * Name; 2874 unsigned _index; 2875 }; 2876 static const struct IndexType Index[] = { 2877 { "CSYNC", 0 }, 2878 }; 2879 2880 struct KeyType { 2881 std::string Name; 2882 }; 2883 KeyType Key = {Name.upper()}; 2884 auto Table = ArrayRef(Index); 2885 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2886 [](const IndexType &LHS, const KeyType &RHS) { 2887 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2888 if (CmpName < 0) return true; 2889 if (CmpName > 0) return false; 2890 return false; 2891 }); 2892 2893 if (Idx == Table.end() || 2894 Key.Name != Idx->Name) 2895 return nullptr; 2896 return &PSBsList[Idx->_index]; 2897} 2898 2899const PSB *lookupPSBByEncoding(uint8_t Encoding) { 2900 struct IndexType { 2901 uint8_t Encoding; 2902 unsigned _index; 2903 }; 2904 static const struct IndexType Index[] = { 2905 { 0x11, 0 }, 2906 }; 2907 2908 struct KeyType { 2909 uint8_t Encoding; 2910 }; 2911 KeyType Key = {Encoding}; 2912 auto Table = ArrayRef(Index); 2913 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2914 [](const IndexType &LHS, const KeyType &RHS) { 2915 if (LHS.Encoding < RHS.Encoding) 2916 return true; 2917 if (LHS.Encoding > RHS.Encoding) 2918 return false; 2919 return false; 2920 }); 2921 2922 if (Idx == Table.end() || 2923 Key.Encoding != Idx->Encoding) 2924 return nullptr; 2925 return &PSBsList[Idx->_index]; 2926} 2927#endif 2928 2929#ifdef GET_PSTATEIMM0_1_DECL 2930const PStateImm0_1 *lookupPStateImm0_1ByName(StringRef Name); 2931const PStateImm0_1 *lookupPStateImm0_1ByEncoding(uint16_t Encoding); 2932#endif 2933 2934#ifdef GET_PSTATEIMM0_1_IMPL 2935constexpr PStateImm0_1 PStateImm0_1sList[] = { 2936 { "ALLINT", 0x8, {AArch64::FeatureNMI} }, // 0 2937 { "PM", 0x48, {} }, // 1 2938 }; 2939 2940const PStateImm0_1 *lookupPStateImm0_1ByName(StringRef Name) { 2941 struct IndexType { 2942 const char * Name; 2943 unsigned _index; 2944 }; 2945 static const struct IndexType Index[] = { 2946 { "ALLINT", 0 }, 2947 { "PM", 1 }, 2948 }; 2949 2950 struct KeyType { 2951 std::string Name; 2952 }; 2953 KeyType Key = {Name.upper()}; 2954 auto Table = ArrayRef(Index); 2955 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2956 [](const IndexType &LHS, const KeyType &RHS) { 2957 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 2958 if (CmpName < 0) return true; 2959 if (CmpName > 0) return false; 2960 return false; 2961 }); 2962 2963 if (Idx == Table.end() || 2964 Key.Name != Idx->Name) 2965 return nullptr; 2966 return &PStateImm0_1sList[Idx->_index]; 2967} 2968 2969const PStateImm0_1 *lookupPStateImm0_1ByEncoding(uint16_t Encoding) { 2970 struct IndexType { 2971 uint16_t Encoding; 2972 unsigned _index; 2973 }; 2974 static const struct IndexType Index[] = { 2975 { 0x8, 0 }, 2976 { 0x48, 1 }, 2977 }; 2978 2979 struct KeyType { 2980 uint16_t Encoding; 2981 }; 2982 KeyType Key = {Encoding}; 2983 auto Table = ArrayRef(Index); 2984 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 2985 [](const IndexType &LHS, const KeyType &RHS) { 2986 if (LHS.Encoding < RHS.Encoding) 2987 return true; 2988 if (LHS.Encoding > RHS.Encoding) 2989 return false; 2990 return false; 2991 }); 2992 2993 if (Idx == Table.end() || 2994 Key.Encoding != Idx->Encoding) 2995 return nullptr; 2996 return &PStateImm0_1sList[Idx->_index]; 2997} 2998#endif 2999 3000#ifdef GET_PSTATEIMM0_15_DECL 3001const PStateImm0_15 *lookupPStateImm0_15ByName(StringRef Name); 3002const PStateImm0_15 *lookupPStateImm0_15ByEncoding(uint8_t Encoding); 3003#endif 3004 3005#ifdef GET_PSTATEIMM0_15_IMPL 3006constexpr PStateImm0_15 PStateImm0_15sList[] = { 3007 { "DAIFClr", 0x1F, {} }, // 0 3008 { "DAIFSet", 0x1E, {} }, // 1 3009 { "DIT", 0x1A, {AArch64::FeatureDIT} }, // 2 3010 { "PAN", 0x4, {AArch64::FeaturePAN} }, // 3 3011 { "SPSel", 0x5, {} }, // 4 3012 { "SSBS", 0x19, {AArch64::FeatureSSBS} }, // 5 3013 { "TCO", 0x1C, {AArch64::FeatureMTE} }, // 6 3014 { "UAO", 0x3, {AArch64::FeaturePsUAO} }, // 7 3015 }; 3016 3017const PStateImm0_15 *lookupPStateImm0_15ByName(StringRef Name) { 3018 struct IndexType { 3019 const char * Name; 3020 unsigned _index; 3021 }; 3022 static const struct IndexType Index[] = { 3023 { "DAIFCLR", 0 }, 3024 { "DAIFSET", 1 }, 3025 { "DIT", 2 }, 3026 { "PAN", 3 }, 3027 { "SPSEL", 4 }, 3028 { "SSBS", 5 }, 3029 { "TCO", 6 }, 3030 { "UAO", 7 }, 3031 }; 3032 3033 struct KeyType { 3034 std::string Name; 3035 }; 3036 KeyType Key = {Name.upper()}; 3037 auto Table = ArrayRef(Index); 3038 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3039 [](const IndexType &LHS, const KeyType &RHS) { 3040 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 3041 if (CmpName < 0) return true; 3042 if (CmpName > 0) return false; 3043 return false; 3044 }); 3045 3046 if (Idx == Table.end() || 3047 Key.Name != Idx->Name) 3048 return nullptr; 3049 return &PStateImm0_15sList[Idx->_index]; 3050} 3051 3052const PStateImm0_15 *lookupPStateImm0_15ByEncoding(uint8_t Encoding) { 3053 struct IndexType { 3054 uint8_t Encoding; 3055 unsigned _index; 3056 }; 3057 static const struct IndexType Index[] = { 3058 { 0x3, 7 }, 3059 { 0x4, 3 }, 3060 { 0x5, 4 }, 3061 { 0x19, 5 }, 3062 { 0x1A, 2 }, 3063 { 0x1C, 6 }, 3064 { 0x1E, 1 }, 3065 { 0x1F, 0 }, 3066 }; 3067 3068 struct KeyType { 3069 uint8_t Encoding; 3070 }; 3071 KeyType Key = {Encoding}; 3072 auto Table = ArrayRef(Index); 3073 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3074 [](const IndexType &LHS, const KeyType &RHS) { 3075 if (LHS.Encoding < RHS.Encoding) 3076 return true; 3077 if (LHS.Encoding > RHS.Encoding) 3078 return false; 3079 return false; 3080 }); 3081 3082 if (Idx == Table.end() || 3083 Key.Encoding != Idx->Encoding) 3084 return nullptr; 3085 return &PStateImm0_15sList[Idx->_index]; 3086} 3087#endif 3088 3089#ifdef GET_RPRFM_DECL 3090const RPRFM *lookupRPRFMByName(StringRef Name); 3091const RPRFM *lookupRPRFMByEncoding(uint8_t Encoding); 3092#endif 3093 3094#ifdef GET_RPRFM_IMPL 3095constexpr RPRFM RPRFMsList[] = { 3096 { "pldkeep", 0x0, {} }, // 0 3097 { "pldstrm", 0x4, {} }, // 1 3098 { "pstkeep", 0x1, {} }, // 2 3099 { "pststrm", 0x5, {} }, // 3 3100 }; 3101 3102const RPRFM *lookupRPRFMByName(StringRef Name) { 3103 struct IndexType { 3104 const char * Name; 3105 unsigned _index; 3106 }; 3107 static const struct IndexType Index[] = { 3108 { "PLDKEEP", 0 }, 3109 { "PLDSTRM", 1 }, 3110 { "PSTKEEP", 2 }, 3111 { "PSTSTRM", 3 }, 3112 }; 3113 3114 struct KeyType { 3115 std::string Name; 3116 }; 3117 KeyType Key = {Name.upper()}; 3118 auto Table = ArrayRef(Index); 3119 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3120 [](const IndexType &LHS, const KeyType &RHS) { 3121 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 3122 if (CmpName < 0) return true; 3123 if (CmpName > 0) return false; 3124 return false; 3125 }); 3126 3127 if (Idx == Table.end() || 3128 Key.Name != Idx->Name) 3129 return nullptr; 3130 return &RPRFMsList[Idx->_index]; 3131} 3132 3133const RPRFM *lookupRPRFMByEncoding(uint8_t Encoding) { 3134 struct IndexType { 3135 uint8_t Encoding; 3136 unsigned _index; 3137 }; 3138 static const struct IndexType Index[] = { 3139 { 0x0, 0 }, 3140 { 0x1, 2 }, 3141 { 0x4, 1 }, 3142 { 0x5, 3 }, 3143 }; 3144 3145 struct KeyType { 3146 uint8_t Encoding; 3147 }; 3148 KeyType Key = {Encoding}; 3149 auto Table = ArrayRef(Index); 3150 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3151 [](const IndexType &LHS, const KeyType &RHS) { 3152 if (LHS.Encoding < RHS.Encoding) 3153 return true; 3154 if (LHS.Encoding > RHS.Encoding) 3155 return false; 3156 return false; 3157 }); 3158 3159 if (Idx == Table.end() || 3160 Key.Encoding != Idx->Encoding) 3161 return nullptr; 3162 return &RPRFMsList[Idx->_index]; 3163} 3164#endif 3165 3166#ifdef GET_SVCR_DECL 3167const SVCR *lookupSVCRByName(StringRef Name); 3168const SVCR *lookupSVCRByEncoding(uint8_t Encoding); 3169#endif 3170 3171#ifdef GET_SVCR_IMPL 3172constexpr SVCR SVCRsList[] = { 3173 { "SVCRSM", 0x1, {AArch64::FeatureSME} }, // 0 3174 { "SVCRSMZA", 0x3, {AArch64::FeatureSME} }, // 1 3175 { "SVCRZA", 0x2, {AArch64::FeatureSME} }, // 2 3176 }; 3177 3178const SVCR *lookupSVCRByName(StringRef Name) { 3179 struct IndexType { 3180 const char * Name; 3181 unsigned _index; 3182 }; 3183 static const struct IndexType Index[] = { 3184 { "SVCRSM", 0 }, 3185 { "SVCRSMZA", 1 }, 3186 { "SVCRZA", 2 }, 3187 }; 3188 3189 struct KeyType { 3190 std::string Name; 3191 }; 3192 KeyType Key = {Name.upper()}; 3193 auto Table = ArrayRef(Index); 3194 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3195 [](const IndexType &LHS, const KeyType &RHS) { 3196 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 3197 if (CmpName < 0) return true; 3198 if (CmpName > 0) return false; 3199 return false; 3200 }); 3201 3202 if (Idx == Table.end() || 3203 Key.Name != Idx->Name) 3204 return nullptr; 3205 return &SVCRsList[Idx->_index]; 3206} 3207 3208const SVCR *lookupSVCRByEncoding(uint8_t Encoding) { 3209 struct IndexType { 3210 uint8_t Encoding; 3211 unsigned _index; 3212 }; 3213 static const struct IndexType Index[] = { 3214 { 0x1, 0 }, 3215 { 0x2, 2 }, 3216 { 0x3, 1 }, 3217 }; 3218 3219 struct KeyType { 3220 uint8_t Encoding; 3221 }; 3222 KeyType Key = {Encoding}; 3223 auto Table = ArrayRef(Index); 3224 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3225 [](const IndexType &LHS, const KeyType &RHS) { 3226 if (LHS.Encoding < RHS.Encoding) 3227 return true; 3228 if (LHS.Encoding > RHS.Encoding) 3229 return false; 3230 return false; 3231 }); 3232 3233 if (Idx == Table.end() || 3234 Key.Encoding != Idx->Encoding) 3235 return nullptr; 3236 return &SVCRsList[Idx->_index]; 3237} 3238#endif 3239 3240#ifdef GET_SVEPREDPAT_DECL 3241const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name); 3242const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding); 3243#endif 3244 3245#ifdef GET_SVEPREDPAT_IMPL 3246constexpr SVEPREDPAT SVEPREDPATsList[] = { 3247 { "all", 0x1F }, // 0 3248 { "mul3", 0x1E }, // 1 3249 { "mul4", 0x1D }, // 2 3250 { "pow2", 0x0 }, // 3 3251 { "vl1", 0x1 }, // 4 3252 { "vl128", 0xC }, // 5 3253 { "vl16", 0x9 }, // 6 3254 { "vl2", 0x2 }, // 7 3255 { "vl256", 0xD }, // 8 3256 { "vl3", 0x3 }, // 9 3257 { "vl32", 0xA }, // 10 3258 { "vl4", 0x4 }, // 11 3259 { "vl5", 0x5 }, // 12 3260 { "vl6", 0x6 }, // 13 3261 { "vl64", 0xB }, // 14 3262 { "vl7", 0x7 }, // 15 3263 { "vl8", 0x8 }, // 16 3264 }; 3265 3266const SVEPREDPAT *lookupSVEPREDPATByName(StringRef Name) { 3267 struct IndexType { 3268 const char * Name; 3269 unsigned _index; 3270 }; 3271 static const struct IndexType Index[] = { 3272 { "ALL", 0 }, 3273 { "MUL3", 1 }, 3274 { "MUL4", 2 }, 3275 { "POW2", 3 }, 3276 { "VL1", 4 }, 3277 { "VL128", 5 }, 3278 { "VL16", 6 }, 3279 { "VL2", 7 }, 3280 { "VL256", 8 }, 3281 { "VL3", 9 }, 3282 { "VL32", 10 }, 3283 { "VL4", 11 }, 3284 { "VL5", 12 }, 3285 { "VL6", 13 }, 3286 { "VL64", 14 }, 3287 { "VL7", 15 }, 3288 { "VL8", 16 }, 3289 }; 3290 3291 struct KeyType { 3292 std::string Name; 3293 }; 3294 KeyType Key = {Name.upper()}; 3295 auto Table = ArrayRef(Index); 3296 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3297 [](const IndexType &LHS, const KeyType &RHS) { 3298 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 3299 if (CmpName < 0) return true; 3300 if (CmpName > 0) return false; 3301 return false; 3302 }); 3303 3304 if (Idx == Table.end() || 3305 Key.Name != Idx->Name) 3306 return nullptr; 3307 return &SVEPREDPATsList[Idx->_index]; 3308} 3309 3310const SVEPREDPAT *lookupSVEPREDPATByEncoding(uint8_t Encoding) { 3311 struct IndexType { 3312 uint8_t Encoding; 3313 unsigned _index; 3314 }; 3315 static const struct IndexType Index[] = { 3316 { 0x0, 3 }, 3317 { 0x1, 4 }, 3318 { 0x2, 7 }, 3319 { 0x3, 9 }, 3320 { 0x4, 11 }, 3321 { 0x5, 12 }, 3322 { 0x6, 13 }, 3323 { 0x7, 15 }, 3324 { 0x8, 16 }, 3325 { 0x9, 6 }, 3326 { 0xA, 10 }, 3327 { 0xB, 14 }, 3328 { 0xC, 5 }, 3329 { 0xD, 8 }, 3330 { 0x1D, 2 }, 3331 { 0x1E, 1 }, 3332 { 0x1F, 0 }, 3333 }; 3334 3335 struct KeyType { 3336 uint8_t Encoding; 3337 }; 3338 KeyType Key = {Encoding}; 3339 auto Table = ArrayRef(Index); 3340 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3341 [](const IndexType &LHS, const KeyType &RHS) { 3342 if (LHS.Encoding < RHS.Encoding) 3343 return true; 3344 if (LHS.Encoding > RHS.Encoding) 3345 return false; 3346 return false; 3347 }); 3348 3349 if (Idx == Table.end() || 3350 Key.Encoding != Idx->Encoding) 3351 return nullptr; 3352 return &SVEPREDPATsList[Idx->_index]; 3353} 3354#endif 3355 3356#ifdef GET_SVEPRFM_DECL 3357const SVEPRFM *lookupSVEPRFMByName(StringRef Name); 3358const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding); 3359#endif 3360 3361#ifdef GET_SVEPRFM_IMPL 3362constexpr SVEPRFM SVEPRFMsList[] = { 3363 { "pldl1keep", 0x0, {AArch64::FeatureSVE} }, // 0 3364 { "pldl1strm", 0x1, {AArch64::FeatureSVE} }, // 1 3365 { "pldl2keep", 0x2, {AArch64::FeatureSVE} }, // 2 3366 { "pldl2strm", 0x3, {AArch64::FeatureSVE} }, // 3 3367 { "pldl3keep", 0x4, {AArch64::FeatureSVE} }, // 4 3368 { "pldl3strm", 0x5, {AArch64::FeatureSVE} }, // 5 3369 { "pstl1keep", 0x8, {AArch64::FeatureSVE} }, // 6 3370 { "pstl1strm", 0x9, {AArch64::FeatureSVE} }, // 7 3371 { "pstl2keep", 0xA, {AArch64::FeatureSVE} }, // 8 3372 { "pstl2strm", 0xB, {AArch64::FeatureSVE} }, // 9 3373 { "pstl3keep", 0xC, {AArch64::FeatureSVE} }, // 10 3374 { "pstl3strm", 0xD, {AArch64::FeatureSVE} }, // 11 3375 }; 3376 3377const SVEPRFM *lookupSVEPRFMByName(StringRef Name) { 3378 struct IndexType { 3379 const char * Name; 3380 unsigned _index; 3381 }; 3382 static const struct IndexType Index[] = { 3383 { "PLDL1KEEP", 0 }, 3384 { "PLDL1STRM", 1 }, 3385 { "PLDL2KEEP", 2 }, 3386 { "PLDL2STRM", 3 }, 3387 { "PLDL3KEEP", 4 }, 3388 { "PLDL3STRM", 5 }, 3389 { "PSTL1KEEP", 6 }, 3390 { "PSTL1STRM", 7 }, 3391 { "PSTL2KEEP", 8 }, 3392 { "PSTL2STRM", 9 }, 3393 { "PSTL3KEEP", 10 }, 3394 { "PSTL3STRM", 11 }, 3395 }; 3396 3397 struct KeyType { 3398 std::string Name; 3399 }; 3400 KeyType Key = {Name.upper()}; 3401 auto Table = ArrayRef(Index); 3402 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3403 [](const IndexType &LHS, const KeyType &RHS) { 3404 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 3405 if (CmpName < 0) return true; 3406 if (CmpName > 0) return false; 3407 return false; 3408 }); 3409 3410 if (Idx == Table.end() || 3411 Key.Name != Idx->Name) 3412 return nullptr; 3413 return &SVEPRFMsList[Idx->_index]; 3414} 3415 3416const SVEPRFM *lookupSVEPRFMByEncoding(uint8_t Encoding) { 3417 struct IndexType { 3418 uint8_t Encoding; 3419 unsigned _index; 3420 }; 3421 static const struct IndexType Index[] = { 3422 { 0x0, 0 }, 3423 { 0x1, 1 }, 3424 { 0x2, 2 }, 3425 { 0x3, 3 }, 3426 { 0x4, 4 }, 3427 { 0x5, 5 }, 3428 { 0x8, 6 }, 3429 { 0x9, 7 }, 3430 { 0xA, 8 }, 3431 { 0xB, 9 }, 3432 { 0xC, 10 }, 3433 { 0xD, 11 }, 3434 }; 3435 3436 struct KeyType { 3437 uint8_t Encoding; 3438 }; 3439 KeyType Key = {Encoding}; 3440 auto Table = ArrayRef(Index); 3441 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3442 [](const IndexType &LHS, const KeyType &RHS) { 3443 if (LHS.Encoding < RHS.Encoding) 3444 return true; 3445 if (LHS.Encoding > RHS.Encoding) 3446 return false; 3447 return false; 3448 }); 3449 3450 if (Idx == Table.end() || 3451 Key.Encoding != Idx->Encoding) 3452 return nullptr; 3453 return &SVEPRFMsList[Idx->_index]; 3454} 3455#endif 3456 3457#ifdef GET_SVEVECLENSPECIFIER_DECL 3458const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByName(StringRef Name); 3459const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByEncoding(uint8_t Encoding); 3460#endif 3461 3462#ifdef GET_SVEVECLENSPECIFIER_IMPL 3463constexpr SVEVECLENSPECIFIER SVEVECLENSPECIFIERsList[] = { 3464 { "vlx2", 0x0 }, // 0 3465 { "vlx4", 0x1 }, // 1 3466 }; 3467 3468const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByName(StringRef Name) { 3469 struct IndexType { 3470 const char * Name; 3471 unsigned _index; 3472 }; 3473 static const struct IndexType Index[] = { 3474 { "VLX2", 0 }, 3475 { "VLX4", 1 }, 3476 }; 3477 3478 struct KeyType { 3479 std::string Name; 3480 }; 3481 KeyType Key = {Name.upper()}; 3482 auto Table = ArrayRef(Index); 3483 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 3484 [](const IndexType &LHS, const KeyType &RHS) { 3485 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 3486 if (CmpName < 0) return true; 3487 if (CmpName > 0) return false; 3488 return false; 3489 }); 3490 3491 if (Idx == Table.end() || 3492 Key.Name != Idx->Name) 3493 return nullptr; 3494 return &SVEVECLENSPECIFIERsList[Idx->_index]; 3495} 3496 3497const SVEVECLENSPECIFIER *lookupSVEVECLENSPECIFIERByEncoding(uint8_t Encoding) { 3498 struct IndexType { 3499 uint8_t Encoding; 3500 unsigned _index; 3501 }; 3502 static const struct IndexType Index[] = { 3503 { 0x0, 0 }, 3504 { 0x1, 1 }, 3505 }; 3506 3507 auto Table = ArrayRef(Index); 3508 size_t Idx = Encoding; 3509 return Idx >= Table.size() ? nullptr : &SVEVECLENSPECIFIERsList[Table[Idx]._index]; 3510} 3511#endif 3512 3513#ifdef GET_SYSREG_DECL 3514const SysReg *lookupSysRegByName(StringRef Name); 3515const SysReg *lookupSysRegByEncoding(uint16_t Encoding); 3516#endif 3517 3518#ifdef GET_SYSREG_IMPL 3519constexpr SysReg SysRegsList[] = { 3520 { "ACCDATA_EL1", "ACCDATA_EL1", 0xC685, true, true, {AArch64::FeatureLS64} }, // 0 3521 { "ACTLR_EL1", "ACTLR_EL1", 0xC081, true, true, {} }, // 1 3522 { "ACTLR_EL2", "ACTLR_EL2", 0xE081, true, true, {} }, // 2 3523 { "ACTLR_EL3", "ACTLR_EL3", 0xF081, true, true, {} }, // 3 3524 { "AFSR0_EL1", "AFSR0_EL1", 0xC288, true, true, {} }, // 4 3525 { "AFSR0_EL12", "AFSR0_EL12", 0xEA88, true, true, {AArch64::FeatureVH} }, // 5 3526 { "AFSR0_EL2", "AFSR0_EL2", 0xE288, true, true, {} }, // 6 3527 { "AFSR0_EL3", "AFSR0_EL3", 0xF288, true, true, {} }, // 7 3528 { "AFSR1_EL1", "AFSR1_EL1", 0xC289, true, true, {} }, // 8 3529 { "AFSR1_EL12", "AFSR1_EL12", 0xEA89, true, true, {AArch64::FeatureVH} }, // 9 3530 { "AFSR1_EL2", "AFSR1_EL2", 0xE289, true, true, {} }, // 10 3531 { "AFSR1_EL3", "AFSR1_EL3", 0xF289, true, true, {} }, // 11 3532 { "AIDR_EL1", "AIDR_EL1", 0xC807, true, false, {} }, // 12 3533 { "ALLINT", "ALLINT", 0xC218, true, true, {AArch64::FeatureNMI} }, // 13 3534 { "AMAIR2_EL1", "AMAIR2_EL1", 0xC519, true, true, {} }, // 14 3535 { "AMAIR2_EL12", "AMAIR2_EL12", 0xED19, true, true, {} }, // 15 3536 { "AMAIR2_EL2", "AMAIR2_EL2", 0xE519, true, true, {} }, // 16 3537 { "AMAIR2_EL3", "AMAIR2_EL3", 0xF519, true, true, {} }, // 17 3538 { "AMAIR_EL1", "AMAIR_EL1", 0xC518, true, true, {} }, // 18 3539 { "AMAIR_EL12", "AMAIR_EL12", 0xED18, true, true, {AArch64::FeatureVH} }, // 19 3540 { "AMAIR_EL2", "AMAIR_EL2", 0xE518, true, true, {} }, // 20 3541 { "AMAIR_EL3", "AMAIR_EL3", 0xF518, true, true, {} }, // 21 3542 { "AMCFGR_EL0", "AMCFGR_EL0", 0xDE91, true, false, {AArch64::FeatureAM} }, // 22 3543 { "AMCG1IDR_EL0", "AMCG1IDR_EL0", 0xDE96, true, false, {AArch64::FeatureAMVS} }, // 23 3544 { "AMCGCR_EL0", "AMCGCR_EL0", 0xDE92, true, false, {AArch64::FeatureAM} }, // 24 3545 { "AMCNTENCLR0_EL0", "AMCNTENCLR0_EL0", 0xDE94, true, true, {AArch64::FeatureAM} }, // 25 3546 { "AMCNTENCLR1_EL0", "AMCNTENCLR1_EL0", 0xDE98, true, true, {AArch64::FeatureAM} }, // 26 3547 { "AMCNTENSET0_EL0", "AMCNTENSET0_EL0", 0xDE95, true, true, {AArch64::FeatureAM} }, // 27 3548 { "AMCNTENSET1_EL0", "AMCNTENSET1_EL0", 0xDE99, true, true, {AArch64::FeatureAM} }, // 28 3549 { "AMCR_EL0", "AMCR_EL0", 0xDE90, true, true, {AArch64::FeatureAM} }, // 29 3550 { "AMEVCNTR00_EL0", "AMEVCNTR00_EL0", 0xDEA0, true, true, {AArch64::FeatureAM} }, // 30 3551 { "AMEVCNTR01_EL0", "AMEVCNTR01_EL0", 0xDEA1, true, true, {AArch64::FeatureAM} }, // 31 3552 { "AMEVCNTR02_EL0", "AMEVCNTR02_EL0", 0xDEA2, true, true, {AArch64::FeatureAM} }, // 32 3553 { "AMEVCNTR03_EL0", "AMEVCNTR03_EL0", 0xDEA3, true, true, {AArch64::FeatureAM} }, // 33 3554 { "AMEVCNTR10_EL0", "AMEVCNTR10_EL0", 0xDEE0, true, true, {AArch64::FeatureAM} }, // 34 3555 { "AMEVCNTR110_EL0", "AMEVCNTR110_EL0", 0xDEEA, true, true, {AArch64::FeatureAM} }, // 35 3556 { "AMEVCNTR111_EL0", "AMEVCNTR111_EL0", 0xDEEB, true, true, {AArch64::FeatureAM} }, // 36 3557 { "AMEVCNTR112_EL0", "AMEVCNTR112_EL0", 0xDEEC, true, true, {AArch64::FeatureAM} }, // 37 3558 { "AMEVCNTR113_EL0", "AMEVCNTR113_EL0", 0xDEED, true, true, {AArch64::FeatureAM} }, // 38 3559 { "AMEVCNTR114_EL0", "AMEVCNTR114_EL0", 0xDEEE, true, true, {AArch64::FeatureAM} }, // 39 3560 { "AMEVCNTR115_EL0", "AMEVCNTR115_EL0", 0xDEEF, true, true, {AArch64::FeatureAM} }, // 40 3561 { "AMEVCNTR11_EL0", "AMEVCNTR11_EL0", 0xDEE1, true, true, {AArch64::FeatureAM} }, // 41 3562 { "AMEVCNTR12_EL0", "AMEVCNTR12_EL0", 0xDEE2, true, true, {AArch64::FeatureAM} }, // 42 3563 { "AMEVCNTR13_EL0", "AMEVCNTR13_EL0", 0xDEE3, true, true, {AArch64::FeatureAM} }, // 43 3564 { "AMEVCNTR14_EL0", "AMEVCNTR14_EL0", 0xDEE4, true, true, {AArch64::FeatureAM} }, // 44 3565 { "AMEVCNTR15_EL0", "AMEVCNTR15_EL0", 0xDEE5, true, true, {AArch64::FeatureAM} }, // 45 3566 { "AMEVCNTR16_EL0", "AMEVCNTR16_EL0", 0xDEE6, true, true, {AArch64::FeatureAM} }, // 46 3567 { "AMEVCNTR17_EL0", "AMEVCNTR17_EL0", 0xDEE7, true, true, {AArch64::FeatureAM} }, // 47 3568 { "AMEVCNTR18_EL0", "AMEVCNTR18_EL0", 0xDEE8, true, true, {AArch64::FeatureAM} }, // 48 3569 { "AMEVCNTR19_EL0", "AMEVCNTR19_EL0", 0xDEE9, true, true, {AArch64::FeatureAM} }, // 49 3570 { "AMEVCNTVOFF00_EL2", "AMEVCNTVOFF00_EL2", 0xE6C0, true, true, {AArch64::FeatureAMVS} }, // 50 3571 { "AMEVCNTVOFF010_EL2", "AMEVCNTVOFF010_EL2", 0xE6CA, true, true, {AArch64::FeatureAMVS} }, // 51 3572 { "AMEVCNTVOFF011_EL2", "AMEVCNTVOFF011_EL2", 0xE6CB, true, true, {AArch64::FeatureAMVS} }, // 52 3573 { "AMEVCNTVOFF012_EL2", "AMEVCNTVOFF012_EL2", 0xE6CC, true, true, {AArch64::FeatureAMVS} }, // 53 3574 { "AMEVCNTVOFF013_EL2", "AMEVCNTVOFF013_EL2", 0xE6CD, true, true, {AArch64::FeatureAMVS} }, // 54 3575 { "AMEVCNTVOFF014_EL2", "AMEVCNTVOFF014_EL2", 0xE6CE, true, true, {AArch64::FeatureAMVS} }, // 55 3576 { "AMEVCNTVOFF015_EL2", "AMEVCNTVOFF015_EL2", 0xE6CF, true, true, {AArch64::FeatureAMVS} }, // 56 3577 { "AMEVCNTVOFF01_EL2", "AMEVCNTVOFF01_EL2", 0xE6C1, true, true, {AArch64::FeatureAMVS} }, // 57 3578 { "AMEVCNTVOFF02_EL2", "AMEVCNTVOFF02_EL2", 0xE6C2, true, true, {AArch64::FeatureAMVS} }, // 58 3579 { "AMEVCNTVOFF03_EL2", "AMEVCNTVOFF03_EL2", 0xE6C3, true, true, {AArch64::FeatureAMVS} }, // 59 3580 { "AMEVCNTVOFF04_EL2", "AMEVCNTVOFF04_EL2", 0xE6C4, true, true, {AArch64::FeatureAMVS} }, // 60 3581 { "AMEVCNTVOFF05_EL2", "AMEVCNTVOFF05_EL2", 0xE6C5, true, true, {AArch64::FeatureAMVS} }, // 61 3582 { "AMEVCNTVOFF06_EL2", "AMEVCNTVOFF06_EL2", 0xE6C6, true, true, {AArch64::FeatureAMVS} }, // 62 3583 { "AMEVCNTVOFF07_EL2", "AMEVCNTVOFF07_EL2", 0xE6C7, true, true, {AArch64::FeatureAMVS} }, // 63 3584 { "AMEVCNTVOFF08_EL2", "AMEVCNTVOFF08_EL2", 0xE6C8, true, true, {AArch64::FeatureAMVS} }, // 64 3585 { "AMEVCNTVOFF09_EL2", "AMEVCNTVOFF09_EL2", 0xE6C9, true, true, {AArch64::FeatureAMVS} }, // 65 3586 { "AMEVCNTVOFF10_EL2", "AMEVCNTVOFF10_EL2", 0xE6D0, true, true, {AArch64::FeatureAMVS} }, // 66 3587 { "AMEVCNTVOFF110_EL2", "AMEVCNTVOFF110_EL2", 0xE6DA, true, true, {AArch64::FeatureAMVS} }, // 67 3588 { "AMEVCNTVOFF111_EL2", "AMEVCNTVOFF111_EL2", 0xE6DB, true, true, {AArch64::FeatureAMVS} }, // 68 3589 { "AMEVCNTVOFF112_EL2", "AMEVCNTVOFF112_EL2", 0xE6DC, true, true, {AArch64::FeatureAMVS} }, // 69 3590 { "AMEVCNTVOFF113_EL2", "AMEVCNTVOFF113_EL2", 0xE6DD, true, true, {AArch64::FeatureAMVS} }, // 70 3591 { "AMEVCNTVOFF114_EL2", "AMEVCNTVOFF114_EL2", 0xE6DE, true, true, {AArch64::FeatureAMVS} }, // 71 3592 { "AMEVCNTVOFF115_EL2", "AMEVCNTVOFF115_EL2", 0xE6DF, true, true, {AArch64::FeatureAMVS} }, // 72 3593 { "AMEVCNTVOFF11_EL2", "AMEVCNTVOFF11_EL2", 0xE6D1, true, true, {AArch64::FeatureAMVS} }, // 73 3594 { "AMEVCNTVOFF12_EL2", "AMEVCNTVOFF12_EL2", 0xE6D2, true, true, {AArch64::FeatureAMVS} }, // 74 3595 { "AMEVCNTVOFF13_EL2", "AMEVCNTVOFF13_EL2", 0xE6D3, true, true, {AArch64::FeatureAMVS} }, // 75 3596 { "AMEVCNTVOFF14_EL2", "AMEVCNTVOFF14_EL2", 0xE6D4, true, true, {AArch64::FeatureAMVS} }, // 76 3597 { "AMEVCNTVOFF15_EL2", "AMEVCNTVOFF15_EL2", 0xE6D5, true, true, {AArch64::FeatureAMVS} }, // 77 3598 { "AMEVCNTVOFF16_EL2", "AMEVCNTVOFF16_EL2", 0xE6D6, true, true, {AArch64::FeatureAMVS} }, // 78 3599 { "AMEVCNTVOFF17_EL2", "AMEVCNTVOFF17_EL2", 0xE6D7, true, true, {AArch64::FeatureAMVS} }, // 79 3600 { "AMEVCNTVOFF18_EL2", "AMEVCNTVOFF18_EL2", 0xE6D8, true, true, {AArch64::FeatureAMVS} }, // 80 3601 { "AMEVCNTVOFF19_EL2", "AMEVCNTVOFF19_EL2", 0xE6D9, true, true, {AArch64::FeatureAMVS} }, // 81 3602 { "AMEVTYPER00_EL0", "AMEVTYPER00_EL0", 0xDEB0, true, false, {AArch64::FeatureAM} }, // 82 3603 { "AMEVTYPER01_EL0", "AMEVTYPER01_EL0", 0xDEB1, true, false, {AArch64::FeatureAM} }, // 83 3604 { "AMEVTYPER02_EL0", "AMEVTYPER02_EL0", 0xDEB2, true, false, {AArch64::FeatureAM} }, // 84 3605 { "AMEVTYPER03_EL0", "AMEVTYPER03_EL0", 0xDEB3, true, false, {AArch64::FeatureAM} }, // 85 3606 { "AMEVTYPER10_EL0", "AMEVTYPER10_EL0", 0xDEF0, true, true, {AArch64::FeatureAM} }, // 86 3607 { "AMEVTYPER110_EL0", "AMEVTYPER110_EL0", 0xDEFA, true, true, {AArch64::FeatureAM} }, // 87 3608 { "AMEVTYPER111_EL0", "AMEVTYPER111_EL0", 0xDEFB, true, true, {AArch64::FeatureAM} }, // 88 3609 { "AMEVTYPER112_EL0", "AMEVTYPER112_EL0", 0xDEFC, true, true, {AArch64::FeatureAM} }, // 89 3610 { "AMEVTYPER113_EL0", "AMEVTYPER113_EL0", 0xDEFD, true, true, {AArch64::FeatureAM} }, // 90 3611 { "AMEVTYPER114_EL0", "AMEVTYPER114_EL0", 0xDEFE, true, true, {AArch64::FeatureAM} }, // 91 3612 { "AMEVTYPER115_EL0", "AMEVTYPER115_EL0", 0xDEFF, true, true, {AArch64::FeatureAM} }, // 92 3613 { "AMEVTYPER11_EL0", "AMEVTYPER11_EL0", 0xDEF1, true, true, {AArch64::FeatureAM} }, // 93 3614 { "AMEVTYPER12_EL0", "AMEVTYPER12_EL0", 0xDEF2, true, true, {AArch64::FeatureAM} }, // 94 3615 { "AMEVTYPER13_EL0", "AMEVTYPER13_EL0", 0xDEF3, true, true, {AArch64::FeatureAM} }, // 95 3616 { "AMEVTYPER14_EL0", "AMEVTYPER14_EL0", 0xDEF4, true, true, {AArch64::FeatureAM} }, // 96 3617 { "AMEVTYPER15_EL0", "AMEVTYPER15_EL0", 0xDEF5, true, true, {AArch64::FeatureAM} }, // 97 3618 { "AMEVTYPER16_EL0", "AMEVTYPER16_EL0", 0xDEF6, true, true, {AArch64::FeatureAM} }, // 98 3619 { "AMEVTYPER17_EL0", "AMEVTYPER17_EL0", 0xDEF7, true, true, {AArch64::FeatureAM} }, // 99 3620 { "AMEVTYPER18_EL0", "AMEVTYPER18_EL0", 0xDEF8, true, true, {AArch64::FeatureAM} }, // 100 3621 { "AMEVTYPER19_EL0", "AMEVTYPER19_EL0", 0xDEF9, true, true, {AArch64::FeatureAM} }, // 101 3622 { "AMUSERENR_EL0", "AMUSERENR_EL0", 0xDE93, true, true, {AArch64::FeatureAM} }, // 102 3623 { "APDAKeyHi_EL1", "APDAKeyHi_EL1", 0xC111, true, true, {AArch64::FeaturePAuth} }, // 103 3624 { "APDAKeyLo_EL1", "APDAKeyLo_EL1", 0xC110, true, true, {AArch64::FeaturePAuth} }, // 104 3625 { "APDBKeyHi_EL1", "APDBKeyHi_EL1", 0xC113, true, true, {AArch64::FeaturePAuth} }, // 105 3626 { "APDBKeyLo_EL1", "APDBKeyLo_EL1", 0xC112, true, true, {AArch64::FeaturePAuth} }, // 106 3627 { "APGAKeyHi_EL1", "APGAKeyHi_EL1", 0xC119, true, true, {AArch64::FeaturePAuth} }, // 107 3628 { "APGAKeyLo_EL1", "APGAKeyLo_EL1", 0xC118, true, true, {AArch64::FeaturePAuth} }, // 108 3629 { "APIAKeyHi_EL1", "APIAKeyHi_EL1", 0xC109, true, true, {AArch64::FeaturePAuth} }, // 109 3630 { "APIAKeyLo_EL1", "APIAKeyLo_EL1", 0xC108, true, true, {AArch64::FeaturePAuth} }, // 110 3631 { "APIBKeyHi_EL1", "APIBKeyHi_EL1", 0xC10B, true, true, {AArch64::FeaturePAuth} }, // 111 3632 { "APIBKeyLo_EL1", "APIBKeyLo_EL1", 0xC10A, true, true, {AArch64::FeaturePAuth} }, // 112 3633 { "BRBCR_EL1", "BRBCR_EL1", 0x8C80, true, true, {AArch64::FeatureBRBE} }, // 113 3634 { "BRBCR_EL12", "BRBCR_EL12", 0xAC80, true, true, {AArch64::FeatureBRBE} }, // 114 3635 { "BRBCR_EL2", "BRBCR_EL2", 0xA480, true, true, {AArch64::FeatureBRBE} }, // 115 3636 { "BRBFCR_EL1", "BRBFCR_EL1", 0x8C81, true, true, {AArch64::FeatureBRBE} }, // 116 3637 { "BRBIDR0_EL1", "BRBIDR0_EL1", 0x8C90, true, false, {AArch64::FeatureBRBE} }, // 117 3638 { "BRBINF0_EL1", "BRBINF0_EL1", 0x8C00, true, false, {AArch64::FeatureBRBE} }, // 118 3639 { "BRBINF10_EL1", "BRBINF10_EL1", 0x8C50, true, false, {AArch64::FeatureBRBE} }, // 119 3640 { "BRBINF11_EL1", "BRBINF11_EL1", 0x8C58, true, false, {AArch64::FeatureBRBE} }, // 120 3641 { "BRBINF12_EL1", "BRBINF12_EL1", 0x8C60, true, false, {AArch64::FeatureBRBE} }, // 121 3642 { "BRBINF13_EL1", "BRBINF13_EL1", 0x8C68, true, false, {AArch64::FeatureBRBE} }, // 122 3643 { "BRBINF14_EL1", "BRBINF14_EL1", 0x8C70, true, false, {AArch64::FeatureBRBE} }, // 123 3644 { "BRBINF15_EL1", "BRBINF15_EL1", 0x8C78, true, false, {AArch64::FeatureBRBE} }, // 124 3645 { "BRBINF16_EL1", "BRBINF16_EL1", 0x8C04, true, false, {AArch64::FeatureBRBE} }, // 125 3646 { "BRBINF17_EL1", "BRBINF17_EL1", 0x8C0C, true, false, {AArch64::FeatureBRBE} }, // 126 3647 { "BRBINF18_EL1", "BRBINF18_EL1", 0x8C14, true, false, {AArch64::FeatureBRBE} }, // 127 3648 { "BRBINF19_EL1", "BRBINF19_EL1", 0x8C1C, true, false, {AArch64::FeatureBRBE} }, // 128 3649 { "BRBINF1_EL1", "BRBINF1_EL1", 0x8C08, true, false, {AArch64::FeatureBRBE} }, // 129 3650 { "BRBINF20_EL1", "BRBINF20_EL1", 0x8C24, true, false, {AArch64::FeatureBRBE} }, // 130 3651 { "BRBINF21_EL1", "BRBINF21_EL1", 0x8C2C, true, false, {AArch64::FeatureBRBE} }, // 131 3652 { "BRBINF22_EL1", "BRBINF22_EL1", 0x8C34, true, false, {AArch64::FeatureBRBE} }, // 132 3653 { "BRBINF23_EL1", "BRBINF23_EL1", 0x8C3C, true, false, {AArch64::FeatureBRBE} }, // 133 3654 { "BRBINF24_EL1", "BRBINF24_EL1", 0x8C44, true, false, {AArch64::FeatureBRBE} }, // 134 3655 { "BRBINF25_EL1", "BRBINF25_EL1", 0x8C4C, true, false, {AArch64::FeatureBRBE} }, // 135 3656 { "BRBINF26_EL1", "BRBINF26_EL1", 0x8C54, true, false, {AArch64::FeatureBRBE} }, // 136 3657 { "BRBINF27_EL1", "BRBINF27_EL1", 0x8C5C, true, false, {AArch64::FeatureBRBE} }, // 137 3658 { "BRBINF28_EL1", "BRBINF28_EL1", 0x8C64, true, false, {AArch64::FeatureBRBE} }, // 138 3659 { "BRBINF29_EL1", "BRBINF29_EL1", 0x8C6C, true, false, {AArch64::FeatureBRBE} }, // 139 3660 { "BRBINF2_EL1", "BRBINF2_EL1", 0x8C10, true, false, {AArch64::FeatureBRBE} }, // 140 3661 { "BRBINF30_EL1", "BRBINF30_EL1", 0x8C74, true, false, {AArch64::FeatureBRBE} }, // 141 3662 { "BRBINF31_EL1", "BRBINF31_EL1", 0x8C7C, true, false, {AArch64::FeatureBRBE} }, // 142 3663 { "BRBINF3_EL1", "BRBINF3_EL1", 0x8C18, true, false, {AArch64::FeatureBRBE} }, // 143 3664 { "BRBINF4_EL1", "BRBINF4_EL1", 0x8C20, true, false, {AArch64::FeatureBRBE} }, // 144 3665 { "BRBINF5_EL1", "BRBINF5_EL1", 0x8C28, true, false, {AArch64::FeatureBRBE} }, // 145 3666 { "BRBINF6_EL1", "BRBINF6_EL1", 0x8C30, true, false, {AArch64::FeatureBRBE} }, // 146 3667 { "BRBINF7_EL1", "BRBINF7_EL1", 0x8C38, true, false, {AArch64::FeatureBRBE} }, // 147 3668 { "BRBINF8_EL1", "BRBINF8_EL1", 0x8C40, true, false, {AArch64::FeatureBRBE} }, // 148 3669 { "BRBINF9_EL1", "BRBINF9_EL1", 0x8C48, true, false, {AArch64::FeatureBRBE} }, // 149 3670 { "BRBINFINJ_EL1", "BRBINFINJ_EL1", 0x8C88, true, true, {AArch64::FeatureBRBE} }, // 150 3671 { "BRBSRC0_EL1", "BRBSRC0_EL1", 0x8C01, true, false, {AArch64::FeatureBRBE} }, // 151 3672 { "BRBSRC10_EL1", "BRBSRC10_EL1", 0x8C51, true, false, {AArch64::FeatureBRBE} }, // 152 3673 { "BRBSRC11_EL1", "BRBSRC11_EL1", 0x8C59, true, false, {AArch64::FeatureBRBE} }, // 153 3674 { "BRBSRC12_EL1", "BRBSRC12_EL1", 0x8C61, true, false, {AArch64::FeatureBRBE} }, // 154 3675 { "BRBSRC13_EL1", "BRBSRC13_EL1", 0x8C69, true, false, {AArch64::FeatureBRBE} }, // 155 3676 { "BRBSRC14_EL1", "BRBSRC14_EL1", 0x8C71, true, false, {AArch64::FeatureBRBE} }, // 156 3677 { "BRBSRC15_EL1", "BRBSRC15_EL1", 0x8C79, true, false, {AArch64::FeatureBRBE} }, // 157 3678 { "BRBSRC16_EL1", "BRBSRC16_EL1", 0x8C05, true, false, {AArch64::FeatureBRBE} }, // 158 3679 { "BRBSRC17_EL1", "BRBSRC17_EL1", 0x8C0D, true, false, {AArch64::FeatureBRBE} }, // 159 3680 { "BRBSRC18_EL1", "BRBSRC18_EL1", 0x8C15, true, false, {AArch64::FeatureBRBE} }, // 160 3681 { "BRBSRC19_EL1", "BRBSRC19_EL1", 0x8C1D, true, false, {AArch64::FeatureBRBE} }, // 161 3682 { "BRBSRC1_EL1", "BRBSRC1_EL1", 0x8C09, true, false, {AArch64::FeatureBRBE} }, // 162 3683 { "BRBSRC20_EL1", "BRBSRC20_EL1", 0x8C25, true, false, {AArch64::FeatureBRBE} }, // 163 3684 { "BRBSRC21_EL1", "BRBSRC21_EL1", 0x8C2D, true, false, {AArch64::FeatureBRBE} }, // 164 3685 { "BRBSRC22_EL1", "BRBSRC22_EL1", 0x8C35, true, false, {AArch64::FeatureBRBE} }, // 165 3686 { "BRBSRC23_EL1", "BRBSRC23_EL1", 0x8C3D, true, false, {AArch64::FeatureBRBE} }, // 166 3687 { "BRBSRC24_EL1", "BRBSRC24_EL1", 0x8C45, true, false, {AArch64::FeatureBRBE} }, // 167 3688 { "BRBSRC25_EL1", "BRBSRC25_EL1", 0x8C4D, true, false, {AArch64::FeatureBRBE} }, // 168 3689 { "BRBSRC26_EL1", "BRBSRC26_EL1", 0x8C55, true, false, {AArch64::FeatureBRBE} }, // 169 3690 { "BRBSRC27_EL1", "BRBSRC27_EL1", 0x8C5D, true, false, {AArch64::FeatureBRBE} }, // 170 3691 { "BRBSRC28_EL1", "BRBSRC28_EL1", 0x8C65, true, false, {AArch64::FeatureBRBE} }, // 171 3692 { "BRBSRC29_EL1", "BRBSRC29_EL1", 0x8C6D, true, false, {AArch64::FeatureBRBE} }, // 172 3693 { "BRBSRC2_EL1", "BRBSRC2_EL1", 0x8C11, true, false, {AArch64::FeatureBRBE} }, // 173 3694 { "BRBSRC30_EL1", "BRBSRC30_EL1", 0x8C75, true, false, {AArch64::FeatureBRBE} }, // 174 3695 { "BRBSRC31_EL1", "BRBSRC31_EL1", 0x8C7D, true, false, {AArch64::FeatureBRBE} }, // 175 3696 { "BRBSRC3_EL1", "BRBSRC3_EL1", 0x8C19, true, false, {AArch64::FeatureBRBE} }, // 176 3697 { "BRBSRC4_EL1", "BRBSRC4_EL1", 0x8C21, true, false, {AArch64::FeatureBRBE} }, // 177 3698 { "BRBSRC5_EL1", "BRBSRC5_EL1", 0x8C29, true, false, {AArch64::FeatureBRBE} }, // 178 3699 { "BRBSRC6_EL1", "BRBSRC6_EL1", 0x8C31, true, false, {AArch64::FeatureBRBE} }, // 179 3700 { "BRBSRC7_EL1", "BRBSRC7_EL1", 0x8C39, true, false, {AArch64::FeatureBRBE} }, // 180 3701 { "BRBSRC8_EL1", "BRBSRC8_EL1", 0x8C41, true, false, {AArch64::FeatureBRBE} }, // 181 3702 { "BRBSRC9_EL1", "BRBSRC9_EL1", 0x8C49, true, false, {AArch64::FeatureBRBE} }, // 182 3703 { "BRBSRCINJ_EL1", "BRBSRCINJ_EL1", 0x8C89, true, true, {AArch64::FeatureBRBE} }, // 183 3704 { "BRBTGT0_EL1", "BRBTGT0_EL1", 0x8C02, true, false, {AArch64::FeatureBRBE} }, // 184 3705 { "BRBTGT10_EL1", "BRBTGT10_EL1", 0x8C52, true, false, {AArch64::FeatureBRBE} }, // 185 3706 { "BRBTGT11_EL1", "BRBTGT11_EL1", 0x8C5A, true, false, {AArch64::FeatureBRBE} }, // 186 3707 { "BRBTGT12_EL1", "BRBTGT12_EL1", 0x8C62, true, false, {AArch64::FeatureBRBE} }, // 187 3708 { "BRBTGT13_EL1", "BRBTGT13_EL1", 0x8C6A, true, false, {AArch64::FeatureBRBE} }, // 188 3709 { "BRBTGT14_EL1", "BRBTGT14_EL1", 0x8C72, true, false, {AArch64::FeatureBRBE} }, // 189 3710 { "BRBTGT15_EL1", "BRBTGT15_EL1", 0x8C7A, true, false, {AArch64::FeatureBRBE} }, // 190 3711 { "BRBTGT16_EL1", "BRBTGT16_EL1", 0x8C06, true, false, {AArch64::FeatureBRBE} }, // 191 3712 { "BRBTGT17_EL1", "BRBTGT17_EL1", 0x8C0E, true, false, {AArch64::FeatureBRBE} }, // 192 3713 { "BRBTGT18_EL1", "BRBTGT18_EL1", 0x8C16, true, false, {AArch64::FeatureBRBE} }, // 193 3714 { "BRBTGT19_EL1", "BRBTGT19_EL1", 0x8C1E, true, false, {AArch64::FeatureBRBE} }, // 194 3715 { "BRBTGT1_EL1", "BRBTGT1_EL1", 0x8C0A, true, false, {AArch64::FeatureBRBE} }, // 195 3716 { "BRBTGT20_EL1", "BRBTGT20_EL1", 0x8C26, true, false, {AArch64::FeatureBRBE} }, // 196 3717 { "BRBTGT21_EL1", "BRBTGT21_EL1", 0x8C2E, true, false, {AArch64::FeatureBRBE} }, // 197 3718 { "BRBTGT22_EL1", "BRBTGT22_EL1", 0x8C36, true, false, {AArch64::FeatureBRBE} }, // 198 3719 { "BRBTGT23_EL1", "BRBTGT23_EL1", 0x8C3E, true, false, {AArch64::FeatureBRBE} }, // 199 3720 { "BRBTGT24_EL1", "BRBTGT24_EL1", 0x8C46, true, false, {AArch64::FeatureBRBE} }, // 200 3721 { "BRBTGT25_EL1", "BRBTGT25_EL1", 0x8C4E, true, false, {AArch64::FeatureBRBE} }, // 201 3722 { "BRBTGT26_EL1", "BRBTGT26_EL1", 0x8C56, true, false, {AArch64::FeatureBRBE} }, // 202 3723 { "BRBTGT27_EL1", "BRBTGT27_EL1", 0x8C5E, true, false, {AArch64::FeatureBRBE} }, // 203 3724 { "BRBTGT28_EL1", "BRBTGT28_EL1", 0x8C66, true, false, {AArch64::FeatureBRBE} }, // 204 3725 { "BRBTGT29_EL1", "BRBTGT29_EL1", 0x8C6E, true, false, {AArch64::FeatureBRBE} }, // 205 3726 { "BRBTGT2_EL1", "BRBTGT2_EL1", 0x8C12, true, false, {AArch64::FeatureBRBE} }, // 206 3727 { "BRBTGT30_EL1", "BRBTGT30_EL1", 0x8C76, true, false, {AArch64::FeatureBRBE} }, // 207 3728 { "BRBTGT31_EL1", "BRBTGT31_EL1", 0x8C7E, true, false, {AArch64::FeatureBRBE} }, // 208 3729 { "BRBTGT3_EL1", "BRBTGT3_EL1", 0x8C1A, true, false, {AArch64::FeatureBRBE} }, // 209 3730 { "BRBTGT4_EL1", "BRBTGT4_EL1", 0x8C22, true, false, {AArch64::FeatureBRBE} }, // 210 3731 { "BRBTGT5_EL1", "BRBTGT5_EL1", 0x8C2A, true, false, {AArch64::FeatureBRBE} }, // 211 3732 { "BRBTGT6_EL1", "BRBTGT6_EL1", 0x8C32, true, false, {AArch64::FeatureBRBE} }, // 212 3733 { "BRBTGT7_EL1", "BRBTGT7_EL1", 0x8C3A, true, false, {AArch64::FeatureBRBE} }, // 213 3734 { "BRBTGT8_EL1", "BRBTGT8_EL1", 0x8C42, true, false, {AArch64::FeatureBRBE} }, // 214 3735 { "BRBTGT9_EL1", "BRBTGT9_EL1", 0x8C4A, true, false, {AArch64::FeatureBRBE} }, // 215 3736 { "BRBTGTINJ_EL1", "BRBTGTINJ_EL1", 0x8C8A, true, true, {AArch64::FeatureBRBE} }, // 216 3737 { "BRBTS_EL1", "BRBTS_EL1", 0x8C82, true, true, {AArch64::FeatureBRBE} }, // 217 3738 { "CCSIDR2_EL1", "CCSIDR2_EL1", 0xC802, true, false, {AArch64::FeatureCCIDX} }, // 218 3739 { "CCSIDR_EL1", "CCSIDR_EL1", 0xC800, true, false, {} }, // 219 3740 { "CLIDR_EL1", "CLIDR_EL1", 0xC801, true, false, {} }, // 220 3741 { "CNTFRQ_EL0", "CNTFRQ_EL0", 0xDF00, true, true, {} }, // 221 3742 { "CNTHCTL_EL2", "CNTHCTL_EL2", 0xE708, true, true, {} }, // 222 3743 { "CNTHPS_CTL_EL2", "CNTHPS_CTL_EL2", 0xE729, true, true, {AArch64::FeatureSEL2} }, // 223 3744 { "CNTHPS_CVAL_EL2", "CNTHPS_CVAL_EL2", 0xE72A, true, true, {AArch64::FeatureSEL2} }, // 224 3745 { "CNTHPS_TVAL_EL2", "CNTHPS_TVAL_EL2", 0xE728, true, true, {AArch64::FeatureSEL2} }, // 225 3746 { "CNTHP_CTL_EL2", "CNTHP_CTL_EL2", 0xE711, true, true, {} }, // 226 3747 { "CNTHP_CVAL_EL2", "CNTHP_CVAL_EL2", 0xE712, true, true, {} }, // 227 3748 { "CNTHP_TVAL_EL2", "CNTHP_TVAL_EL2", 0xE710, true, true, {} }, // 228 3749 { "CNTHVS_CTL_EL2", "CNTHVS_CTL_EL2", 0xE721, true, true, {AArch64::FeatureSEL2} }, // 229 3750 { "CNTHVS_CVAL_EL2", "CNTHVS_CVAL_EL2", 0xE722, true, true, {AArch64::FeatureSEL2} }, // 230 3751 { "CNTHVS_TVAL_EL2", "CNTHVS_TVAL_EL2", 0xE720, true, true, {AArch64::FeatureSEL2} }, // 231 3752 { "CNTHV_CTL_EL2", "CNTHV_CTL_EL2", 0xE719, true, true, {AArch64::FeatureVH} }, // 232 3753 { "CNTHV_CVAL_EL2", "CNTHV_CVAL_EL2", 0xE71A, true, true, {AArch64::FeatureVH} }, // 233 3754 { "CNTHV_TVAL_EL2", "CNTHV_TVAL_EL2", 0xE718, true, true, {AArch64::FeatureVH} }, // 234 3755 { "CNTISCALE_EL2", "CNTISCALE_EL2", 0xE705, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 235 3756 { "CNTKCTL_EL1", "CNTKCTL_EL1", 0xC708, true, true, {} }, // 236 3757 { "CNTKCTL_EL12", "CNTKCTL_EL12", 0xEF08, true, true, {AArch64::FeatureVH} }, // 237 3758 { "CNTPCTSS_EL0", "CNTPCTSS_EL0", 0xDF05, true, false, {AArch64::FeatureEnhancedCounterVirtualization} }, // 238 3759 { "CNTPCT_EL0", "CNTPCT_EL0", 0xDF01, true, false, {} }, // 239 3760 { "CNTPOFF_EL2", "CNTPOFF_EL2", 0xE706, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 240 3761 { "CNTPS_CTL_EL1", "CNTPS_CTL_EL1", 0xFF11, true, true, {} }, // 241 3762 { "CNTPS_CVAL_EL1", "CNTPS_CVAL_EL1", 0xFF12, true, true, {} }, // 242 3763 { "CNTPS_TVAL_EL1", "CNTPS_TVAL_EL1", 0xFF10, true, true, {} }, // 243 3764 { "CNTP_CTL_EL0", "CNTP_CTL_EL0", 0xDF11, true, true, {} }, // 244 3765 { "CNTP_CTL_EL02", "CNTP_CTL_EL02", 0xEF11, true, true, {AArch64::FeatureVH} }, // 245 3766 { "CNTP_CVAL_EL0", "CNTP_CVAL_EL0", 0xDF12, true, true, {} }, // 246 3767 { "CNTP_CVAL_EL02", "CNTP_CVAL_EL02", 0xEF12, true, true, {AArch64::FeatureVH} }, // 247 3768 { "CNTP_TVAL_EL0", "CNTP_TVAL_EL0", 0xDF10, true, true, {} }, // 248 3769 { "CNTP_TVAL_EL02", "CNTP_TVAL_EL02", 0xEF10, true, true, {AArch64::FeatureVH} }, // 249 3770 { "CNTSCALE_EL2", "CNTSCALE_EL2", 0xE704, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 250 3771 { "CNTVCTSS_EL0", "CNTVCTSS_EL0", 0xDF06, true, false, {AArch64::FeatureEnhancedCounterVirtualization} }, // 251 3772 { "CNTVCT_EL0", "CNTVCT_EL0", 0xDF02, true, false, {} }, // 252 3773 { "CNTVFRQ_EL2", "CNTVFRQ_EL2", 0xE707, true, true, {AArch64::FeatureEnhancedCounterVirtualization} }, // 253 3774 { "CNTVOFF_EL2", "CNTVOFF_EL2", 0xE703, true, true, {} }, // 254 3775 { "CNTV_CTL_EL0", "CNTV_CTL_EL0", 0xDF19, true, true, {} }, // 255 3776 { "CNTV_CTL_EL02", "CNTV_CTL_EL02", 0xEF19, true, true, {AArch64::FeatureVH} }, // 256 3777 { "CNTV_CVAL_EL0", "CNTV_CVAL_EL0", 0xDF1A, true, true, {} }, // 257 3778 { "CNTV_CVAL_EL02", "CNTV_CVAL_EL02", 0xEF1A, true, true, {AArch64::FeatureVH} }, // 258 3779 { "CNTV_TVAL_EL0", "CNTV_TVAL_EL0", 0xDF18, true, true, {} }, // 259 3780 { "CNTV_TVAL_EL02", "CNTV_TVAL_EL02", 0xEF18, true, true, {AArch64::FeatureVH} }, // 260 3781 { "CONTEXTIDR_EL1", "CONTEXTIDR_EL1", 0xC681, true, true, {} }, // 261 3782 { "CONTEXTIDR_EL12", "CONTEXTIDR_EL12", 0xEE81, true, true, {AArch64::FeatureVH} }, // 262 3783 { "CONTEXTIDR_EL2", "CONTEXTIDR_EL2", 0xE681, true, true, {AArch64::FeatureCONTEXTIDREL2} }, // 263 3784 { "CPACR_EL1", "CPACR_EL1", 0xC082, true, true, {} }, // 264 3785 { "CPACR_EL12", "CPACR_EL12", 0xE882, true, true, {AArch64::FeatureVH} }, // 265 3786 { "CPM_IOACC_CTL_EL3", "CPM_IOACC_CTL_EL3", 0xFF90, true, true, {AArch64::FeatureAppleA7SysReg} }, // 266 3787 { "CPTR_EL2", "CPTR_EL2", 0xE08A, true, true, {} }, // 267 3788 { "CPTR_EL3", "CPTR_EL3", 0xF08A, true, true, {} }, // 268 3789 { "CSSELR_EL1", "CSSELR_EL1", 0xD000, true, true, {} }, // 269 3790 { "CTR_EL0", "CTR_EL0", 0xD801, true, false, {} }, // 270 3791 { "CurrentEL", "CurrentEL", 0xC212, true, false, {} }, // 271 3792 { "DACR32_EL2", "DACR32_EL2", 0xE180, true, true, {} }, // 272 3793 { "DAIF", "DAIF", 0xDA11, true, true, {} }, // 273 3794 { "DBGAUTHSTATUS_EL1", "DBGAUTHSTATUS_EL1", 0x83F6, true, false, {} }, // 274 3795 { "DBGBCR0_EL1", "DBGBCR0_EL1", 0x8005, true, true, {} }, // 275 3796 { "DBGBCR10_EL1", "DBGBCR10_EL1", 0x8055, true, true, {} }, // 276 3797 { "DBGBCR11_EL1", "DBGBCR11_EL1", 0x805D, true, true, {} }, // 277 3798 { "DBGBCR12_EL1", "DBGBCR12_EL1", 0x8065, true, true, {} }, // 278 3799 { "DBGBCR13_EL1", "DBGBCR13_EL1", 0x806D, true, true, {} }, // 279 3800 { "DBGBCR14_EL1", "DBGBCR14_EL1", 0x8075, true, true, {} }, // 280 3801 { "DBGBCR15_EL1", "DBGBCR15_EL1", 0x807D, true, true, {} }, // 281 3802 { "DBGBCR1_EL1", "DBGBCR1_EL1", 0x800D, true, true, {} }, // 282 3803 { "DBGBCR2_EL1", "DBGBCR2_EL1", 0x8015, true, true, {} }, // 283 3804 { "DBGBCR3_EL1", "DBGBCR3_EL1", 0x801D, true, true, {} }, // 284 3805 { "DBGBCR4_EL1", "DBGBCR4_EL1", 0x8025, true, true, {} }, // 285 3806 { "DBGBCR5_EL1", "DBGBCR5_EL1", 0x802D, true, true, {} }, // 286 3807 { "DBGBCR6_EL1", "DBGBCR6_EL1", 0x8035, true, true, {} }, // 287 3808 { "DBGBCR7_EL1", "DBGBCR7_EL1", 0x803D, true, true, {} }, // 288 3809 { "DBGBCR8_EL1", "DBGBCR8_EL1", 0x8045, true, true, {} }, // 289 3810 { "DBGBCR9_EL1", "DBGBCR9_EL1", 0x804D, true, true, {} }, // 290 3811 { "DBGBVR0_EL1", "DBGBVR0_EL1", 0x8004, true, true, {} }, // 291 3812 { "DBGBVR10_EL1", "DBGBVR10_EL1", 0x8054, true, true, {} }, // 292 3813 { "DBGBVR11_EL1", "DBGBVR11_EL1", 0x805C, true, true, {} }, // 293 3814 { "DBGBVR12_EL1", "DBGBVR12_EL1", 0x8064, true, true, {} }, // 294 3815 { "DBGBVR13_EL1", "DBGBVR13_EL1", 0x806C, true, true, {} }, // 295 3816 { "DBGBVR14_EL1", "DBGBVR14_EL1", 0x8074, true, true, {} }, // 296 3817 { "DBGBVR15_EL1", "DBGBVR15_EL1", 0x807C, true, true, {} }, // 297 3818 { "DBGBVR1_EL1", "DBGBVR1_EL1", 0x800C, true, true, {} }, // 298 3819 { "DBGBVR2_EL1", "DBGBVR2_EL1", 0x8014, true, true, {} }, // 299 3820 { "DBGBVR3_EL1", "DBGBVR3_EL1", 0x801C, true, true, {} }, // 300 3821 { "DBGBVR4_EL1", "DBGBVR4_EL1", 0x8024, true, true, {} }, // 301 3822 { "DBGBVR5_EL1", "DBGBVR5_EL1", 0x802C, true, true, {} }, // 302 3823 { "DBGBVR6_EL1", "DBGBVR6_EL1", 0x8034, true, true, {} }, // 303 3824 { "DBGBVR7_EL1", "DBGBVR7_EL1", 0x803C, true, true, {} }, // 304 3825 { "DBGBVR8_EL1", "DBGBVR8_EL1", 0x8044, true, true, {} }, // 305 3826 { "DBGBVR9_EL1", "DBGBVR9_EL1", 0x804C, true, true, {} }, // 306 3827 { "DBGCLAIMCLR_EL1", "DBGCLAIMCLR_EL1", 0x83CE, true, true, {} }, // 307 3828 { "DBGCLAIMSET_EL1", "DBGCLAIMSET_EL1", 0x83C6, true, true, {} }, // 308 3829 { "DBGDTRRX_EL0", "DBGDTRRX_EL0", 0x9828, true, false, {} }, // 309 3830 { "DBGDTRTX_EL0", "DBGDTRTX_EL0", 0x9828, false, true, {} }, // 310 3831 { "DBGDTR_EL0", "DBGDTR_EL0", 0x9820, true, true, {} }, // 311 3832 { "DBGPRCR_EL1", "DBGPRCR_EL1", 0x80A4, true, true, {} }, // 312 3833 { "DBGVCR32_EL2", "DBGVCR32_EL2", 0xA038, true, true, {} }, // 313 3834 { "DBGWCR0_EL1", "DBGWCR0_EL1", 0x8007, true, true, {} }, // 314 3835 { "DBGWCR10_EL1", "DBGWCR10_EL1", 0x8057, true, true, {} }, // 315 3836 { "DBGWCR11_EL1", "DBGWCR11_EL1", 0x805F, true, true, {} }, // 316 3837 { "DBGWCR12_EL1", "DBGWCR12_EL1", 0x8067, true, true, {} }, // 317 3838 { "DBGWCR13_EL1", "DBGWCR13_EL1", 0x806F, true, true, {} }, // 318 3839 { "DBGWCR14_EL1", "DBGWCR14_EL1", 0x8077, true, true, {} }, // 319 3840 { "DBGWCR15_EL1", "DBGWCR15_EL1", 0x807F, true, true, {} }, // 320 3841 { "DBGWCR1_EL1", "DBGWCR1_EL1", 0x800F, true, true, {} }, // 321 3842 { "DBGWCR2_EL1", "DBGWCR2_EL1", 0x8017, true, true, {} }, // 322 3843 { "DBGWCR3_EL1", "DBGWCR3_EL1", 0x801F, true, true, {} }, // 323 3844 { "DBGWCR4_EL1", "DBGWCR4_EL1", 0x8027, true, true, {} }, // 324 3845 { "DBGWCR5_EL1", "DBGWCR5_EL1", 0x802F, true, true, {} }, // 325 3846 { "DBGWCR6_EL1", "DBGWCR6_EL1", 0x8037, true, true, {} }, // 326 3847 { "DBGWCR7_EL1", "DBGWCR7_EL1", 0x803F, true, true, {} }, // 327 3848 { "DBGWCR8_EL1", "DBGWCR8_EL1", 0x8047, true, true, {} }, // 328 3849 { "DBGWCR9_EL1", "DBGWCR9_EL1", 0x804F, true, true, {} }, // 329 3850 { "DBGWVR0_EL1", "DBGWVR0_EL1", 0x8006, true, true, {} }, // 330 3851 { "DBGWVR10_EL1", "DBGWVR10_EL1", 0x8056, true, true, {} }, // 331 3852 { "DBGWVR11_EL1", "DBGWVR11_EL1", 0x805E, true, true, {} }, // 332 3853 { "DBGWVR12_EL1", "DBGWVR12_EL1", 0x8066, true, true, {} }, // 333 3854 { "DBGWVR13_EL1", "DBGWVR13_EL1", 0x806E, true, true, {} }, // 334 3855 { "DBGWVR14_EL1", "DBGWVR14_EL1", 0x8076, true, true, {} }, // 335 3856 { "DBGWVR15_EL1", "DBGWVR15_EL1", 0x807E, true, true, {} }, // 336 3857 { "DBGWVR1_EL1", "DBGWVR1_EL1", 0x800E, true, true, {} }, // 337 3858 { "DBGWVR2_EL1", "DBGWVR2_EL1", 0x8016, true, true, {} }, // 338 3859 { "DBGWVR3_EL1", "DBGWVR3_EL1", 0x801E, true, true, {} }, // 339 3860 { "DBGWVR4_EL1", "DBGWVR4_EL1", 0x8026, true, true, {} }, // 340 3861 { "DBGWVR5_EL1", "DBGWVR5_EL1", 0x802E, true, true, {} }, // 341 3862 { "DBGWVR6_EL1", "DBGWVR6_EL1", 0x8036, true, true, {} }, // 342 3863 { "DBGWVR7_EL1", "DBGWVR7_EL1", 0x803E, true, true, {} }, // 343 3864 { "DBGWVR8_EL1", "DBGWVR8_EL1", 0x8046, true, true, {} }, // 344 3865 { "DBGWVR9_EL1", "DBGWVR9_EL1", 0x804E, true, true, {} }, // 345 3866 { "DCZID_EL0", "DCZID_EL0", 0xD807, true, false, {} }, // 346 3867 { "DISR_EL1", "DISR_EL1", 0xC609, true, true, {AArch64::FeatureRAS} }, // 347 3868 { "DIT", "DIT", 0xDA15, true, true, {AArch64::FeatureDIT} }, // 348 3869 { "DLR_EL0", "DLR_EL0", 0xDA29, true, true, {} }, // 349 3870 { "DSPSR_EL0", "DSPSR_EL0", 0xDA28, true, true, {} }, // 350 3871 { "ELR_EL1", "ELR_EL1", 0xC201, true, true, {} }, // 351 3872 { "ELR_EL12", "ELR_EL12", 0xEA01, true, true, {AArch64::FeatureVH} }, // 352 3873 { "ELR_EL2", "ELR_EL2", 0xE201, true, true, {} }, // 353 3874 { "ELR_EL3", "ELR_EL3", 0xF201, true, true, {} }, // 354 3875 { "ERRIDR_EL1", "ERRIDR_EL1", 0xC298, true, false, {AArch64::FeatureRAS} }, // 355 3876 { "ERRSELR_EL1", "ERRSELR_EL1", 0xC299, true, true, {AArch64::FeatureRAS} }, // 356 3877 { "ERXADDR_EL1", "ERXADDR_EL1", 0xC2A3, true, true, {AArch64::FeatureRAS} }, // 357 3878 { "ERXCTLR_EL1", "ERXCTLR_EL1", 0xC2A1, true, true, {AArch64::FeatureRAS} }, // 358 3879 { "ERXFR_EL1", "ERXFR_EL1", 0xC2A0, true, false, {AArch64::FeatureRAS} }, // 359 3880 { "ERXGSR_EL1", "ERXGSR_EL1", 0xC29A, true, false, {AArch64::FeatureRASv2} }, // 360 3881 { "ERXMISC0_EL1", "ERXMISC0_EL1", 0xC2A8, true, true, {AArch64::FeatureRAS} }, // 361 3882 { "ERXMISC1_EL1", "ERXMISC1_EL1", 0xC2A9, true, true, {AArch64::FeatureRAS} }, // 362 3883 { "ERXMISC2_EL1", "ERXMISC2_EL1", 0xC2AA, true, true, {} }, // 363 3884 { "ERXMISC3_EL1", "ERXMISC3_EL1", 0xC2AB, true, true, {} }, // 364 3885 { "ERXPFGCDN_EL1", "ERXPFGCDN_EL1", 0xC2A6, true, true, {} }, // 365 3886 { "ERXPFGCTL_EL1", "ERXPFGCTL_EL1", 0xC2A5, true, true, {} }, // 366 3887 { "ERXPFGF_EL1", "ERXPFGF_EL1", 0xC2A4, true, false, {} }, // 367 3888 { "ERXSTATUS_EL1", "ERXSTATUS_EL1", 0xC2A2, true, true, {AArch64::FeatureRAS} }, // 368 3889 { "ESR_EL1", "ESR_EL1", 0xC290, true, true, {} }, // 369 3890 { "ESR_EL12", "ESR_EL12", 0xEA90, true, true, {AArch64::FeatureVH} }, // 370 3891 { "ESR_EL2", "ESR_EL2", 0xE290, true, true, {} }, // 371 3892 { "ESR_EL3", "ESR_EL3", 0xF290, true, true, {} }, // 372 3893 { "FAR_EL1", "FAR_EL1", 0xC300, true, true, {} }, // 373 3894 { "FAR_EL12", "FAR_EL12", 0xEB00, true, true, {AArch64::FeatureVH} }, // 374 3895 { "FAR_EL2", "FAR_EL2", 0xE300, true, true, {} }, // 375 3896 { "FAR_EL3", "FAR_EL3", 0xF300, true, true, {} }, // 376 3897 { "FPCR", "FPCR", 0xDA20, true, true, {} }, // 377 3898 { "FPEXC32_EL2", "FPEXC32_EL2", 0xE298, true, true, {} }, // 378 3899 { "FPSR", "FPSR", 0xDA21, true, true, {} }, // 379 3900 { "GCR_EL1", "GCR_EL1", 0xC086, true, true, {AArch64::FeatureMTE} }, // 380 3901 { "GMID_EL1", "GMID_EL1", 0xC804, true, false, {AArch64::FeatureMTE} }, // 381 3902 { "GPCCR_EL3", "GPCCR_EL3", 0xF10E, true, true, {AArch64::FeatureRME} }, // 382 3903 { "GPTBR_EL3", "GPTBR_EL3", 0xF10C, true, true, {AArch64::FeatureRME} }, // 383 3904 { "HACR_EL2", "HACR_EL2", 0xE08F, true, true, {} }, // 384 3905 { "HAFGRTR_EL2", "HAFGRTR_EL2", 0xE18E, true, true, {AArch64::FeatureFineGrainedTraps} }, // 385 3906 { "HCRX_EL2", "HCRX_EL2", 0xE092, true, true, {AArch64::FeatureHCX} }, // 386 3907 { "HCR_EL2", "HCR_EL2", 0xE088, true, true, {} }, // 387 3908 { "HDFGRTR2_EL2", "HDFGRTR2_EL2", 0xE188, true, true, {AArch64::FeatureFineGrainedTraps} }, // 388 3909 { "HDFGRTR_EL2", "HDFGRTR_EL2", 0xE18C, true, true, {AArch64::FeatureFineGrainedTraps} }, // 389 3910 { "HDFGWTR2_EL2", "HDFGWTR2_EL2", 0xE189, true, true, {AArch64::FeatureFineGrainedTraps} }, // 390 3911 { "HDFGWTR_EL2", "HDFGWTR_EL2", 0xE18D, true, true, {AArch64::FeatureFineGrainedTraps} }, // 391 3912 { "HFGITR2_EL2", "HFGITR2_EL2", 0xE18F, true, true, {AArch64::FeatureFineGrainedTraps} }, // 392 3913 { "HFGITR_EL2", "HFGITR_EL2", 0xE08E, true, true, {AArch64::FeatureFineGrainedTraps} }, // 393 3914 { "HFGRTR2_EL2", "HFGRTR2_EL2", 0xE18A, true, true, {AArch64::FeatureFineGrainedTraps} }, // 394 3915 { "HFGRTR_EL2", "HFGRTR_EL2", 0xE08C, true, true, {AArch64::FeatureFineGrainedTraps} }, // 395 3916 { "HFGWTR2_EL2", "HFGWTR2_EL2", 0xE18B, true, true, {AArch64::FeatureFineGrainedTraps} }, // 396 3917 { "HFGWTR_EL2", "HFGWTR_EL2", 0xE08D, true, true, {AArch64::FeatureFineGrainedTraps} }, // 397 3918 { "HPFAR_EL2", "HPFAR_EL2", 0xE304, true, true, {} }, // 398 3919 { "HSTR_EL2", "HSTR_EL2", 0xE08B, true, true, {} }, // 399 3920 { "ICC_AP0R0_EL1", "ICC_AP0R0_EL1", 0xC644, true, true, {} }, // 400 3921 { "ICC_AP0R1_EL1", "ICC_AP0R1_EL1", 0xC645, true, true, {} }, // 401 3922 { "ICC_AP0R2_EL1", "ICC_AP0R2_EL1", 0xC646, true, true, {} }, // 402 3923 { "ICC_AP0R3_EL1", "ICC_AP0R3_EL1", 0xC647, true, true, {} }, // 403 3924 { "ICC_AP1R0_EL1", "ICC_AP1R0_EL1", 0xC648, true, true, {} }, // 404 3925 { "ICC_AP1R1_EL1", "ICC_AP1R1_EL1", 0xC649, true, true, {} }, // 405 3926 { "ICC_AP1R2_EL1", "ICC_AP1R2_EL1", 0xC64A, true, true, {} }, // 406 3927 { "ICC_AP1R3_EL1", "ICC_AP1R3_EL1", 0xC64B, true, true, {} }, // 407 3928 { "ICC_ASGI1R_EL1", "ICC_ASGI1R_EL1", 0xC65E, false, true, {} }, // 408 3929 { "ICC_BPR0_EL1", "ICC_BPR0_EL1", 0xC643, true, true, {} }, // 409 3930 { "ICC_BPR1_EL1", "ICC_BPR1_EL1", 0xC663, true, true, {} }, // 410 3931 { "ICC_CTLR_EL1", "ICC_CTLR_EL1", 0xC664, true, true, {} }, // 411 3932 { "ICC_CTLR_EL3", "ICC_CTLR_EL3", 0xF664, true, true, {} }, // 412 3933 { "ICC_DIR_EL1", "ICC_DIR_EL1", 0xC659, false, true, {} }, // 413 3934 { "ICC_EOIR0_EL1", "ICC_EOIR0_EL1", 0xC641, false, true, {} }, // 414 3935 { "ICC_EOIR1_EL1", "ICC_EOIR1_EL1", 0xC661, false, true, {} }, // 415 3936 { "ICC_HPPIR0_EL1", "ICC_HPPIR0_EL1", 0xC642, true, false, {} }, // 416 3937 { "ICC_HPPIR1_EL1", "ICC_HPPIR1_EL1", 0xC662, true, false, {} }, // 417 3938 { "ICC_IAR0_EL1", "ICC_IAR0_EL1", 0xC640, true, false, {} }, // 418 3939 { "ICC_IAR1_EL1", "ICC_IAR1_EL1", 0xC660, true, false, {} }, // 419 3940 { "ICC_IGRPEN0_EL1", "ICC_IGRPEN0_EL1", 0xC666, true, true, {} }, // 420 3941 { "ICC_IGRPEN1_EL1", "ICC_IGRPEN1_EL1", 0xC667, true, true, {} }, // 421 3942 { "ICC_IGRPEN1_EL3", "ICC_IGRPEN1_EL3", 0xF667, true, true, {} }, // 422 3943 { "ICC_NMIAR1_EL1", "ICC_NMIAR1_EL1", 0xC64D, true, false, {AArch64::FeatureNMI} }, // 423 3944 { "ICC_PMR_EL1", "ICC_PMR_EL1", 0xC230, true, true, {} }, // 424 3945 { "ICC_RPR_EL1", "ICC_RPR_EL1", 0xC65B, true, false, {} }, // 425 3946 { "ICC_SGI0R_EL1", "ICC_SGI0R_EL1", 0xC65F, false, true, {} }, // 426 3947 { "ICC_SGI1R_EL1", "ICC_SGI1R_EL1", 0xC65D, false, true, {} }, // 427 3948 { "ICC_SRE_EL1", "ICC_SRE_EL1", 0xC665, true, true, {} }, // 428 3949 { "ICC_SRE_EL2", "ICC_SRE_EL2", 0xE64D, true, true, {} }, // 429 3950 { "ICC_SRE_EL3", "ICC_SRE_EL3", 0xF665, true, true, {} }, // 430 3951 { "ICH_AP0R0_EL2", "ICH_AP0R0_EL2", 0xE640, true, true, {} }, // 431 3952 { "ICH_AP0R1_EL2", "ICH_AP0R1_EL2", 0xE641, true, true, {} }, // 432 3953 { "ICH_AP0R2_EL2", "ICH_AP0R2_EL2", 0xE642, true, true, {} }, // 433 3954 { "ICH_AP0R3_EL2", "ICH_AP0R3_EL2", 0xE643, true, true, {} }, // 434 3955 { "ICH_AP1R0_EL2", "ICH_AP1R0_EL2", 0xE648, true, true, {} }, // 435 3956 { "ICH_AP1R1_EL2", "ICH_AP1R1_EL2", 0xE649, true, true, {} }, // 436 3957 { "ICH_AP1R2_EL2", "ICH_AP1R2_EL2", 0xE64A, true, true, {} }, // 437 3958 { "ICH_AP1R3_EL2", "ICH_AP1R3_EL2", 0xE64B, true, true, {} }, // 438 3959 { "ICH_EISR_EL2", "ICH_EISR_EL2", 0xE65B, true, false, {} }, // 439 3960 { "ICH_ELRSR_EL2", "ICH_ELRSR_EL2", 0xE65D, true, false, {} }, // 440 3961 { "ICH_HCR_EL2", "ICH_HCR_EL2", 0xE658, true, true, {} }, // 441 3962 { "ICH_LR0_EL2", "ICH_LR0_EL2", 0xE660, true, true, {} }, // 442 3963 { "ICH_LR10_EL2", "ICH_LR10_EL2", 0xE66A, true, true, {} }, // 443 3964 { "ICH_LR11_EL2", "ICH_LR11_EL2", 0xE66B, true, true, {} }, // 444 3965 { "ICH_LR12_EL2", "ICH_LR12_EL2", 0xE66C, true, true, {} }, // 445 3966 { "ICH_LR13_EL2", "ICH_LR13_EL2", 0xE66D, true, true, {} }, // 446 3967 { "ICH_LR14_EL2", "ICH_LR14_EL2", 0xE66E, true, true, {} }, // 447 3968 { "ICH_LR15_EL2", "ICH_LR15_EL2", 0xE66F, true, true, {} }, // 448 3969 { "ICH_LR1_EL2", "ICH_LR1_EL2", 0xE661, true, true, {} }, // 449 3970 { "ICH_LR2_EL2", "ICH_LR2_EL2", 0xE662, true, true, {} }, // 450 3971 { "ICH_LR3_EL2", "ICH_LR3_EL2", 0xE663, true, true, {} }, // 451 3972 { "ICH_LR4_EL2", "ICH_LR4_EL2", 0xE664, true, true, {} }, // 452 3973 { "ICH_LR5_EL2", "ICH_LR5_EL2", 0xE665, true, true, {} }, // 453 3974 { "ICH_LR6_EL2", "ICH_LR6_EL2", 0xE666, true, true, {} }, // 454 3975 { "ICH_LR7_EL2", "ICH_LR7_EL2", 0xE667, true, true, {} }, // 455 3976 { "ICH_LR8_EL2", "ICH_LR8_EL2", 0xE668, true, true, {} }, // 456 3977 { "ICH_LR9_EL2", "ICH_LR9_EL2", 0xE669, true, true, {} }, // 457 3978 { "ICH_MISR_EL2", "ICH_MISR_EL2", 0xE65A, true, false, {} }, // 458 3979 { "ICH_VMCR_EL2", "ICH_VMCR_EL2", 0xE65F, true, true, {} }, // 459 3980 { "ICH_VTR_EL2", "ICH_VTR_EL2", 0xE659, true, false, {} }, // 460 3981 { "ID_AA64AFR0_EL1", "ID_AA64AFR0_EL1", 0xC02C, true, false, {} }, // 461 3982 { "ID_AA64AFR1_EL1", "ID_AA64AFR1_EL1", 0xC02D, true, false, {} }, // 462 3983 { "ID_AA64DFR0_EL1", "ID_AA64DFR0_EL1", 0xC028, true, false, {} }, // 463 3984 { "ID_AA64DFR1_EL1", "ID_AA64DFR1_EL1", 0xC029, true, false, {} }, // 464 3985 { "ID_AA64ISAR0_EL1", "ID_AA64ISAR0_EL1", 0xC030, true, false, {} }, // 465 3986 { "ID_AA64ISAR1_EL1", "ID_AA64ISAR1_EL1", 0xC031, true, false, {} }, // 466 3987 { "ID_AA64ISAR2_EL1", "ID_AA64ISAR2_EL1", 0xC032, true, false, {} }, // 467 3988 { "ID_AA64MMFR0_EL1", "ID_AA64MMFR0_EL1", 0xC038, true, false, {} }, // 468 3989 { "ID_AA64MMFR1_EL1", "ID_AA64MMFR1_EL1", 0xC039, true, false, {} }, // 469 3990 { "ID_AA64MMFR2_EL1", "ID_AA64MMFR2_EL1", 0xC03A, true, false, {} }, // 470 3991 { "ID_AA64MMFR3_EL1", "ID_AA64MMFR3_EL1", 0xC03B, true, false, {} }, // 471 3992 { "ID_AA64MMFR4_EL1", "ID_AA64MMFR4_EL1", 0xC03C, true, false, {} }, // 472 3993 { "ID_AA64PFR0_EL1", "ID_AA64PFR0_EL1", 0xC020, true, false, {} }, // 473 3994 { "ID_AA64PFR1_EL1", "ID_AA64PFR1_EL1", 0xC021, true, false, {} }, // 474 3995 { "ID_AA64PFR2_EL1", "ID_AA64PFR2_EL1", 0xC022, true, false, {} }, // 475 3996 { "ID_AA64SMFR0_EL1", "ID_AA64SMFR0_EL1", 0xC025, true, false, {AArch64::FeatureSME} }, // 476 3997 { "ID_AA64ZFR0_EL1", "ID_AA64ZFR0_EL1", 0xC024, true, false, {AArch64::FeatureSVE} }, // 477 3998 { "ID_AFR0_EL1", "ID_AFR0_EL1", 0xC00B, true, false, {} }, // 478 3999 { "ID_DFR0_EL1", "ID_DFR0_EL1", 0xC00A, true, false, {} }, // 479 4000 { "ID_DFR1_EL1", "ID_DFR1_EL1", 0xC01D, true, false, {} }, // 480 4001 { "ID_ISAR0_EL1", "ID_ISAR0_EL1", 0xC010, true, false, {} }, // 481 4002 { "ID_ISAR1_EL1", "ID_ISAR1_EL1", 0xC011, true, false, {} }, // 482 4003 { "ID_ISAR2_EL1", "ID_ISAR2_EL1", 0xC012, true, false, {} }, // 483 4004 { "ID_ISAR3_EL1", "ID_ISAR3_EL1", 0xC013, true, false, {} }, // 484 4005 { "ID_ISAR4_EL1", "ID_ISAR4_EL1", 0xC014, true, false, {} }, // 485 4006 { "ID_ISAR5_EL1", "ID_ISAR5_EL1", 0xC015, true, false, {} }, // 486 4007 { "ID_ISAR6_EL1", "ID_ISAR6_EL1", 0xC017, true, false, {AArch64::HasV8_2aOps} }, // 487 4008 { "ID_MMFR0_EL1", "ID_MMFR0_EL1", 0xC00C, true, false, {} }, // 488 4009 { "ID_MMFR1_EL1", "ID_MMFR1_EL1", 0xC00D, true, false, {} }, // 489 4010 { "ID_MMFR2_EL1", "ID_MMFR2_EL1", 0xC00E, true, false, {} }, // 490 4011 { "ID_MMFR3_EL1", "ID_MMFR3_EL1", 0xC00F, true, false, {} }, // 491 4012 { "ID_MMFR4_EL1", "ID_MMFR4_EL1", 0xC016, true, false, {} }, // 492 4013 { "ID_MMFR5_EL1", "ID_MMFR5_EL1", 0xC01E, true, false, {} }, // 493 4014 { "ID_PFR0_EL1", "ID_PFR0_EL1", 0xC008, true, false, {} }, // 494 4015 { "ID_PFR1_EL1", "ID_PFR1_EL1", 0xC009, true, false, {} }, // 495 4016 { "ID_PFR2_EL1", "ID_PFR2_EL1", 0xC01C, true, false, {AArch64::FeatureSpecRestrict} }, // 496 4017 { "IFSR32_EL2", "IFSR32_EL2", 0xE281, true, true, {} }, // 497 4018 { "ISR_EL1", "ISR_EL1", 0xC608, true, false, {} }, // 498 4019 { "LORC_EL1", "LORC_EL1", 0xC523, true, true, {AArch64::FeatureLOR} }, // 499 4020 { "LOREA_EL1", "LOREA_EL1", 0xC521, true, true, {AArch64::FeatureLOR} }, // 500 4021 { "LORID_EL1", "LORID_EL1", 0xC527, true, false, {AArch64::FeatureLOR} }, // 501 4022 { "LORN_EL1", "LORN_EL1", 0xC522, true, true, {AArch64::FeatureLOR} }, // 502 4023 { "LORSA_EL1", "LORSA_EL1", 0xC520, true, true, {AArch64::FeatureLOR} }, // 503 4024 { "MAIR2_EL1", "MAIR2_EL1", 0xC511, true, true, {} }, // 504 4025 { "MAIR2_EL12", "MAIR2_EL12", 0xED11, true, true, {} }, // 505 4026 { "MAIR2_EL2", "MAIR2_EL2", 0xE509, true, true, {} }, // 506 4027 { "MAIR2_EL3", "MAIR2_EL3", 0xF509, true, true, {} }, // 507 4028 { "MAIR_EL1", "MAIR_EL1", 0xC510, true, true, {} }, // 508 4029 { "MAIR_EL12", "MAIR_EL12", 0xED10, true, true, {AArch64::FeatureVH} }, // 509 4030 { "MAIR_EL2", "MAIR_EL2", 0xE510, true, true, {} }, // 510 4031 { "MAIR_EL3", "MAIR_EL3", 0xF510, true, true, {} }, // 511 4032 { "MDCCINT_EL1", "MDCCINT_EL1", 0x8010, true, true, {} }, // 512 4033 { "MDCCSR_EL0", "MDCCSR_EL0", 0x9808, true, false, {} }, // 513 4034 { "MDCR_EL2", "MDCR_EL2", 0xE089, true, true, {} }, // 514 4035 { "MDCR_EL3", "MDCR_EL3", 0xF099, true, true, {} }, // 515 4036 { "MDRAR_EL1", "MDRAR_EL1", 0x8080, true, false, {} }, // 516 4037 { "MDSCR_EL1", "MDSCR_EL1", 0x8012, true, true, {} }, // 517 4038 { "MDSELR_EL1", "MDSELR_EL1", 0x8022, true, true, {} }, // 518 4039 { "MECIDR_EL2", "MECIDR_EL2", 0xE547, true, false, {AArch64::FeatureMEC} }, // 519 4040 { "MECID_A0_EL2", "MECID_A0_EL2", 0xE541, true, true, {AArch64::FeatureMEC} }, // 520 4041 { "MECID_A1_EL2", "MECID_A1_EL2", 0xE543, true, true, {AArch64::FeatureMEC} }, // 521 4042 { "MECID_P0_EL2", "MECID_P0_EL2", 0xE540, true, true, {AArch64::FeatureMEC} }, // 522 4043 { "MECID_P1_EL2", "MECID_P1_EL2", 0xE542, true, true, {AArch64::FeatureMEC} }, // 523 4044 { "MECID_RL_A_EL3", "MECID_RL_A_EL3", 0xF551, true, true, {AArch64::FeatureMEC} }, // 524 4045 { "MFAR_EL3", "MFAR_EL3", 0xF305, true, true, {} }, // 525 4046 { "MIDR_EL1", "MIDR_EL1", 0xC000, true, false, {} }, // 526 4047 { "MPAM0_EL1", "MPAM0_EL1", 0xC529, true, true, {AArch64::FeatureMPAM} }, // 527 4048 { "MPAM1_EL1", "MPAM1_EL1", 0xC528, true, true, {AArch64::FeatureMPAM} }, // 528 4049 { "MPAM1_EL12", "MPAM1_EL12", 0xED28, true, true, {AArch64::FeatureMPAM} }, // 529 4050 { "MPAM2_EL2", "MPAM2_EL2", 0xE528, true, true, {AArch64::FeatureMPAM} }, // 530 4051 { "MPAM3_EL3", "MPAM3_EL3", 0xF528, true, true, {AArch64::FeatureMPAM} }, // 531 4052 { "MPAMHCR_EL2", "MPAMHCR_EL2", 0xE520, true, true, {AArch64::FeatureMPAM} }, // 532 4053 { "MPAMIDR_EL1", "MPAMIDR_EL1", 0xC524, true, false, {AArch64::FeatureMPAM} }, // 533 4054 { "MPAMSM_EL1", "MPAMSM_EL1", 0xC52B, true, true, {AArch64::FeatureMPAM, AArch64::FeatureSME} }, // 534 4055 { "MPAMVPM0_EL2", "MPAMVPM0_EL2", 0xE530, true, true, {AArch64::FeatureMPAM} }, // 535 4056 { "MPAMVPM1_EL2", "MPAMVPM1_EL2", 0xE531, true, true, {AArch64::FeatureMPAM} }, // 536 4057 { "MPAMVPM2_EL2", "MPAMVPM2_EL2", 0xE532, true, true, {AArch64::FeatureMPAM} }, // 537 4058 { "MPAMVPM3_EL2", "MPAMVPM3_EL2", 0xE533, true, true, {AArch64::FeatureMPAM} }, // 538 4059 { "MPAMVPM4_EL2", "MPAMVPM4_EL2", 0xE534, true, true, {AArch64::FeatureMPAM} }, // 539 4060 { "MPAMVPM5_EL2", "MPAMVPM5_EL2", 0xE535, true, true, {AArch64::FeatureMPAM} }, // 540 4061 { "MPAMVPM6_EL2", "MPAMVPM6_EL2", 0xE536, true, true, {AArch64::FeatureMPAM} }, // 541 4062 { "MPAMVPM7_EL2", "MPAMVPM7_EL2", 0xE537, true, true, {AArch64::FeatureMPAM} }, // 542 4063 { "MPAMVPMV_EL2", "MPAMVPMV_EL2", 0xE521, true, true, {AArch64::FeatureMPAM} }, // 543 4064 { "MPIDR_EL1", "MPIDR_EL1", 0xC005, true, false, {} }, // 544 4065 { "MPUIR_EL1", "MPUIR_EL1", 0xC004, true, true, {AArch64::HasV8_0rOps} }, // 545 4066 { "MPUIR_EL2", "MPUIR_EL2", 0xE004, true, true, {AArch64::HasV8_0rOps} }, // 546 4067 { "MVFR0_EL1", "MVFR0_EL1", 0xC018, true, false, {} }, // 547 4068 { "MVFR1_EL1", "MVFR1_EL1", 0xC019, true, false, {} }, // 548 4069 { "MVFR2_EL1", "MVFR2_EL1", 0xC01A, true, false, {} }, // 549 4070 { "NZCV", "NZCV", 0xDA10, true, true, {} }, // 550 4071 { "OSDLR_EL1", "OSDLR_EL1", 0x809C, true, true, {} }, // 551 4072 { "OSDTRRX_EL1", "OSDTRRX_EL1", 0x8002, true, true, {} }, // 552 4073 { "OSDTRTX_EL1", "OSDTRTX_EL1", 0x801A, true, true, {} }, // 553 4074 { "OSECCR_EL1", "OSECCR_EL1", 0x8032, true, true, {} }, // 554 4075 { "OSLAR_EL1", "OSLAR_EL1", 0x8084, false, true, {} }, // 555 4076 { "OSLSR_EL1", "OSLSR_EL1", 0x808C, true, false, {} }, // 556 4077 { "PAN", "PAN", 0xC213, true, true, {AArch64::FeaturePAN} }, // 557 4078 { "PAR_EL1", "PAR_EL1", 0xC3A0, true, true, {} }, // 558 4079 { "PFAR_EL1", "PFAR_EL1", 0xC305, true, true, {} }, // 559 4080 { "PFAR_EL12", "PFAR_EL12", 0xEB05, true, true, {} }, // 560 4081 { "PFAR_EL2", "PFAR_EL2", 0xE305, true, true, {} }, // 561 4082 { "PIRE0_EL1", "PIRE0_EL1", 0xC512, true, true, {} }, // 562 4083 { "PIRE0_EL12", "PIRE0_EL12", 0xED12, true, true, {} }, // 563 4084 { "PIRE0_EL2", "PIRE0_EL2", 0xE512, true, true, {} }, // 564 4085 { "PIR_EL1", "PIR_EL1", 0xC513, true, true, {} }, // 565 4086 { "PIR_EL12", "PIR_EL12", 0xED13, true, true, {} }, // 566 4087 { "PIR_EL2", "PIR_EL2", 0xE513, true, true, {} }, // 567 4088 { "PIR_EL3", "PIR_EL3", 0xF513, true, true, {} }, // 568 4089 { "PM", "PM", 0xC219, true, true, {} }, // 569 4090 { "PMBIDR_EL1", "PMBIDR_EL1", 0xC4D7, true, false, {AArch64::FeatureSPE} }, // 570 4091 { "PMBLIMITR_EL1", "PMBLIMITR_EL1", 0xC4D0, true, true, {AArch64::FeatureSPE} }, // 571 4092 { "PMBPTR_EL1", "PMBPTR_EL1", 0xC4D1, true, true, {AArch64::FeatureSPE} }, // 572 4093 { "PMBSR_EL1", "PMBSR_EL1", 0xC4D3, true, true, {AArch64::FeatureSPE} }, // 573 4094 { "PMCCFILTR_EL0", "PMCCFILTR_EL0", 0xDF7F, true, true, {} }, // 574 4095 { "PMCCNTR_EL0", "PMCCNTR_EL0", 0xDCE8, true, true, {} }, // 575 4096 { "PMCCNTSVR_EL1", "PMCCNTSVR_EL1", 0x875F, true, false, {} }, // 576 4097 { "PMCEID0_EL0", "PMCEID0_EL0", 0xDCE6, true, false, {} }, // 577 4098 { "PMCEID1_EL0", "PMCEID1_EL0", 0xDCE7, true, false, {} }, // 578 4099 { "PMCNTENCLR_EL0", "PMCNTENCLR_EL0", 0xDCE2, true, true, {} }, // 579 4100 { "PMCNTENSET_EL0", "PMCNTENSET_EL0", 0xDCE1, true, true, {} }, // 580 4101 { "PMCR_EL0", "PMCR_EL0", 0xDCE0, true, true, {} }, // 581 4102 { "PMECR_EL1", "PMECR_EL1", 0xC4F5, true, true, {} }, // 582 4103 { "PMEVCNTR0_EL0", "PMEVCNTR0_EL0", 0xDF40, true, true, {} }, // 583 4104 { "PMEVCNTR10_EL0", "PMEVCNTR10_EL0", 0xDF4A, true, true, {} }, // 584 4105 { "PMEVCNTR11_EL0", "PMEVCNTR11_EL0", 0xDF4B, true, true, {} }, // 585 4106 { "PMEVCNTR12_EL0", "PMEVCNTR12_EL0", 0xDF4C, true, true, {} }, // 586 4107 { "PMEVCNTR13_EL0", "PMEVCNTR13_EL0", 0xDF4D, true, true, {} }, // 587 4108 { "PMEVCNTR14_EL0", "PMEVCNTR14_EL0", 0xDF4E, true, true, {} }, // 588 4109 { "PMEVCNTR15_EL0", "PMEVCNTR15_EL0", 0xDF4F, true, true, {} }, // 589 4110 { "PMEVCNTR16_EL0", "PMEVCNTR16_EL0", 0xDF50, true, true, {} }, // 590 4111 { "PMEVCNTR17_EL0", "PMEVCNTR17_EL0", 0xDF51, true, true, {} }, // 591 4112 { "PMEVCNTR18_EL0", "PMEVCNTR18_EL0", 0xDF52, true, true, {} }, // 592 4113 { "PMEVCNTR19_EL0", "PMEVCNTR19_EL0", 0xDF53, true, true, {} }, // 593 4114 { "PMEVCNTR1_EL0", "PMEVCNTR1_EL0", 0xDF41, true, true, {} }, // 594 4115 { "PMEVCNTR20_EL0", "PMEVCNTR20_EL0", 0xDF54, true, true, {} }, // 595 4116 { "PMEVCNTR21_EL0", "PMEVCNTR21_EL0", 0xDF55, true, true, {} }, // 596 4117 { "PMEVCNTR22_EL0", "PMEVCNTR22_EL0", 0xDF56, true, true, {} }, // 597 4118 { "PMEVCNTR23_EL0", "PMEVCNTR23_EL0", 0xDF57, true, true, {} }, // 598 4119 { "PMEVCNTR24_EL0", "PMEVCNTR24_EL0", 0xDF58, true, true, {} }, // 599 4120 { "PMEVCNTR25_EL0", "PMEVCNTR25_EL0", 0xDF59, true, true, {} }, // 600 4121 { "PMEVCNTR26_EL0", "PMEVCNTR26_EL0", 0xDF5A, true, true, {} }, // 601 4122 { "PMEVCNTR27_EL0", "PMEVCNTR27_EL0", 0xDF5B, true, true, {} }, // 602 4123 { "PMEVCNTR28_EL0", "PMEVCNTR28_EL0", 0xDF5C, true, true, {} }, // 603 4124 { "PMEVCNTR29_EL0", "PMEVCNTR29_EL0", 0xDF5D, true, true, {} }, // 604 4125 { "PMEVCNTR2_EL0", "PMEVCNTR2_EL0", 0xDF42, true, true, {} }, // 605 4126 { "PMEVCNTR30_EL0", "PMEVCNTR30_EL0", 0xDF5E, true, true, {} }, // 606 4127 { "PMEVCNTR3_EL0", "PMEVCNTR3_EL0", 0xDF43, true, true, {} }, // 607 4128 { "PMEVCNTR4_EL0", "PMEVCNTR4_EL0", 0xDF44, true, true, {} }, // 608 4129 { "PMEVCNTR5_EL0", "PMEVCNTR5_EL0", 0xDF45, true, true, {} }, // 609 4130 { "PMEVCNTR6_EL0", "PMEVCNTR6_EL0", 0xDF46, true, true, {} }, // 610 4131 { "PMEVCNTR7_EL0", "PMEVCNTR7_EL0", 0xDF47, true, true, {} }, // 611 4132 { "PMEVCNTR8_EL0", "PMEVCNTR8_EL0", 0xDF48, true, true, {} }, // 612 4133 { "PMEVCNTR9_EL0", "PMEVCNTR9_EL0", 0xDF49, true, true, {} }, // 613 4134 { "PMEVCNTSVR0_EL1", "PMEVCNTSVR0_EL1", 0x8740, true, false, {} }, // 614 4135 { "PMEVCNTSVR10_EL1", "PMEVCNTSVR10_EL1", 0x874A, true, false, {} }, // 615 4136 { "PMEVCNTSVR11_EL1", "PMEVCNTSVR11_EL1", 0x874B, true, false, {} }, // 616 4137 { "PMEVCNTSVR12_EL1", "PMEVCNTSVR12_EL1", 0x874C, true, false, {} }, // 617 4138 { "PMEVCNTSVR13_EL1", "PMEVCNTSVR13_EL1", 0x874D, true, false, {} }, // 618 4139 { "PMEVCNTSVR14_EL1", "PMEVCNTSVR14_EL1", 0x874E, true, false, {} }, // 619 4140 { "PMEVCNTSVR15_EL1", "PMEVCNTSVR15_EL1", 0x874F, true, false, {} }, // 620 4141 { "PMEVCNTSVR16_EL1", "PMEVCNTSVR16_EL1", 0x8750, true, false, {} }, // 621 4142 { "PMEVCNTSVR17_EL1", "PMEVCNTSVR17_EL1", 0x8751, true, false, {} }, // 622 4143 { "PMEVCNTSVR18_EL1", "PMEVCNTSVR18_EL1", 0x8752, true, false, {} }, // 623 4144 { "PMEVCNTSVR19_EL1", "PMEVCNTSVR19_EL1", 0x8753, true, false, {} }, // 624 4145 { "PMEVCNTSVR1_EL1", "PMEVCNTSVR1_EL1", 0x8741, true, false, {} }, // 625 4146 { "PMEVCNTSVR20_EL1", "PMEVCNTSVR20_EL1", 0x8754, true, false, {} }, // 626 4147 { "PMEVCNTSVR21_EL1", "PMEVCNTSVR21_EL1", 0x8755, true, false, {} }, // 627 4148 { "PMEVCNTSVR22_EL1", "PMEVCNTSVR22_EL1", 0x8756, true, false, {} }, // 628 4149 { "PMEVCNTSVR23_EL1", "PMEVCNTSVR23_EL1", 0x8757, true, false, {} }, // 629 4150 { "PMEVCNTSVR24_EL1", "PMEVCNTSVR24_EL1", 0x8758, true, false, {} }, // 630 4151 { "PMEVCNTSVR25_EL1", "PMEVCNTSVR25_EL1", 0x8759, true, false, {} }, // 631 4152 { "PMEVCNTSVR26_EL1", "PMEVCNTSVR26_EL1", 0x875A, true, false, {} }, // 632 4153 { "PMEVCNTSVR27_EL1", "PMEVCNTSVR27_EL1", 0x875B, true, false, {} }, // 633 4154 { "PMEVCNTSVR28_EL1", "PMEVCNTSVR28_EL1", 0x875C, true, false, {} }, // 634 4155 { "PMEVCNTSVR29_EL1", "PMEVCNTSVR29_EL1", 0x875D, true, false, {} }, // 635 4156 { "PMEVCNTSVR2_EL1", "PMEVCNTSVR2_EL1", 0x8742, true, false, {} }, // 636 4157 { "PMEVCNTSVR30_EL1", "PMEVCNTSVR30_EL1", 0x875E, true, false, {} }, // 637 4158 { "PMEVCNTSVR3_EL1", "PMEVCNTSVR3_EL1", 0x8743, true, false, {} }, // 638 4159 { "PMEVCNTSVR4_EL1", "PMEVCNTSVR4_EL1", 0x8744, true, false, {} }, // 639 4160 { "PMEVCNTSVR5_EL1", "PMEVCNTSVR5_EL1", 0x8745, true, false, {} }, // 640 4161 { "PMEVCNTSVR6_EL1", "PMEVCNTSVR6_EL1", 0x8746, true, false, {} }, // 641 4162 { "PMEVCNTSVR7_EL1", "PMEVCNTSVR7_EL1", 0x8747, true, false, {} }, // 642 4163 { "PMEVCNTSVR8_EL1", "PMEVCNTSVR8_EL1", 0x8748, true, false, {} }, // 643 4164 { "PMEVCNTSVR9_EL1", "PMEVCNTSVR9_EL1", 0x8749, true, false, {} }, // 644 4165 { "PMEVTYPER0_EL0", "PMEVTYPER0_EL0", 0xDF60, true, true, {} }, // 645 4166 { "PMEVTYPER10_EL0", "PMEVTYPER10_EL0", 0xDF6A, true, true, {} }, // 646 4167 { "PMEVTYPER11_EL0", "PMEVTYPER11_EL0", 0xDF6B, true, true, {} }, // 647 4168 { "PMEVTYPER12_EL0", "PMEVTYPER12_EL0", 0xDF6C, true, true, {} }, // 648 4169 { "PMEVTYPER13_EL0", "PMEVTYPER13_EL0", 0xDF6D, true, true, {} }, // 649 4170 { "PMEVTYPER14_EL0", "PMEVTYPER14_EL0", 0xDF6E, true, true, {} }, // 650 4171 { "PMEVTYPER15_EL0", "PMEVTYPER15_EL0", 0xDF6F, true, true, {} }, // 651 4172 { "PMEVTYPER16_EL0", "PMEVTYPER16_EL0", 0xDF70, true, true, {} }, // 652 4173 { "PMEVTYPER17_EL0", "PMEVTYPER17_EL0", 0xDF71, true, true, {} }, // 653 4174 { "PMEVTYPER18_EL0", "PMEVTYPER18_EL0", 0xDF72, true, true, {} }, // 654 4175 { "PMEVTYPER19_EL0", "PMEVTYPER19_EL0", 0xDF73, true, true, {} }, // 655 4176 { "PMEVTYPER1_EL0", "PMEVTYPER1_EL0", 0xDF61, true, true, {} }, // 656 4177 { "PMEVTYPER20_EL0", "PMEVTYPER20_EL0", 0xDF74, true, true, {} }, // 657 4178 { "PMEVTYPER21_EL0", "PMEVTYPER21_EL0", 0xDF75, true, true, {} }, // 658 4179 { "PMEVTYPER22_EL0", "PMEVTYPER22_EL0", 0xDF76, true, true, {} }, // 659 4180 { "PMEVTYPER23_EL0", "PMEVTYPER23_EL0", 0xDF77, true, true, {} }, // 660 4181 { "PMEVTYPER24_EL0", "PMEVTYPER24_EL0", 0xDF78, true, true, {} }, // 661 4182 { "PMEVTYPER25_EL0", "PMEVTYPER25_EL0", 0xDF79, true, true, {} }, // 662 4183 { "PMEVTYPER26_EL0", "PMEVTYPER26_EL0", 0xDF7A, true, true, {} }, // 663 4184 { "PMEVTYPER27_EL0", "PMEVTYPER27_EL0", 0xDF7B, true, true, {} }, // 664 4185 { "PMEVTYPER28_EL0", "PMEVTYPER28_EL0", 0xDF7C, true, true, {} }, // 665 4186 { "PMEVTYPER29_EL0", "PMEVTYPER29_EL0", 0xDF7D, true, true, {} }, // 666 4187 { "PMEVTYPER2_EL0", "PMEVTYPER2_EL0", 0xDF62, true, true, {} }, // 667 4188 { "PMEVTYPER30_EL0", "PMEVTYPER30_EL0", 0xDF7E, true, true, {} }, // 668 4189 { "PMEVTYPER3_EL0", "PMEVTYPER3_EL0", 0xDF63, true, true, {} }, // 669 4190 { "PMEVTYPER4_EL0", "PMEVTYPER4_EL0", 0xDF64, true, true, {} }, // 670 4191 { "PMEVTYPER5_EL0", "PMEVTYPER5_EL0", 0xDF65, true, true, {} }, // 671 4192 { "PMEVTYPER6_EL0", "PMEVTYPER6_EL0", 0xDF66, true, true, {} }, // 672 4193 { "PMEVTYPER7_EL0", "PMEVTYPER7_EL0", 0xDF67, true, true, {} }, // 673 4194 { "PMEVTYPER8_EL0", "PMEVTYPER8_EL0", 0xDF68, true, true, {} }, // 674 4195 { "PMEVTYPER9_EL0", "PMEVTYPER9_EL0", 0xDF69, true, true, {} }, // 675 4196 { "PMIAR_EL1", "PMIAR_EL1", 0xC4F7, true, true, {} }, // 676 4197 { "PMICFILTR_EL0", "PMICFILTR_EL0", 0xDCB0, true, true, {} }, // 677 4198 { "PMICNTR_EL0", "PMICNTR_EL0", 0xDCA0, true, true, {} }, // 678 4199 { "PMICNTSVR_EL1", "PMICNTSVR_EL1", 0x8760, true, false, {} }, // 679 4200 { "PMINTENCLR_EL1", "PMINTENCLR_EL1", 0xC4F2, true, true, {} }, // 680 4201 { "PMINTENSET_EL1", "PMINTENSET_EL1", 0xC4F1, true, true, {} }, // 681 4202 { "PMMIR_EL1", "PMMIR_EL1", 0xC4F6, true, false, {} }, // 682 4203 { "PMOVSCLR_EL0", "PMOVSCLR_EL0", 0xDCE3, true, true, {} }, // 683 4204 { "PMOVSSET_EL0", "PMOVSSET_EL0", 0xDCF3, true, true, {} }, // 684 4205 { "PMSCR_EL1", "PMSCR_EL1", 0xC4C8, true, true, {AArch64::FeatureSPE} }, // 685 4206 { "PMSCR_EL12", "PMSCR_EL12", 0xECC8, true, true, {AArch64::FeatureSPE} }, // 686 4207 { "PMSCR_EL2", "PMSCR_EL2", 0xE4C8, true, true, {AArch64::FeatureSPE} }, // 687 4208 { "PMSDSFR_EL1", "PMSDSFR_EL1", 0xC4D4, true, true, {} }, // 688 4209 { "PMSELR_EL0", "PMSELR_EL0", 0xDCE5, true, true, {} }, // 689 4210 { "PMSEVFR_EL1", "PMSEVFR_EL1", 0xC4CD, true, true, {AArch64::FeatureSPE} }, // 690 4211 { "PMSFCR_EL1", "PMSFCR_EL1", 0xC4CC, true, true, {AArch64::FeatureSPE} }, // 691 4212 { "PMSICR_EL1", "PMSICR_EL1", 0xC4CA, true, true, {AArch64::FeatureSPE} }, // 692 4213 { "PMSIDR_EL1", "PMSIDR_EL1", 0xC4CF, true, false, {AArch64::FeatureSPE} }, // 693 4214 { "PMSIRR_EL1", "PMSIRR_EL1", 0xC4CB, true, true, {AArch64::FeatureSPE} }, // 694 4215 { "PMSLATFR_EL1", "PMSLATFR_EL1", 0xC4CE, true, true, {AArch64::FeatureSPE} }, // 695 4216 { "PMSNEVFR_EL1", "PMSNEVFR_EL1", 0xC4C9, true, true, {AArch64::FeatureSPE_EEF} }, // 696 4217 { "PMSSCR_EL1", "PMSSCR_EL1", 0xC4EB, true, true, {} }, // 697 4218 { "PMSWINC_EL0", "PMSWINC_EL0", 0xDCE4, false, true, {} }, // 698 4219 { "PMUACR_EL1", "PMUACR_EL1", 0xC4F4, true, true, {} }, // 699 4220 { "PMUSERENR_EL0", "PMUSERENR_EL0", 0xDCF0, true, true, {} }, // 700 4221 { "PMXEVCNTR_EL0", "PMXEVCNTR_EL0", 0xDCEA, true, true, {} }, // 701 4222 { "PMXEVTYPER_EL0", "PMXEVTYPER_EL0", 0xDCE9, true, true, {} }, // 702 4223 { "PMZR_EL0", "PMZR_EL0", 0xDCEC, false, true, {} }, // 703 4224 { "POR_EL0", "POR_EL0", 0xDD14, true, true, {} }, // 704 4225 { "POR_EL1", "POR_EL1", 0xC514, true, true, {} }, // 705 4226 { "POR_EL12", "POR_EL12", 0xED14, true, true, {} }, // 706 4227 { "POR_EL2", "POR_EL2", 0xE514, true, true, {} }, // 707 4228 { "POR_EL3", "POR_EL3", 0xF514, true, true, {} }, // 708 4229 { "PRBAR10_EL1", "PRBAR10_EL1", 0xC368, true, true, {AArch64::HasV8_0rOps} }, // 709 4230 { "PRBAR10_EL2", "PRBAR10_EL2", 0xE368, true, true, {AArch64::HasV8_0rOps} }, // 710 4231 { "PRBAR11_EL1", "PRBAR11_EL1", 0xC36C, true, true, {AArch64::HasV8_0rOps} }, // 711 4232 { "PRBAR11_EL2", "PRBAR11_EL2", 0xE36C, true, true, {AArch64::HasV8_0rOps} }, // 712 4233 { "PRBAR12_EL1", "PRBAR12_EL1", 0xC370, true, true, {AArch64::HasV8_0rOps} }, // 713 4234 { "PRBAR12_EL2", "PRBAR12_EL2", 0xE370, true, true, {AArch64::HasV8_0rOps} }, // 714 4235 { "PRBAR13_EL1", "PRBAR13_EL1", 0xC374, true, true, {AArch64::HasV8_0rOps} }, // 715 4236 { "PRBAR13_EL2", "PRBAR13_EL2", 0xE374, true, true, {AArch64::HasV8_0rOps} }, // 716 4237 { "PRBAR14_EL1", "PRBAR14_EL1", 0xC378, true, true, {AArch64::HasV8_0rOps} }, // 717 4238 { "PRBAR14_EL2", "PRBAR14_EL2", 0xE378, true, true, {AArch64::HasV8_0rOps} }, // 718 4239 { "PRBAR15_EL1", "PRBAR15_EL1", 0xC37C, true, true, {AArch64::HasV8_0rOps} }, // 719 4240 { "PRBAR15_EL2", "PRBAR15_EL2", 0xE37C, true, true, {AArch64::HasV8_0rOps} }, // 720 4241 { "PRBAR1_EL1", "PRBAR1_EL1", 0xC344, true, true, {AArch64::HasV8_0rOps} }, // 721 4242 { "PRBAR1_EL2", "PRBAR1_EL2", 0xE344, true, true, {AArch64::HasV8_0rOps} }, // 722 4243 { "PRBAR2_EL1", "PRBAR2_EL1", 0xC348, true, true, {AArch64::HasV8_0rOps} }, // 723 4244 { "PRBAR2_EL2", "PRBAR2_EL2", 0xE348, true, true, {AArch64::HasV8_0rOps} }, // 724 4245 { "PRBAR3_EL1", "PRBAR3_EL1", 0xC34C, true, true, {AArch64::HasV8_0rOps} }, // 725 4246 { "PRBAR3_EL2", "PRBAR3_EL2", 0xE34C, true, true, {AArch64::HasV8_0rOps} }, // 726 4247 { "PRBAR4_EL1", "PRBAR4_EL1", 0xC350, true, true, {AArch64::HasV8_0rOps} }, // 727 4248 { "PRBAR4_EL2", "PRBAR4_EL2", 0xE350, true, true, {AArch64::HasV8_0rOps} }, // 728 4249 { "PRBAR5_EL1", "PRBAR5_EL1", 0xC354, true, true, {AArch64::HasV8_0rOps} }, // 729 4250 { "PRBAR5_EL2", "PRBAR5_EL2", 0xE354, true, true, {AArch64::HasV8_0rOps} }, // 730 4251 { "PRBAR6_EL1", "PRBAR6_EL1", 0xC358, true, true, {AArch64::HasV8_0rOps} }, // 731 4252 { "PRBAR6_EL2", "PRBAR6_EL2", 0xE358, true, true, {AArch64::HasV8_0rOps} }, // 732 4253 { "PRBAR7_EL1", "PRBAR7_EL1", 0xC35C, true, true, {AArch64::HasV8_0rOps} }, // 733 4254 { "PRBAR7_EL2", "PRBAR7_EL2", 0xE35C, true, true, {AArch64::HasV8_0rOps} }, // 734 4255 { "PRBAR8_EL1", "PRBAR8_EL1", 0xC360, true, true, {AArch64::HasV8_0rOps} }, // 735 4256 { "PRBAR8_EL2", "PRBAR8_EL2", 0xE360, true, true, {AArch64::HasV8_0rOps} }, // 736 4257 { "PRBAR9_EL1", "PRBAR9_EL1", 0xC364, true, true, {AArch64::HasV8_0rOps} }, // 737 4258 { "PRBAR9_EL2", "PRBAR9_EL2", 0xE364, true, true, {AArch64::HasV8_0rOps} }, // 738 4259 { "PRBAR_EL1", "PRBAR_EL1", 0xC340, true, true, {AArch64::HasV8_0rOps} }, // 739 4260 { "PRBAR_EL2", "PRBAR_EL2", 0xE340, true, true, {AArch64::HasV8_0rOps} }, // 740 4261 { "PRENR_EL1", "PRENR_EL1", 0xC309, true, true, {AArch64::HasV8_0rOps} }, // 741 4262 { "PRENR_EL2", "PRENR_EL2", 0xE309, true, true, {AArch64::HasV8_0rOps} }, // 742 4263 { "PRLAR10_EL1", "PRLAR10_EL1", 0xC369, true, true, {AArch64::HasV8_0rOps} }, // 743 4264 { "PRLAR10_EL2", "PRLAR10_EL2", 0xE369, true, true, {AArch64::HasV8_0rOps} }, // 744 4265 { "PRLAR11_EL1", "PRLAR11_EL1", 0xC36D, true, true, {AArch64::HasV8_0rOps} }, // 745 4266 { "PRLAR11_EL2", "PRLAR11_EL2", 0xE36D, true, true, {AArch64::HasV8_0rOps} }, // 746 4267 { "PRLAR12_EL1", "PRLAR12_EL1", 0xC371, true, true, {AArch64::HasV8_0rOps} }, // 747 4268 { "PRLAR12_EL2", "PRLAR12_EL2", 0xE371, true, true, {AArch64::HasV8_0rOps} }, // 748 4269 { "PRLAR13_EL1", "PRLAR13_EL1", 0xC375, true, true, {AArch64::HasV8_0rOps} }, // 749 4270 { "PRLAR13_EL2", "PRLAR13_EL2", 0xE375, true, true, {AArch64::HasV8_0rOps} }, // 750 4271 { "PRLAR14_EL1", "PRLAR14_EL1", 0xC379, true, true, {AArch64::HasV8_0rOps} }, // 751 4272 { "PRLAR14_EL2", "PRLAR14_EL2", 0xE379, true, true, {AArch64::HasV8_0rOps} }, // 752 4273 { "PRLAR15_EL1", "PRLAR15_EL1", 0xC37D, true, true, {AArch64::HasV8_0rOps} }, // 753 4274 { "PRLAR15_EL2", "PRLAR15_EL2", 0xE37D, true, true, {AArch64::HasV8_0rOps} }, // 754 4275 { "PRLAR1_EL1", "PRLAR1_EL1", 0xC345, true, true, {AArch64::HasV8_0rOps} }, // 755 4276 { "PRLAR1_EL2", "PRLAR1_EL2", 0xE345, true, true, {AArch64::HasV8_0rOps} }, // 756 4277 { "PRLAR2_EL1", "PRLAR2_EL1", 0xC349, true, true, {AArch64::HasV8_0rOps} }, // 757 4278 { "PRLAR2_EL2", "PRLAR2_EL2", 0xE349, true, true, {AArch64::HasV8_0rOps} }, // 758 4279 { "PRLAR3_EL1", "PRLAR3_EL1", 0xC34D, true, true, {AArch64::HasV8_0rOps} }, // 759 4280 { "PRLAR3_EL2", "PRLAR3_EL2", 0xE34D, true, true, {AArch64::HasV8_0rOps} }, // 760 4281 { "PRLAR4_EL1", "PRLAR4_EL1", 0xC351, true, true, {AArch64::HasV8_0rOps} }, // 761 4282 { "PRLAR4_EL2", "PRLAR4_EL2", 0xE351, true, true, {AArch64::HasV8_0rOps} }, // 762 4283 { "PRLAR5_EL1", "PRLAR5_EL1", 0xC355, true, true, {AArch64::HasV8_0rOps} }, // 763 4284 { "PRLAR5_EL2", "PRLAR5_EL2", 0xE355, true, true, {AArch64::HasV8_0rOps} }, // 764 4285 { "PRLAR6_EL1", "PRLAR6_EL1", 0xC359, true, true, {AArch64::HasV8_0rOps} }, // 765 4286 { "PRLAR6_EL2", "PRLAR6_EL2", 0xE359, true, true, {AArch64::HasV8_0rOps} }, // 766 4287 { "PRLAR7_EL1", "PRLAR7_EL1", 0xC35D, true, true, {AArch64::HasV8_0rOps} }, // 767 4288 { "PRLAR7_EL2", "PRLAR7_EL2", 0xE35D, true, true, {AArch64::HasV8_0rOps} }, // 768 4289 { "PRLAR8_EL1", "PRLAR8_EL1", 0xC361, true, true, {AArch64::HasV8_0rOps} }, // 769 4290 { "PRLAR8_EL2", "PRLAR8_EL2", 0xE361, true, true, {AArch64::HasV8_0rOps} }, // 770 4291 { "PRLAR9_EL1", "PRLAR9_EL1", 0xC365, true, true, {AArch64::HasV8_0rOps} }, // 771 4292 { "PRLAR9_EL2", "PRLAR9_EL2", 0xE365, true, true, {AArch64::HasV8_0rOps} }, // 772 4293 { "PRLAR_EL1", "PRLAR_EL1", 0xC341, true, true, {AArch64::HasV8_0rOps} }, // 773 4294 { "PRLAR_EL2", "PRLAR_EL2", 0xE341, true, true, {AArch64::HasV8_0rOps} }, // 774 4295 { "PRSELR_EL1", "PRSELR_EL1", 0xC311, true, true, {AArch64::HasV8_0rOps} }, // 775 4296 { "PRSELR_EL2", "PRSELR_EL2", 0xE311, true, true, {AArch64::HasV8_0rOps} }, // 776 4297 { "RCWMASK_EL1", "RCWMASK_EL1", 0xC686, true, true, {AArch64::FeatureTHE} }, // 777 4298 { "RCWSMASK_EL1", "RCWSMASK_EL1", 0xC683, true, true, {AArch64::FeatureTHE} }, // 778 4299 { "REVIDR_EL1", "REVIDR_EL1", 0xC006, true, false, {} }, // 779 4300 { "RGSR_EL1", "RGSR_EL1", 0xC085, true, true, {AArch64::FeatureMTE} }, // 780 4301 { "RMR_EL1", "RMR_EL1", 0xC602, true, true, {} }, // 781 4302 { "RMR_EL2", "RMR_EL2", 0xE602, true, true, {} }, // 782 4303 { "RMR_EL3", "RMR_EL3", 0xF602, true, true, {} }, // 783 4304 { "RNDR", "RNDR", 0xD920, true, false, {AArch64::FeatureRandGen} }, // 784 4305 { "RNDRRS", "RNDRRS", 0xD921, true, false, {AArch64::FeatureRandGen} }, // 785 4306 { "RVBAR_EL1", "RVBAR_EL1", 0xC601, true, false, {} }, // 786 4307 { "RVBAR_EL2", "RVBAR_EL2", 0xE601, true, false, {} }, // 787 4308 { "RVBAR_EL3", "RVBAR_EL3", 0xF601, true, false, {} }, // 788 4309 { "S2PIR_EL2", "S2PIR_EL2", 0xE515, true, true, {} }, // 789 4310 { "S2POR_EL1", "S2POR_EL1", 0xC515, true, true, {} }, // 790 4311 { "SCR_EL3", "SCR_EL3", 0xF088, true, true, {} }, // 791 4312 { "SCTLR2_EL1", "SCTLR2_EL1", 0xC083, true, true, {} }, // 792 4313 { "SCTLR2_EL12", "SCTLR2_EL12", 0xE883, true, true, {} }, // 793 4314 { "SCTLR2_EL2", "SCTLR2_EL2", 0xE083, true, true, {} }, // 794 4315 { "SCTLR2_EL3", "SCTLR2_EL3", 0xF083, true, true, {} }, // 795 4316 { "SCTLR_EL1", "SCTLR_EL1", 0xC080, true, true, {} }, // 796 4317 { "SCTLR_EL12", "SCTLR_EL12", 0xE880, true, true, {AArch64::FeatureVH} }, // 797 4318 { "SCTLR_EL2", "SCTLR_EL2", 0xE080, true, true, {} }, // 798 4319 { "SCTLR_EL3", "SCTLR_EL3", 0xF080, true, true, {} }, // 799 4320 { "SCXTNUM_EL0", "SCXTNUM_EL0", 0xDE87, true, true, {AArch64::FeatureSpecRestrict} }, // 800 4321 { "SCXTNUM_EL1", "SCXTNUM_EL1", 0xC687, true, true, {AArch64::FeatureSpecRestrict} }, // 801 4322 { "SCXTNUM_EL12", "SCXTNUM_EL12", 0xEE87, true, true, {AArch64::FeatureSpecRestrict} }, // 802 4323 { "SCXTNUM_EL2", "SCXTNUM_EL2", 0xE687, true, true, {AArch64::FeatureSpecRestrict} }, // 803 4324 { "SCXTNUM_EL3", "SCXTNUM_EL3", 0xF687, true, true, {AArch64::FeatureSpecRestrict} }, // 804 4325 { "SDER32_EL2", "SDER32_EL2", 0xE099, true, true, {AArch64::FeatureSEL2} }, // 805 4326 { "SDER32_EL3", "SDER32_EL3", 0xF089, true, true, {} }, // 806 4327 { "SMCR_EL1", "SMCR_EL1", 0xC096, true, true, {AArch64::FeatureSME} }, // 807 4328 { "SMCR_EL12", "SMCR_EL12", 0xE896, true, true, {AArch64::FeatureSME} }, // 808 4329 { "SMCR_EL2", "SMCR_EL2", 0xE096, true, true, {AArch64::FeatureSME} }, // 809 4330 { "SMCR_EL3", "SMCR_EL3", 0xF096, true, true, {AArch64::FeatureSME} }, // 810 4331 { "SMIDR_EL1", "SMIDR_EL1", 0xC806, true, false, {AArch64::FeatureSME} }, // 811 4332 { "SMPRIMAP_EL2", "SMPRIMAP_EL2", 0xE095, true, true, {AArch64::FeatureSME} }, // 812 4333 { "SMPRI_EL1", "SMPRI_EL1", 0xC094, true, true, {AArch64::FeatureSME} }, // 813 4334 { "SPMACCESSR_EL1", "SPMACCESSR_EL1", 0x84EB, true, true, {} }, // 814 4335 { "SPMACCESSR_EL12", "SPMACCESSR_EL12", 0xACEB, true, true, {} }, // 815 4336 { "SPMACCESSR_EL2", "SPMACCESSR_EL2", 0xA4EB, true, true, {} }, // 816 4337 { "SPMACCESSR_EL3", "SPMACCESSR_EL3", 0xB4EB, true, true, {} }, // 817 4338 { "SPMCFGR_EL1", "SPMCFGR_EL1", 0x84EF, true, false, {} }, // 818 4339 { "SPMCGCR0_EL1", "SPMCGCR0_EL1", 0x84E8, true, false, {} }, // 819 4340 { "SPMCGCR1_EL1", "SPMCGCR1_EL1", 0x84E9, true, false, {} }, // 820 4341 { "SPMCNTENCLR_EL0", "SPMCNTENCLR_EL0", 0x9CE2, true, true, {} }, // 821 4342 { "SPMCNTENSET_EL0", "SPMCNTENSET_EL0", 0x9CE1, true, true, {} }, // 822 4343 { "SPMCR_EL0", "SPMCR_EL0", 0x9CE0, true, true, {} }, // 823 4344 { "SPMDEVAFF_EL1", "SPMDEVAFF_EL1", 0x84EE, true, false, {} }, // 824 4345 { "SPMDEVARCH_EL1", "SPMDEVARCH_EL1", 0x84ED, true, false, {} }, // 825 4346 { "SPMEVCNTR0_EL0", "SPMEVCNTR0_EL0", 0x9F00, true, true, {} }, // 826 4347 { "SPMEVCNTR10_EL0", "SPMEVCNTR10_EL0", 0x9F0A, true, true, {} }, // 827 4348 { "SPMEVCNTR11_EL0", "SPMEVCNTR11_EL0", 0x9F0B, true, true, {} }, // 828 4349 { "SPMEVCNTR12_EL0", "SPMEVCNTR12_EL0", 0x9F0C, true, true, {} }, // 829 4350 { "SPMEVCNTR13_EL0", "SPMEVCNTR13_EL0", 0x9F0D, true, true, {} }, // 830 4351 { "SPMEVCNTR14_EL0", "SPMEVCNTR14_EL0", 0x9F0E, true, true, {} }, // 831 4352 { "SPMEVCNTR15_EL0", "SPMEVCNTR15_EL0", 0x9F0F, true, true, {} }, // 832 4353 { "SPMEVCNTR1_EL0", "SPMEVCNTR1_EL0", 0x9F01, true, true, {} }, // 833 4354 { "SPMEVCNTR2_EL0", "SPMEVCNTR2_EL0", 0x9F02, true, true, {} }, // 834 4355 { "SPMEVCNTR3_EL0", "SPMEVCNTR3_EL0", 0x9F03, true, true, {} }, // 835 4356 { "SPMEVCNTR4_EL0", "SPMEVCNTR4_EL0", 0x9F04, true, true, {} }, // 836 4357 { "SPMEVCNTR5_EL0", "SPMEVCNTR5_EL0", 0x9F05, true, true, {} }, // 837 4358 { "SPMEVCNTR6_EL0", "SPMEVCNTR6_EL0", 0x9F06, true, true, {} }, // 838 4359 { "SPMEVCNTR7_EL0", "SPMEVCNTR7_EL0", 0x9F07, true, true, {} }, // 839 4360 { "SPMEVCNTR8_EL0", "SPMEVCNTR8_EL0", 0x9F08, true, true, {} }, // 840 4361 { "SPMEVCNTR9_EL0", "SPMEVCNTR9_EL0", 0x9F09, true, true, {} }, // 841 4362 { "SPMEVFILT2R0_EL0", "SPMEVFILT2R0_EL0", 0x9F30, true, true, {} }, // 842 4363 { "SPMEVFILT2R10_EL0", "SPMEVFILT2R10_EL0", 0x9F3A, true, true, {} }, // 843 4364 { "SPMEVFILT2R11_EL0", "SPMEVFILT2R11_EL0", 0x9F3B, true, true, {} }, // 844 4365 { "SPMEVFILT2R12_EL0", "SPMEVFILT2R12_EL0", 0x9F3C, true, true, {} }, // 845 4366 { "SPMEVFILT2R13_EL0", "SPMEVFILT2R13_EL0", 0x9F3D, true, true, {} }, // 846 4367 { "SPMEVFILT2R14_EL0", "SPMEVFILT2R14_EL0", 0x9F3E, true, true, {} }, // 847 4368 { "SPMEVFILT2R15_EL0", "SPMEVFILT2R15_EL0", 0x9F3F, true, true, {} }, // 848 4369 { "SPMEVFILT2R1_EL0", "SPMEVFILT2R1_EL0", 0x9F31, true, true, {} }, // 849 4370 { "SPMEVFILT2R2_EL0", "SPMEVFILT2R2_EL0", 0x9F32, true, true, {} }, // 850 4371 { "SPMEVFILT2R3_EL0", "SPMEVFILT2R3_EL0", 0x9F33, true, true, {} }, // 851 4372 { "SPMEVFILT2R4_EL0", "SPMEVFILT2R4_EL0", 0x9F34, true, true, {} }, // 852 4373 { "SPMEVFILT2R5_EL0", "SPMEVFILT2R5_EL0", 0x9F35, true, true, {} }, // 853 4374 { "SPMEVFILT2R6_EL0", "SPMEVFILT2R6_EL0", 0x9F36, true, true, {} }, // 854 4375 { "SPMEVFILT2R7_EL0", "SPMEVFILT2R7_EL0", 0x9F37, true, true, {} }, // 855 4376 { "SPMEVFILT2R8_EL0", "SPMEVFILT2R8_EL0", 0x9F38, true, true, {} }, // 856 4377 { "SPMEVFILT2R9_EL0", "SPMEVFILT2R9_EL0", 0x9F39, true, true, {} }, // 857 4378 { "SPMEVFILTR0_EL0", "SPMEVFILTR0_EL0", 0x9F20, true, true, {} }, // 858 4379 { "SPMEVFILTR10_EL0", "SPMEVFILTR10_EL0", 0x9F2A, true, true, {} }, // 859 4380 { "SPMEVFILTR11_EL0", "SPMEVFILTR11_EL0", 0x9F2B, true, true, {} }, // 860 4381 { "SPMEVFILTR12_EL0", "SPMEVFILTR12_EL0", 0x9F2C, true, true, {} }, // 861 4382 { "SPMEVFILTR13_EL0", "SPMEVFILTR13_EL0", 0x9F2D, true, true, {} }, // 862 4383 { "SPMEVFILTR14_EL0", "SPMEVFILTR14_EL0", 0x9F2E, true, true, {} }, // 863 4384 { "SPMEVFILTR15_EL0", "SPMEVFILTR15_EL0", 0x9F2F, true, true, {} }, // 864 4385 { "SPMEVFILTR1_EL0", "SPMEVFILTR1_EL0", 0x9F21, true, true, {} }, // 865 4386 { "SPMEVFILTR2_EL0", "SPMEVFILTR2_EL0", 0x9F22, true, true, {} }, // 866 4387 { "SPMEVFILTR3_EL0", "SPMEVFILTR3_EL0", 0x9F23, true, true, {} }, // 867 4388 { "SPMEVFILTR4_EL0", "SPMEVFILTR4_EL0", 0x9F24, true, true, {} }, // 868 4389 { "SPMEVFILTR5_EL0", "SPMEVFILTR5_EL0", 0x9F25, true, true, {} }, // 869 4390 { "SPMEVFILTR6_EL0", "SPMEVFILTR6_EL0", 0x9F26, true, true, {} }, // 870 4391 { "SPMEVFILTR7_EL0", "SPMEVFILTR7_EL0", 0x9F27, true, true, {} }, // 871 4392 { "SPMEVFILTR8_EL0", "SPMEVFILTR8_EL0", 0x9F28, true, true, {} }, // 872 4393 { "SPMEVFILTR9_EL0", "SPMEVFILTR9_EL0", 0x9F29, true, true, {} }, // 873 4394 { "SPMEVTYPER0_EL0", "SPMEVTYPER0_EL0", 0x9F10, true, true, {} }, // 874 4395 { "SPMEVTYPER10_EL0", "SPMEVTYPER10_EL0", 0x9F1A, true, true, {} }, // 875 4396 { "SPMEVTYPER11_EL0", "SPMEVTYPER11_EL0", 0x9F1B, true, true, {} }, // 876 4397 { "SPMEVTYPER12_EL0", "SPMEVTYPER12_EL0", 0x9F1C, true, true, {} }, // 877 4398 { "SPMEVTYPER13_EL0", "SPMEVTYPER13_EL0", 0x9F1D, true, true, {} }, // 878 4399 { "SPMEVTYPER14_EL0", "SPMEVTYPER14_EL0", 0x9F1E, true, true, {} }, // 879 4400 { "SPMEVTYPER15_EL0", "SPMEVTYPER15_EL0", 0x9F1F, true, true, {} }, // 880 4401 { "SPMEVTYPER1_EL0", "SPMEVTYPER1_EL0", 0x9F11, true, true, {} }, // 881 4402 { "SPMEVTYPER2_EL0", "SPMEVTYPER2_EL0", 0x9F12, true, true, {} }, // 882 4403 { "SPMEVTYPER3_EL0", "SPMEVTYPER3_EL0", 0x9F13, true, true, {} }, // 883 4404 { "SPMEVTYPER4_EL0", "SPMEVTYPER4_EL0", 0x9F14, true, true, {} }, // 884 4405 { "SPMEVTYPER5_EL0", "SPMEVTYPER5_EL0", 0x9F15, true, true, {} }, // 885 4406 { "SPMEVTYPER6_EL0", "SPMEVTYPER6_EL0", 0x9F16, true, true, {} }, // 886 4407 { "SPMEVTYPER7_EL0", "SPMEVTYPER7_EL0", 0x9F17, true, true, {} }, // 887 4408 { "SPMEVTYPER8_EL0", "SPMEVTYPER8_EL0", 0x9F18, true, true, {} }, // 888 4409 { "SPMEVTYPER9_EL0", "SPMEVTYPER9_EL0", 0x9F19, true, true, {} }, // 889 4410 { "SPMIIDR_EL1", "SPMIIDR_EL1", 0x84EC, true, false, {} }, // 890 4411 { "SPMINTENCLR_EL1", "SPMINTENCLR_EL1", 0x84F2, true, true, {} }, // 891 4412 { "SPMINTENSET_EL1", "SPMINTENSET_EL1", 0x84F1, true, true, {} }, // 892 4413 { "SPMOVSCLR_EL0", "SPMOVSCLR_EL0", 0x9CE3, true, true, {} }, // 893 4414 { "SPMOVSSET_EL0", "SPMOVSSET_EL0", 0x9CF3, true, true, {} }, // 894 4415 { "SPMROOTCR_EL3", "SPMROOTCR_EL3", 0xB4F7, true, true, {} }, // 895 4416 { "SPMSCR_EL1", "SPMSCR_EL1", 0xBCF7, true, true, {} }, // 896 4417 { "SPMSELR_EL0", "SPMSELR_EL0", 0x9CE5, true, true, {} }, // 897 4418 { "SPSel", "SPSel", 0xC210, true, true, {} }, // 898 4419 { "SPSR_abt", "SPSR_abt", 0xE219, true, true, {} }, // 899 4420 { "SPSR_EL1", "SPSR_EL1", 0xC200, true, true, {} }, // 900 4421 { "SPSR_EL12", "SPSR_EL12", 0xEA00, true, true, {AArch64::FeatureVH} }, // 901 4422 { "SPSR_EL2", "SPSR_EL2", 0xE200, true, true, {} }, // 902 4423 { "SPSR_EL3", "SPSR_EL3", 0xF200, true, true, {} }, // 903 4424 { "SPSR_fiq", "SPSR_fiq", 0xE21B, true, true, {} }, // 904 4425 { "SPSR_irq", "SPSR_irq", 0xE218, true, true, {} }, // 905 4426 { "SPSR_und", "SPSR_und", 0xE21A, true, true, {} }, // 906 4427 { "SP_EL0", "SP_EL0", 0xC208, true, true, {} }, // 907 4428 { "SP_EL1", "SP_EL1", 0xE208, true, true, {} }, // 908 4429 { "SP_EL2", "SP_EL2", 0xF208, true, true, {} }, // 909 4430 { "SSBS", "SSBS", 0xDA16, true, true, {AArch64::FeatureSSBS} }, // 910 4431 { "SVCR", "SVCR", 0xDA12, true, true, {AArch64::FeatureSME} }, // 911 4432 { "TCO", "TCO", 0xDA17, true, true, {AArch64::FeatureMTE} }, // 912 4433 { "TCR2_EL1", "TCR2_EL1", 0xC103, true, true, {} }, // 913 4434 { "TCR2_EL12", "TCR2_EL12", 0xE903, true, true, {} }, // 914 4435 { "TCR2_EL2", "TCR2_EL2", 0xE103, true, true, {} }, // 915 4436 { "TCR_EL1", "TCR_EL1", 0xC102, true, true, {} }, // 916 4437 { "TCR_EL12", "TCR_EL12", 0xE902, true, true, {AArch64::FeatureVH} }, // 917 4438 { "TCR_EL2", "TCR_EL2", 0xE102, true, true, {} }, // 918 4439 { "TCR_EL3", "TCR_EL3", 0xF102, true, true, {} }, // 919 4440 { "TEECR32_EL1", "TEECR32_EL1", 0x9000, true, true, {} }, // 920 4441 { "TEEHBR32_EL1", "TEEHBR32_EL1", 0x9080, true, true, {} }, // 921 4442 { "TFSRE0_EL1", "TFSRE0_EL1", 0xC2B1, true, true, {AArch64::FeatureMTE} }, // 922 4443 { "TFSR_EL1", "TFSR_EL1", 0xC2B0, true, true, {AArch64::FeatureMTE} }, // 923 4444 { "TFSR_EL12", "TFSR_EL12", 0xEAB0, true, true, {AArch64::FeatureMTE} }, // 924 4445 { "TFSR_EL2", "TFSR_EL2", 0xE2B0, true, true, {AArch64::FeatureMTE} }, // 925 4446 { "TFSR_EL3", "TFSR_EL3", 0xF2B0, true, true, {AArch64::FeatureMTE} }, // 926 4447 { "TPIDR2_EL0", "TPIDR2_EL0", 0xDE85, true, true, {AArch64::FeatureSME} }, // 927 4448 { "TPIDRRO_EL0", "TPIDRRO_EL0", 0xDE83, true, true, {} }, // 928 4449 { "TPIDR_EL0", "TPIDR_EL0", 0xDE82, true, true, {} }, // 929 4450 { "TPIDR_EL1", "TPIDR_EL1", 0xC684, true, true, {} }, // 930 4451 { "TPIDR_EL2", "TPIDR_EL2", 0xE682, true, true, {} }, // 931 4452 { "TPIDR_EL3", "TPIDR_EL3", 0xF682, true, true, {} }, // 932 4453 { "TRBBASER_EL1", "TRBBASER_EL1", 0xC4DA, true, true, {AArch64::FeatureTRBE} }, // 933 4454 { "TRBIDR_EL1", "TRBIDR_EL1", 0xC4DF, true, false, {AArch64::FeatureTRBE} }, // 934 4455 { "TRBLIMITR_EL1", "TRBLIMITR_EL1", 0xC4D8, true, true, {AArch64::FeatureTRBE} }, // 935 4456 { "TRBMAR_EL1", "TRBMAR_EL1", 0xC4DC, true, true, {AArch64::FeatureTRBE} }, // 936 4457 { "TRBPTR_EL1", "TRBPTR_EL1", 0xC4D9, true, true, {AArch64::FeatureTRBE} }, // 937 4458 { "TRBSR_EL1", "TRBSR_EL1", 0xC4DB, true, true, {AArch64::FeatureTRBE} }, // 938 4459 { "TRBTRG_EL1", "TRBTRG_EL1", 0xC4DE, true, true, {AArch64::FeatureTRBE} }, // 939 4460 { "TRCACATR0", "TRCACATR0", 0x8902, true, true, {} }, // 940 4461 { "TRCACATR1", "TRCACATR1", 0x8912, true, true, {} }, // 941 4462 { "TRCACATR10", "TRCACATR10", 0x8923, true, true, {} }, // 942 4463 { "TRCACATR11", "TRCACATR11", 0x8933, true, true, {} }, // 943 4464 { "TRCACATR12", "TRCACATR12", 0x8943, true, true, {} }, // 944 4465 { "TRCACATR13", "TRCACATR13", 0x8953, true, true, {} }, // 945 4466 { "TRCACATR14", "TRCACATR14", 0x8963, true, true, {} }, // 946 4467 { "TRCACATR15", "TRCACATR15", 0x8973, true, true, {} }, // 947 4468 { "TRCACATR2", "TRCACATR2", 0x8922, true, true, {} }, // 948 4469 { "TRCACATR3", "TRCACATR3", 0x8932, true, true, {} }, // 949 4470 { "TRCACATR4", "TRCACATR4", 0x8942, true, true, {} }, // 950 4471 { "TRCACATR5", "TRCACATR5", 0x8952, true, true, {} }, // 951 4472 { "TRCACATR6", "TRCACATR6", 0x8962, true, true, {} }, // 952 4473 { "TRCACATR7", "TRCACATR7", 0x8972, true, true, {} }, // 953 4474 { "TRCACATR8", "TRCACATR8", 0x8903, true, true, {} }, // 954 4475 { "TRCACATR9", "TRCACATR9", 0x8913, true, true, {} }, // 955 4476 { "TRCACVR0", "TRCACVR0", 0x8900, true, true, {} }, // 956 4477 { "TRCACVR1", "TRCACVR1", 0x8910, true, true, {} }, // 957 4478 { "TRCACVR10", "TRCACVR10", 0x8921, true, true, {} }, // 958 4479 { "TRCACVR11", "TRCACVR11", 0x8931, true, true, {} }, // 959 4480 { "TRCACVR12", "TRCACVR12", 0x8941, true, true, {} }, // 960 4481 { "TRCACVR13", "TRCACVR13", 0x8951, true, true, {} }, // 961 4482 { "TRCACVR14", "TRCACVR14", 0x8961, true, true, {} }, // 962 4483 { "TRCACVR15", "TRCACVR15", 0x8971, true, true, {} }, // 963 4484 { "TRCACVR2", "TRCACVR2", 0x8920, true, true, {} }, // 964 4485 { "TRCACVR3", "TRCACVR3", 0x8930, true, true, {} }, // 965 4486 { "TRCACVR4", "TRCACVR4", 0x8940, true, true, {} }, // 966 4487 { "TRCACVR5", "TRCACVR5", 0x8950, true, true, {} }, // 967 4488 { "TRCACVR6", "TRCACVR6", 0x8960, true, true, {} }, // 968 4489 { "TRCACVR7", "TRCACVR7", 0x8970, true, true, {} }, // 969 4490 { "TRCACVR8", "TRCACVR8", 0x8901, true, true, {} }, // 970 4491 { "TRCACVR9", "TRCACVR9", 0x8911, true, true, {} }, // 971 4492 { "TRCAUTHSTATUS", "TRCAUTHSTATUS", 0x8BF6, true, false, {} }, // 972 4493 { "TRCAUXCTLR", "TRCAUXCTLR", 0x8830, true, true, {} }, // 973 4494 { "TRCBBCTLR", "TRCBBCTLR", 0x8878, true, true, {} }, // 974 4495 { "TRCCCCTLR", "TRCCCCTLR", 0x8870, true, true, {} }, // 975 4496 { "TRCCIDCCTLR0", "TRCCIDCCTLR0", 0x8982, true, true, {} }, // 976 4497 { "TRCCIDCCTLR1", "TRCCIDCCTLR1", 0x898A, true, true, {} }, // 977 4498 { "TRCCIDCVR0", "TRCCIDCVR0", 0x8980, true, true, {} }, // 978 4499 { "TRCCIDCVR1", "TRCCIDCVR1", 0x8990, true, true, {} }, // 979 4500 { "TRCCIDCVR2", "TRCCIDCVR2", 0x89A0, true, true, {} }, // 980 4501 { "TRCCIDCVR3", "TRCCIDCVR3", 0x89B0, true, true, {} }, // 981 4502 { "TRCCIDCVR4", "TRCCIDCVR4", 0x89C0, true, true, {} }, // 982 4503 { "TRCCIDCVR5", "TRCCIDCVR5", 0x89D0, true, true, {} }, // 983 4504 { "TRCCIDCVR6", "TRCCIDCVR6", 0x89E0, true, true, {} }, // 984 4505 { "TRCCIDCVR7", "TRCCIDCVR7", 0x89F0, true, true, {} }, // 985 4506 { "TRCCIDR0", "TRCCIDR0", 0x8BE7, true, false, {} }, // 986 4507 { "TRCCIDR1", "TRCCIDR1", 0x8BEF, true, false, {} }, // 987 4508 { "TRCCIDR2", "TRCCIDR2", 0x8BF7, true, false, {} }, // 988 4509 { "TRCCIDR3", "TRCCIDR3", 0x8BFF, true, false, {} }, // 989 4510 { "TRCCLAIMCLR", "TRCCLAIMCLR", 0x8BCE, true, true, {} }, // 990 4511 { "TRCCLAIMSET", "TRCCLAIMSET", 0x8BC6, true, true, {} }, // 991 4512 { "TRCCNTCTLR0", "TRCCNTCTLR0", 0x8825, true, true, {} }, // 992 4513 { "TRCCNTCTLR1", "TRCCNTCTLR1", 0x882D, true, true, {} }, // 993 4514 { "TRCCNTCTLR2", "TRCCNTCTLR2", 0x8835, true, true, {} }, // 994 4515 { "TRCCNTCTLR3", "TRCCNTCTLR3", 0x883D, true, true, {} }, // 995 4516 { "TRCCNTRLDVR0", "TRCCNTRLDVR0", 0x8805, true, true, {} }, // 996 4517 { "TRCCNTRLDVR1", "TRCCNTRLDVR1", 0x880D, true, true, {} }, // 997 4518 { "TRCCNTRLDVR2", "TRCCNTRLDVR2", 0x8815, true, true, {} }, // 998 4519 { "TRCCNTRLDVR3", "TRCCNTRLDVR3", 0x881D, true, true, {} }, // 999 4520 { "TRCCNTVR0", "TRCCNTVR0", 0x8845, true, true, {} }, // 1000 4521 { "TRCCNTVR1", "TRCCNTVR1", 0x884D, true, true, {} }, // 1001 4522 { "TRCCNTVR2", "TRCCNTVR2", 0x8855, true, true, {} }, // 1002 4523 { "TRCCNTVR3", "TRCCNTVR3", 0x885D, true, true, {} }, // 1003 4524 { "TRCCONFIGR", "TRCCONFIGR", 0x8820, true, true, {} }, // 1004 4525 { "TRCDEVAFF0", "TRCDEVAFF0", 0x8BD6, true, false, {} }, // 1005 4526 { "TRCDEVAFF1", "TRCDEVAFF1", 0x8BDE, true, false, {} }, // 1006 4527 { "TRCDEVARCH", "TRCDEVARCH", 0x8BFE, true, false, {} }, // 1007 4528 { "TRCDEVID", "TRCDEVID", 0x8B97, true, false, {} }, // 1008 4529 { "TRCDEVTYPE", "TRCDEVTYPE", 0x8B9F, true, false, {} }, // 1009 4530 { "TRCDVCMR0", "TRCDVCMR0", 0x8906, true, true, {} }, // 1010 4531 { "TRCDVCMR1", "TRCDVCMR1", 0x8926, true, true, {} }, // 1011 4532 { "TRCDVCMR2", "TRCDVCMR2", 0x8946, true, true, {} }, // 1012 4533 { "TRCDVCMR3", "TRCDVCMR3", 0x8966, true, true, {} }, // 1013 4534 { "TRCDVCMR4", "TRCDVCMR4", 0x8907, true, true, {} }, // 1014 4535 { "TRCDVCMR5", "TRCDVCMR5", 0x8927, true, true, {} }, // 1015 4536 { "TRCDVCMR6", "TRCDVCMR6", 0x8947, true, true, {} }, // 1016 4537 { "TRCDVCMR7", "TRCDVCMR7", 0x8967, true, true, {} }, // 1017 4538 { "TRCDVCVR0", "TRCDVCVR0", 0x8904, true, true, {} }, // 1018 4539 { "TRCDVCVR1", "TRCDVCVR1", 0x8924, true, true, {} }, // 1019 4540 { "TRCDVCVR2", "TRCDVCVR2", 0x8944, true, true, {} }, // 1020 4541 { "TRCDVCVR3", "TRCDVCVR3", 0x8964, true, true, {} }, // 1021 4542 { "TRCDVCVR4", "TRCDVCVR4", 0x8905, true, true, {} }, // 1022 4543 { "TRCDVCVR5", "TRCDVCVR5", 0x8925, true, true, {} }, // 1023 4544 { "TRCDVCVR6", "TRCDVCVR6", 0x8945, true, true, {} }, // 1024 4545 { "TRCDVCVR7", "TRCDVCVR7", 0x8965, true, true, {} }, // 1025 4546 { "TRCEVENTCTL0R", "TRCEVENTCTL0R", 0x8840, true, true, {} }, // 1026 4547 { "TRCEVENTCTL1R", "TRCEVENTCTL1R", 0x8848, true, true, {} }, // 1027 4548 { "TRCEXTINSELR", "TRCEXTINSELR", 0x8844, true, true, {} }, // 1028 4549 { "TRCEXTINSELR0", "TRCEXTINSELR0", 0x8844, true, true, {AArch64::FeatureETE} }, // 1029 4550 { "TRCEXTINSELR1", "TRCEXTINSELR1", 0x884C, true, true, {AArch64::FeatureETE} }, // 1030 4551 { "TRCEXTINSELR2", "TRCEXTINSELR2", 0x8854, true, true, {AArch64::FeatureETE} }, // 1031 4552 { "TRCEXTINSELR3", "TRCEXTINSELR3", 0x885C, true, true, {AArch64::FeatureETE} }, // 1032 4553 { "TRCIDR0", "TRCIDR0", 0x8847, true, false, {} }, // 1033 4554 { "TRCIDR1", "TRCIDR1", 0x884F, true, false, {} }, // 1034 4555 { "TRCIDR10", "TRCIDR10", 0x8816, true, false, {} }, // 1035 4556 { "TRCIDR11", "TRCIDR11", 0x881E, true, false, {} }, // 1036 4557 { "TRCIDR12", "TRCIDR12", 0x8826, true, false, {} }, // 1037 4558 { "TRCIDR13", "TRCIDR13", 0x882E, true, false, {} }, // 1038 4559 { "TRCIDR2", "TRCIDR2", 0x8857, true, false, {} }, // 1039 4560 { "TRCIDR3", "TRCIDR3", 0x885F, true, false, {} }, // 1040 4561 { "TRCIDR4", "TRCIDR4", 0x8867, true, false, {} }, // 1041 4562 { "TRCIDR5", "TRCIDR5", 0x886F, true, false, {} }, // 1042 4563 { "TRCIDR6", "TRCIDR6", 0x8877, true, false, {} }, // 1043 4564 { "TRCIDR7", "TRCIDR7", 0x887F, true, false, {} }, // 1044 4565 { "TRCIDR8", "TRCIDR8", 0x8806, true, false, {} }, // 1045 4566 { "TRCIDR9", "TRCIDR9", 0x880E, true, false, {} }, // 1046 4567 { "TRCIMSPEC0", "TRCIMSPEC0", 0x8807, true, true, {} }, // 1047 4568 { "TRCIMSPEC1", "TRCIMSPEC1", 0x880F, true, true, {} }, // 1048 4569 { "TRCIMSPEC2", "TRCIMSPEC2", 0x8817, true, true, {} }, // 1049 4570 { "TRCIMSPEC3", "TRCIMSPEC3", 0x881F, true, true, {} }, // 1050 4571 { "TRCIMSPEC4", "TRCIMSPEC4", 0x8827, true, true, {} }, // 1051 4572 { "TRCIMSPEC5", "TRCIMSPEC5", 0x882F, true, true, {} }, // 1052 4573 { "TRCIMSPEC6", "TRCIMSPEC6", 0x8837, true, true, {} }, // 1053 4574 { "TRCIMSPEC7", "TRCIMSPEC7", 0x883F, true, true, {} }, // 1054 4575 { "TRCITCTRL", "TRCITCTRL", 0x8B84, true, true, {} }, // 1055 4576 { "TRCITECR_EL1", "TRCITECR_EL1", 0xC093, true, true, {AArch64::FeatureITE} }, // 1056 4577 { "TRCITECR_EL12", "TRCITECR_EL12", 0xE893, true, true, {AArch64::FeatureITE} }, // 1057 4578 { "TRCITECR_EL2", "TRCITECR_EL2", 0xE093, true, true, {AArch64::FeatureITE} }, // 1058 4579 { "TRCITEEDCR", "TRCITEEDCR", 0x8811, true, true, {AArch64::FeatureITE} }, // 1059 4580 { "TRCLAR", "TRCLAR", 0x8BE6, false, true, {} }, // 1060 4581 { "TRCLSR", "TRCLSR", 0x8BEE, true, false, {} }, // 1061 4582 { "TRCOSLAR", "TRCOSLAR", 0x8884, false, true, {} }, // 1062 4583 { "TRCOSLSR", "TRCOSLSR", 0x888C, true, false, {} }, // 1063 4584 { "TRCPDCR", "TRCPDCR", 0x88A4, true, true, {} }, // 1064 4585 { "TRCPDSR", "TRCPDSR", 0x88AC, true, false, {} }, // 1065 4586 { "TRCPIDR0", "TRCPIDR0", 0x8BC7, true, false, {} }, // 1066 4587 { "TRCPIDR1", "TRCPIDR1", 0x8BCF, true, false, {} }, // 1067 4588 { "TRCPIDR2", "TRCPIDR2", 0x8BD7, true, false, {} }, // 1068 4589 { "TRCPIDR3", "TRCPIDR3", 0x8BDF, true, false, {} }, // 1069 4590 { "TRCPIDR4", "TRCPIDR4", 0x8BA7, true, false, {} }, // 1070 4591 { "TRCPIDR5", "TRCPIDR5", 0x8BAF, true, false, {} }, // 1071 4592 { "TRCPIDR6", "TRCPIDR6", 0x8BB7, true, false, {} }, // 1072 4593 { "TRCPIDR7", "TRCPIDR7", 0x8BBF, true, false, {} }, // 1073 4594 { "TRCPRGCTLR", "TRCPRGCTLR", 0x8808, true, true, {} }, // 1074 4595 { "TRCPROCSELR", "TRCPROCSELR", 0x8810, true, true, {} }, // 1075 4596 { "TRCQCTLR", "TRCQCTLR", 0x8809, true, true, {} }, // 1076 4597 { "TRCRSCTLR10", "TRCRSCTLR10", 0x88D0, true, true, {} }, // 1077 4598 { "TRCRSCTLR11", "TRCRSCTLR11", 0x88D8, true, true, {} }, // 1078 4599 { "TRCRSCTLR12", "TRCRSCTLR12", 0x88E0, true, true, {} }, // 1079 4600 { "TRCRSCTLR13", "TRCRSCTLR13", 0x88E8, true, true, {} }, // 1080 4601 { "TRCRSCTLR14", "TRCRSCTLR14", 0x88F0, true, true, {} }, // 1081 4602 { "TRCRSCTLR15", "TRCRSCTLR15", 0x88F8, true, true, {} }, // 1082 4603 { "TRCRSCTLR16", "TRCRSCTLR16", 0x8881, true, true, {} }, // 1083 4604 { "TRCRSCTLR17", "TRCRSCTLR17", 0x8889, true, true, {} }, // 1084 4605 { "TRCRSCTLR18", "TRCRSCTLR18", 0x8891, true, true, {} }, // 1085 4606 { "TRCRSCTLR19", "TRCRSCTLR19", 0x8899, true, true, {} }, // 1086 4607 { "TRCRSCTLR2", "TRCRSCTLR2", 0x8890, true, true, {} }, // 1087 4608 { "TRCRSCTLR20", "TRCRSCTLR20", 0x88A1, true, true, {} }, // 1088 4609 { "TRCRSCTLR21", "TRCRSCTLR21", 0x88A9, true, true, {} }, // 1089 4610 { "TRCRSCTLR22", "TRCRSCTLR22", 0x88B1, true, true, {} }, // 1090 4611 { "TRCRSCTLR23", "TRCRSCTLR23", 0x88B9, true, true, {} }, // 1091 4612 { "TRCRSCTLR24", "TRCRSCTLR24", 0x88C1, true, true, {} }, // 1092 4613 { "TRCRSCTLR25", "TRCRSCTLR25", 0x88C9, true, true, {} }, // 1093 4614 { "TRCRSCTLR26", "TRCRSCTLR26", 0x88D1, true, true, {} }, // 1094 4615 { "TRCRSCTLR27", "TRCRSCTLR27", 0x88D9, true, true, {} }, // 1095 4616 { "TRCRSCTLR28", "TRCRSCTLR28", 0x88E1, true, true, {} }, // 1096 4617 { "TRCRSCTLR29", "TRCRSCTLR29", 0x88E9, true, true, {} }, // 1097 4618 { "TRCRSCTLR3", "TRCRSCTLR3", 0x8898, true, true, {} }, // 1098 4619 { "TRCRSCTLR30", "TRCRSCTLR30", 0x88F1, true, true, {} }, // 1099 4620 { "TRCRSCTLR31", "TRCRSCTLR31", 0x88F9, true, true, {} }, // 1100 4621 { "TRCRSCTLR4", "TRCRSCTLR4", 0x88A0, true, true, {} }, // 1101 4622 { "TRCRSCTLR5", "TRCRSCTLR5", 0x88A8, true, true, {} }, // 1102 4623 { "TRCRSCTLR6", "TRCRSCTLR6", 0x88B0, true, true, {} }, // 1103 4624 { "TRCRSCTLR7", "TRCRSCTLR7", 0x88B8, true, true, {} }, // 1104 4625 { "TRCRSCTLR8", "TRCRSCTLR8", 0x88C0, true, true, {} }, // 1105 4626 { "TRCRSCTLR9", "TRCRSCTLR9", 0x88C8, true, true, {} }, // 1106 4627 { "TRCRSR", "TRCRSR", 0x8850, true, true, {AArch64::FeatureETE} }, // 1107 4628 { "TRCSEQEVR0", "TRCSEQEVR0", 0x8804, true, true, {} }, // 1108 4629 { "TRCSEQEVR1", "TRCSEQEVR1", 0x880C, true, true, {} }, // 1109 4630 { "TRCSEQEVR2", "TRCSEQEVR2", 0x8814, true, true, {} }, // 1110 4631 { "TRCSEQRSTEVR", "TRCSEQRSTEVR", 0x8834, true, true, {} }, // 1111 4632 { "TRCSEQSTR", "TRCSEQSTR", 0x883C, true, true, {} }, // 1112 4633 { "TRCSSCCR0", "TRCSSCCR0", 0x8882, true, true, {} }, // 1113 4634 { "TRCSSCCR1", "TRCSSCCR1", 0x888A, true, true, {} }, // 1114 4635 { "TRCSSCCR2", "TRCSSCCR2", 0x8892, true, true, {} }, // 1115 4636 { "TRCSSCCR3", "TRCSSCCR3", 0x889A, true, true, {} }, // 1116 4637 { "TRCSSCCR4", "TRCSSCCR4", 0x88A2, true, true, {} }, // 1117 4638 { "TRCSSCCR5", "TRCSSCCR5", 0x88AA, true, true, {} }, // 1118 4639 { "TRCSSCCR6", "TRCSSCCR6", 0x88B2, true, true, {} }, // 1119 4640 { "TRCSSCCR7", "TRCSSCCR7", 0x88BA, true, true, {} }, // 1120 4641 { "TRCSSCSR0", "TRCSSCSR0", 0x88C2, true, true, {} }, // 1121 4642 { "TRCSSCSR1", "TRCSSCSR1", 0x88CA, true, true, {} }, // 1122 4643 { "TRCSSCSR2", "TRCSSCSR2", 0x88D2, true, true, {} }, // 1123 4644 { "TRCSSCSR3", "TRCSSCSR3", 0x88DA, true, true, {} }, // 1124 4645 { "TRCSSCSR4", "TRCSSCSR4", 0x88E2, true, true, {} }, // 1125 4646 { "TRCSSCSR5", "TRCSSCSR5", 0x88EA, true, true, {} }, // 1126 4647 { "TRCSSCSR6", "TRCSSCSR6", 0x88F2, true, true, {} }, // 1127 4648 { "TRCSSCSR7", "TRCSSCSR7", 0x88FA, true, true, {} }, // 1128 4649 { "TRCSSPCICR0", "TRCSSPCICR0", 0x8883, true, true, {} }, // 1129 4650 { "TRCSSPCICR1", "TRCSSPCICR1", 0x888B, true, true, {} }, // 1130 4651 { "TRCSSPCICR2", "TRCSSPCICR2", 0x8893, true, true, {} }, // 1131 4652 { "TRCSSPCICR3", "TRCSSPCICR3", 0x889B, true, true, {} }, // 1132 4653 { "TRCSSPCICR4", "TRCSSPCICR4", 0x88A3, true, true, {} }, // 1133 4654 { "TRCSSPCICR5", "TRCSSPCICR5", 0x88AB, true, true, {} }, // 1134 4655 { "TRCSSPCICR6", "TRCSSPCICR6", 0x88B3, true, true, {} }, // 1135 4656 { "TRCSSPCICR7", "TRCSSPCICR7", 0x88BB, true, true, {} }, // 1136 4657 { "TRCSTALLCTLR", "TRCSTALLCTLR", 0x8858, true, true, {} }, // 1137 4658 { "TRCSTATR", "TRCSTATR", 0x8818, true, false, {} }, // 1138 4659 { "TRCSYNCPR", "TRCSYNCPR", 0x8868, true, true, {} }, // 1139 4660 { "TRCTRACEIDR", "TRCTRACEIDR", 0x8801, true, true, {} }, // 1140 4661 { "TRCTSCTLR", "TRCTSCTLR", 0x8860, true, true, {} }, // 1141 4662 { "TRCVDARCCTLR", "TRCVDARCCTLR", 0x8852, true, true, {} }, // 1142 4663 { "TRCVDCTLR", "TRCVDCTLR", 0x8842, true, true, {} }, // 1143 4664 { "TRCVDSACCTLR", "TRCVDSACCTLR", 0x884A, true, true, {} }, // 1144 4665 { "TRCVICTLR", "TRCVICTLR", 0x8802, true, true, {} }, // 1145 4666 { "TRCVIIECTLR", "TRCVIIECTLR", 0x880A, true, true, {} }, // 1146 4667 { "TRCVIPCSSCTLR", "TRCVIPCSSCTLR", 0x881A, true, true, {} }, // 1147 4668 { "TRCVISSCTLR", "TRCVISSCTLR", 0x8812, true, true, {} }, // 1148 4669 { "TRCVMIDCCTLR0", "TRCVMIDCCTLR0", 0x8992, true, true, {} }, // 1149 4670 { "TRCVMIDCCTLR1", "TRCVMIDCCTLR1", 0x899A, true, true, {} }, // 1150 4671 { "TRCVMIDCVR0", "TRCVMIDCVR0", 0x8981, true, true, {} }, // 1151 4672 { "TRCVMIDCVR1", "TRCVMIDCVR1", 0x8991, true, true, {} }, // 1152 4673 { "TRCVMIDCVR2", "TRCVMIDCVR2", 0x89A1, true, true, {} }, // 1153 4674 { "TRCVMIDCVR3", "TRCVMIDCVR3", 0x89B1, true, true, {} }, // 1154 4675 { "TRCVMIDCVR4", "TRCVMIDCVR4", 0x89C1, true, true, {} }, // 1155 4676 { "TRCVMIDCVR5", "TRCVMIDCVR5", 0x89D1, true, true, {} }, // 1156 4677 { "TRCVMIDCVR6", "TRCVMIDCVR6", 0x89E1, true, true, {} }, // 1157 4678 { "TRCVMIDCVR7", "TRCVMIDCVR7", 0x89F1, true, true, {} }, // 1158 4679 { "TRFCR_EL1", "TRFCR_EL1", 0xC091, true, true, {AArch64::FeatureTRACEV8_4} }, // 1159 4680 { "TRFCR_EL12", "TRFCR_EL12", 0xE891, true, true, {AArch64::FeatureTRACEV8_4} }, // 1160 4681 { "TRFCR_EL2", "TRFCR_EL2", 0xE091, true, true, {AArch64::FeatureTRACEV8_4} }, // 1161 4682 { "TTBR0_EL1", "TTBR0_EL1", 0xC100, true, true, {} }, // 1162 4683 { "TTBR0_EL12", "TTBR0_EL12", 0xE900, true, true, {AArch64::FeatureVH} }, // 1163 4684 { "TTBR0_EL2", "VSCTLR_EL2", 0xE100, true, true, {AArch64::FeatureEL2VMSA} }, // 1164 4685 { "TTBR0_EL3", "TTBR0_EL3", 0xF100, true, true, {} }, // 1165 4686 { "TTBR1_EL1", "TTBR1_EL1", 0xC101, true, true, {} }, // 1166 4687 { "TTBR1_EL12", "TTBR1_EL12", 0xE901, true, true, {AArch64::FeatureVH} }, // 1167 4688 { "TTBR1_EL2", "TTBR1_EL2", 0xE101, true, true, {AArch64::FeatureVH} }, // 1168 4689 { "UAO", "UAO", 0xC214, true, true, {AArch64::FeaturePsUAO} }, // 1169 4690 { "VBAR_EL1", "VBAR_EL1", 0xC600, true, true, {} }, // 1170 4691 { "VBAR_EL12", "VBAR_EL12", 0xEE00, true, true, {AArch64::FeatureVH} }, // 1171 4692 { "VBAR_EL2", "VBAR_EL2", 0xE600, true, true, {} }, // 1172 4693 { "VBAR_EL3", "VBAR_EL3", 0xF600, true, true, {} }, // 1173 4694 { "VDISR_EL2", "VDISR_EL2", 0xE609, true, true, {AArch64::FeatureRAS} }, // 1174 4695 { "VMECID_A_EL2", "VMECID_A_EL2", 0xE549, true, true, {AArch64::FeatureMEC} }, // 1175 4696 { "VMECID_P_EL2", "VMECID_P_EL2", 0xE548, true, true, {AArch64::FeatureMEC} }, // 1176 4697 { "VMPIDR_EL2", "VMPIDR_EL2", 0xE005, true, true, {} }, // 1177 4698 { "VNCR_EL2", "VNCR_EL2", 0xE110, true, true, {AArch64::FeatureNV} }, // 1178 4699 { "VPIDR_EL2", "VPIDR_EL2", 0xE000, true, true, {} }, // 1179 4700 { "VSCTLR_EL2", "TTBR0_EL2", 0xE100, true, true, {AArch64::HasV8_0rOps} }, // 1180 4701 { "VSESR_EL2", "VSESR_EL2", 0xE293, true, true, {AArch64::FeatureRAS} }, // 1181 4702 { "VSTCR_EL2", "VSTCR_EL2", 0xE132, true, true, {AArch64::FeatureSEL2} }, // 1182 4703 { "VSTTBR_EL2", "VSTTBR_EL2", 0xE130, true, true, {AArch64::HasV8_0aOps} }, // 1183 4704 { "VTCR_EL2", "VTCR_EL2", 0xE10A, true, true, {} }, // 1184 4705 { "VTTBR_EL2", "VTTBR_EL2", 0xE108, true, true, {AArch64::FeatureEL2VMSA} }, // 1185 4706 { "ZCR_EL1", "ZCR_EL1", 0xC090, true, true, {AArch64::FeatureSVE} }, // 1186 4707 { "ZCR_EL12", "ZCR_EL12", 0xE890, true, true, {AArch64::FeatureSVE} }, // 1187 4708 { "ZCR_EL2", "ZCR_EL2", 0xE090, true, true, {AArch64::FeatureSVE} }, // 1188 4709 { "ZCR_EL3", "ZCR_EL3", 0xF090, true, true, {AArch64::FeatureSVE} }, // 1189 4710 }; 4711 4712const SysReg *lookupSysRegByName(StringRef Name) { 4713 struct IndexType { 4714 const char * Name; 4715 unsigned _index; 4716 }; 4717 static const struct IndexType Index[] = { 4718 { "ACCDATA_EL1", 0 }, 4719 { "ACTLR_EL1", 1 }, 4720 { "ACTLR_EL2", 2 }, 4721 { "ACTLR_EL3", 3 }, 4722 { "AFSR0_EL1", 4 }, 4723 { "AFSR0_EL12", 5 }, 4724 { "AFSR0_EL2", 6 }, 4725 { "AFSR0_EL3", 7 }, 4726 { "AFSR1_EL1", 8 }, 4727 { "AFSR1_EL12", 9 }, 4728 { "AFSR1_EL2", 10 }, 4729 { "AFSR1_EL3", 11 }, 4730 { "AIDR_EL1", 12 }, 4731 { "ALLINT", 13 }, 4732 { "AMAIR2_EL1", 14 }, 4733 { "AMAIR2_EL12", 15 }, 4734 { "AMAIR2_EL2", 16 }, 4735 { "AMAIR2_EL3", 17 }, 4736 { "AMAIR_EL1", 18 }, 4737 { "AMAIR_EL12", 19 }, 4738 { "AMAIR_EL2", 20 }, 4739 { "AMAIR_EL3", 21 }, 4740 { "AMCFGR_EL0", 22 }, 4741 { "AMCG1IDR_EL0", 23 }, 4742 { "AMCGCR_EL0", 24 }, 4743 { "AMCNTENCLR0_EL0", 25 }, 4744 { "AMCNTENCLR1_EL0", 26 }, 4745 { "AMCNTENSET0_EL0", 27 }, 4746 { "AMCNTENSET1_EL0", 28 }, 4747 { "AMCR_EL0", 29 }, 4748 { "AMEVCNTR00_EL0", 30 }, 4749 { "AMEVCNTR01_EL0", 31 }, 4750 { "AMEVCNTR02_EL0", 32 }, 4751 { "AMEVCNTR03_EL0", 33 }, 4752 { "AMEVCNTR10_EL0", 34 }, 4753 { "AMEVCNTR110_EL0", 35 }, 4754 { "AMEVCNTR111_EL0", 36 }, 4755 { "AMEVCNTR112_EL0", 37 }, 4756 { "AMEVCNTR113_EL0", 38 }, 4757 { "AMEVCNTR114_EL0", 39 }, 4758 { "AMEVCNTR115_EL0", 40 }, 4759 { "AMEVCNTR11_EL0", 41 }, 4760 { "AMEVCNTR12_EL0", 42 }, 4761 { "AMEVCNTR13_EL0", 43 }, 4762 { "AMEVCNTR14_EL0", 44 }, 4763 { "AMEVCNTR15_EL0", 45 }, 4764 { "AMEVCNTR16_EL0", 46 }, 4765 { "AMEVCNTR17_EL0", 47 }, 4766 { "AMEVCNTR18_EL0", 48 }, 4767 { "AMEVCNTR19_EL0", 49 }, 4768 { "AMEVCNTVOFF00_EL2", 50 }, 4769 { "AMEVCNTVOFF010_EL2", 51 }, 4770 { "AMEVCNTVOFF011_EL2", 52 }, 4771 { "AMEVCNTVOFF012_EL2", 53 }, 4772 { "AMEVCNTVOFF013_EL2", 54 }, 4773 { "AMEVCNTVOFF014_EL2", 55 }, 4774 { "AMEVCNTVOFF015_EL2", 56 }, 4775 { "AMEVCNTVOFF01_EL2", 57 }, 4776 { "AMEVCNTVOFF02_EL2", 58 }, 4777 { "AMEVCNTVOFF03_EL2", 59 }, 4778 { "AMEVCNTVOFF04_EL2", 60 }, 4779 { "AMEVCNTVOFF05_EL2", 61 }, 4780 { "AMEVCNTVOFF06_EL2", 62 }, 4781 { "AMEVCNTVOFF07_EL2", 63 }, 4782 { "AMEVCNTVOFF08_EL2", 64 }, 4783 { "AMEVCNTVOFF09_EL2", 65 }, 4784 { "AMEVCNTVOFF10_EL2", 66 }, 4785 { "AMEVCNTVOFF110_EL2", 67 }, 4786 { "AMEVCNTVOFF111_EL2", 68 }, 4787 { "AMEVCNTVOFF112_EL2", 69 }, 4788 { "AMEVCNTVOFF113_EL2", 70 }, 4789 { "AMEVCNTVOFF114_EL2", 71 }, 4790 { "AMEVCNTVOFF115_EL2", 72 }, 4791 { "AMEVCNTVOFF11_EL2", 73 }, 4792 { "AMEVCNTVOFF12_EL2", 74 }, 4793 { "AMEVCNTVOFF13_EL2", 75 }, 4794 { "AMEVCNTVOFF14_EL2", 76 }, 4795 { "AMEVCNTVOFF15_EL2", 77 }, 4796 { "AMEVCNTVOFF16_EL2", 78 }, 4797 { "AMEVCNTVOFF17_EL2", 79 }, 4798 { "AMEVCNTVOFF18_EL2", 80 }, 4799 { "AMEVCNTVOFF19_EL2", 81 }, 4800 { "AMEVTYPER00_EL0", 82 }, 4801 { "AMEVTYPER01_EL0", 83 }, 4802 { "AMEVTYPER02_EL0", 84 }, 4803 { "AMEVTYPER03_EL0", 85 }, 4804 { "AMEVTYPER10_EL0", 86 }, 4805 { "AMEVTYPER110_EL0", 87 }, 4806 { "AMEVTYPER111_EL0", 88 }, 4807 { "AMEVTYPER112_EL0", 89 }, 4808 { "AMEVTYPER113_EL0", 90 }, 4809 { "AMEVTYPER114_EL0", 91 }, 4810 { "AMEVTYPER115_EL0", 92 }, 4811 { "AMEVTYPER11_EL0", 93 }, 4812 { "AMEVTYPER12_EL0", 94 }, 4813 { "AMEVTYPER13_EL0", 95 }, 4814 { "AMEVTYPER14_EL0", 96 }, 4815 { "AMEVTYPER15_EL0", 97 }, 4816 { "AMEVTYPER16_EL0", 98 }, 4817 { "AMEVTYPER17_EL0", 99 }, 4818 { "AMEVTYPER18_EL0", 100 }, 4819 { "AMEVTYPER19_EL0", 101 }, 4820 { "AMUSERENR_EL0", 102 }, 4821 { "APDAKEYHI_EL1", 103 }, 4822 { "APDAKEYLO_EL1", 104 }, 4823 { "APDBKEYHI_EL1", 105 }, 4824 { "APDBKEYLO_EL1", 106 }, 4825 { "APGAKEYHI_EL1", 107 }, 4826 { "APGAKEYLO_EL1", 108 }, 4827 { "APIAKEYHI_EL1", 109 }, 4828 { "APIAKEYLO_EL1", 110 }, 4829 { "APIBKEYHI_EL1", 111 }, 4830 { "APIBKEYLO_EL1", 112 }, 4831 { "BRBCR_EL1", 113 }, 4832 { "BRBCR_EL12", 114 }, 4833 { "BRBCR_EL2", 115 }, 4834 { "BRBFCR_EL1", 116 }, 4835 { "BRBIDR0_EL1", 117 }, 4836 { "BRBINF0_EL1", 118 }, 4837 { "BRBINF10_EL1", 119 }, 4838 { "BRBINF11_EL1", 120 }, 4839 { "BRBINF12_EL1", 121 }, 4840 { "BRBINF13_EL1", 122 }, 4841 { "BRBINF14_EL1", 123 }, 4842 { "BRBINF15_EL1", 124 }, 4843 { "BRBINF16_EL1", 125 }, 4844 { "BRBINF17_EL1", 126 }, 4845 { "BRBINF18_EL1", 127 }, 4846 { "BRBINF19_EL1", 128 }, 4847 { "BRBINF1_EL1", 129 }, 4848 { "BRBINF20_EL1", 130 }, 4849 { "BRBINF21_EL1", 131 }, 4850 { "BRBINF22_EL1", 132 }, 4851 { "BRBINF23_EL1", 133 }, 4852 { "BRBINF24_EL1", 134 }, 4853 { "BRBINF25_EL1", 135 }, 4854 { "BRBINF26_EL1", 136 }, 4855 { "BRBINF27_EL1", 137 }, 4856 { "BRBINF28_EL1", 138 }, 4857 { "BRBINF29_EL1", 139 }, 4858 { "BRBINF2_EL1", 140 }, 4859 { "BRBINF30_EL1", 141 }, 4860 { "BRBINF31_EL1", 142 }, 4861 { "BRBINF3_EL1", 143 }, 4862 { "BRBINF4_EL1", 144 }, 4863 { "BRBINF5_EL1", 145 }, 4864 { "BRBINF6_EL1", 146 }, 4865 { "BRBINF7_EL1", 147 }, 4866 { "BRBINF8_EL1", 148 }, 4867 { "BRBINF9_EL1", 149 }, 4868 { "BRBINFINJ_EL1", 150 }, 4869 { "BRBSRC0_EL1", 151 }, 4870 { "BRBSRC10_EL1", 152 }, 4871 { "BRBSRC11_EL1", 153 }, 4872 { "BRBSRC12_EL1", 154 }, 4873 { "BRBSRC13_EL1", 155 }, 4874 { "BRBSRC14_EL1", 156 }, 4875 { "BRBSRC15_EL1", 157 }, 4876 { "BRBSRC16_EL1", 158 }, 4877 { "BRBSRC17_EL1", 159 }, 4878 { "BRBSRC18_EL1", 160 }, 4879 { "BRBSRC19_EL1", 161 }, 4880 { "BRBSRC1_EL1", 162 }, 4881 { "BRBSRC20_EL1", 163 }, 4882 { "BRBSRC21_EL1", 164 }, 4883 { "BRBSRC22_EL1", 165 }, 4884 { "BRBSRC23_EL1", 166 }, 4885 { "BRBSRC24_EL1", 167 }, 4886 { "BRBSRC25_EL1", 168 }, 4887 { "BRBSRC26_EL1", 169 }, 4888 { "BRBSRC27_EL1", 170 }, 4889 { "BRBSRC28_EL1", 171 }, 4890 { "BRBSRC29_EL1", 172 }, 4891 { "BRBSRC2_EL1", 173 }, 4892 { "BRBSRC30_EL1", 174 }, 4893 { "BRBSRC31_EL1", 175 }, 4894 { "BRBSRC3_EL1", 176 }, 4895 { "BRBSRC4_EL1", 177 }, 4896 { "BRBSRC5_EL1", 178 }, 4897 { "BRBSRC6_EL1", 179 }, 4898 { "BRBSRC7_EL1", 180 }, 4899 { "BRBSRC8_EL1", 181 }, 4900 { "BRBSRC9_EL1", 182 }, 4901 { "BRBSRCINJ_EL1", 183 }, 4902 { "BRBTGT0_EL1", 184 }, 4903 { "BRBTGT10_EL1", 185 }, 4904 { "BRBTGT11_EL1", 186 }, 4905 { "BRBTGT12_EL1", 187 }, 4906 { "BRBTGT13_EL1", 188 }, 4907 { "BRBTGT14_EL1", 189 }, 4908 { "BRBTGT15_EL1", 190 }, 4909 { "BRBTGT16_EL1", 191 }, 4910 { "BRBTGT17_EL1", 192 }, 4911 { "BRBTGT18_EL1", 193 }, 4912 { "BRBTGT19_EL1", 194 }, 4913 { "BRBTGT1_EL1", 195 }, 4914 { "BRBTGT20_EL1", 196 }, 4915 { "BRBTGT21_EL1", 197 }, 4916 { "BRBTGT22_EL1", 198 }, 4917 { "BRBTGT23_EL1", 199 }, 4918 { "BRBTGT24_EL1", 200 }, 4919 { "BRBTGT25_EL1", 201 }, 4920 { "BRBTGT26_EL1", 202 }, 4921 { "BRBTGT27_EL1", 203 }, 4922 { "BRBTGT28_EL1", 204 }, 4923 { "BRBTGT29_EL1", 205 }, 4924 { "BRBTGT2_EL1", 206 }, 4925 { "BRBTGT30_EL1", 207 }, 4926 { "BRBTGT31_EL1", 208 }, 4927 { "BRBTGT3_EL1", 209 }, 4928 { "BRBTGT4_EL1", 210 }, 4929 { "BRBTGT5_EL1", 211 }, 4930 { "BRBTGT6_EL1", 212 }, 4931 { "BRBTGT7_EL1", 213 }, 4932 { "BRBTGT8_EL1", 214 }, 4933 { "BRBTGT9_EL1", 215 }, 4934 { "BRBTGTINJ_EL1", 216 }, 4935 { "BRBTS_EL1", 217 }, 4936 { "CCSIDR2_EL1", 218 }, 4937 { "CCSIDR_EL1", 219 }, 4938 { "CLIDR_EL1", 220 }, 4939 { "CNTFRQ_EL0", 221 }, 4940 { "CNTHCTL_EL2", 222 }, 4941 { "CNTHPS_CTL_EL2", 223 }, 4942 { "CNTHPS_CVAL_EL2", 224 }, 4943 { "CNTHPS_TVAL_EL2", 225 }, 4944 { "CNTHP_CTL_EL2", 226 }, 4945 { "CNTHP_CVAL_EL2", 227 }, 4946 { "CNTHP_TVAL_EL2", 228 }, 4947 { "CNTHVS_CTL_EL2", 229 }, 4948 { "CNTHVS_CVAL_EL2", 230 }, 4949 { "CNTHVS_TVAL_EL2", 231 }, 4950 { "CNTHV_CTL_EL2", 232 }, 4951 { "CNTHV_CVAL_EL2", 233 }, 4952 { "CNTHV_TVAL_EL2", 234 }, 4953 { "CNTISCALE_EL2", 235 }, 4954 { "CNTKCTL_EL1", 236 }, 4955 { "CNTKCTL_EL12", 237 }, 4956 { "CNTPCTSS_EL0", 238 }, 4957 { "CNTPCT_EL0", 239 }, 4958 { "CNTPOFF_EL2", 240 }, 4959 { "CNTPS_CTL_EL1", 241 }, 4960 { "CNTPS_CVAL_EL1", 242 }, 4961 { "CNTPS_TVAL_EL1", 243 }, 4962 { "CNTP_CTL_EL0", 244 }, 4963 { "CNTP_CTL_EL02", 245 }, 4964 { "CNTP_CVAL_EL0", 246 }, 4965 { "CNTP_CVAL_EL02", 247 }, 4966 { "CNTP_TVAL_EL0", 248 }, 4967 { "CNTP_TVAL_EL02", 249 }, 4968 { "CNTSCALE_EL2", 250 }, 4969 { "CNTVCTSS_EL0", 251 }, 4970 { "CNTVCT_EL0", 252 }, 4971 { "CNTVFRQ_EL2", 253 }, 4972 { "CNTVOFF_EL2", 254 }, 4973 { "CNTV_CTL_EL0", 255 }, 4974 { "CNTV_CTL_EL02", 256 }, 4975 { "CNTV_CVAL_EL0", 257 }, 4976 { "CNTV_CVAL_EL02", 258 }, 4977 { "CNTV_TVAL_EL0", 259 }, 4978 { "CNTV_TVAL_EL02", 260 }, 4979 { "CONTEXTIDR_EL1", 261 }, 4980 { "CONTEXTIDR_EL12", 262 }, 4981 { "CONTEXTIDR_EL2", 263 }, 4982 { "CPACR_EL1", 264 }, 4983 { "CPACR_EL12", 265 }, 4984 { "CPM_IOACC_CTL_EL3", 266 }, 4985 { "CPTR_EL2", 267 }, 4986 { "CPTR_EL3", 268 }, 4987 { "CSSELR_EL1", 269 }, 4988 { "CTR_EL0", 270 }, 4989 { "CURRENTEL", 271 }, 4990 { "DACR32_EL2", 272 }, 4991 { "DAIF", 273 }, 4992 { "DBGAUTHSTATUS_EL1", 274 }, 4993 { "DBGBCR0_EL1", 275 }, 4994 { "DBGBCR10_EL1", 276 }, 4995 { "DBGBCR11_EL1", 277 }, 4996 { "DBGBCR12_EL1", 278 }, 4997 { "DBGBCR13_EL1", 279 }, 4998 { "DBGBCR14_EL1", 280 }, 4999 { "DBGBCR15_EL1", 281 }, 5000 { "DBGBCR1_EL1", 282 }, 5001 { "DBGBCR2_EL1", 283 }, 5002 { "DBGBCR3_EL1", 284 }, 5003 { "DBGBCR4_EL1", 285 }, 5004 { "DBGBCR5_EL1", 286 }, 5005 { "DBGBCR6_EL1", 287 }, 5006 { "DBGBCR7_EL1", 288 }, 5007 { "DBGBCR8_EL1", 289 }, 5008 { "DBGBCR9_EL1", 290 }, 5009 { "DBGBVR0_EL1", 291 }, 5010 { "DBGBVR10_EL1", 292 }, 5011 { "DBGBVR11_EL1", 293 }, 5012 { "DBGBVR12_EL1", 294 }, 5013 { "DBGBVR13_EL1", 295 }, 5014 { "DBGBVR14_EL1", 296 }, 5015 { "DBGBVR15_EL1", 297 }, 5016 { "DBGBVR1_EL1", 298 }, 5017 { "DBGBVR2_EL1", 299 }, 5018 { "DBGBVR3_EL1", 300 }, 5019 { "DBGBVR4_EL1", 301 }, 5020 { "DBGBVR5_EL1", 302 }, 5021 { "DBGBVR6_EL1", 303 }, 5022 { "DBGBVR7_EL1", 304 }, 5023 { "DBGBVR8_EL1", 305 }, 5024 { "DBGBVR9_EL1", 306 }, 5025 { "DBGCLAIMCLR_EL1", 307 }, 5026 { "DBGCLAIMSET_EL1", 308 }, 5027 { "DBGDTRRX_EL0", 309 }, 5028 { "DBGDTRTX_EL0", 310 }, 5029 { "DBGDTR_EL0", 311 }, 5030 { "DBGPRCR_EL1", 312 }, 5031 { "DBGVCR32_EL2", 313 }, 5032 { "DBGWCR0_EL1", 314 }, 5033 { "DBGWCR10_EL1", 315 }, 5034 { "DBGWCR11_EL1", 316 }, 5035 { "DBGWCR12_EL1", 317 }, 5036 { "DBGWCR13_EL1", 318 }, 5037 { "DBGWCR14_EL1", 319 }, 5038 { "DBGWCR15_EL1", 320 }, 5039 { "DBGWCR1_EL1", 321 }, 5040 { "DBGWCR2_EL1", 322 }, 5041 { "DBGWCR3_EL1", 323 }, 5042 { "DBGWCR4_EL1", 324 }, 5043 { "DBGWCR5_EL1", 325 }, 5044 { "DBGWCR6_EL1", 326 }, 5045 { "DBGWCR7_EL1", 327 }, 5046 { "DBGWCR8_EL1", 328 }, 5047 { "DBGWCR9_EL1", 329 }, 5048 { "DBGWVR0_EL1", 330 }, 5049 { "DBGWVR10_EL1", 331 }, 5050 { "DBGWVR11_EL1", 332 }, 5051 { "DBGWVR12_EL1", 333 }, 5052 { "DBGWVR13_EL1", 334 }, 5053 { "DBGWVR14_EL1", 335 }, 5054 { "DBGWVR15_EL1", 336 }, 5055 { "DBGWVR1_EL1", 337 }, 5056 { "DBGWVR2_EL1", 338 }, 5057 { "DBGWVR3_EL1", 339 }, 5058 { "DBGWVR4_EL1", 340 }, 5059 { "DBGWVR5_EL1", 341 }, 5060 { "DBGWVR6_EL1", 342 }, 5061 { "DBGWVR7_EL1", 343 }, 5062 { "DBGWVR8_EL1", 344 }, 5063 { "DBGWVR9_EL1", 345 }, 5064 { "DCZID_EL0", 346 }, 5065 { "DISR_EL1", 347 }, 5066 { "DIT", 348 }, 5067 { "DLR_EL0", 349 }, 5068 { "DSPSR_EL0", 350 }, 5069 { "ELR_EL1", 351 }, 5070 { "ELR_EL12", 352 }, 5071 { "ELR_EL2", 353 }, 5072 { "ELR_EL3", 354 }, 5073 { "ERRIDR_EL1", 355 }, 5074 { "ERRSELR_EL1", 356 }, 5075 { "ERXADDR_EL1", 357 }, 5076 { "ERXCTLR_EL1", 358 }, 5077 { "ERXFR_EL1", 359 }, 5078 { "ERXGSR_EL1", 360 }, 5079 { "ERXMISC0_EL1", 361 }, 5080 { "ERXMISC1_EL1", 362 }, 5081 { "ERXMISC2_EL1", 363 }, 5082 { "ERXMISC3_EL1", 364 }, 5083 { "ERXPFGCDN_EL1", 365 }, 5084 { "ERXPFGCTL_EL1", 366 }, 5085 { "ERXPFGF_EL1", 367 }, 5086 { "ERXSTATUS_EL1", 368 }, 5087 { "ESR_EL1", 369 }, 5088 { "ESR_EL12", 370 }, 5089 { "ESR_EL2", 371 }, 5090 { "ESR_EL3", 372 }, 5091 { "FAR_EL1", 373 }, 5092 { "FAR_EL12", 374 }, 5093 { "FAR_EL2", 375 }, 5094 { "FAR_EL3", 376 }, 5095 { "FPCR", 377 }, 5096 { "FPEXC32_EL2", 378 }, 5097 { "FPSR", 379 }, 5098 { "GCR_EL1", 380 }, 5099 { "GMID_EL1", 381 }, 5100 { "GPCCR_EL3", 382 }, 5101 { "GPTBR_EL3", 383 }, 5102 { "HACR_EL2", 384 }, 5103 { "HAFGRTR_EL2", 385 }, 5104 { "HCRX_EL2", 386 }, 5105 { "HCR_EL2", 387 }, 5106 { "HDFGRTR2_EL2", 388 }, 5107 { "HDFGRTR_EL2", 389 }, 5108 { "HDFGWTR2_EL2", 390 }, 5109 { "HDFGWTR_EL2", 391 }, 5110 { "HFGITR2_EL2", 392 }, 5111 { "HFGITR_EL2", 393 }, 5112 { "HFGRTR2_EL2", 394 }, 5113 { "HFGRTR_EL2", 395 }, 5114 { "HFGWTR2_EL2", 396 }, 5115 { "HFGWTR_EL2", 397 }, 5116 { "HPFAR_EL2", 398 }, 5117 { "HSTR_EL2", 399 }, 5118 { "ICC_AP0R0_EL1", 400 }, 5119 { "ICC_AP0R1_EL1", 401 }, 5120 { "ICC_AP0R2_EL1", 402 }, 5121 { "ICC_AP0R3_EL1", 403 }, 5122 { "ICC_AP1R0_EL1", 404 }, 5123 { "ICC_AP1R1_EL1", 405 }, 5124 { "ICC_AP1R2_EL1", 406 }, 5125 { "ICC_AP1R3_EL1", 407 }, 5126 { "ICC_ASGI1R_EL1", 408 }, 5127 { "ICC_BPR0_EL1", 409 }, 5128 { "ICC_BPR1_EL1", 410 }, 5129 { "ICC_CTLR_EL1", 411 }, 5130 { "ICC_CTLR_EL3", 412 }, 5131 { "ICC_DIR_EL1", 413 }, 5132 { "ICC_EOIR0_EL1", 414 }, 5133 { "ICC_EOIR1_EL1", 415 }, 5134 { "ICC_HPPIR0_EL1", 416 }, 5135 { "ICC_HPPIR1_EL1", 417 }, 5136 { "ICC_IAR0_EL1", 418 }, 5137 { "ICC_IAR1_EL1", 419 }, 5138 { "ICC_IGRPEN0_EL1", 420 }, 5139 { "ICC_IGRPEN1_EL1", 421 }, 5140 { "ICC_IGRPEN1_EL3", 422 }, 5141 { "ICC_NMIAR1_EL1", 423 }, 5142 { "ICC_PMR_EL1", 424 }, 5143 { "ICC_RPR_EL1", 425 }, 5144 { "ICC_SGI0R_EL1", 426 }, 5145 { "ICC_SGI1R_EL1", 427 }, 5146 { "ICC_SRE_EL1", 428 }, 5147 { "ICC_SRE_EL2", 429 }, 5148 { "ICC_SRE_EL3", 430 }, 5149 { "ICH_AP0R0_EL2", 431 }, 5150 { "ICH_AP0R1_EL2", 432 }, 5151 { "ICH_AP0R2_EL2", 433 }, 5152 { "ICH_AP0R3_EL2", 434 }, 5153 { "ICH_AP1R0_EL2", 435 }, 5154 { "ICH_AP1R1_EL2", 436 }, 5155 { "ICH_AP1R2_EL2", 437 }, 5156 { "ICH_AP1R3_EL2", 438 }, 5157 { "ICH_EISR_EL2", 439 }, 5158 { "ICH_ELRSR_EL2", 440 }, 5159 { "ICH_HCR_EL2", 441 }, 5160 { "ICH_LR0_EL2", 442 }, 5161 { "ICH_LR10_EL2", 443 }, 5162 { "ICH_LR11_EL2", 444 }, 5163 { "ICH_LR12_EL2", 445 }, 5164 { "ICH_LR13_EL2", 446 }, 5165 { "ICH_LR14_EL2", 447 }, 5166 { "ICH_LR15_EL2", 448 }, 5167 { "ICH_LR1_EL2", 449 }, 5168 { "ICH_LR2_EL2", 450 }, 5169 { "ICH_LR3_EL2", 451 }, 5170 { "ICH_LR4_EL2", 452 }, 5171 { "ICH_LR5_EL2", 453 }, 5172 { "ICH_LR6_EL2", 454 }, 5173 { "ICH_LR7_EL2", 455 }, 5174 { "ICH_LR8_EL2", 456 }, 5175 { "ICH_LR9_EL2", 457 }, 5176 { "ICH_MISR_EL2", 458 }, 5177 { "ICH_VMCR_EL2", 459 }, 5178 { "ICH_VTR_EL2", 460 }, 5179 { "ID_AA64AFR0_EL1", 461 }, 5180 { "ID_AA64AFR1_EL1", 462 }, 5181 { "ID_AA64DFR0_EL1", 463 }, 5182 { "ID_AA64DFR1_EL1", 464 }, 5183 { "ID_AA64ISAR0_EL1", 465 }, 5184 { "ID_AA64ISAR1_EL1", 466 }, 5185 { "ID_AA64ISAR2_EL1", 467 }, 5186 { "ID_AA64MMFR0_EL1", 468 }, 5187 { "ID_AA64MMFR1_EL1", 469 }, 5188 { "ID_AA64MMFR2_EL1", 470 }, 5189 { "ID_AA64MMFR3_EL1", 471 }, 5190 { "ID_AA64MMFR4_EL1", 472 }, 5191 { "ID_AA64PFR0_EL1", 473 }, 5192 { "ID_AA64PFR1_EL1", 474 }, 5193 { "ID_AA64PFR2_EL1", 475 }, 5194 { "ID_AA64SMFR0_EL1", 476 }, 5195 { "ID_AA64ZFR0_EL1", 477 }, 5196 { "ID_AFR0_EL1", 478 }, 5197 { "ID_DFR0_EL1", 479 }, 5198 { "ID_DFR1_EL1", 480 }, 5199 { "ID_ISAR0_EL1", 481 }, 5200 { "ID_ISAR1_EL1", 482 }, 5201 { "ID_ISAR2_EL1", 483 }, 5202 { "ID_ISAR3_EL1", 484 }, 5203 { "ID_ISAR4_EL1", 485 }, 5204 { "ID_ISAR5_EL1", 486 }, 5205 { "ID_ISAR6_EL1", 487 }, 5206 { "ID_MMFR0_EL1", 488 }, 5207 { "ID_MMFR1_EL1", 489 }, 5208 { "ID_MMFR2_EL1", 490 }, 5209 { "ID_MMFR3_EL1", 491 }, 5210 { "ID_MMFR4_EL1", 492 }, 5211 { "ID_MMFR5_EL1", 493 }, 5212 { "ID_PFR0_EL1", 494 }, 5213 { "ID_PFR1_EL1", 495 }, 5214 { "ID_PFR2_EL1", 496 }, 5215 { "IFSR32_EL2", 497 }, 5216 { "ISR_EL1", 498 }, 5217 { "LORC_EL1", 499 }, 5218 { "LOREA_EL1", 500 }, 5219 { "LORID_EL1", 501 }, 5220 { "LORN_EL1", 502 }, 5221 { "LORSA_EL1", 503 }, 5222 { "MAIR2_EL1", 504 }, 5223 { "MAIR2_EL12", 505 }, 5224 { "MAIR2_EL2", 506 }, 5225 { "MAIR2_EL3", 507 }, 5226 { "MAIR_EL1", 508 }, 5227 { "MAIR_EL12", 509 }, 5228 { "MAIR_EL2", 510 }, 5229 { "MAIR_EL3", 511 }, 5230 { "MDCCINT_EL1", 512 }, 5231 { "MDCCSR_EL0", 513 }, 5232 { "MDCR_EL2", 514 }, 5233 { "MDCR_EL3", 515 }, 5234 { "MDRAR_EL1", 516 }, 5235 { "MDSCR_EL1", 517 }, 5236 { "MDSELR_EL1", 518 }, 5237 { "MECIDR_EL2", 519 }, 5238 { "MECID_A0_EL2", 520 }, 5239 { "MECID_A1_EL2", 521 }, 5240 { "MECID_P0_EL2", 522 }, 5241 { "MECID_P1_EL2", 523 }, 5242 { "MECID_RL_A_EL3", 524 }, 5243 { "MFAR_EL3", 525 }, 5244 { "MIDR_EL1", 526 }, 5245 { "MPAM0_EL1", 527 }, 5246 { "MPAM1_EL1", 528 }, 5247 { "MPAM1_EL12", 529 }, 5248 { "MPAM2_EL2", 530 }, 5249 { "MPAM3_EL3", 531 }, 5250 { "MPAMHCR_EL2", 532 }, 5251 { "MPAMIDR_EL1", 533 }, 5252 { "MPAMSM_EL1", 534 }, 5253 { "MPAMVPM0_EL2", 535 }, 5254 { "MPAMVPM1_EL2", 536 }, 5255 { "MPAMVPM2_EL2", 537 }, 5256 { "MPAMVPM3_EL2", 538 }, 5257 { "MPAMVPM4_EL2", 539 }, 5258 { "MPAMVPM5_EL2", 540 }, 5259 { "MPAMVPM6_EL2", 541 }, 5260 { "MPAMVPM7_EL2", 542 }, 5261 { "MPAMVPMV_EL2", 543 }, 5262 { "MPIDR_EL1", 544 }, 5263 { "MPUIR_EL1", 545 }, 5264 { "MPUIR_EL2", 546 }, 5265 { "MVFR0_EL1", 547 }, 5266 { "MVFR1_EL1", 548 }, 5267 { "MVFR2_EL1", 549 }, 5268 { "NZCV", 550 }, 5269 { "OSDLR_EL1", 551 }, 5270 { "OSDTRRX_EL1", 552 }, 5271 { "OSDTRTX_EL1", 553 }, 5272 { "OSECCR_EL1", 554 }, 5273 { "OSLAR_EL1", 555 }, 5274 { "OSLSR_EL1", 556 }, 5275 { "PAN", 557 }, 5276 { "PAR_EL1", 558 }, 5277 { "PFAR_EL1", 559 }, 5278 { "PFAR_EL12", 560 }, 5279 { "PFAR_EL2", 561 }, 5280 { "PIRE0_EL1", 562 }, 5281 { "PIRE0_EL12", 563 }, 5282 { "PIRE0_EL2", 564 }, 5283 { "PIR_EL1", 565 }, 5284 { "PIR_EL12", 566 }, 5285 { "PIR_EL2", 567 }, 5286 { "PIR_EL3", 568 }, 5287 { "PM", 569 }, 5288 { "PMBIDR_EL1", 570 }, 5289 { "PMBLIMITR_EL1", 571 }, 5290 { "PMBPTR_EL1", 572 }, 5291 { "PMBSR_EL1", 573 }, 5292 { "PMCCFILTR_EL0", 574 }, 5293 { "PMCCNTR_EL0", 575 }, 5294 { "PMCCNTSVR_EL1", 576 }, 5295 { "PMCEID0_EL0", 577 }, 5296 { "PMCEID1_EL0", 578 }, 5297 { "PMCNTENCLR_EL0", 579 }, 5298 { "PMCNTENSET_EL0", 580 }, 5299 { "PMCR_EL0", 581 }, 5300 { "PMECR_EL1", 582 }, 5301 { "PMEVCNTR0_EL0", 583 }, 5302 { "PMEVCNTR10_EL0", 584 }, 5303 { "PMEVCNTR11_EL0", 585 }, 5304 { "PMEVCNTR12_EL0", 586 }, 5305 { "PMEVCNTR13_EL0", 587 }, 5306 { "PMEVCNTR14_EL0", 588 }, 5307 { "PMEVCNTR15_EL0", 589 }, 5308 { "PMEVCNTR16_EL0", 590 }, 5309 { "PMEVCNTR17_EL0", 591 }, 5310 { "PMEVCNTR18_EL0", 592 }, 5311 { "PMEVCNTR19_EL0", 593 }, 5312 { "PMEVCNTR1_EL0", 594 }, 5313 { "PMEVCNTR20_EL0", 595 }, 5314 { "PMEVCNTR21_EL0", 596 }, 5315 { "PMEVCNTR22_EL0", 597 }, 5316 { "PMEVCNTR23_EL0", 598 }, 5317 { "PMEVCNTR24_EL0", 599 }, 5318 { "PMEVCNTR25_EL0", 600 }, 5319 { "PMEVCNTR26_EL0", 601 }, 5320 { "PMEVCNTR27_EL0", 602 }, 5321 { "PMEVCNTR28_EL0", 603 }, 5322 { "PMEVCNTR29_EL0", 604 }, 5323 { "PMEVCNTR2_EL0", 605 }, 5324 { "PMEVCNTR30_EL0", 606 }, 5325 { "PMEVCNTR3_EL0", 607 }, 5326 { "PMEVCNTR4_EL0", 608 }, 5327 { "PMEVCNTR5_EL0", 609 }, 5328 { "PMEVCNTR6_EL0", 610 }, 5329 { "PMEVCNTR7_EL0", 611 }, 5330 { "PMEVCNTR8_EL0", 612 }, 5331 { "PMEVCNTR9_EL0", 613 }, 5332 { "PMEVCNTSVR0_EL1", 614 }, 5333 { "PMEVCNTSVR10_EL1", 615 }, 5334 { "PMEVCNTSVR11_EL1", 616 }, 5335 { "PMEVCNTSVR12_EL1", 617 }, 5336 { "PMEVCNTSVR13_EL1", 618 }, 5337 { "PMEVCNTSVR14_EL1", 619 }, 5338 { "PMEVCNTSVR15_EL1", 620 }, 5339 { "PMEVCNTSVR16_EL1", 621 }, 5340 { "PMEVCNTSVR17_EL1", 622 }, 5341 { "PMEVCNTSVR18_EL1", 623 }, 5342 { "PMEVCNTSVR19_EL1", 624 }, 5343 { "PMEVCNTSVR1_EL1", 625 }, 5344 { "PMEVCNTSVR20_EL1", 626 }, 5345 { "PMEVCNTSVR21_EL1", 627 }, 5346 { "PMEVCNTSVR22_EL1", 628 }, 5347 { "PMEVCNTSVR23_EL1", 629 }, 5348 { "PMEVCNTSVR24_EL1", 630 }, 5349 { "PMEVCNTSVR25_EL1", 631 }, 5350 { "PMEVCNTSVR26_EL1", 632 }, 5351 { "PMEVCNTSVR27_EL1", 633 }, 5352 { "PMEVCNTSVR28_EL1", 634 }, 5353 { "PMEVCNTSVR29_EL1", 635 }, 5354 { "PMEVCNTSVR2_EL1", 636 }, 5355 { "PMEVCNTSVR30_EL1", 637 }, 5356 { "PMEVCNTSVR3_EL1", 638 }, 5357 { "PMEVCNTSVR4_EL1", 639 }, 5358 { "PMEVCNTSVR5_EL1", 640 }, 5359 { "PMEVCNTSVR6_EL1", 641 }, 5360 { "PMEVCNTSVR7_EL1", 642 }, 5361 { "PMEVCNTSVR8_EL1", 643 }, 5362 { "PMEVCNTSVR9_EL1", 644 }, 5363 { "PMEVTYPER0_EL0", 645 }, 5364 { "PMEVTYPER10_EL0", 646 }, 5365 { "PMEVTYPER11_EL0", 647 }, 5366 { "PMEVTYPER12_EL0", 648 }, 5367 { "PMEVTYPER13_EL0", 649 }, 5368 { "PMEVTYPER14_EL0", 650 }, 5369 { "PMEVTYPER15_EL0", 651 }, 5370 { "PMEVTYPER16_EL0", 652 }, 5371 { "PMEVTYPER17_EL0", 653 }, 5372 { "PMEVTYPER18_EL0", 654 }, 5373 { "PMEVTYPER19_EL0", 655 }, 5374 { "PMEVTYPER1_EL0", 656 }, 5375 { "PMEVTYPER20_EL0", 657 }, 5376 { "PMEVTYPER21_EL0", 658 }, 5377 { "PMEVTYPER22_EL0", 659 }, 5378 { "PMEVTYPER23_EL0", 660 }, 5379 { "PMEVTYPER24_EL0", 661 }, 5380 { "PMEVTYPER25_EL0", 662 }, 5381 { "PMEVTYPER26_EL0", 663 }, 5382 { "PMEVTYPER27_EL0", 664 }, 5383 { "PMEVTYPER28_EL0", 665 }, 5384 { "PMEVTYPER29_EL0", 666 }, 5385 { "PMEVTYPER2_EL0", 667 }, 5386 { "PMEVTYPER30_EL0", 668 }, 5387 { "PMEVTYPER3_EL0", 669 }, 5388 { "PMEVTYPER4_EL0", 670 }, 5389 { "PMEVTYPER5_EL0", 671 }, 5390 { "PMEVTYPER6_EL0", 672 }, 5391 { "PMEVTYPER7_EL0", 673 }, 5392 { "PMEVTYPER8_EL0", 674 }, 5393 { "PMEVTYPER9_EL0", 675 }, 5394 { "PMIAR_EL1", 676 }, 5395 { "PMICFILTR_EL0", 677 }, 5396 { "PMICNTR_EL0", 678 }, 5397 { "PMICNTSVR_EL1", 679 }, 5398 { "PMINTENCLR_EL1", 680 }, 5399 { "PMINTENSET_EL1", 681 }, 5400 { "PMMIR_EL1", 682 }, 5401 { "PMOVSCLR_EL0", 683 }, 5402 { "PMOVSSET_EL0", 684 }, 5403 { "PMSCR_EL1", 685 }, 5404 { "PMSCR_EL12", 686 }, 5405 { "PMSCR_EL2", 687 }, 5406 { "PMSDSFR_EL1", 688 }, 5407 { "PMSELR_EL0", 689 }, 5408 { "PMSEVFR_EL1", 690 }, 5409 { "PMSFCR_EL1", 691 }, 5410 { "PMSICR_EL1", 692 }, 5411 { "PMSIDR_EL1", 693 }, 5412 { "PMSIRR_EL1", 694 }, 5413 { "PMSLATFR_EL1", 695 }, 5414 { "PMSNEVFR_EL1", 696 }, 5415 { "PMSSCR_EL1", 697 }, 5416 { "PMSWINC_EL0", 698 }, 5417 { "PMUACR_EL1", 699 }, 5418 { "PMUSERENR_EL0", 700 }, 5419 { "PMXEVCNTR_EL0", 701 }, 5420 { "PMXEVTYPER_EL0", 702 }, 5421 { "PMZR_EL0", 703 }, 5422 { "POR_EL0", 704 }, 5423 { "POR_EL1", 705 }, 5424 { "POR_EL12", 706 }, 5425 { "POR_EL2", 707 }, 5426 { "POR_EL3", 708 }, 5427 { "PRBAR10_EL1", 709 }, 5428 { "PRBAR10_EL2", 710 }, 5429 { "PRBAR11_EL1", 711 }, 5430 { "PRBAR11_EL2", 712 }, 5431 { "PRBAR12_EL1", 713 }, 5432 { "PRBAR12_EL2", 714 }, 5433 { "PRBAR13_EL1", 715 }, 5434 { "PRBAR13_EL2", 716 }, 5435 { "PRBAR14_EL1", 717 }, 5436 { "PRBAR14_EL2", 718 }, 5437 { "PRBAR15_EL1", 719 }, 5438 { "PRBAR15_EL2", 720 }, 5439 { "PRBAR1_EL1", 721 }, 5440 { "PRBAR1_EL2", 722 }, 5441 { "PRBAR2_EL1", 723 }, 5442 { "PRBAR2_EL2", 724 }, 5443 { "PRBAR3_EL1", 725 }, 5444 { "PRBAR3_EL2", 726 }, 5445 { "PRBAR4_EL1", 727 }, 5446 { "PRBAR4_EL2", 728 }, 5447 { "PRBAR5_EL1", 729 }, 5448 { "PRBAR5_EL2", 730 }, 5449 { "PRBAR6_EL1", 731 }, 5450 { "PRBAR6_EL2", 732 }, 5451 { "PRBAR7_EL1", 733 }, 5452 { "PRBAR7_EL2", 734 }, 5453 { "PRBAR8_EL1", 735 }, 5454 { "PRBAR8_EL2", 736 }, 5455 { "PRBAR9_EL1", 737 }, 5456 { "PRBAR9_EL2", 738 }, 5457 { "PRBAR_EL1", 739 }, 5458 { "PRBAR_EL2", 740 }, 5459 { "PRENR_EL1", 741 }, 5460 { "PRENR_EL2", 742 }, 5461 { "PRLAR10_EL1", 743 }, 5462 { "PRLAR10_EL2", 744 }, 5463 { "PRLAR11_EL1", 745 }, 5464 { "PRLAR11_EL2", 746 }, 5465 { "PRLAR12_EL1", 747 }, 5466 { "PRLAR12_EL2", 748 }, 5467 { "PRLAR13_EL1", 749 }, 5468 { "PRLAR13_EL2", 750 }, 5469 { "PRLAR14_EL1", 751 }, 5470 { "PRLAR14_EL2", 752 }, 5471 { "PRLAR15_EL1", 753 }, 5472 { "PRLAR15_EL2", 754 }, 5473 { "PRLAR1_EL1", 755 }, 5474 { "PRLAR1_EL2", 756 }, 5475 { "PRLAR2_EL1", 757 }, 5476 { "PRLAR2_EL2", 758 }, 5477 { "PRLAR3_EL1", 759 }, 5478 { "PRLAR3_EL2", 760 }, 5479 { "PRLAR4_EL1", 761 }, 5480 { "PRLAR4_EL2", 762 }, 5481 { "PRLAR5_EL1", 763 }, 5482 { "PRLAR5_EL2", 764 }, 5483 { "PRLAR6_EL1", 765 }, 5484 { "PRLAR6_EL2", 766 }, 5485 { "PRLAR7_EL1", 767 }, 5486 { "PRLAR7_EL2", 768 }, 5487 { "PRLAR8_EL1", 769 }, 5488 { "PRLAR8_EL2", 770 }, 5489 { "PRLAR9_EL1", 771 }, 5490 { "PRLAR9_EL2", 772 }, 5491 { "PRLAR_EL1", 773 }, 5492 { "PRLAR_EL2", 774 }, 5493 { "PRSELR_EL1", 775 }, 5494 { "PRSELR_EL2", 776 }, 5495 { "RCWMASK_EL1", 777 }, 5496 { "RCWSMASK_EL1", 778 }, 5497 { "REVIDR_EL1", 779 }, 5498 { "RGSR_EL1", 780 }, 5499 { "RMR_EL1", 781 }, 5500 { "RMR_EL2", 782 }, 5501 { "RMR_EL3", 783 }, 5502 { "RNDR", 784 }, 5503 { "RNDRRS", 785 }, 5504 { "RVBAR_EL1", 786 }, 5505 { "RVBAR_EL2", 787 }, 5506 { "RVBAR_EL3", 788 }, 5507 { "S2PIR_EL2", 789 }, 5508 { "S2POR_EL1", 790 }, 5509 { "SCR_EL3", 791 }, 5510 { "SCTLR2_EL1", 792 }, 5511 { "SCTLR2_EL12", 793 }, 5512 { "SCTLR2_EL2", 794 }, 5513 { "SCTLR2_EL3", 795 }, 5514 { "SCTLR_EL1", 796 }, 5515 { "SCTLR_EL12", 797 }, 5516 { "SCTLR_EL2", 798 }, 5517 { "SCTLR_EL3", 799 }, 5518 { "SCXTNUM_EL0", 800 }, 5519 { "SCXTNUM_EL1", 801 }, 5520 { "SCXTNUM_EL12", 802 }, 5521 { "SCXTNUM_EL2", 803 }, 5522 { "SCXTNUM_EL3", 804 }, 5523 { "SDER32_EL2", 805 }, 5524 { "SDER32_EL3", 806 }, 5525 { "SMCR_EL1", 807 }, 5526 { "SMCR_EL12", 808 }, 5527 { "SMCR_EL2", 809 }, 5528 { "SMCR_EL3", 810 }, 5529 { "SMIDR_EL1", 811 }, 5530 { "SMPRIMAP_EL2", 812 }, 5531 { "SMPRI_EL1", 813 }, 5532 { "SPMACCESSR_EL1", 814 }, 5533 { "SPMACCESSR_EL12", 815 }, 5534 { "SPMACCESSR_EL2", 816 }, 5535 { "SPMACCESSR_EL3", 817 }, 5536 { "SPMCFGR_EL1", 818 }, 5537 { "SPMCGCR0_EL1", 819 }, 5538 { "SPMCGCR1_EL1", 820 }, 5539 { "SPMCNTENCLR_EL0", 821 }, 5540 { "SPMCNTENSET_EL0", 822 }, 5541 { "SPMCR_EL0", 823 }, 5542 { "SPMDEVAFF_EL1", 824 }, 5543 { "SPMDEVARCH_EL1", 825 }, 5544 { "SPMEVCNTR0_EL0", 826 }, 5545 { "SPMEVCNTR10_EL0", 827 }, 5546 { "SPMEVCNTR11_EL0", 828 }, 5547 { "SPMEVCNTR12_EL0", 829 }, 5548 { "SPMEVCNTR13_EL0", 830 }, 5549 { "SPMEVCNTR14_EL0", 831 }, 5550 { "SPMEVCNTR15_EL0", 832 }, 5551 { "SPMEVCNTR1_EL0", 833 }, 5552 { "SPMEVCNTR2_EL0", 834 }, 5553 { "SPMEVCNTR3_EL0", 835 }, 5554 { "SPMEVCNTR4_EL0", 836 }, 5555 { "SPMEVCNTR5_EL0", 837 }, 5556 { "SPMEVCNTR6_EL0", 838 }, 5557 { "SPMEVCNTR7_EL0", 839 }, 5558 { "SPMEVCNTR8_EL0", 840 }, 5559 { "SPMEVCNTR9_EL0", 841 }, 5560 { "SPMEVFILT2R0_EL0", 842 }, 5561 { "SPMEVFILT2R10_EL0", 843 }, 5562 { "SPMEVFILT2R11_EL0", 844 }, 5563 { "SPMEVFILT2R12_EL0", 845 }, 5564 { "SPMEVFILT2R13_EL0", 846 }, 5565 { "SPMEVFILT2R14_EL0", 847 }, 5566 { "SPMEVFILT2R15_EL0", 848 }, 5567 { "SPMEVFILT2R1_EL0", 849 }, 5568 { "SPMEVFILT2R2_EL0", 850 }, 5569 { "SPMEVFILT2R3_EL0", 851 }, 5570 { "SPMEVFILT2R4_EL0", 852 }, 5571 { "SPMEVFILT2R5_EL0", 853 }, 5572 { "SPMEVFILT2R6_EL0", 854 }, 5573 { "SPMEVFILT2R7_EL0", 855 }, 5574 { "SPMEVFILT2R8_EL0", 856 }, 5575 { "SPMEVFILT2R9_EL0", 857 }, 5576 { "SPMEVFILTR0_EL0", 858 }, 5577 { "SPMEVFILTR10_EL0", 859 }, 5578 { "SPMEVFILTR11_EL0", 860 }, 5579 { "SPMEVFILTR12_EL0", 861 }, 5580 { "SPMEVFILTR13_EL0", 862 }, 5581 { "SPMEVFILTR14_EL0", 863 }, 5582 { "SPMEVFILTR15_EL0", 864 }, 5583 { "SPMEVFILTR1_EL0", 865 }, 5584 { "SPMEVFILTR2_EL0", 866 }, 5585 { "SPMEVFILTR3_EL0", 867 }, 5586 { "SPMEVFILTR4_EL0", 868 }, 5587 { "SPMEVFILTR5_EL0", 869 }, 5588 { "SPMEVFILTR6_EL0", 870 }, 5589 { "SPMEVFILTR7_EL0", 871 }, 5590 { "SPMEVFILTR8_EL0", 872 }, 5591 { "SPMEVFILTR9_EL0", 873 }, 5592 { "SPMEVTYPER0_EL0", 874 }, 5593 { "SPMEVTYPER10_EL0", 875 }, 5594 { "SPMEVTYPER11_EL0", 876 }, 5595 { "SPMEVTYPER12_EL0", 877 }, 5596 { "SPMEVTYPER13_EL0", 878 }, 5597 { "SPMEVTYPER14_EL0", 879 }, 5598 { "SPMEVTYPER15_EL0", 880 }, 5599 { "SPMEVTYPER1_EL0", 881 }, 5600 { "SPMEVTYPER2_EL0", 882 }, 5601 { "SPMEVTYPER3_EL0", 883 }, 5602 { "SPMEVTYPER4_EL0", 884 }, 5603 { "SPMEVTYPER5_EL0", 885 }, 5604 { "SPMEVTYPER6_EL0", 886 }, 5605 { "SPMEVTYPER7_EL0", 887 }, 5606 { "SPMEVTYPER8_EL0", 888 }, 5607 { "SPMEVTYPER9_EL0", 889 }, 5608 { "SPMIIDR_EL1", 890 }, 5609 { "SPMINTENCLR_EL1", 891 }, 5610 { "SPMINTENSET_EL1", 892 }, 5611 { "SPMOVSCLR_EL0", 893 }, 5612 { "SPMOVSSET_EL0", 894 }, 5613 { "SPMROOTCR_EL3", 895 }, 5614 { "SPMSCR_EL1", 896 }, 5615 { "SPMSELR_EL0", 897 }, 5616 { "SPSEL", 898 }, 5617 { "SPSR_ABT", 899 }, 5618 { "SPSR_EL1", 900 }, 5619 { "SPSR_EL12", 901 }, 5620 { "SPSR_EL2", 902 }, 5621 { "SPSR_EL3", 903 }, 5622 { "SPSR_FIQ", 904 }, 5623 { "SPSR_IRQ", 905 }, 5624 { "SPSR_UND", 906 }, 5625 { "SP_EL0", 907 }, 5626 { "SP_EL1", 908 }, 5627 { "SP_EL2", 909 }, 5628 { "SSBS", 910 }, 5629 { "SVCR", 911 }, 5630 { "TCO", 912 }, 5631 { "TCR2_EL1", 913 }, 5632 { "TCR2_EL12", 914 }, 5633 { "TCR2_EL2", 915 }, 5634 { "TCR_EL1", 916 }, 5635 { "TCR_EL12", 917 }, 5636 { "TCR_EL2", 918 }, 5637 { "TCR_EL3", 919 }, 5638 { "TEECR32_EL1", 920 }, 5639 { "TEEHBR32_EL1", 921 }, 5640 { "TFSRE0_EL1", 922 }, 5641 { "TFSR_EL1", 923 }, 5642 { "TFSR_EL12", 924 }, 5643 { "TFSR_EL2", 925 }, 5644 { "TFSR_EL3", 926 }, 5645 { "TPIDR2_EL0", 927 }, 5646 { "TPIDRRO_EL0", 928 }, 5647 { "TPIDR_EL0", 929 }, 5648 { "TPIDR_EL1", 930 }, 5649 { "TPIDR_EL2", 931 }, 5650 { "TPIDR_EL3", 932 }, 5651 { "TRBBASER_EL1", 933 }, 5652 { "TRBIDR_EL1", 934 }, 5653 { "TRBLIMITR_EL1", 935 }, 5654 { "TRBMAR_EL1", 936 }, 5655 { "TRBPTR_EL1", 937 }, 5656 { "TRBSR_EL1", 938 }, 5657 { "TRBTRG_EL1", 939 }, 5658 { "TRCACATR0", 940 }, 5659 { "TRCACATR1", 941 }, 5660 { "TRCACATR10", 942 }, 5661 { "TRCACATR11", 943 }, 5662 { "TRCACATR12", 944 }, 5663 { "TRCACATR13", 945 }, 5664 { "TRCACATR14", 946 }, 5665 { "TRCACATR15", 947 }, 5666 { "TRCACATR2", 948 }, 5667 { "TRCACATR3", 949 }, 5668 { "TRCACATR4", 950 }, 5669 { "TRCACATR5", 951 }, 5670 { "TRCACATR6", 952 }, 5671 { "TRCACATR7", 953 }, 5672 { "TRCACATR8", 954 }, 5673 { "TRCACATR9", 955 }, 5674 { "TRCACVR0", 956 }, 5675 { "TRCACVR1", 957 }, 5676 { "TRCACVR10", 958 }, 5677 { "TRCACVR11", 959 }, 5678 { "TRCACVR12", 960 }, 5679 { "TRCACVR13", 961 }, 5680 { "TRCACVR14", 962 }, 5681 { "TRCACVR15", 963 }, 5682 { "TRCACVR2", 964 }, 5683 { "TRCACVR3", 965 }, 5684 { "TRCACVR4", 966 }, 5685 { "TRCACVR5", 967 }, 5686 { "TRCACVR6", 968 }, 5687 { "TRCACVR7", 969 }, 5688 { "TRCACVR8", 970 }, 5689 { "TRCACVR9", 971 }, 5690 { "TRCAUTHSTATUS", 972 }, 5691 { "TRCAUXCTLR", 973 }, 5692 { "TRCBBCTLR", 974 }, 5693 { "TRCCCCTLR", 975 }, 5694 { "TRCCIDCCTLR0", 976 }, 5695 { "TRCCIDCCTLR1", 977 }, 5696 { "TRCCIDCVR0", 978 }, 5697 { "TRCCIDCVR1", 979 }, 5698 { "TRCCIDCVR2", 980 }, 5699 { "TRCCIDCVR3", 981 }, 5700 { "TRCCIDCVR4", 982 }, 5701 { "TRCCIDCVR5", 983 }, 5702 { "TRCCIDCVR6", 984 }, 5703 { "TRCCIDCVR7", 985 }, 5704 { "TRCCIDR0", 986 }, 5705 { "TRCCIDR1", 987 }, 5706 { "TRCCIDR2", 988 }, 5707 { "TRCCIDR3", 989 }, 5708 { "TRCCLAIMCLR", 990 }, 5709 { "TRCCLAIMSET", 991 }, 5710 { "TRCCNTCTLR0", 992 }, 5711 { "TRCCNTCTLR1", 993 }, 5712 { "TRCCNTCTLR2", 994 }, 5713 { "TRCCNTCTLR3", 995 }, 5714 { "TRCCNTRLDVR0", 996 }, 5715 { "TRCCNTRLDVR1", 997 }, 5716 { "TRCCNTRLDVR2", 998 }, 5717 { "TRCCNTRLDVR3", 999 }, 5718 { "TRCCNTVR0", 1000 }, 5719 { "TRCCNTVR1", 1001 }, 5720 { "TRCCNTVR2", 1002 }, 5721 { "TRCCNTVR3", 1003 }, 5722 { "TRCCONFIGR", 1004 }, 5723 { "TRCDEVAFF0", 1005 }, 5724 { "TRCDEVAFF1", 1006 }, 5725 { "TRCDEVARCH", 1007 }, 5726 { "TRCDEVID", 1008 }, 5727 { "TRCDEVTYPE", 1009 }, 5728 { "TRCDVCMR0", 1010 }, 5729 { "TRCDVCMR1", 1011 }, 5730 { "TRCDVCMR2", 1012 }, 5731 { "TRCDVCMR3", 1013 }, 5732 { "TRCDVCMR4", 1014 }, 5733 { "TRCDVCMR5", 1015 }, 5734 { "TRCDVCMR6", 1016 }, 5735 { "TRCDVCMR7", 1017 }, 5736 { "TRCDVCVR0", 1018 }, 5737 { "TRCDVCVR1", 1019 }, 5738 { "TRCDVCVR2", 1020 }, 5739 { "TRCDVCVR3", 1021 }, 5740 { "TRCDVCVR4", 1022 }, 5741 { "TRCDVCVR5", 1023 }, 5742 { "TRCDVCVR6", 1024 }, 5743 { "TRCDVCVR7", 1025 }, 5744 { "TRCEVENTCTL0R", 1026 }, 5745 { "TRCEVENTCTL1R", 1027 }, 5746 { "TRCEXTINSELR", 1028 }, 5747 { "TRCEXTINSELR0", 1029 }, 5748 { "TRCEXTINSELR1", 1030 }, 5749 { "TRCEXTINSELR2", 1031 }, 5750 { "TRCEXTINSELR3", 1032 }, 5751 { "TRCIDR0", 1033 }, 5752 { "TRCIDR1", 1034 }, 5753 { "TRCIDR10", 1035 }, 5754 { "TRCIDR11", 1036 }, 5755 { "TRCIDR12", 1037 }, 5756 { "TRCIDR13", 1038 }, 5757 { "TRCIDR2", 1039 }, 5758 { "TRCIDR3", 1040 }, 5759 { "TRCIDR4", 1041 }, 5760 { "TRCIDR5", 1042 }, 5761 { "TRCIDR6", 1043 }, 5762 { "TRCIDR7", 1044 }, 5763 { "TRCIDR8", 1045 }, 5764 { "TRCIDR9", 1046 }, 5765 { "TRCIMSPEC0", 1047 }, 5766 { "TRCIMSPEC1", 1048 }, 5767 { "TRCIMSPEC2", 1049 }, 5768 { "TRCIMSPEC3", 1050 }, 5769 { "TRCIMSPEC4", 1051 }, 5770 { "TRCIMSPEC5", 1052 }, 5771 { "TRCIMSPEC6", 1053 }, 5772 { "TRCIMSPEC7", 1054 }, 5773 { "TRCITCTRL", 1055 }, 5774 { "TRCITECR_EL1", 1056 }, 5775 { "TRCITECR_EL12", 1057 }, 5776 { "TRCITECR_EL2", 1058 }, 5777 { "TRCITEEDCR", 1059 }, 5778 { "TRCLAR", 1060 }, 5779 { "TRCLSR", 1061 }, 5780 { "TRCOSLAR", 1062 }, 5781 { "TRCOSLSR", 1063 }, 5782 { "TRCPDCR", 1064 }, 5783 { "TRCPDSR", 1065 }, 5784 { "TRCPIDR0", 1066 }, 5785 { "TRCPIDR1", 1067 }, 5786 { "TRCPIDR2", 1068 }, 5787 { "TRCPIDR3", 1069 }, 5788 { "TRCPIDR4", 1070 }, 5789 { "TRCPIDR5", 1071 }, 5790 { "TRCPIDR6", 1072 }, 5791 { "TRCPIDR7", 1073 }, 5792 { "TRCPRGCTLR", 1074 }, 5793 { "TRCPROCSELR", 1075 }, 5794 { "TRCQCTLR", 1076 }, 5795 { "TRCRSCTLR10", 1077 }, 5796 { "TRCRSCTLR11", 1078 }, 5797 { "TRCRSCTLR12", 1079 }, 5798 { "TRCRSCTLR13", 1080 }, 5799 { "TRCRSCTLR14", 1081 }, 5800 { "TRCRSCTLR15", 1082 }, 5801 { "TRCRSCTLR16", 1083 }, 5802 { "TRCRSCTLR17", 1084 }, 5803 { "TRCRSCTLR18", 1085 }, 5804 { "TRCRSCTLR19", 1086 }, 5805 { "TRCRSCTLR2", 1087 }, 5806 { "TRCRSCTLR20", 1088 }, 5807 { "TRCRSCTLR21", 1089 }, 5808 { "TRCRSCTLR22", 1090 }, 5809 { "TRCRSCTLR23", 1091 }, 5810 { "TRCRSCTLR24", 1092 }, 5811 { "TRCRSCTLR25", 1093 }, 5812 { "TRCRSCTLR26", 1094 }, 5813 { "TRCRSCTLR27", 1095 }, 5814 { "TRCRSCTLR28", 1096 }, 5815 { "TRCRSCTLR29", 1097 }, 5816 { "TRCRSCTLR3", 1098 }, 5817 { "TRCRSCTLR30", 1099 }, 5818 { "TRCRSCTLR31", 1100 }, 5819 { "TRCRSCTLR4", 1101 }, 5820 { "TRCRSCTLR5", 1102 }, 5821 { "TRCRSCTLR6", 1103 }, 5822 { "TRCRSCTLR7", 1104 }, 5823 { "TRCRSCTLR8", 1105 }, 5824 { "TRCRSCTLR9", 1106 }, 5825 { "TRCRSR", 1107 }, 5826 { "TRCSEQEVR0", 1108 }, 5827 { "TRCSEQEVR1", 1109 }, 5828 { "TRCSEQEVR2", 1110 }, 5829 { "TRCSEQRSTEVR", 1111 }, 5830 { "TRCSEQSTR", 1112 }, 5831 { "TRCSSCCR0", 1113 }, 5832 { "TRCSSCCR1", 1114 }, 5833 { "TRCSSCCR2", 1115 }, 5834 { "TRCSSCCR3", 1116 }, 5835 { "TRCSSCCR4", 1117 }, 5836 { "TRCSSCCR5", 1118 }, 5837 { "TRCSSCCR6", 1119 }, 5838 { "TRCSSCCR7", 1120 }, 5839 { "TRCSSCSR0", 1121 }, 5840 { "TRCSSCSR1", 1122 }, 5841 { "TRCSSCSR2", 1123 }, 5842 { "TRCSSCSR3", 1124 }, 5843 { "TRCSSCSR4", 1125 }, 5844 { "TRCSSCSR5", 1126 }, 5845 { "TRCSSCSR6", 1127 }, 5846 { "TRCSSCSR7", 1128 }, 5847 { "TRCSSPCICR0", 1129 }, 5848 { "TRCSSPCICR1", 1130 }, 5849 { "TRCSSPCICR2", 1131 }, 5850 { "TRCSSPCICR3", 1132 }, 5851 { "TRCSSPCICR4", 1133 }, 5852 { "TRCSSPCICR5", 1134 }, 5853 { "TRCSSPCICR6", 1135 }, 5854 { "TRCSSPCICR7", 1136 }, 5855 { "TRCSTALLCTLR", 1137 }, 5856 { "TRCSTATR", 1138 }, 5857 { "TRCSYNCPR", 1139 }, 5858 { "TRCTRACEIDR", 1140 }, 5859 { "TRCTSCTLR", 1141 }, 5860 { "TRCVDARCCTLR", 1142 }, 5861 { "TRCVDCTLR", 1143 }, 5862 { "TRCVDSACCTLR", 1144 }, 5863 { "TRCVICTLR", 1145 }, 5864 { "TRCVIIECTLR", 1146 }, 5865 { "TRCVIPCSSCTLR", 1147 }, 5866 { "TRCVISSCTLR", 1148 }, 5867 { "TRCVMIDCCTLR0", 1149 }, 5868 { "TRCVMIDCCTLR1", 1150 }, 5869 { "TRCVMIDCVR0", 1151 }, 5870 { "TRCVMIDCVR1", 1152 }, 5871 { "TRCVMIDCVR2", 1153 }, 5872 { "TRCVMIDCVR3", 1154 }, 5873 { "TRCVMIDCVR4", 1155 }, 5874 { "TRCVMIDCVR5", 1156 }, 5875 { "TRCVMIDCVR6", 1157 }, 5876 { "TRCVMIDCVR7", 1158 }, 5877 { "TRFCR_EL1", 1159 }, 5878 { "TRFCR_EL12", 1160 }, 5879 { "TRFCR_EL2", 1161 }, 5880 { "TTBR0_EL1", 1162 }, 5881 { "TTBR0_EL12", 1163 }, 5882 { "TTBR0_EL2", 1164 }, 5883 { "TTBR0_EL3", 1165 }, 5884 { "TTBR1_EL1", 1166 }, 5885 { "TTBR1_EL12", 1167 }, 5886 { "TTBR1_EL2", 1168 }, 5887 { "UAO", 1169 }, 5888 { "VBAR_EL1", 1170 }, 5889 { "VBAR_EL12", 1171 }, 5890 { "VBAR_EL2", 1172 }, 5891 { "VBAR_EL3", 1173 }, 5892 { "VDISR_EL2", 1174 }, 5893 { "VMECID_A_EL2", 1175 }, 5894 { "VMECID_P_EL2", 1176 }, 5895 { "VMPIDR_EL2", 1177 }, 5896 { "VNCR_EL2", 1178 }, 5897 { "VPIDR_EL2", 1179 }, 5898 { "VSCTLR_EL2", 1180 }, 5899 { "VSESR_EL2", 1181 }, 5900 { "VSTCR_EL2", 1182 }, 5901 { "VSTTBR_EL2", 1183 }, 5902 { "VTCR_EL2", 1184 }, 5903 { "VTTBR_EL2", 1185 }, 5904 { "ZCR_EL1", 1186 }, 5905 { "ZCR_EL12", 1187 }, 5906 { "ZCR_EL2", 1188 }, 5907 { "ZCR_EL3", 1189 }, 5908 }; 5909 5910 struct KeyType { 5911 std::string Name; 5912 }; 5913 KeyType Key = {Name.upper()}; 5914 auto Table = ArrayRef(Index); 5915 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 5916 [](const IndexType &LHS, const KeyType &RHS) { 5917 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 5918 if (CmpName < 0) return true; 5919 if (CmpName > 0) return false; 5920 return false; 5921 }); 5922 5923 if (Idx == Table.end() || 5924 Key.Name != Idx->Name) 5925 return nullptr; 5926 return &SysRegsList[Idx->_index]; 5927} 5928 5929const SysReg *lookupSysRegByEncoding(uint16_t Encoding) { 5930 struct IndexType { 5931 uint16_t Encoding; 5932 unsigned _index; 5933 }; 5934 static const struct IndexType Index[] = { 5935 { 0x8002, 552 }, 5936 { 0x8004, 291 }, 5937 { 0x8005, 275 }, 5938 { 0x8006, 330 }, 5939 { 0x8007, 314 }, 5940 { 0x800C, 298 }, 5941 { 0x800D, 282 }, 5942 { 0x800E, 337 }, 5943 { 0x800F, 321 }, 5944 { 0x8010, 512 }, 5945 { 0x8012, 517 }, 5946 { 0x8014, 299 }, 5947 { 0x8015, 283 }, 5948 { 0x8016, 338 }, 5949 { 0x8017, 322 }, 5950 { 0x801A, 553 }, 5951 { 0x801C, 300 }, 5952 { 0x801D, 284 }, 5953 { 0x801E, 339 }, 5954 { 0x801F, 323 }, 5955 { 0x8022, 518 }, 5956 { 0x8024, 301 }, 5957 { 0x8025, 285 }, 5958 { 0x8026, 340 }, 5959 { 0x8027, 324 }, 5960 { 0x802C, 302 }, 5961 { 0x802D, 286 }, 5962 { 0x802E, 341 }, 5963 { 0x802F, 325 }, 5964 { 0x8032, 554 }, 5965 { 0x8034, 303 }, 5966 { 0x8035, 287 }, 5967 { 0x8036, 342 }, 5968 { 0x8037, 326 }, 5969 { 0x803C, 304 }, 5970 { 0x803D, 288 }, 5971 { 0x803E, 343 }, 5972 { 0x803F, 327 }, 5973 { 0x8044, 305 }, 5974 { 0x8045, 289 }, 5975 { 0x8046, 344 }, 5976 { 0x8047, 328 }, 5977 { 0x804C, 306 }, 5978 { 0x804D, 290 }, 5979 { 0x804E, 345 }, 5980 { 0x804F, 329 }, 5981 { 0x8054, 292 }, 5982 { 0x8055, 276 }, 5983 { 0x8056, 331 }, 5984 { 0x8057, 315 }, 5985 { 0x805C, 293 }, 5986 { 0x805D, 277 }, 5987 { 0x805E, 332 }, 5988 { 0x805F, 316 }, 5989 { 0x8064, 294 }, 5990 { 0x8065, 278 }, 5991 { 0x8066, 333 }, 5992 { 0x8067, 317 }, 5993 { 0x806C, 295 }, 5994 { 0x806D, 279 }, 5995 { 0x806E, 334 }, 5996 { 0x806F, 318 }, 5997 { 0x8074, 296 }, 5998 { 0x8075, 280 }, 5999 { 0x8076, 335 }, 6000 { 0x8077, 319 }, 6001 { 0x807C, 297 }, 6002 { 0x807D, 281 }, 6003 { 0x807E, 336 }, 6004 { 0x807F, 320 }, 6005 { 0x8080, 516 }, 6006 { 0x8084, 555 }, 6007 { 0x808C, 556 }, 6008 { 0x809C, 551 }, 6009 { 0x80A4, 312 }, 6010 { 0x83C6, 308 }, 6011 { 0x83CE, 307 }, 6012 { 0x83F6, 274 }, 6013 { 0x84E8, 819 }, 6014 { 0x84E9, 820 }, 6015 { 0x84EB, 814 }, 6016 { 0x84EC, 890 }, 6017 { 0x84ED, 825 }, 6018 { 0x84EE, 824 }, 6019 { 0x84EF, 818 }, 6020 { 0x84F1, 892 }, 6021 { 0x84F2, 891 }, 6022 { 0x8740, 614 }, 6023 { 0x8741, 625 }, 6024 { 0x8742, 636 }, 6025 { 0x8743, 638 }, 6026 { 0x8744, 639 }, 6027 { 0x8745, 640 }, 6028 { 0x8746, 641 }, 6029 { 0x8747, 642 }, 6030 { 0x8748, 643 }, 6031 { 0x8749, 644 }, 6032 { 0x874A, 615 }, 6033 { 0x874B, 616 }, 6034 { 0x874C, 617 }, 6035 { 0x874D, 618 }, 6036 { 0x874E, 619 }, 6037 { 0x874F, 620 }, 6038 { 0x8750, 621 }, 6039 { 0x8751, 622 }, 6040 { 0x8752, 623 }, 6041 { 0x8753, 624 }, 6042 { 0x8754, 626 }, 6043 { 0x8755, 627 }, 6044 { 0x8756, 628 }, 6045 { 0x8757, 629 }, 6046 { 0x8758, 630 }, 6047 { 0x8759, 631 }, 6048 { 0x875A, 632 }, 6049 { 0x875B, 633 }, 6050 { 0x875C, 634 }, 6051 { 0x875D, 635 }, 6052 { 0x875E, 637 }, 6053 { 0x875F, 576 }, 6054 { 0x8760, 679 }, 6055 { 0x8801, 1140 }, 6056 { 0x8802, 1145 }, 6057 { 0x8804, 1108 }, 6058 { 0x8805, 996 }, 6059 { 0x8806, 1045 }, 6060 { 0x8807, 1047 }, 6061 { 0x8808, 1074 }, 6062 { 0x8809, 1076 }, 6063 { 0x880A, 1146 }, 6064 { 0x880C, 1109 }, 6065 { 0x880D, 997 }, 6066 { 0x880E, 1046 }, 6067 { 0x880F, 1048 }, 6068 { 0x8810, 1075 }, 6069 { 0x8811, 1059 }, 6070 { 0x8812, 1148 }, 6071 { 0x8814, 1110 }, 6072 { 0x8815, 998 }, 6073 { 0x8816, 1035 }, 6074 { 0x8817, 1049 }, 6075 { 0x8818, 1138 }, 6076 { 0x881A, 1147 }, 6077 { 0x881D, 999 }, 6078 { 0x881E, 1036 }, 6079 { 0x881F, 1050 }, 6080 { 0x8820, 1004 }, 6081 { 0x8825, 992 }, 6082 { 0x8826, 1037 }, 6083 { 0x8827, 1051 }, 6084 { 0x882D, 993 }, 6085 { 0x882E, 1038 }, 6086 { 0x882F, 1052 }, 6087 { 0x8830, 973 }, 6088 { 0x8834, 1111 }, 6089 { 0x8835, 994 }, 6090 { 0x8837, 1053 }, 6091 { 0x883C, 1112 }, 6092 { 0x883D, 995 }, 6093 { 0x883F, 1054 }, 6094 { 0x8840, 1026 }, 6095 { 0x8842, 1143 }, 6096 { 0x8844, 1028 }, 6097 { 0x8844, 1029 }, 6098 { 0x8845, 1000 }, 6099 { 0x8847, 1033 }, 6100 { 0x8848, 1027 }, 6101 { 0x884A, 1144 }, 6102 { 0x884C, 1030 }, 6103 { 0x884D, 1001 }, 6104 { 0x884F, 1034 }, 6105 { 0x8850, 1107 }, 6106 { 0x8852, 1142 }, 6107 { 0x8854, 1031 }, 6108 { 0x8855, 1002 }, 6109 { 0x8857, 1039 }, 6110 { 0x8858, 1137 }, 6111 { 0x885C, 1032 }, 6112 { 0x885D, 1003 }, 6113 { 0x885F, 1040 }, 6114 { 0x8860, 1141 }, 6115 { 0x8867, 1041 }, 6116 { 0x8868, 1139 }, 6117 { 0x886F, 1042 }, 6118 { 0x8870, 975 }, 6119 { 0x8877, 1043 }, 6120 { 0x8878, 974 }, 6121 { 0x887F, 1044 }, 6122 { 0x8881, 1083 }, 6123 { 0x8882, 1113 }, 6124 { 0x8883, 1129 }, 6125 { 0x8884, 1062 }, 6126 { 0x8889, 1084 }, 6127 { 0x888A, 1114 }, 6128 { 0x888B, 1130 }, 6129 { 0x888C, 1063 }, 6130 { 0x8890, 1087 }, 6131 { 0x8891, 1085 }, 6132 { 0x8892, 1115 }, 6133 { 0x8893, 1131 }, 6134 { 0x8898, 1098 }, 6135 { 0x8899, 1086 }, 6136 { 0x889A, 1116 }, 6137 { 0x889B, 1132 }, 6138 { 0x88A0, 1101 }, 6139 { 0x88A1, 1088 }, 6140 { 0x88A2, 1117 }, 6141 { 0x88A3, 1133 }, 6142 { 0x88A4, 1064 }, 6143 { 0x88A8, 1102 }, 6144 { 0x88A9, 1089 }, 6145 { 0x88AA, 1118 }, 6146 { 0x88AB, 1134 }, 6147 { 0x88AC, 1065 }, 6148 { 0x88B0, 1103 }, 6149 { 0x88B1, 1090 }, 6150 { 0x88B2, 1119 }, 6151 { 0x88B3, 1135 }, 6152 { 0x88B8, 1104 }, 6153 { 0x88B9, 1091 }, 6154 { 0x88BA, 1120 }, 6155 { 0x88BB, 1136 }, 6156 { 0x88C0, 1105 }, 6157 { 0x88C1, 1092 }, 6158 { 0x88C2, 1121 }, 6159 { 0x88C8, 1106 }, 6160 { 0x88C9, 1093 }, 6161 { 0x88CA, 1122 }, 6162 { 0x88D0, 1077 }, 6163 { 0x88D1, 1094 }, 6164 { 0x88D2, 1123 }, 6165 { 0x88D8, 1078 }, 6166 { 0x88D9, 1095 }, 6167 { 0x88DA, 1124 }, 6168 { 0x88E0, 1079 }, 6169 { 0x88E1, 1096 }, 6170 { 0x88E2, 1125 }, 6171 { 0x88E8, 1080 }, 6172 { 0x88E9, 1097 }, 6173 { 0x88EA, 1126 }, 6174 { 0x88F0, 1081 }, 6175 { 0x88F1, 1099 }, 6176 { 0x88F2, 1127 }, 6177 { 0x88F8, 1082 }, 6178 { 0x88F9, 1100 }, 6179 { 0x88FA, 1128 }, 6180 { 0x8900, 956 }, 6181 { 0x8901, 970 }, 6182 { 0x8902, 940 }, 6183 { 0x8903, 954 }, 6184 { 0x8904, 1018 }, 6185 { 0x8905, 1022 }, 6186 { 0x8906, 1010 }, 6187 { 0x8907, 1014 }, 6188 { 0x8910, 957 }, 6189 { 0x8911, 971 }, 6190 { 0x8912, 941 }, 6191 { 0x8913, 955 }, 6192 { 0x8920, 964 }, 6193 { 0x8921, 958 }, 6194 { 0x8922, 948 }, 6195 { 0x8923, 942 }, 6196 { 0x8924, 1019 }, 6197 { 0x8925, 1023 }, 6198 { 0x8926, 1011 }, 6199 { 0x8927, 1015 }, 6200 { 0x8930, 965 }, 6201 { 0x8931, 959 }, 6202 { 0x8932, 949 }, 6203 { 0x8933, 943 }, 6204 { 0x8940, 966 }, 6205 { 0x8941, 960 }, 6206 { 0x8942, 950 }, 6207 { 0x8943, 944 }, 6208 { 0x8944, 1020 }, 6209 { 0x8945, 1024 }, 6210 { 0x8946, 1012 }, 6211 { 0x8947, 1016 }, 6212 { 0x8950, 967 }, 6213 { 0x8951, 961 }, 6214 { 0x8952, 951 }, 6215 { 0x8953, 945 }, 6216 { 0x8960, 968 }, 6217 { 0x8961, 962 }, 6218 { 0x8962, 952 }, 6219 { 0x8963, 946 }, 6220 { 0x8964, 1021 }, 6221 { 0x8965, 1025 }, 6222 { 0x8966, 1013 }, 6223 { 0x8967, 1017 }, 6224 { 0x8970, 969 }, 6225 { 0x8971, 963 }, 6226 { 0x8972, 953 }, 6227 { 0x8973, 947 }, 6228 { 0x8980, 978 }, 6229 { 0x8981, 1151 }, 6230 { 0x8982, 976 }, 6231 { 0x898A, 977 }, 6232 { 0x8990, 979 }, 6233 { 0x8991, 1152 }, 6234 { 0x8992, 1149 }, 6235 { 0x899A, 1150 }, 6236 { 0x89A0, 980 }, 6237 { 0x89A1, 1153 }, 6238 { 0x89B0, 981 }, 6239 { 0x89B1, 1154 }, 6240 { 0x89C0, 982 }, 6241 { 0x89C1, 1155 }, 6242 { 0x89D0, 983 }, 6243 { 0x89D1, 1156 }, 6244 { 0x89E0, 984 }, 6245 { 0x89E1, 1157 }, 6246 { 0x89F0, 985 }, 6247 { 0x89F1, 1158 }, 6248 { 0x8B84, 1055 }, 6249 { 0x8B97, 1008 }, 6250 { 0x8B9F, 1009 }, 6251 { 0x8BA7, 1070 }, 6252 { 0x8BAF, 1071 }, 6253 { 0x8BB7, 1072 }, 6254 { 0x8BBF, 1073 }, 6255 { 0x8BC6, 991 }, 6256 { 0x8BC7, 1066 }, 6257 { 0x8BCE, 990 }, 6258 { 0x8BCF, 1067 }, 6259 { 0x8BD6, 1005 }, 6260 { 0x8BD7, 1068 }, 6261 { 0x8BDE, 1006 }, 6262 { 0x8BDF, 1069 }, 6263 { 0x8BE6, 1060 }, 6264 { 0x8BE7, 986 }, 6265 { 0x8BEE, 1061 }, 6266 { 0x8BEF, 987 }, 6267 { 0x8BF6, 972 }, 6268 { 0x8BF7, 988 }, 6269 { 0x8BFE, 1007 }, 6270 { 0x8BFF, 989 }, 6271 { 0x8C00, 118 }, 6272 { 0x8C01, 151 }, 6273 { 0x8C02, 184 }, 6274 { 0x8C04, 125 }, 6275 { 0x8C05, 158 }, 6276 { 0x8C06, 191 }, 6277 { 0x8C08, 129 }, 6278 { 0x8C09, 162 }, 6279 { 0x8C0A, 195 }, 6280 { 0x8C0C, 126 }, 6281 { 0x8C0D, 159 }, 6282 { 0x8C0E, 192 }, 6283 { 0x8C10, 140 }, 6284 { 0x8C11, 173 }, 6285 { 0x8C12, 206 }, 6286 { 0x8C14, 127 }, 6287 { 0x8C15, 160 }, 6288 { 0x8C16, 193 }, 6289 { 0x8C18, 143 }, 6290 { 0x8C19, 176 }, 6291 { 0x8C1A, 209 }, 6292 { 0x8C1C, 128 }, 6293 { 0x8C1D, 161 }, 6294 { 0x8C1E, 194 }, 6295 { 0x8C20, 144 }, 6296 { 0x8C21, 177 }, 6297 { 0x8C22, 210 }, 6298 { 0x8C24, 130 }, 6299 { 0x8C25, 163 }, 6300 { 0x8C26, 196 }, 6301 { 0x8C28, 145 }, 6302 { 0x8C29, 178 }, 6303 { 0x8C2A, 211 }, 6304 { 0x8C2C, 131 }, 6305 { 0x8C2D, 164 }, 6306 { 0x8C2E, 197 }, 6307 { 0x8C30, 146 }, 6308 { 0x8C31, 179 }, 6309 { 0x8C32, 212 }, 6310 { 0x8C34, 132 }, 6311 { 0x8C35, 165 }, 6312 { 0x8C36, 198 }, 6313 { 0x8C38, 147 }, 6314 { 0x8C39, 180 }, 6315 { 0x8C3A, 213 }, 6316 { 0x8C3C, 133 }, 6317 { 0x8C3D, 166 }, 6318 { 0x8C3E, 199 }, 6319 { 0x8C40, 148 }, 6320 { 0x8C41, 181 }, 6321 { 0x8C42, 214 }, 6322 { 0x8C44, 134 }, 6323 { 0x8C45, 167 }, 6324 { 0x8C46, 200 }, 6325 { 0x8C48, 149 }, 6326 { 0x8C49, 182 }, 6327 { 0x8C4A, 215 }, 6328 { 0x8C4C, 135 }, 6329 { 0x8C4D, 168 }, 6330 { 0x8C4E, 201 }, 6331 { 0x8C50, 119 }, 6332 { 0x8C51, 152 }, 6333 { 0x8C52, 185 }, 6334 { 0x8C54, 136 }, 6335 { 0x8C55, 169 }, 6336 { 0x8C56, 202 }, 6337 { 0x8C58, 120 }, 6338 { 0x8C59, 153 }, 6339 { 0x8C5A, 186 }, 6340 { 0x8C5C, 137 }, 6341 { 0x8C5D, 170 }, 6342 { 0x8C5E, 203 }, 6343 { 0x8C60, 121 }, 6344 { 0x8C61, 154 }, 6345 { 0x8C62, 187 }, 6346 { 0x8C64, 138 }, 6347 { 0x8C65, 171 }, 6348 { 0x8C66, 204 }, 6349 { 0x8C68, 122 }, 6350 { 0x8C69, 155 }, 6351 { 0x8C6A, 188 }, 6352 { 0x8C6C, 139 }, 6353 { 0x8C6D, 172 }, 6354 { 0x8C6E, 205 }, 6355 { 0x8C70, 123 }, 6356 { 0x8C71, 156 }, 6357 { 0x8C72, 189 }, 6358 { 0x8C74, 141 }, 6359 { 0x8C75, 174 }, 6360 { 0x8C76, 207 }, 6361 { 0x8C78, 124 }, 6362 { 0x8C79, 157 }, 6363 { 0x8C7A, 190 }, 6364 { 0x8C7C, 142 }, 6365 { 0x8C7D, 175 }, 6366 { 0x8C7E, 208 }, 6367 { 0x8C80, 113 }, 6368 { 0x8C81, 116 }, 6369 { 0x8C82, 217 }, 6370 { 0x8C88, 150 }, 6371 { 0x8C89, 183 }, 6372 { 0x8C8A, 216 }, 6373 { 0x8C90, 117 }, 6374 { 0x9000, 920 }, 6375 { 0x9080, 921 }, 6376 { 0x9808, 513 }, 6377 { 0x9820, 311 }, 6378 { 0x9828, 309 }, 6379 { 0x9828, 310 }, 6380 { 0x9CE0, 823 }, 6381 { 0x9CE1, 822 }, 6382 { 0x9CE2, 821 }, 6383 { 0x9CE3, 893 }, 6384 { 0x9CE5, 897 }, 6385 { 0x9CF3, 894 }, 6386 { 0x9F00, 826 }, 6387 { 0x9F01, 833 }, 6388 { 0x9F02, 834 }, 6389 { 0x9F03, 835 }, 6390 { 0x9F04, 836 }, 6391 { 0x9F05, 837 }, 6392 { 0x9F06, 838 }, 6393 { 0x9F07, 839 }, 6394 { 0x9F08, 840 }, 6395 { 0x9F09, 841 }, 6396 { 0x9F0A, 827 }, 6397 { 0x9F0B, 828 }, 6398 { 0x9F0C, 829 }, 6399 { 0x9F0D, 830 }, 6400 { 0x9F0E, 831 }, 6401 { 0x9F0F, 832 }, 6402 { 0x9F10, 874 }, 6403 { 0x9F11, 881 }, 6404 { 0x9F12, 882 }, 6405 { 0x9F13, 883 }, 6406 { 0x9F14, 884 }, 6407 { 0x9F15, 885 }, 6408 { 0x9F16, 886 }, 6409 { 0x9F17, 887 }, 6410 { 0x9F18, 888 }, 6411 { 0x9F19, 889 }, 6412 { 0x9F1A, 875 }, 6413 { 0x9F1B, 876 }, 6414 { 0x9F1C, 877 }, 6415 { 0x9F1D, 878 }, 6416 { 0x9F1E, 879 }, 6417 { 0x9F1F, 880 }, 6418 { 0x9F20, 858 }, 6419 { 0x9F21, 865 }, 6420 { 0x9F22, 866 }, 6421 { 0x9F23, 867 }, 6422 { 0x9F24, 868 }, 6423 { 0x9F25, 869 }, 6424 { 0x9F26, 870 }, 6425 { 0x9F27, 871 }, 6426 { 0x9F28, 872 }, 6427 { 0x9F29, 873 }, 6428 { 0x9F2A, 859 }, 6429 { 0x9F2B, 860 }, 6430 { 0x9F2C, 861 }, 6431 { 0x9F2D, 862 }, 6432 { 0x9F2E, 863 }, 6433 { 0x9F2F, 864 }, 6434 { 0x9F30, 842 }, 6435 { 0x9F31, 849 }, 6436 { 0x9F32, 850 }, 6437 { 0x9F33, 851 }, 6438 { 0x9F34, 852 }, 6439 { 0x9F35, 853 }, 6440 { 0x9F36, 854 }, 6441 { 0x9F37, 855 }, 6442 { 0x9F38, 856 }, 6443 { 0x9F39, 857 }, 6444 { 0x9F3A, 843 }, 6445 { 0x9F3B, 844 }, 6446 { 0x9F3C, 845 }, 6447 { 0x9F3D, 846 }, 6448 { 0x9F3E, 847 }, 6449 { 0x9F3F, 848 }, 6450 { 0xA038, 313 }, 6451 { 0xA480, 115 }, 6452 { 0xA4EB, 816 }, 6453 { 0xAC80, 114 }, 6454 { 0xACEB, 815 }, 6455 { 0xB4EB, 817 }, 6456 { 0xB4F7, 895 }, 6457 { 0xBCF7, 896 }, 6458 { 0xC000, 526 }, 6459 { 0xC004, 545 }, 6460 { 0xC005, 544 }, 6461 { 0xC006, 779 }, 6462 { 0xC008, 494 }, 6463 { 0xC009, 495 }, 6464 { 0xC00A, 479 }, 6465 { 0xC00B, 478 }, 6466 { 0xC00C, 488 }, 6467 { 0xC00D, 489 }, 6468 { 0xC00E, 490 }, 6469 { 0xC00F, 491 }, 6470 { 0xC010, 481 }, 6471 { 0xC011, 482 }, 6472 { 0xC012, 483 }, 6473 { 0xC013, 484 }, 6474 { 0xC014, 485 }, 6475 { 0xC015, 486 }, 6476 { 0xC016, 492 }, 6477 { 0xC017, 487 }, 6478 { 0xC018, 547 }, 6479 { 0xC019, 548 }, 6480 { 0xC01A, 549 }, 6481 { 0xC01C, 496 }, 6482 { 0xC01D, 480 }, 6483 { 0xC01E, 493 }, 6484 { 0xC020, 473 }, 6485 { 0xC021, 474 }, 6486 { 0xC022, 475 }, 6487 { 0xC024, 477 }, 6488 { 0xC025, 476 }, 6489 { 0xC028, 463 }, 6490 { 0xC029, 464 }, 6491 { 0xC02C, 461 }, 6492 { 0xC02D, 462 }, 6493 { 0xC030, 465 }, 6494 { 0xC031, 466 }, 6495 { 0xC032, 467 }, 6496 { 0xC038, 468 }, 6497 { 0xC039, 469 }, 6498 { 0xC03A, 470 }, 6499 { 0xC03B, 471 }, 6500 { 0xC03C, 472 }, 6501 { 0xC080, 796 }, 6502 { 0xC081, 1 }, 6503 { 0xC082, 264 }, 6504 { 0xC083, 792 }, 6505 { 0xC085, 780 }, 6506 { 0xC086, 380 }, 6507 { 0xC090, 1186 }, 6508 { 0xC091, 1159 }, 6509 { 0xC093, 1056 }, 6510 { 0xC094, 813 }, 6511 { 0xC096, 807 }, 6512 { 0xC100, 1162 }, 6513 { 0xC101, 1166 }, 6514 { 0xC102, 916 }, 6515 { 0xC103, 913 }, 6516 { 0xC108, 110 }, 6517 { 0xC109, 109 }, 6518 { 0xC10A, 112 }, 6519 { 0xC10B, 111 }, 6520 { 0xC110, 104 }, 6521 { 0xC111, 103 }, 6522 { 0xC112, 106 }, 6523 { 0xC113, 105 }, 6524 { 0xC118, 108 }, 6525 { 0xC119, 107 }, 6526 { 0xC200, 900 }, 6527 { 0xC201, 351 }, 6528 { 0xC208, 907 }, 6529 { 0xC210, 898 }, 6530 { 0xC212, 271 }, 6531 { 0xC213, 557 }, 6532 { 0xC214, 1169 }, 6533 { 0xC218, 13 }, 6534 { 0xC219, 569 }, 6535 { 0xC230, 424 }, 6536 { 0xC288, 4 }, 6537 { 0xC289, 8 }, 6538 { 0xC290, 369 }, 6539 { 0xC298, 355 }, 6540 { 0xC299, 356 }, 6541 { 0xC29A, 360 }, 6542 { 0xC2A0, 359 }, 6543 { 0xC2A1, 358 }, 6544 { 0xC2A2, 368 }, 6545 { 0xC2A3, 357 }, 6546 { 0xC2A4, 367 }, 6547 { 0xC2A5, 366 }, 6548 { 0xC2A6, 365 }, 6549 { 0xC2A8, 361 }, 6550 { 0xC2A9, 362 }, 6551 { 0xC2AA, 363 }, 6552 { 0xC2AB, 364 }, 6553 { 0xC2B0, 923 }, 6554 { 0xC2B1, 922 }, 6555 { 0xC300, 373 }, 6556 { 0xC305, 559 }, 6557 { 0xC309, 741 }, 6558 { 0xC311, 775 }, 6559 { 0xC340, 739 }, 6560 { 0xC341, 773 }, 6561 { 0xC344, 721 }, 6562 { 0xC345, 755 }, 6563 { 0xC348, 723 }, 6564 { 0xC349, 757 }, 6565 { 0xC34C, 725 }, 6566 { 0xC34D, 759 }, 6567 { 0xC350, 727 }, 6568 { 0xC351, 761 }, 6569 { 0xC354, 729 }, 6570 { 0xC355, 763 }, 6571 { 0xC358, 731 }, 6572 { 0xC359, 765 }, 6573 { 0xC35C, 733 }, 6574 { 0xC35D, 767 }, 6575 { 0xC360, 735 }, 6576 { 0xC361, 769 }, 6577 { 0xC364, 737 }, 6578 { 0xC365, 771 }, 6579 { 0xC368, 709 }, 6580 { 0xC369, 743 }, 6581 { 0xC36C, 711 }, 6582 { 0xC36D, 745 }, 6583 { 0xC370, 713 }, 6584 { 0xC371, 747 }, 6585 { 0xC374, 715 }, 6586 { 0xC375, 749 }, 6587 { 0xC378, 717 }, 6588 { 0xC379, 751 }, 6589 { 0xC37C, 719 }, 6590 { 0xC37D, 753 }, 6591 { 0xC3A0, 558 }, 6592 { 0xC4C8, 685 }, 6593 { 0xC4C9, 696 }, 6594 { 0xC4CA, 692 }, 6595 { 0xC4CB, 694 }, 6596 { 0xC4CC, 691 }, 6597 { 0xC4CD, 690 }, 6598 { 0xC4CE, 695 }, 6599 { 0xC4CF, 693 }, 6600 { 0xC4D0, 571 }, 6601 { 0xC4D1, 572 }, 6602 { 0xC4D3, 573 }, 6603 { 0xC4D4, 688 }, 6604 { 0xC4D7, 570 }, 6605 { 0xC4D8, 935 }, 6606 { 0xC4D9, 937 }, 6607 { 0xC4DA, 933 }, 6608 { 0xC4DB, 938 }, 6609 { 0xC4DC, 936 }, 6610 { 0xC4DE, 939 }, 6611 { 0xC4DF, 934 }, 6612 { 0xC4EB, 697 }, 6613 { 0xC4F1, 681 }, 6614 { 0xC4F2, 680 }, 6615 { 0xC4F4, 699 }, 6616 { 0xC4F5, 582 }, 6617 { 0xC4F6, 682 }, 6618 { 0xC4F7, 676 }, 6619 { 0xC510, 508 }, 6620 { 0xC511, 504 }, 6621 { 0xC512, 562 }, 6622 { 0xC513, 565 }, 6623 { 0xC514, 705 }, 6624 { 0xC515, 790 }, 6625 { 0xC518, 18 }, 6626 { 0xC519, 14 }, 6627 { 0xC520, 503 }, 6628 { 0xC521, 500 }, 6629 { 0xC522, 502 }, 6630 { 0xC523, 499 }, 6631 { 0xC524, 533 }, 6632 { 0xC527, 501 }, 6633 { 0xC528, 528 }, 6634 { 0xC529, 527 }, 6635 { 0xC52B, 534 }, 6636 { 0xC600, 1170 }, 6637 { 0xC601, 786 }, 6638 { 0xC602, 781 }, 6639 { 0xC608, 498 }, 6640 { 0xC609, 347 }, 6641 { 0xC640, 418 }, 6642 { 0xC641, 414 }, 6643 { 0xC642, 416 }, 6644 { 0xC643, 409 }, 6645 { 0xC644, 400 }, 6646 { 0xC645, 401 }, 6647 { 0xC646, 402 }, 6648 { 0xC647, 403 }, 6649 { 0xC648, 404 }, 6650 { 0xC649, 405 }, 6651 { 0xC64A, 406 }, 6652 { 0xC64B, 407 }, 6653 { 0xC64D, 423 }, 6654 { 0xC659, 413 }, 6655 { 0xC65B, 425 }, 6656 { 0xC65D, 427 }, 6657 { 0xC65E, 408 }, 6658 { 0xC65F, 426 }, 6659 { 0xC660, 419 }, 6660 { 0xC661, 415 }, 6661 { 0xC662, 417 }, 6662 { 0xC663, 410 }, 6663 { 0xC664, 411 }, 6664 { 0xC665, 428 }, 6665 { 0xC666, 420 }, 6666 { 0xC667, 421 }, 6667 { 0xC681, 261 }, 6668 { 0xC683, 778 }, 6669 { 0xC684, 930 }, 6670 { 0xC685, 0 }, 6671 { 0xC686, 777 }, 6672 { 0xC687, 801 }, 6673 { 0xC708, 236 }, 6674 { 0xC800, 219 }, 6675 { 0xC801, 220 }, 6676 { 0xC802, 218 }, 6677 { 0xC804, 381 }, 6678 { 0xC806, 811 }, 6679 { 0xC807, 12 }, 6680 { 0xD000, 269 }, 6681 { 0xD801, 270 }, 6682 { 0xD807, 346 }, 6683 { 0xD920, 784 }, 6684 { 0xD921, 785 }, 6685 { 0xDA10, 550 }, 6686 { 0xDA11, 273 }, 6687 { 0xDA12, 911 }, 6688 { 0xDA15, 348 }, 6689 { 0xDA16, 910 }, 6690 { 0xDA17, 912 }, 6691 { 0xDA20, 377 }, 6692 { 0xDA21, 379 }, 6693 { 0xDA28, 350 }, 6694 { 0xDA29, 349 }, 6695 { 0xDCA0, 678 }, 6696 { 0xDCB0, 677 }, 6697 { 0xDCE0, 581 }, 6698 { 0xDCE1, 580 }, 6699 { 0xDCE2, 579 }, 6700 { 0xDCE3, 683 }, 6701 { 0xDCE4, 698 }, 6702 { 0xDCE5, 689 }, 6703 { 0xDCE6, 577 }, 6704 { 0xDCE7, 578 }, 6705 { 0xDCE8, 575 }, 6706 { 0xDCE9, 702 }, 6707 { 0xDCEA, 701 }, 6708 { 0xDCEC, 703 }, 6709 { 0xDCF0, 700 }, 6710 { 0xDCF3, 684 }, 6711 { 0xDD14, 704 }, 6712 { 0xDE82, 929 }, 6713 { 0xDE83, 928 }, 6714 { 0xDE85, 927 }, 6715 { 0xDE87, 800 }, 6716 { 0xDE90, 29 }, 6717 { 0xDE91, 22 }, 6718 { 0xDE92, 24 }, 6719 { 0xDE93, 102 }, 6720 { 0xDE94, 25 }, 6721 { 0xDE95, 27 }, 6722 { 0xDE96, 23 }, 6723 { 0xDE98, 26 }, 6724 { 0xDE99, 28 }, 6725 { 0xDEA0, 30 }, 6726 { 0xDEA1, 31 }, 6727 { 0xDEA2, 32 }, 6728 { 0xDEA3, 33 }, 6729 { 0xDEB0, 82 }, 6730 { 0xDEB1, 83 }, 6731 { 0xDEB2, 84 }, 6732 { 0xDEB3, 85 }, 6733 { 0xDEE0, 34 }, 6734 { 0xDEE1, 41 }, 6735 { 0xDEE2, 42 }, 6736 { 0xDEE3, 43 }, 6737 { 0xDEE4, 44 }, 6738 { 0xDEE5, 45 }, 6739 { 0xDEE6, 46 }, 6740 { 0xDEE7, 47 }, 6741 { 0xDEE8, 48 }, 6742 { 0xDEE9, 49 }, 6743 { 0xDEEA, 35 }, 6744 { 0xDEEB, 36 }, 6745 { 0xDEEC, 37 }, 6746 { 0xDEED, 38 }, 6747 { 0xDEEE, 39 }, 6748 { 0xDEEF, 40 }, 6749 { 0xDEF0, 86 }, 6750 { 0xDEF1, 93 }, 6751 { 0xDEF2, 94 }, 6752 { 0xDEF3, 95 }, 6753 { 0xDEF4, 96 }, 6754 { 0xDEF5, 97 }, 6755 { 0xDEF6, 98 }, 6756 { 0xDEF7, 99 }, 6757 { 0xDEF8, 100 }, 6758 { 0xDEF9, 101 }, 6759 { 0xDEFA, 87 }, 6760 { 0xDEFB, 88 }, 6761 { 0xDEFC, 89 }, 6762 { 0xDEFD, 90 }, 6763 { 0xDEFE, 91 }, 6764 { 0xDEFF, 92 }, 6765 { 0xDF00, 221 }, 6766 { 0xDF01, 239 }, 6767 { 0xDF02, 252 }, 6768 { 0xDF05, 238 }, 6769 { 0xDF06, 251 }, 6770 { 0xDF10, 248 }, 6771 { 0xDF11, 244 }, 6772 { 0xDF12, 246 }, 6773 { 0xDF18, 259 }, 6774 { 0xDF19, 255 }, 6775 { 0xDF1A, 257 }, 6776 { 0xDF40, 583 }, 6777 { 0xDF41, 594 }, 6778 { 0xDF42, 605 }, 6779 { 0xDF43, 607 }, 6780 { 0xDF44, 608 }, 6781 { 0xDF45, 609 }, 6782 { 0xDF46, 610 }, 6783 { 0xDF47, 611 }, 6784 { 0xDF48, 612 }, 6785 { 0xDF49, 613 }, 6786 { 0xDF4A, 584 }, 6787 { 0xDF4B, 585 }, 6788 { 0xDF4C, 586 }, 6789 { 0xDF4D, 587 }, 6790 { 0xDF4E, 588 }, 6791 { 0xDF4F, 589 }, 6792 { 0xDF50, 590 }, 6793 { 0xDF51, 591 }, 6794 { 0xDF52, 592 }, 6795 { 0xDF53, 593 }, 6796 { 0xDF54, 595 }, 6797 { 0xDF55, 596 }, 6798 { 0xDF56, 597 }, 6799 { 0xDF57, 598 }, 6800 { 0xDF58, 599 }, 6801 { 0xDF59, 600 }, 6802 { 0xDF5A, 601 }, 6803 { 0xDF5B, 602 }, 6804 { 0xDF5C, 603 }, 6805 { 0xDF5D, 604 }, 6806 { 0xDF5E, 606 }, 6807 { 0xDF60, 645 }, 6808 { 0xDF61, 656 }, 6809 { 0xDF62, 667 }, 6810 { 0xDF63, 669 }, 6811 { 0xDF64, 670 }, 6812 { 0xDF65, 671 }, 6813 { 0xDF66, 672 }, 6814 { 0xDF67, 673 }, 6815 { 0xDF68, 674 }, 6816 { 0xDF69, 675 }, 6817 { 0xDF6A, 646 }, 6818 { 0xDF6B, 647 }, 6819 { 0xDF6C, 648 }, 6820 { 0xDF6D, 649 }, 6821 { 0xDF6E, 650 }, 6822 { 0xDF6F, 651 }, 6823 { 0xDF70, 652 }, 6824 { 0xDF71, 653 }, 6825 { 0xDF72, 654 }, 6826 { 0xDF73, 655 }, 6827 { 0xDF74, 657 }, 6828 { 0xDF75, 658 }, 6829 { 0xDF76, 659 }, 6830 { 0xDF77, 660 }, 6831 { 0xDF78, 661 }, 6832 { 0xDF79, 662 }, 6833 { 0xDF7A, 663 }, 6834 { 0xDF7B, 664 }, 6835 { 0xDF7C, 665 }, 6836 { 0xDF7D, 666 }, 6837 { 0xDF7E, 668 }, 6838 { 0xDF7F, 574 }, 6839 { 0xE000, 1179 }, 6840 { 0xE004, 546 }, 6841 { 0xE005, 1177 }, 6842 { 0xE080, 798 }, 6843 { 0xE081, 2 }, 6844 { 0xE083, 794 }, 6845 { 0xE088, 387 }, 6846 { 0xE089, 514 }, 6847 { 0xE08A, 267 }, 6848 { 0xE08B, 399 }, 6849 { 0xE08C, 395 }, 6850 { 0xE08D, 397 }, 6851 { 0xE08E, 393 }, 6852 { 0xE08F, 384 }, 6853 { 0xE090, 1188 }, 6854 { 0xE091, 1161 }, 6855 { 0xE092, 386 }, 6856 { 0xE093, 1058 }, 6857 { 0xE095, 812 }, 6858 { 0xE096, 809 }, 6859 { 0xE099, 805 }, 6860 { 0xE100, 1164 }, 6861 { 0xE100, 1180 }, 6862 { 0xE101, 1168 }, 6863 { 0xE102, 918 }, 6864 { 0xE103, 915 }, 6865 { 0xE108, 1185 }, 6866 { 0xE10A, 1184 }, 6867 { 0xE110, 1178 }, 6868 { 0xE130, 1183 }, 6869 { 0xE132, 1182 }, 6870 { 0xE180, 272 }, 6871 { 0xE188, 388 }, 6872 { 0xE189, 390 }, 6873 { 0xE18A, 394 }, 6874 { 0xE18B, 396 }, 6875 { 0xE18C, 389 }, 6876 { 0xE18D, 391 }, 6877 { 0xE18E, 385 }, 6878 { 0xE18F, 392 }, 6879 { 0xE200, 902 }, 6880 { 0xE201, 353 }, 6881 { 0xE208, 908 }, 6882 { 0xE218, 905 }, 6883 { 0xE219, 899 }, 6884 { 0xE21A, 906 }, 6885 { 0xE21B, 904 }, 6886 { 0xE281, 497 }, 6887 { 0xE288, 6 }, 6888 { 0xE289, 10 }, 6889 { 0xE290, 371 }, 6890 { 0xE293, 1181 }, 6891 { 0xE298, 378 }, 6892 { 0xE2B0, 925 }, 6893 { 0xE300, 375 }, 6894 { 0xE304, 398 }, 6895 { 0xE305, 561 }, 6896 { 0xE309, 742 }, 6897 { 0xE311, 776 }, 6898 { 0xE340, 740 }, 6899 { 0xE341, 774 }, 6900 { 0xE344, 722 }, 6901 { 0xE345, 756 }, 6902 { 0xE348, 724 }, 6903 { 0xE349, 758 }, 6904 { 0xE34C, 726 }, 6905 { 0xE34D, 760 }, 6906 { 0xE350, 728 }, 6907 { 0xE351, 762 }, 6908 { 0xE354, 730 }, 6909 { 0xE355, 764 }, 6910 { 0xE358, 732 }, 6911 { 0xE359, 766 }, 6912 { 0xE35C, 734 }, 6913 { 0xE35D, 768 }, 6914 { 0xE360, 736 }, 6915 { 0xE361, 770 }, 6916 { 0xE364, 738 }, 6917 { 0xE365, 772 }, 6918 { 0xE368, 710 }, 6919 { 0xE369, 744 }, 6920 { 0xE36C, 712 }, 6921 { 0xE36D, 746 }, 6922 { 0xE370, 714 }, 6923 { 0xE371, 748 }, 6924 { 0xE374, 716 }, 6925 { 0xE375, 750 }, 6926 { 0xE378, 718 }, 6927 { 0xE379, 752 }, 6928 { 0xE37C, 720 }, 6929 { 0xE37D, 754 }, 6930 { 0xE4C8, 687 }, 6931 { 0xE509, 506 }, 6932 { 0xE510, 510 }, 6933 { 0xE512, 564 }, 6934 { 0xE513, 567 }, 6935 { 0xE514, 707 }, 6936 { 0xE515, 789 }, 6937 { 0xE518, 20 }, 6938 { 0xE519, 16 }, 6939 { 0xE520, 532 }, 6940 { 0xE521, 543 }, 6941 { 0xE528, 530 }, 6942 { 0xE530, 535 }, 6943 { 0xE531, 536 }, 6944 { 0xE532, 537 }, 6945 { 0xE533, 538 }, 6946 { 0xE534, 539 }, 6947 { 0xE535, 540 }, 6948 { 0xE536, 541 }, 6949 { 0xE537, 542 }, 6950 { 0xE540, 522 }, 6951 { 0xE541, 520 }, 6952 { 0xE542, 523 }, 6953 { 0xE543, 521 }, 6954 { 0xE547, 519 }, 6955 { 0xE548, 1176 }, 6956 { 0xE549, 1175 }, 6957 { 0xE600, 1172 }, 6958 { 0xE601, 787 }, 6959 { 0xE602, 782 }, 6960 { 0xE609, 1174 }, 6961 { 0xE640, 431 }, 6962 { 0xE641, 432 }, 6963 { 0xE642, 433 }, 6964 { 0xE643, 434 }, 6965 { 0xE648, 435 }, 6966 { 0xE649, 436 }, 6967 { 0xE64A, 437 }, 6968 { 0xE64B, 438 }, 6969 { 0xE64D, 429 }, 6970 { 0xE658, 441 }, 6971 { 0xE659, 460 }, 6972 { 0xE65A, 458 }, 6973 { 0xE65B, 439 }, 6974 { 0xE65D, 440 }, 6975 { 0xE65F, 459 }, 6976 { 0xE660, 442 }, 6977 { 0xE661, 449 }, 6978 { 0xE662, 450 }, 6979 { 0xE663, 451 }, 6980 { 0xE664, 452 }, 6981 { 0xE665, 453 }, 6982 { 0xE666, 454 }, 6983 { 0xE667, 455 }, 6984 { 0xE668, 456 }, 6985 { 0xE669, 457 }, 6986 { 0xE66A, 443 }, 6987 { 0xE66B, 444 }, 6988 { 0xE66C, 445 }, 6989 { 0xE66D, 446 }, 6990 { 0xE66E, 447 }, 6991 { 0xE66F, 448 }, 6992 { 0xE681, 263 }, 6993 { 0xE682, 931 }, 6994 { 0xE687, 803 }, 6995 { 0xE6C0, 50 }, 6996 { 0xE6C1, 57 }, 6997 { 0xE6C2, 58 }, 6998 { 0xE6C3, 59 }, 6999 { 0xE6C4, 60 }, 7000 { 0xE6C5, 61 }, 7001 { 0xE6C6, 62 }, 7002 { 0xE6C7, 63 }, 7003 { 0xE6C8, 64 }, 7004 { 0xE6C9, 65 }, 7005 { 0xE6CA, 51 }, 7006 { 0xE6CB, 52 }, 7007 { 0xE6CC, 53 }, 7008 { 0xE6CD, 54 }, 7009 { 0xE6CE, 55 }, 7010 { 0xE6CF, 56 }, 7011 { 0xE6D0, 66 }, 7012 { 0xE6D1, 73 }, 7013 { 0xE6D2, 74 }, 7014 { 0xE6D3, 75 }, 7015 { 0xE6D4, 76 }, 7016 { 0xE6D5, 77 }, 7017 { 0xE6D6, 78 }, 7018 { 0xE6D7, 79 }, 7019 { 0xE6D8, 80 }, 7020 { 0xE6D9, 81 }, 7021 { 0xE6DA, 67 }, 7022 { 0xE6DB, 68 }, 7023 { 0xE6DC, 69 }, 7024 { 0xE6DD, 70 }, 7025 { 0xE6DE, 71 }, 7026 { 0xE6DF, 72 }, 7027 { 0xE703, 254 }, 7028 { 0xE704, 250 }, 7029 { 0xE705, 235 }, 7030 { 0xE706, 240 }, 7031 { 0xE707, 253 }, 7032 { 0xE708, 222 }, 7033 { 0xE710, 228 }, 7034 { 0xE711, 226 }, 7035 { 0xE712, 227 }, 7036 { 0xE718, 234 }, 7037 { 0xE719, 232 }, 7038 { 0xE71A, 233 }, 7039 { 0xE720, 231 }, 7040 { 0xE721, 229 }, 7041 { 0xE722, 230 }, 7042 { 0xE728, 225 }, 7043 { 0xE729, 223 }, 7044 { 0xE72A, 224 }, 7045 { 0xE880, 797 }, 7046 { 0xE882, 265 }, 7047 { 0xE883, 793 }, 7048 { 0xE890, 1187 }, 7049 { 0xE891, 1160 }, 7050 { 0xE893, 1057 }, 7051 { 0xE896, 808 }, 7052 { 0xE900, 1163 }, 7053 { 0xE901, 1167 }, 7054 { 0xE902, 917 }, 7055 { 0xE903, 914 }, 7056 { 0xEA00, 901 }, 7057 { 0xEA01, 352 }, 7058 { 0xEA88, 5 }, 7059 { 0xEA89, 9 }, 7060 { 0xEA90, 370 }, 7061 { 0xEAB0, 924 }, 7062 { 0xEB00, 374 }, 7063 { 0xEB05, 560 }, 7064 { 0xECC8, 686 }, 7065 { 0xED10, 509 }, 7066 { 0xED11, 505 }, 7067 { 0xED12, 563 }, 7068 { 0xED13, 566 }, 7069 { 0xED14, 706 }, 7070 { 0xED18, 19 }, 7071 { 0xED19, 15 }, 7072 { 0xED28, 529 }, 7073 { 0xEE00, 1171 }, 7074 { 0xEE81, 262 }, 7075 { 0xEE87, 802 }, 7076 { 0xEF08, 237 }, 7077 { 0xEF10, 249 }, 7078 { 0xEF11, 245 }, 7079 { 0xEF12, 247 }, 7080 { 0xEF18, 260 }, 7081 { 0xEF19, 256 }, 7082 { 0xEF1A, 258 }, 7083 { 0xF080, 799 }, 7084 { 0xF081, 3 }, 7085 { 0xF083, 795 }, 7086 { 0xF088, 791 }, 7087 { 0xF089, 806 }, 7088 { 0xF08A, 268 }, 7089 { 0xF090, 1189 }, 7090 { 0xF096, 810 }, 7091 { 0xF099, 515 }, 7092 { 0xF100, 1165 }, 7093 { 0xF102, 919 }, 7094 { 0xF10C, 383 }, 7095 { 0xF10E, 382 }, 7096 { 0xF200, 903 }, 7097 { 0xF201, 354 }, 7098 { 0xF208, 909 }, 7099 { 0xF288, 7 }, 7100 { 0xF289, 11 }, 7101 { 0xF290, 372 }, 7102 { 0xF2B0, 926 }, 7103 { 0xF300, 376 }, 7104 { 0xF305, 525 }, 7105 { 0xF509, 507 }, 7106 { 0xF510, 511 }, 7107 { 0xF513, 568 }, 7108 { 0xF514, 708 }, 7109 { 0xF518, 21 }, 7110 { 0xF519, 17 }, 7111 { 0xF528, 531 }, 7112 { 0xF551, 524 }, 7113 { 0xF600, 1173 }, 7114 { 0xF601, 788 }, 7115 { 0xF602, 783 }, 7116 { 0xF664, 412 }, 7117 { 0xF665, 430 }, 7118 { 0xF667, 422 }, 7119 { 0xF682, 932 }, 7120 { 0xF687, 804 }, 7121 { 0xFF10, 243 }, 7122 { 0xFF11, 241 }, 7123 { 0xFF12, 242 }, 7124 { 0xFF90, 266 }, 7125 }; 7126 7127 struct KeyType { 7128 uint16_t Encoding; 7129 }; 7130 KeyType Key = {Encoding}; 7131 auto Table = ArrayRef(Index); 7132 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 7133 [](const IndexType &LHS, const KeyType &RHS) { 7134 if (LHS.Encoding < RHS.Encoding) 7135 return true; 7136 if (LHS.Encoding > RHS.Encoding) 7137 return false; 7138 return false; 7139 }); 7140 7141 if (Idx == Table.end() || 7142 Key.Encoding != Idx->Encoding) 7143 return nullptr; 7144 return &SysRegsList[Idx->_index]; 7145} 7146#endif 7147 7148#ifdef GET_TSB_DECL 7149const TSB *lookupTSBByName(StringRef Name); 7150const TSB *lookupTSBByEncoding(uint8_t Encoding); 7151#endif 7152 7153#ifdef GET_TSB_IMPL 7154constexpr TSB TSBsList[] = { 7155 { "csync", 0x0, {AArch64::FeatureTRACEV8_4} }, // 0 7156 }; 7157 7158const TSB *lookupTSBByName(StringRef Name) { 7159 struct IndexType { 7160 const char * Name; 7161 unsigned _index; 7162 }; 7163 static const struct IndexType Index[] = { 7164 { "CSYNC", 0 }, 7165 }; 7166 7167 struct KeyType { 7168 std::string Name; 7169 }; 7170 KeyType Key = {Name.upper()}; 7171 auto Table = ArrayRef(Index); 7172 auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, 7173 [](const IndexType &LHS, const KeyType &RHS) { 7174 int CmpName = StringRef(LHS.Name).compare(RHS.Name); 7175 if (CmpName < 0) return true; 7176 if (CmpName > 0) return false; 7177 return false; 7178 }); 7179 7180 if (Idx == Table.end() || 7181 Key.Name != Idx->Name) 7182 return nullptr; 7183 return &TSBsList[Idx->_index]; 7184} 7185 7186const TSB *lookupTSBByEncoding(uint8_t Encoding) { 7187 struct IndexType { 7188 uint8_t Encoding; 7189 unsigned _index; 7190 }; 7191 static const struct IndexType Index[] = { 7192 { 0x0, 0 }, 7193 }; 7194 7195 auto Table = ArrayRef(Index); 7196 size_t Idx = Encoding; 7197 return Idx >= Table.size() ? nullptr : &TSBsList[Table[Idx]._index]; 7198} 7199#endif 7200 7201#undef GET_AT_DECL 7202#undef GET_AT_IMPL 7203#undef GET_BTI_DECL 7204#undef GET_BTI_IMPL 7205#undef GET_DBNXS_DECL 7206#undef GET_DBNXS_IMPL 7207#undef GET_DB_DECL 7208#undef GET_DB_IMPL 7209#undef GET_DC_DECL 7210#undef GET_DC_IMPL 7211#undef GET_EXACTFPIMM_DECL 7212#undef GET_EXACTFPIMM_IMPL 7213#undef GET_IC_DECL 7214#undef GET_IC_IMPL 7215#undef GET_ISB_DECL 7216#undef GET_ISB_IMPL 7217#undef GET_PRFM_DECL 7218#undef GET_PRFM_IMPL 7219#undef GET_PSB_DECL 7220#undef GET_PSB_IMPL 7221#undef GET_PSTATEIMM0_15_DECL 7222#undef GET_PSTATEIMM0_15_IMPL 7223#undef GET_PSTATEIMM0_1_DECL 7224#undef GET_PSTATEIMM0_1_IMPL 7225#undef GET_RPRFM_DECL 7226#undef GET_RPRFM_IMPL 7227#undef GET_SVCR_DECL 7228#undef GET_SVCR_IMPL 7229#undef GET_SVEPREDPAT_DECL 7230#undef GET_SVEPREDPAT_IMPL 7231#undef GET_SVEPRFM_DECL 7232#undef GET_SVEPRFM_IMPL 7233#undef GET_SVEVECLENSPECIFIER_DECL 7234#undef GET_SVEVECLENSPECIFIER_IMPL 7235#undef GET_SYSREG_DECL 7236#undef GET_SYSREG_IMPL 7237#undef GET_TLBITable_DECL 7238#undef GET_TLBITable_IMPL 7239#undef GET_TSB_DECL 7240#undef GET_TSB_IMPL 7241