| #ifdef GET_AT_DECL |
| enum ATValues { |
| S1E1R = 960, |
| S1E2R = 9152, |
| S1E3R = 13248, |
| S1E1W = 961, |
| S1E2W = 9153, |
| S1E3W = 13249, |
| S1E0R = 962, |
| S1E0W = 963, |
| S12E1R = 9156, |
| S12E1W = 9157, |
| S12E0R = 9158, |
| S12E0W = 9159, |
| S1E1RP = 968, |
| S1E1WP = 969, |
| }; |
| #endif |
| |
| #ifdef GET_BTI_DECL |
| enum BTIValues { |
| c = 2, |
| j = 4, |
| jc = 6, |
| }; |
| #endif |
| |
| #ifdef GET_DB_DECL |
| enum DBValues { |
| oshld = 1, |
| oshst = 2, |
| osh = 3, |
| nshld = 5, |
| nshst = 6, |
| nsh = 7, |
| ishld = 9, |
| ishst = 10, |
| ish = 11, |
| ld = 13, |
| st = 14, |
| sy = 15, |
| }; |
| #endif |
| |
| #ifdef GET_DBNXS_DECL |
| enum DBnXSValues { |
| oshnxs = 3, |
| nshnxs = 7, |
| ishnxs = 11, |
| synxs = 15, |
| }; |
| #endif |
| |
| #ifdef GET_DC_DECL |
| enum DCValues { |
| ZVA = 7073, |
| IVAC = 945, |
| ISW = 946, |
| CVAC = 7121, |
| CSW = 978, |
| CVAU = 7129, |
| CIVAC = 7153, |
| CISW = 1010, |
| CVAP = 7137, |
| CVADP = 7145, |
| IGVAC = 947, |
| IGSW = 948, |
| CGSW = 980, |
| CIGSW = 1012, |
| CGVAC = 7123, |
| CGVAP = 7139, |
| CGVADP = 7147, |
| CIGVAC = 7155, |
| GVA = 7075, |
| IGDVAC = 949, |
| IGDSW = 950, |
| CGDSW = 982, |
| CIGDSW = 1014, |
| CGDVAC = 7125, |
| CGDVAP = 7141, |
| CGDVADP = 7149, |
| CIGDVAC = 7157, |
| GZVA = 7076, |
| CIPAE = 9200, |
| CIGDPAE = 9207, |
| }; |
| #endif |
| |
| #ifdef GET_EXACTFPIMM_DECL |
| enum ExactFPImmValues { |
| zero = 0, |
| half = 1, |
| one = 2, |
| two = 3, |
| }; |
| #endif |
| |
| #ifdef GET_IC_DECL |
| enum ICValues { |
| IALLUIS = 904, |
| IALLU = 936, |
| IVAU = 7081, |
| }; |
| #endif |
| |
| #ifdef GET_ISB_DECL |
| enum ISBValues { |
| sy = 15, |
| }; |
| #endif |
| |
| #ifdef GET_PRFM_DECL |
| enum PRFMValues { |
| pldl1keep = 0, |
| pldl1strm = 1, |
| pldl2keep = 2, |
| pldl2strm = 3, |
| pldl3keep = 4, |
| pldl3strm = 5, |
| pldslckeep = 6, |
| pldslcstrm = 7, |
| plil1keep = 8, |
| plil1strm = 9, |
| plil2keep = 10, |
| plil2strm = 11, |
| plil3keep = 12, |
| plil3strm = 13, |
| plislckeep = 14, |
| plislcstrm = 15, |
| pstl1keep = 16, |
| pstl1strm = 17, |
| pstl2keep = 18, |
| pstl2strm = 19, |
| pstl3keep = 20, |
| pstl3strm = 21, |
| pstslckeep = 22, |
| pstslcstrm = 23, |
| }; |
| #endif |
| |
| #ifdef GET_PSB_DECL |
| enum PSBValues { |
| csync = 17, |
| }; |
| #endif |
| |
| #ifdef GET_PSTATEIMM0_1_DECL |
| enum PStateImm0_1Values { |
| ALLINT = 8, |
| PM = 72, |
| }; |
| #endif |
| |
| #ifdef GET_PSTATEIMM0_15_DECL |
| enum PStateImm0_15Values { |
| SPSel = 5, |
| DAIFSet = 30, |
| DAIFClr = 31, |
| PAN = 4, |
| UAO = 3, |
| DIT = 26, |
| SSBS = 25, |
| TCO = 28, |
| }; |
| #endif |
| |
| #ifdef GET_RPRFM_DECL |
| enum RPRFMValues { |
| pldkeep = 0, |
| pstkeep = 1, |
| pldstrm = 4, |
| pststrm = 5, |
| }; |
| #endif |
| |
| #ifdef GET_SVCR_DECL |
| enum SVCRValues { |
| SVCRSM = 1, |
| SVCRZA = 2, |
| SVCRSMZA = 3, |
| }; |
| #endif |
| |
| #ifdef GET_SVEPREDPAT_DECL |
| enum SVEPREDPATValues { |
| pow2 = 0, |
| vl1 = 1, |
| vl2 = 2, |
| vl3 = 3, |
| vl4 = 4, |
| vl5 = 5, |
| vl6 = 6, |
| vl7 = 7, |
| vl8 = 8, |
| vl16 = 9, |
| vl32 = 10, |
| vl64 = 11, |
| vl128 = 12, |
| vl256 = 13, |
| mul4 = 29, |
| mul3 = 30, |
| all = 31, |
| }; |
| #endif |
| |
| #ifdef GET_SVEPRFM_DECL |
| enum SVEPRFMValues { |
| pldl1keep = 0, |
| pldl1strm = 1, |
| pldl2keep = 2, |
| pldl2strm = 3, |
| pldl3keep = 4, |
| pldl3strm = 5, |
| pstl1keep = 8, |
| pstl1strm = 9, |
| pstl2keep = 10, |
| pstl2strm = 11, |
| pstl3keep = 12, |
| pstl3strm = 13, |
| }; |
| #endif |
| |
| #ifdef GET_SVEVECLENSPECIFIER_DECL |
| enum SVEVECLENSPECIFIERValues { |
| vlx2 = 0, |
| vlx4 = 1, |
| }; |
| #endif |
| |
| #ifdef GET_SYSREG_DECL |
| enum SysRegValues { |
| MDCCSR_EL0 = 38920, |
| DBGDTRRX_EL0 = 38952, |
| MDRAR_EL1 = 32896, |
| OSLSR_EL1 = 32908, |
| DBGAUTHSTATUS_EL1 = 33782, |
| PMCEID0_EL0 = 56550, |
| PMCEID1_EL0 = 56551, |
| PMMIR_EL1 = 50422, |
| MIDR_EL1 = 49152, |
| CCSIDR_EL1 = 51200, |
| CCSIDR2_EL1 = 51202, |
| CLIDR_EL1 = 51201, |
| CTR_EL0 = 55297, |
| MPIDR_EL1 = 49157, |
| REVIDR_EL1 = 49158, |
| AIDR_EL1 = 51207, |
| DCZID_EL0 = 55303, |
| ID_PFR0_EL1 = 49160, |
| ID_PFR1_EL1 = 49161, |
| ID_PFR2_EL1 = 49180, |
| ID_DFR0_EL1 = 49162, |
| ID_DFR1_EL1 = 49181, |
| ID_AFR0_EL1 = 49163, |
| ID_MMFR0_EL1 = 49164, |
| ID_MMFR1_EL1 = 49165, |
| ID_MMFR2_EL1 = 49166, |
| ID_MMFR3_EL1 = 49167, |
| ID_ISAR0_EL1 = 49168, |
| ID_ISAR1_EL1 = 49169, |
| ID_ISAR2_EL1 = 49170, |
| ID_ISAR3_EL1 = 49171, |
| ID_ISAR4_EL1 = 49172, |
| ID_ISAR5_EL1 = 49173, |
| ID_ISAR6_EL1 = 49175, |
| ID_AA64PFR0_EL1 = 49184, |
| ID_AA64PFR1_EL1 = 49185, |
| ID_AA64PFR2_EL1 = 49186, |
| ID_AA64DFR0_EL1 = 49192, |
| ID_AA64DFR1_EL1 = 49193, |
| ID_AA64AFR0_EL1 = 49196, |
| ID_AA64AFR1_EL1 = 49197, |
| ID_AA64ISAR0_EL1 = 49200, |
| ID_AA64ISAR1_EL1 = 49201, |
| ID_AA64ISAR2_EL1 = 49202, |
| ID_AA64MMFR0_EL1 = 49208, |
| ID_AA64MMFR1_EL1 = 49209, |
| ID_AA64MMFR2_EL1 = 49210, |
| ID_AA64MMFR3_EL1 = 49211, |
| ID_AA64MMFR4_EL1 = 49212, |
| MVFR0_EL1 = 49176, |
| MVFR1_EL1 = 49177, |
| MVFR2_EL1 = 49178, |
| RVBAR_EL1 = 50689, |
| RVBAR_EL2 = 58881, |
| RVBAR_EL3 = 62977, |
| ISR_EL1 = 50696, |
| CNTPCT_EL0 = 57089, |
| CNTVCT_EL0 = 57090, |
| ID_MMFR4_EL1 = 49174, |
| ID_MMFR5_EL1 = 49182, |
| TRCSTATR = 34840, |
| TRCIDR8 = 34822, |
| TRCIDR9 = 34830, |
| TRCIDR10 = 34838, |
| TRCIDR11 = 34846, |
| TRCIDR12 = 34854, |
| TRCIDR13 = 34862, |
| TRCIDR0 = 34887, |
| TRCIDR1 = 34895, |
| TRCIDR2 = 34903, |
| TRCIDR3 = 34911, |
| TRCIDR4 = 34919, |
| TRCIDR5 = 34927, |
| TRCIDR6 = 34935, |
| TRCIDR7 = 34943, |
| TRCOSLSR = 34956, |
| TRCPDSR = 34988, |
| TRCDEVAFF0 = 35798, |
| TRCDEVAFF1 = 35806, |
| TRCLSR = 35822, |
| TRCAUTHSTATUS = 35830, |
| TRCDEVARCH = 35838, |
| TRCDEVID = 35735, |
| TRCDEVTYPE = 35743, |
| TRCPIDR4 = 35751, |
| TRCPIDR5 = 35759, |
| TRCPIDR6 = 35767, |
| TRCPIDR7 = 35775, |
| TRCPIDR0 = 35783, |
| TRCPIDR1 = 35791, |
| TRCPIDR2 = 35799, |
| TRCPIDR3 = 35807, |
| TRCCIDR0 = 35815, |
| TRCCIDR1 = 35823, |
| TRCCIDR2 = 35831, |
| TRCCIDR3 = 35839, |
| ICC_IAR1_EL1 = 50784, |
| ICC_IAR0_EL1 = 50752, |
| ICC_HPPIR1_EL1 = 50786, |
| ICC_HPPIR0_EL1 = 50754, |
| ICC_RPR_EL1 = 50779, |
| ICH_VTR_EL2 = 58969, |
| ICH_EISR_EL2 = 58971, |
| ICH_ELRSR_EL2 = 58973, |
| ID_AA64ZFR0_EL1 = 49188, |
| LORID_EL1 = 50471, |
| ERRIDR_EL1 = 49816, |
| ERXFR_EL1 = 49824, |
| RNDR = 55584, |
| RNDRRS = 55585, |
| SCXTNUM_EL0 = 56967, |
| SCXTNUM_EL1 = 50823, |
| SCXTNUM_EL2 = 59015, |
| SCXTNUM_EL3 = 63111, |
| SCXTNUM_EL12 = 61063, |
| GPCCR_EL3 = 61710, |
| GPTBR_EL3 = 61708, |
| MFAR_EL3 = 62213, |
| MECIDR_EL2 = 58695, |
| MECID_P0_EL2 = 58688, |
| MECID_A0_EL2 = 58689, |
| MECID_P1_EL2 = 58690, |
| MECID_A1_EL2 = 58691, |
| VMECID_P_EL2 = 58696, |
| VMECID_A_EL2 = 58697, |
| MECID_RL_A_EL3 = 62801, |
| ID_AA64SMFR0_EL1 = 49189, |
| DBGDTRTX_EL0 = 38952, |
| OSLAR_EL1 = 32900, |
| PMSWINC_EL0 = 56548, |
| TRCOSLAR = 34948, |
| TRCLAR = 35814, |
| ICC_EOIR1_EL1 = 50785, |
| ICC_EOIR0_EL1 = 50753, |
| ICC_DIR_EL1 = 50777, |
| ICC_SGI1R_EL1 = 50781, |
| ICC_ASGI1R_EL1 = 50782, |
| ICC_SGI0R_EL1 = 50783, |
| OSDTRRX_EL1 = 32770, |
| OSDTRTX_EL1 = 32794, |
| TEECR32_EL1 = 36864, |
| MDCCINT_EL1 = 32784, |
| MDSCR_EL1 = 32786, |
| DBGDTR_EL0 = 38944, |
| OSECCR_EL1 = 32818, |
| DBGVCR32_EL2 = 41016, |
| DBGBVR0_EL1 = 32772, |
| DBGBCR0_EL1 = 32773, |
| DBGWVR0_EL1 = 32774, |
| DBGWCR0_EL1 = 32775, |
| DBGBVR1_EL1 = 32780, |
| DBGBCR1_EL1 = 32781, |
| DBGWVR1_EL1 = 32782, |
| DBGWCR1_EL1 = 32783, |
| DBGBVR2_EL1 = 32788, |
| DBGBCR2_EL1 = 32789, |
| DBGWVR2_EL1 = 32790, |
| DBGWCR2_EL1 = 32791, |
| DBGBVR3_EL1 = 32796, |
| DBGBCR3_EL1 = 32797, |
| DBGWVR3_EL1 = 32798, |
| DBGWCR3_EL1 = 32799, |
| DBGBVR4_EL1 = 32804, |
| DBGBCR4_EL1 = 32805, |
| DBGWVR4_EL1 = 32806, |
| DBGWCR4_EL1 = 32807, |
| DBGBVR5_EL1 = 32812, |
| DBGBCR5_EL1 = 32813, |
| DBGWVR5_EL1 = 32814, |
| DBGWCR5_EL1 = 32815, |
| DBGBVR6_EL1 = 32820, |
| DBGBCR6_EL1 = 32821, |
| DBGWVR6_EL1 = 32822, |
| DBGWCR6_EL1 = 32823, |
| DBGBVR7_EL1 = 32828, |
| DBGBCR7_EL1 = 32829, |
| DBGWVR7_EL1 = 32830, |
| DBGWCR7_EL1 = 32831, |
| DBGBVR8_EL1 = 32836, |
| DBGBCR8_EL1 = 32837, |
| DBGWVR8_EL1 = 32838, |
| DBGWCR8_EL1 = 32839, |
| DBGBVR9_EL1 = 32844, |
| DBGBCR9_EL1 = 32845, |
| DBGWVR9_EL1 = 32846, |
| DBGWCR9_EL1 = 32847, |
| DBGBVR10_EL1 = 32852, |
| DBGBCR10_EL1 = 32853, |
| DBGWVR10_EL1 = 32854, |
| DBGWCR10_EL1 = 32855, |
| DBGBVR11_EL1 = 32860, |
| DBGBCR11_EL1 = 32861, |
| DBGWVR11_EL1 = 32862, |
| DBGWCR11_EL1 = 32863, |
| DBGBVR12_EL1 = 32868, |
| DBGBCR12_EL1 = 32869, |
| DBGWVR12_EL1 = 32870, |
| DBGWCR12_EL1 = 32871, |
| DBGBVR13_EL1 = 32876, |
| DBGBCR13_EL1 = 32877, |
| DBGWVR13_EL1 = 32878, |
| DBGWCR13_EL1 = 32879, |
| DBGBVR14_EL1 = 32884, |
| DBGBCR14_EL1 = 32885, |
| DBGWVR14_EL1 = 32886, |
| DBGWCR14_EL1 = 32887, |
| DBGBVR15_EL1 = 32892, |
| DBGBCR15_EL1 = 32893, |
| DBGWVR15_EL1 = 32894, |
| DBGWCR15_EL1 = 32895, |
| TEEHBR32_EL1 = 36992, |
| OSDLR_EL1 = 32924, |
| DBGPRCR_EL1 = 32932, |
| DBGCLAIMSET_EL1 = 33734, |
| DBGCLAIMCLR_EL1 = 33742, |
| CSSELR_EL1 = 53248, |
| VPIDR_EL2 = 57344, |
| VMPIDR_EL2 = 57349, |
| CPACR_EL1 = 49282, |
| SCTLR_EL1 = 49280, |
| SCTLR_EL2 = 57472, |
| SCTLR_EL3 = 61568, |
| ACTLR_EL1 = 49281, |
| ACTLR_EL2 = 57473, |
| ACTLR_EL3 = 61569, |
| HCR_EL2 = 57480, |
| HCRX_EL2 = 57490, |
| SCR_EL3 = 61576, |
| MDCR_EL2 = 57481, |
| SDER32_EL3 = 61577, |
| CPTR_EL2 = 57482, |
| CPTR_EL3 = 61578, |
| HSTR_EL2 = 57483, |
| HACR_EL2 = 57487, |
| MDCR_EL3 = 61593, |
| TTBR0_EL1 = 49408, |
| TTBR0_EL3 = 61696, |
| TTBR0_EL2 = 57600, |
| VTTBR_EL2 = 57608, |
| TTBR1_EL1 = 49409, |
| TCR_EL1 = 49410, |
| TCR_EL2 = 57602, |
| TCR_EL3 = 61698, |
| VTCR_EL2 = 57610, |
| DACR32_EL2 = 57728, |
| SPSR_EL1 = 49664, |
| SPSR_EL2 = 57856, |
| SPSR_EL3 = 61952, |
| ELR_EL1 = 49665, |
| ELR_EL2 = 57857, |
| ELR_EL3 = 61953, |
| SP_EL0 = 49672, |
| SP_EL1 = 57864, |
| SP_EL2 = 61960, |
| SPSel = 49680, |
| NZCV = 55824, |
| DAIF = 55825, |
| CurrentEL = 49682, |
| SPSR_irq = 57880, |
| SPSR_abt = 57881, |
| SPSR_und = 57882, |
| SPSR_fiq = 57883, |
| FPCR = 55840, |
| FPSR = 55841, |
| DSPSR_EL0 = 55848, |
| DLR_EL0 = 55849, |
| IFSR32_EL2 = 57985, |
| AFSR0_EL1 = 49800, |
| AFSR0_EL2 = 57992, |
| AFSR0_EL3 = 62088, |
| AFSR1_EL1 = 49801, |
| AFSR1_EL2 = 57993, |
| AFSR1_EL3 = 62089, |
| ESR_EL1 = 49808, |
| ESR_EL2 = 58000, |
| ESR_EL3 = 62096, |
| FPEXC32_EL2 = 58008, |
| FAR_EL1 = 49920, |
| FAR_EL2 = 58112, |
| FAR_EL3 = 62208, |
| HPFAR_EL2 = 58116, |
| PAR_EL1 = 50080, |
| PMCR_EL0 = 56544, |
| PMCNTENSET_EL0 = 56545, |
| PMCNTENCLR_EL0 = 56546, |
| PMOVSCLR_EL0 = 56547, |
| PMSELR_EL0 = 56549, |
| PMCCNTR_EL0 = 56552, |
| PMXEVTYPER_EL0 = 56553, |
| PMXEVCNTR_EL0 = 56554, |
| PMUSERENR_EL0 = 56560, |
| PMINTENSET_EL1 = 50417, |
| PMINTENCLR_EL1 = 50418, |
| PMOVSSET_EL0 = 56563, |
| MAIR_EL1 = 50448, |
| MAIR_EL2 = 58640, |
| MAIR_EL3 = 62736, |
| AMAIR_EL1 = 50456, |
| AMAIR_EL2 = 58648, |
| AMAIR_EL3 = 62744, |
| VBAR_EL1 = 50688, |
| VBAR_EL2 = 58880, |
| VBAR_EL3 = 62976, |
| RMR_EL1 = 50690, |
| RMR_EL2 = 58882, |
| RMR_EL3 = 62978, |
| CONTEXTIDR_EL1 = 50817, |
| TPIDR_EL0 = 56962, |
| TPIDR_EL2 = 59010, |
| TPIDR_EL3 = 63106, |
| TPIDRRO_EL0 = 56963, |
| TPIDR_EL1 = 50820, |
| CNTFRQ_EL0 = 57088, |
| CNTVOFF_EL2 = 59139, |
| CNTKCTL_EL1 = 50952, |
| CNTHCTL_EL2 = 59144, |
| CNTP_TVAL_EL0 = 57104, |
| CNTHP_TVAL_EL2 = 59152, |
| CNTPS_TVAL_EL1 = 65296, |
| CNTP_CTL_EL0 = 57105, |
| CNTHP_CTL_EL2 = 59153, |
| CNTPS_CTL_EL1 = 65297, |
| CNTP_CVAL_EL0 = 57106, |
| CNTHP_CVAL_EL2 = 59154, |
| CNTPS_CVAL_EL1 = 65298, |
| CNTV_TVAL_EL0 = 57112, |
| CNTV_CTL_EL0 = 57113, |
| CNTV_CVAL_EL0 = 57114, |
| PMEVCNTR0_EL0 = 57152, |
| PMEVCNTR1_EL0 = 57153, |
| PMEVCNTR2_EL0 = 57154, |
| PMEVCNTR3_EL0 = 57155, |
| PMEVCNTR4_EL0 = 57156, |
| PMEVCNTR5_EL0 = 57157, |
| PMEVCNTR6_EL0 = 57158, |
| PMEVCNTR7_EL0 = 57159, |
| PMEVCNTR8_EL0 = 57160, |
| PMEVCNTR9_EL0 = 57161, |
| PMEVCNTR10_EL0 = 57162, |
| PMEVCNTR11_EL0 = 57163, |
| PMEVCNTR12_EL0 = 57164, |
| PMEVCNTR13_EL0 = 57165, |
| PMEVCNTR14_EL0 = 57166, |
| PMEVCNTR15_EL0 = 57167, |
| PMEVCNTR16_EL0 = 57168, |
| PMEVCNTR17_EL0 = 57169, |
| PMEVCNTR18_EL0 = 57170, |
| PMEVCNTR19_EL0 = 57171, |
| PMEVCNTR20_EL0 = 57172, |
| PMEVCNTR21_EL0 = 57173, |
| PMEVCNTR22_EL0 = 57174, |
| PMEVCNTR23_EL0 = 57175, |
| PMEVCNTR24_EL0 = 57176, |
| PMEVCNTR25_EL0 = 57177, |
| PMEVCNTR26_EL0 = 57178, |
| PMEVCNTR27_EL0 = 57179, |
| PMEVCNTR28_EL0 = 57180, |
| PMEVCNTR29_EL0 = 57181, |
| PMEVCNTR30_EL0 = 57182, |
| PMCCFILTR_EL0 = 57215, |
| PMEVTYPER0_EL0 = 57184, |
| PMEVTYPER1_EL0 = 57185, |
| PMEVTYPER2_EL0 = 57186, |
| PMEVTYPER3_EL0 = 57187, |
| PMEVTYPER4_EL0 = 57188, |
| PMEVTYPER5_EL0 = 57189, |
| PMEVTYPER6_EL0 = 57190, |
| PMEVTYPER7_EL0 = 57191, |
| PMEVTYPER8_EL0 = 57192, |
| PMEVTYPER9_EL0 = 57193, |
| PMEVTYPER10_EL0 = 57194, |
| PMEVTYPER11_EL0 = 57195, |
| PMEVTYPER12_EL0 = 57196, |
| PMEVTYPER13_EL0 = 57197, |
| PMEVTYPER14_EL0 = 57198, |
| PMEVTYPER15_EL0 = 57199, |
| PMEVTYPER16_EL0 = 57200, |
| PMEVTYPER17_EL0 = 57201, |
| PMEVTYPER18_EL0 = 57202, |
| PMEVTYPER19_EL0 = 57203, |
| PMEVTYPER20_EL0 = 57204, |
| PMEVTYPER21_EL0 = 57205, |
| PMEVTYPER22_EL0 = 57206, |
| PMEVTYPER23_EL0 = 57207, |
| PMEVTYPER24_EL0 = 57208, |
| PMEVTYPER25_EL0 = 57209, |
| PMEVTYPER26_EL0 = 57210, |
| PMEVTYPER27_EL0 = 57211, |
| PMEVTYPER28_EL0 = 57212, |
| PMEVTYPER29_EL0 = 57213, |
| PMEVTYPER30_EL0 = 57214, |
| TRCPRGCTLR = 34824, |
| TRCPROCSELR = 34832, |
| TRCCONFIGR = 34848, |
| TRCAUXCTLR = 34864, |
| TRCEVENTCTL0R = 34880, |
| TRCEVENTCTL1R = 34888, |
| TRCSTALLCTLR = 34904, |
| TRCTSCTLR = 34912, |
| TRCSYNCPR = 34920, |
| TRCCCCTLR = 34928, |
| TRCBBCTLR = 34936, |
| TRCTRACEIDR = 34817, |
| TRCQCTLR = 34825, |
| TRCVICTLR = 34818, |
| TRCVIIECTLR = 34826, |
| TRCVISSCTLR = 34834, |
| TRCVIPCSSCTLR = 34842, |
| TRCVDCTLR = 34882, |
| TRCVDSACCTLR = 34890, |
| TRCVDARCCTLR = 34898, |
| TRCSEQEVR0 = 34820, |
| TRCSEQEVR1 = 34828, |
| TRCSEQEVR2 = 34836, |
| TRCSEQRSTEVR = 34868, |
| TRCSEQSTR = 34876, |
| TRCEXTINSELR = 34884, |
| TRCCNTRLDVR0 = 34821, |
| TRCCNTRLDVR1 = 34829, |
| TRCCNTRLDVR2 = 34837, |
| TRCCNTRLDVR3 = 34845, |
| TRCCNTCTLR0 = 34853, |
| TRCCNTCTLR1 = 34861, |
| TRCCNTCTLR2 = 34869, |
| TRCCNTCTLR3 = 34877, |
| TRCCNTVR0 = 34885, |
| TRCCNTVR1 = 34893, |
| TRCCNTVR2 = 34901, |
| TRCCNTVR3 = 34909, |
| TRCIMSPEC0 = 34823, |
| TRCIMSPEC1 = 34831, |
| TRCIMSPEC2 = 34839, |
| TRCIMSPEC3 = 34847, |
| TRCIMSPEC4 = 34855, |
| TRCIMSPEC5 = 34863, |
| TRCIMSPEC6 = 34871, |
| TRCIMSPEC7 = 34879, |
| TRCRSCTLR2 = 34960, |
| TRCRSCTLR3 = 34968, |
| TRCRSCTLR4 = 34976, |
| TRCRSCTLR5 = 34984, |
| TRCRSCTLR6 = 34992, |
| TRCRSCTLR7 = 35000, |
| TRCRSCTLR8 = 35008, |
| TRCRSCTLR9 = 35016, |
| TRCRSCTLR10 = 35024, |
| TRCRSCTLR11 = 35032, |
| TRCRSCTLR12 = 35040, |
| TRCRSCTLR13 = 35048, |
| TRCRSCTLR14 = 35056, |
| TRCRSCTLR15 = 35064, |
| TRCRSCTLR16 = 34945, |
| TRCRSCTLR17 = 34953, |
| TRCRSCTLR18 = 34961, |
| TRCRSCTLR19 = 34969, |
| TRCRSCTLR20 = 34977, |
| TRCRSCTLR21 = 34985, |
| TRCRSCTLR22 = 34993, |
| TRCRSCTLR23 = 35001, |
| TRCRSCTLR24 = 35009, |
| TRCRSCTLR25 = 35017, |
| TRCRSCTLR26 = 35025, |
| TRCRSCTLR27 = 35033, |
| TRCRSCTLR28 = 35041, |
| TRCRSCTLR29 = 35049, |
| TRCRSCTLR30 = 35057, |
| TRCRSCTLR31 = 35065, |
| TRCSSCCR0 = 34946, |
| TRCSSCCR1 = 34954, |
| TRCSSCCR2 = 34962, |
| TRCSSCCR3 = 34970, |
| TRCSSCCR4 = 34978, |
| TRCSSCCR5 = 34986, |
| TRCSSCCR6 = 34994, |
| TRCSSCCR7 = 35002, |
| TRCSSCSR0 = 35010, |
| TRCSSCSR1 = 35018, |
| TRCSSCSR2 = 35026, |
| TRCSSCSR3 = 35034, |
| TRCSSCSR4 = 35042, |
| TRCSSCSR5 = 35050, |
| TRCSSCSR6 = 35058, |
| TRCSSCSR7 = 35066, |
| TRCSSPCICR0 = 34947, |
| TRCSSPCICR1 = 34955, |
| TRCSSPCICR2 = 34963, |
| TRCSSPCICR3 = 34971, |
| TRCSSPCICR4 = 34979, |
| TRCSSPCICR5 = 34987, |
| TRCSSPCICR6 = 34995, |
| TRCSSPCICR7 = 35003, |
| TRCPDCR = 34980, |
| TRCACVR0 = 35072, |
| TRCACVR1 = 35088, |
| TRCACVR2 = 35104, |
| TRCACVR3 = 35120, |
| TRCACVR4 = 35136, |
| TRCACVR5 = 35152, |
| TRCACVR6 = 35168, |
| TRCACVR7 = 35184, |
| TRCACVR8 = 35073, |
| TRCACVR9 = 35089, |
| TRCACVR10 = 35105, |
| TRCACVR11 = 35121, |
| TRCACVR12 = 35137, |
| TRCACVR13 = 35153, |
| TRCACVR14 = 35169, |
| TRCACVR15 = 35185, |
| TRCACATR0 = 35074, |
| TRCACATR1 = 35090, |
| TRCACATR2 = 35106, |
| TRCACATR3 = 35122, |
| TRCACATR4 = 35138, |
| TRCACATR5 = 35154, |
| TRCACATR6 = 35170, |
| TRCACATR7 = 35186, |
| TRCACATR8 = 35075, |
| TRCACATR9 = 35091, |
| TRCACATR10 = 35107, |
| TRCACATR11 = 35123, |
| TRCACATR12 = 35139, |
| TRCACATR13 = 35155, |
| TRCACATR14 = 35171, |
| TRCACATR15 = 35187, |
| TRCDVCVR0 = 35076, |
| TRCDVCVR1 = 35108, |
| TRCDVCVR2 = 35140, |
| TRCDVCVR3 = 35172, |
| TRCDVCVR4 = 35077, |
| TRCDVCVR5 = 35109, |
| TRCDVCVR6 = 35141, |
| TRCDVCVR7 = 35173, |
| TRCDVCMR0 = 35078, |
| TRCDVCMR1 = 35110, |
| TRCDVCMR2 = 35142, |
| TRCDVCMR3 = 35174, |
| TRCDVCMR4 = 35079, |
| TRCDVCMR5 = 35111, |
| TRCDVCMR6 = 35143, |
| TRCDVCMR7 = 35175, |
| TRCCIDCVR0 = 35200, |
| TRCCIDCVR1 = 35216, |
| TRCCIDCVR2 = 35232, |
| TRCCIDCVR3 = 35248, |
| TRCCIDCVR4 = 35264, |
| TRCCIDCVR5 = 35280, |
| TRCCIDCVR6 = 35296, |
| TRCCIDCVR7 = 35312, |
| TRCVMIDCVR0 = 35201, |
| TRCVMIDCVR1 = 35217, |
| TRCVMIDCVR2 = 35233, |
| TRCVMIDCVR3 = 35249, |
| TRCVMIDCVR4 = 35265, |
| TRCVMIDCVR5 = 35281, |
| TRCVMIDCVR6 = 35297, |
| TRCVMIDCVR7 = 35313, |
| TRCCIDCCTLR0 = 35202, |
| TRCCIDCCTLR1 = 35210, |
| TRCVMIDCCTLR0 = 35218, |
| TRCVMIDCCTLR1 = 35226, |
| TRCITCTRL = 35716, |
| TRCCLAIMSET = 35782, |
| TRCCLAIMCLR = 35790, |
| ICC_BPR1_EL1 = 50787, |
| ICC_BPR0_EL1 = 50755, |
| ICC_PMR_EL1 = 49712, |
| ICC_CTLR_EL1 = 50788, |
| ICC_CTLR_EL3 = 63076, |
| ICC_SRE_EL1 = 50789, |
| ICC_SRE_EL2 = 58957, |
| ICC_SRE_EL3 = 63077, |
| ICC_IGRPEN0_EL1 = 50790, |
| ICC_IGRPEN1_EL1 = 50791, |
| ICC_IGRPEN1_EL3 = 63079, |
| ICC_AP0R0_EL1 = 50756, |
| ICC_AP0R1_EL1 = 50757, |
| ICC_AP0R2_EL1 = 50758, |
| ICC_AP0R3_EL1 = 50759, |
| ICC_AP1R0_EL1 = 50760, |
| ICC_AP1R1_EL1 = 50761, |
| ICC_AP1R2_EL1 = 50762, |
| ICC_AP1R3_EL1 = 50763, |
| ICH_AP0R0_EL2 = 58944, |
| ICH_AP0R1_EL2 = 58945, |
| ICH_AP0R2_EL2 = 58946, |
| ICH_AP0R3_EL2 = 58947, |
| ICH_AP1R0_EL2 = 58952, |
| ICH_AP1R1_EL2 = 58953, |
| ICH_AP1R2_EL2 = 58954, |
| ICH_AP1R3_EL2 = 58955, |
| ICH_HCR_EL2 = 58968, |
| ICH_MISR_EL2 = 58970, |
| ICH_VMCR_EL2 = 58975, |
| ICH_LR0_EL2 = 58976, |
| ICH_LR1_EL2 = 58977, |
| ICH_LR2_EL2 = 58978, |
| ICH_LR3_EL2 = 58979, |
| ICH_LR4_EL2 = 58980, |
| ICH_LR5_EL2 = 58981, |
| ICH_LR6_EL2 = 58982, |
| ICH_LR7_EL2 = 58983, |
| ICH_LR8_EL2 = 58984, |
| ICH_LR9_EL2 = 58985, |
| ICH_LR10_EL2 = 58986, |
| ICH_LR11_EL2 = 58987, |
| ICH_LR12_EL2 = 58988, |
| ICH_LR13_EL2 = 58989, |
| ICH_LR14_EL2 = 58990, |
| ICH_LR15_EL2 = 58991, |
| VSCTLR_EL2 = 57600, |
| MPUIR_EL1 = 49156, |
| MPUIR_EL2 = 57348, |
| PRENR_EL1 = 49929, |
| PRENR_EL2 = 58121, |
| PRSELR_EL1 = 49937, |
| PRSELR_EL2 = 58129, |
| PRBAR_EL1 = 49984, |
| PRBAR_EL2 = 58176, |
| PRLAR_EL1 = 49985, |
| PRLAR_EL2 = 58177, |
| PRBAR1_EL1 = 49988, |
| PRLAR1_EL1 = 49989, |
| PRBAR1_EL2 = 58180, |
| PRLAR1_EL2 = 58181, |
| PRBAR2_EL1 = 49992, |
| PRLAR2_EL1 = 49993, |
| PRBAR2_EL2 = 58184, |
| PRLAR2_EL2 = 58185, |
| PRBAR3_EL1 = 49996, |
| PRLAR3_EL1 = 49997, |
| PRBAR3_EL2 = 58188, |
| PRLAR3_EL2 = 58189, |
| PRBAR4_EL1 = 50000, |
| PRLAR4_EL1 = 50001, |
| PRBAR4_EL2 = 58192, |
| PRLAR4_EL2 = 58193, |
| PRBAR5_EL1 = 50004, |
| PRLAR5_EL1 = 50005, |
| PRBAR5_EL2 = 58196, |
| PRLAR5_EL2 = 58197, |
| PRBAR6_EL1 = 50008, |
| PRLAR6_EL1 = 50009, |
| PRBAR6_EL2 = 58200, |
| PRLAR6_EL2 = 58201, |
| PRBAR7_EL1 = 50012, |
| PRLAR7_EL1 = 50013, |
| PRBAR7_EL2 = 58204, |
| PRLAR7_EL2 = 58205, |
| PRBAR8_EL1 = 50016, |
| PRLAR8_EL1 = 50017, |
| PRBAR8_EL2 = 58208, |
| PRLAR8_EL2 = 58209, |
| PRBAR9_EL1 = 50020, |
| PRLAR9_EL1 = 50021, |
| PRBAR9_EL2 = 58212, |
| PRLAR9_EL2 = 58213, |
| PRBAR10_EL1 = 50024, |
| PRLAR10_EL1 = 50025, |
| PRBAR10_EL2 = 58216, |
| PRLAR10_EL2 = 58217, |
| PRBAR11_EL1 = 50028, |
| PRLAR11_EL1 = 50029, |
| PRBAR11_EL2 = 58220, |
| PRLAR11_EL2 = 58221, |
| PRBAR12_EL1 = 50032, |
| PRLAR12_EL1 = 50033, |
| PRBAR12_EL2 = 58224, |
| PRLAR12_EL2 = 58225, |
| PRBAR13_EL1 = 50036, |
| PRLAR13_EL1 = 50037, |
| PRBAR13_EL2 = 58228, |
| PRLAR13_EL2 = 58229, |
| PRBAR14_EL1 = 50040, |
| PRLAR14_EL1 = 50041, |
| PRBAR14_EL2 = 58232, |
| PRLAR14_EL2 = 58233, |
| PRBAR15_EL1 = 50044, |
| PRLAR15_EL1 = 50045, |
| PRBAR15_EL2 = 58236, |
| PRLAR15_EL2 = 58237, |
| PAN = 49683, |
| LORSA_EL1 = 50464, |
| LOREA_EL1 = 50465, |
| LORN_EL1 = 50466, |
| LORC_EL1 = 50467, |
| TTBR1_EL2 = 57601, |
| CNTHV_TVAL_EL2 = 59160, |
| CNTHV_CVAL_EL2 = 59162, |
| CNTHV_CTL_EL2 = 59161, |
| SCTLR_EL12 = 59520, |
| CPACR_EL12 = 59522, |
| TTBR0_EL12 = 59648, |
| TTBR1_EL12 = 59649, |
| TCR_EL12 = 59650, |
| AFSR0_EL12 = 60040, |
| AFSR1_EL12 = 60041, |
| ESR_EL12 = 60048, |
| FAR_EL12 = 60160, |
| MAIR_EL12 = 60688, |
| AMAIR_EL12 = 60696, |
| VBAR_EL12 = 60928, |
| CONTEXTIDR_EL12 = 61057, |
| CNTKCTL_EL12 = 61192, |
| CNTP_TVAL_EL02 = 61200, |
| CNTP_CTL_EL02 = 61201, |
| CNTP_CVAL_EL02 = 61202, |
| CNTV_TVAL_EL02 = 61208, |
| CNTV_CTL_EL02 = 61209, |
| CNTV_CVAL_EL02 = 61210, |
| SPSR_EL12 = 59904, |
| ELR_EL12 = 59905, |
| CONTEXTIDR_EL2 = 59009, |
| UAO = 49684, |
| PMBLIMITR_EL1 = 50384, |
| PMBPTR_EL1 = 50385, |
| PMBSR_EL1 = 50387, |
| PMBIDR_EL1 = 50391, |
| PMSCR_EL2 = 58568, |
| PMSCR_EL12 = 60616, |
| PMSCR_EL1 = 50376, |
| PMSICR_EL1 = 50378, |
| PMSIRR_EL1 = 50379, |
| PMSFCR_EL1 = 50380, |
| PMSEVFR_EL1 = 50381, |
| PMSLATFR_EL1 = 50382, |
| PMSIDR_EL1 = 50383, |
| ERRSELR_EL1 = 49817, |
| ERXCTLR_EL1 = 49825, |
| ERXSTATUS_EL1 = 49826, |
| ERXADDR_EL1 = 49827, |
| ERXMISC0_EL1 = 49832, |
| ERXMISC1_EL1 = 49833, |
| DISR_EL1 = 50697, |
| VDISR_EL2 = 58889, |
| VSESR_EL2 = 58003, |
| APIAKeyLo_EL1 = 49416, |
| APIAKeyHi_EL1 = 49417, |
| APIBKeyLo_EL1 = 49418, |
| APIBKeyHi_EL1 = 49419, |
| APDAKeyLo_EL1 = 49424, |
| APDAKeyHi_EL1 = 49425, |
| APDBKeyLo_EL1 = 49426, |
| APDBKeyHi_EL1 = 49427, |
| APGAKeyLo_EL1 = 49432, |
| APGAKeyHi_EL1 = 49433, |
| VSTCR_EL2 = 57650, |
| VSTTBR_EL2 = 57648, |
| CNTHVS_TVAL_EL2 = 59168, |
| CNTHVS_CVAL_EL2 = 59170, |
| CNTHVS_CTL_EL2 = 59169, |
| CNTHPS_TVAL_EL2 = 59176, |
| CNTHPS_CVAL_EL2 = 59178, |
| CNTHPS_CTL_EL2 = 59177, |
| SDER32_EL2 = 57497, |
| ERXPFGCTL_EL1 = 49829, |
| ERXPFGCDN_EL1 = 49830, |
| ERXMISC2_EL1 = 49834, |
| ERXMISC3_EL1 = 49835, |
| ERXPFGF_EL1 = 49828, |
| MPAM0_EL1 = 50473, |
| MPAM1_EL1 = 50472, |
| MPAM2_EL2 = 58664, |
| MPAM3_EL3 = 62760, |
| MPAM1_EL12 = 60712, |
| MPAMHCR_EL2 = 58656, |
| MPAMVPMV_EL2 = 58657, |
| MPAMVPM0_EL2 = 58672, |
| MPAMVPM1_EL2 = 58673, |
| MPAMVPM2_EL2 = 58674, |
| MPAMVPM3_EL2 = 58675, |
| MPAMVPM4_EL2 = 58676, |
| MPAMVPM5_EL2 = 58677, |
| MPAMVPM6_EL2 = 58678, |
| MPAMVPM7_EL2 = 58679, |
| MPAMIDR_EL1 = 50468, |
| AMCR_EL0 = 56976, |
| AMCFGR_EL0 = 56977, |
| AMCGCR_EL0 = 56978, |
| AMUSERENR_EL0 = 56979, |
| AMCNTENCLR0_EL0 = 56980, |
| AMCNTENSET0_EL0 = 56981, |
| AMEVCNTR00_EL0 = 56992, |
| AMEVCNTR01_EL0 = 56993, |
| AMEVCNTR02_EL0 = 56994, |
| AMEVCNTR03_EL0 = 56995, |
| AMEVTYPER00_EL0 = 57008, |
| AMEVTYPER01_EL0 = 57009, |
| AMEVTYPER02_EL0 = 57010, |
| AMEVTYPER03_EL0 = 57011, |
| AMCNTENCLR1_EL0 = 56984, |
| AMCNTENSET1_EL0 = 56985, |
| AMEVCNTR10_EL0 = 57056, |
| AMEVCNTR11_EL0 = 57057, |
| AMEVCNTR12_EL0 = 57058, |
| AMEVCNTR13_EL0 = 57059, |
| AMEVCNTR14_EL0 = 57060, |
| AMEVCNTR15_EL0 = 57061, |
| AMEVCNTR16_EL0 = 57062, |
| AMEVCNTR17_EL0 = 57063, |
| AMEVCNTR18_EL0 = 57064, |
| AMEVCNTR19_EL0 = 57065, |
| AMEVCNTR110_EL0 = 57066, |
| AMEVCNTR111_EL0 = 57067, |
| AMEVCNTR112_EL0 = 57068, |
| AMEVCNTR113_EL0 = 57069, |
| AMEVCNTR114_EL0 = 57070, |
| AMEVCNTR115_EL0 = 57071, |
| AMEVTYPER10_EL0 = 57072, |
| AMEVTYPER11_EL0 = 57073, |
| AMEVTYPER12_EL0 = 57074, |
| AMEVTYPER13_EL0 = 57075, |
| AMEVTYPER14_EL0 = 57076, |
| AMEVTYPER15_EL0 = 57077, |
| AMEVTYPER16_EL0 = 57078, |
| AMEVTYPER17_EL0 = 57079, |
| AMEVTYPER18_EL0 = 57080, |
| AMEVTYPER19_EL0 = 57081, |
| AMEVTYPER110_EL0 = 57082, |
| AMEVTYPER111_EL0 = 57083, |
| AMEVTYPER112_EL0 = 57084, |
| AMEVTYPER113_EL0 = 57085, |
| AMEVTYPER114_EL0 = 57086, |
| AMEVTYPER115_EL0 = 57087, |
| TRFCR_EL1 = 49297, |
| TRFCR_EL2 = 57489, |
| TRFCR_EL12 = 59537, |
| DIT = 55829, |
| VNCR_EL2 = 57616, |
| ZCR_EL1 = 49296, |
| ZCR_EL2 = 57488, |
| ZCR_EL3 = 61584, |
| ZCR_EL12 = 59536, |
| SSBS = 55830, |
| TCO = 55831, |
| GCR_EL1 = 49286, |
| RGSR_EL1 = 49285, |
| TFSR_EL1 = 49840, |
| TFSR_EL2 = 58032, |
| TFSR_EL3 = 62128, |
| TFSR_EL12 = 60080, |
| TFSRE0_EL1 = 49841, |
| GMID_EL1 = 51204, |
| TRCRSR = 34896, |
| TRCEXTINSELR0 = 34884, |
| TRCEXTINSELR1 = 34892, |
| TRCEXTINSELR2 = 34900, |
| TRCEXTINSELR3 = 34908, |
| TRBLIMITR_EL1 = 50392, |
| TRBPTR_EL1 = 50393, |
| TRBBASER_EL1 = 50394, |
| TRBSR_EL1 = 50395, |
| TRBMAR_EL1 = 50396, |
| TRBTRG_EL1 = 50398, |
| TRBIDR_EL1 = 50399, |
| AMCG1IDR_EL0 = 56982, |
| AMEVCNTVOFF00_EL2 = 59072, |
| AMEVCNTVOFF10_EL2 = 59088, |
| AMEVCNTVOFF01_EL2 = 59073, |
| AMEVCNTVOFF11_EL2 = 59089, |
| AMEVCNTVOFF02_EL2 = 59074, |
| AMEVCNTVOFF12_EL2 = 59090, |
| AMEVCNTVOFF03_EL2 = 59075, |
| AMEVCNTVOFF13_EL2 = 59091, |
| AMEVCNTVOFF04_EL2 = 59076, |
| AMEVCNTVOFF14_EL2 = 59092, |
| AMEVCNTVOFF05_EL2 = 59077, |
| AMEVCNTVOFF15_EL2 = 59093, |
| AMEVCNTVOFF06_EL2 = 59078, |
| AMEVCNTVOFF16_EL2 = 59094, |
| AMEVCNTVOFF07_EL2 = 59079, |
| AMEVCNTVOFF17_EL2 = 59095, |
| AMEVCNTVOFF08_EL2 = 59080, |
| AMEVCNTVOFF18_EL2 = 59096, |
| AMEVCNTVOFF09_EL2 = 59081, |
| AMEVCNTVOFF19_EL2 = 59097, |
| AMEVCNTVOFF010_EL2 = 59082, |
| AMEVCNTVOFF110_EL2 = 59098, |
| AMEVCNTVOFF011_EL2 = 59083, |
| AMEVCNTVOFF111_EL2 = 59099, |
| AMEVCNTVOFF012_EL2 = 59084, |
| AMEVCNTVOFF112_EL2 = 59100, |
| AMEVCNTVOFF013_EL2 = 59085, |
| AMEVCNTVOFF113_EL2 = 59101, |
| AMEVCNTVOFF014_EL2 = 59086, |
| AMEVCNTVOFF114_EL2 = 59102, |
| AMEVCNTVOFF015_EL2 = 59087, |
| AMEVCNTVOFF115_EL2 = 59103, |
| HFGRTR_EL2 = 57484, |
| HFGWTR_EL2 = 57485, |
| HFGITR_EL2 = 57486, |
| HDFGRTR_EL2 = 57740, |
| HDFGWTR_EL2 = 57741, |
| HAFGRTR_EL2 = 57742, |
| HDFGRTR2_EL2 = 57736, |
| HDFGWTR2_EL2 = 57737, |
| HFGRTR2_EL2 = 57738, |
| HFGWTR2_EL2 = 57739, |
| HFGITR2_EL2 = 57743, |
| CNTSCALE_EL2 = 59140, |
| CNTISCALE_EL2 = 59141, |
| CNTPOFF_EL2 = 59142, |
| CNTVFRQ_EL2 = 59143, |
| CNTPCTSS_EL0 = 57093, |
| CNTVCTSS_EL0 = 57094, |
| ACCDATA_EL1 = 50821, |
| BRBCR_EL1 = 35968, |
| BRBCR_EL12 = 44160, |
| BRBCR_EL2 = 42112, |
| BRBFCR_EL1 = 35969, |
| BRBIDR0_EL1 = 35984, |
| BRBINFINJ_EL1 = 35976, |
| BRBSRCINJ_EL1 = 35977, |
| BRBTGTINJ_EL1 = 35978, |
| BRBTS_EL1 = 35970, |
| BRBINF0_EL1 = 35840, |
| BRBSRC0_EL1 = 35841, |
| BRBTGT0_EL1 = 35842, |
| BRBINF1_EL1 = 35848, |
| BRBSRC1_EL1 = 35849, |
| BRBTGT1_EL1 = 35850, |
| BRBINF2_EL1 = 35856, |
| BRBSRC2_EL1 = 35857, |
| BRBTGT2_EL1 = 35858, |
| BRBINF3_EL1 = 35864, |
| BRBSRC3_EL1 = 35865, |
| BRBTGT3_EL1 = 35866, |
| BRBINF4_EL1 = 35872, |
| BRBSRC4_EL1 = 35873, |
| BRBTGT4_EL1 = 35874, |
| BRBINF5_EL1 = 35880, |
| BRBSRC5_EL1 = 35881, |
| BRBTGT5_EL1 = 35882, |
| BRBINF6_EL1 = 35888, |
| BRBSRC6_EL1 = 35889, |
| BRBTGT6_EL1 = 35890, |
| BRBINF7_EL1 = 35896, |
| BRBSRC7_EL1 = 35897, |
| BRBTGT7_EL1 = 35898, |
| BRBINF8_EL1 = 35904, |
| BRBSRC8_EL1 = 35905, |
| BRBTGT8_EL1 = 35906, |
| BRBINF9_EL1 = 35912, |
| BRBSRC9_EL1 = 35913, |
| BRBTGT9_EL1 = 35914, |
| BRBINF10_EL1 = 35920, |
| BRBSRC10_EL1 = 35921, |
| BRBTGT10_EL1 = 35922, |
| BRBINF11_EL1 = 35928, |
| BRBSRC11_EL1 = 35929, |
| BRBTGT11_EL1 = 35930, |
| BRBINF12_EL1 = 35936, |
| BRBSRC12_EL1 = 35937, |
| BRBTGT12_EL1 = 35938, |
| BRBINF13_EL1 = 35944, |
| BRBSRC13_EL1 = 35945, |
| BRBTGT13_EL1 = 35946, |
| BRBINF14_EL1 = 35952, |
| BRBSRC14_EL1 = 35953, |
| BRBTGT14_EL1 = 35954, |
| BRBINF15_EL1 = 35960, |
| BRBSRC15_EL1 = 35961, |
| BRBTGT15_EL1 = 35962, |
| BRBINF16_EL1 = 35844, |
| BRBSRC16_EL1 = 35845, |
| BRBTGT16_EL1 = 35846, |
| BRBINF17_EL1 = 35852, |
| BRBSRC17_EL1 = 35853, |
| BRBTGT17_EL1 = 35854, |
| BRBINF18_EL1 = 35860, |
| BRBSRC18_EL1 = 35861, |
| BRBTGT18_EL1 = 35862, |
| BRBINF19_EL1 = 35868, |
| BRBSRC19_EL1 = 35869, |
| BRBTGT19_EL1 = 35870, |
| BRBINF20_EL1 = 35876, |
| BRBSRC20_EL1 = 35877, |
| BRBTGT20_EL1 = 35878, |
| BRBINF21_EL1 = 35884, |
| BRBSRC21_EL1 = 35885, |
| BRBTGT21_EL1 = 35886, |
| BRBINF22_EL1 = 35892, |
| BRBSRC22_EL1 = 35893, |
| BRBTGT22_EL1 = 35894, |
| BRBINF23_EL1 = 35900, |
| BRBSRC23_EL1 = 35901, |
| BRBTGT23_EL1 = 35902, |
| BRBINF24_EL1 = 35908, |
| BRBSRC24_EL1 = 35909, |
| BRBTGT24_EL1 = 35910, |
| BRBINF25_EL1 = 35916, |
| BRBSRC25_EL1 = 35917, |
| BRBTGT25_EL1 = 35918, |
| BRBINF26_EL1 = 35924, |
| BRBSRC26_EL1 = 35925, |
| BRBTGT26_EL1 = 35926, |
| BRBINF27_EL1 = 35932, |
| BRBSRC27_EL1 = 35933, |
| BRBTGT27_EL1 = 35934, |
| BRBINF28_EL1 = 35940, |
| BRBSRC28_EL1 = 35941, |
| BRBTGT28_EL1 = 35942, |
| BRBINF29_EL1 = 35948, |
| BRBSRC29_EL1 = 35949, |
| BRBTGT29_EL1 = 35950, |
| BRBINF30_EL1 = 35956, |
| BRBSRC30_EL1 = 35957, |
| BRBTGT30_EL1 = 35958, |
| BRBINF31_EL1 = 35964, |
| BRBSRC31_EL1 = 35965, |
| BRBTGT31_EL1 = 35966, |
| PMSNEVFR_EL1 = 50377, |
| CPM_IOACC_CTL_EL3 = 65424, |
| SMCR_EL1 = 49302, |
| SMCR_EL2 = 57494, |
| SMCR_EL3 = 61590, |
| SMCR_EL12 = 59542, |
| SVCR = 55826, |
| SMPRI_EL1 = 49300, |
| SMPRIMAP_EL2 = 57493, |
| SMIDR_EL1 = 51206, |
| TPIDR2_EL0 = 56965, |
| MPAMSM_EL1 = 50475, |
| ALLINT = 49688, |
| ICC_NMIAR1_EL1 = 50765, |
| AMAIR2_EL1 = 50457, |
| AMAIR2_EL12 = 60697, |
| AMAIR2_EL2 = 58649, |
| AMAIR2_EL3 = 62745, |
| MAIR2_EL1 = 50449, |
| MAIR2_EL12 = 60689, |
| MAIR2_EL2 = 58633, |
| MAIR2_EL3 = 62729, |
| PIRE0_EL1 = 50450, |
| PIRE0_EL12 = 60690, |
| PIRE0_EL2 = 58642, |
| PIR_EL1 = 50451, |
| PIR_EL12 = 60691, |
| PIR_EL2 = 58643, |
| PIR_EL3 = 62739, |
| S2PIR_EL2 = 58645, |
| POR_EL0 = 56596, |
| POR_EL1 = 50452, |
| POR_EL12 = 60692, |
| POR_EL2 = 58644, |
| POR_EL3 = 62740, |
| S2POR_EL1 = 50453, |
| SCTLR2_EL1 = 49283, |
| SCTLR2_EL12 = 59523, |
| SCTLR2_EL2 = 57475, |
| SCTLR2_EL3 = 61571, |
| TCR2_EL1 = 49411, |
| TCR2_EL12 = 59651, |
| TCR2_EL2 = 57603, |
| RCWMASK_EL1 = 50822, |
| RCWSMASK_EL1 = 50819, |
| MDSELR_EL1 = 32802, |
| PMUACR_EL1 = 50420, |
| PMCCNTSVR_EL1 = 34655, |
| PMICNTSVR_EL1 = 34656, |
| PMSSCR_EL1 = 50411, |
| PMEVCNTSVR0_EL1 = 34624, |
| PMEVCNTSVR1_EL1 = 34625, |
| PMEVCNTSVR2_EL1 = 34626, |
| PMEVCNTSVR3_EL1 = 34627, |
| PMEVCNTSVR4_EL1 = 34628, |
| PMEVCNTSVR5_EL1 = 34629, |
| PMEVCNTSVR6_EL1 = 34630, |
| PMEVCNTSVR7_EL1 = 34631, |
| PMEVCNTSVR8_EL1 = 34632, |
| PMEVCNTSVR9_EL1 = 34633, |
| PMEVCNTSVR10_EL1 = 34634, |
| PMEVCNTSVR11_EL1 = 34635, |
| PMEVCNTSVR12_EL1 = 34636, |
| PMEVCNTSVR13_EL1 = 34637, |
| PMEVCNTSVR14_EL1 = 34638, |
| PMEVCNTSVR15_EL1 = 34639, |
| PMEVCNTSVR16_EL1 = 34640, |
| PMEVCNTSVR17_EL1 = 34641, |
| PMEVCNTSVR18_EL1 = 34642, |
| PMEVCNTSVR19_EL1 = 34643, |
| PMEVCNTSVR20_EL1 = 34644, |
| PMEVCNTSVR21_EL1 = 34645, |
| PMEVCNTSVR22_EL1 = 34646, |
| PMEVCNTSVR23_EL1 = 34647, |
| PMEVCNTSVR24_EL1 = 34648, |
| PMEVCNTSVR25_EL1 = 34649, |
| PMEVCNTSVR26_EL1 = 34650, |
| PMEVCNTSVR27_EL1 = 34651, |
| PMEVCNTSVR28_EL1 = 34652, |
| PMEVCNTSVR29_EL1 = 34653, |
| PMEVCNTSVR30_EL1 = 34654, |
| PMICNTR_EL0 = 56480, |
| PMICFILTR_EL0 = 56496, |
| PMZR_EL0 = 56556, |
| PMECR_EL1 = 50421, |
| PMIAR_EL1 = 50423, |
| SPMACCESSR_EL1 = 34027, |
| SPMACCESSR_EL12 = 44267, |
| SPMACCESSR_EL2 = 42219, |
| SPMACCESSR_EL3 = 46315, |
| SPMCNTENCLR_EL0 = 40162, |
| SPMCNTENSET_EL0 = 40161, |
| SPMCR_EL0 = 40160, |
| SPMDEVAFF_EL1 = 34030, |
| SPMDEVARCH_EL1 = 34029, |
| SPMEVCNTR0_EL0 = 40704, |
| SPMEVFILT2R0_EL0 = 40752, |
| SPMEVFILTR0_EL0 = 40736, |
| SPMEVTYPER0_EL0 = 40720, |
| SPMEVCNTR1_EL0 = 40705, |
| SPMEVFILT2R1_EL0 = 40753, |
| SPMEVFILTR1_EL0 = 40737, |
| SPMEVTYPER1_EL0 = 40721, |
| SPMEVCNTR2_EL0 = 40706, |
| SPMEVFILT2R2_EL0 = 40754, |
| SPMEVFILTR2_EL0 = 40738, |
| SPMEVTYPER2_EL0 = 40722, |
| SPMEVCNTR3_EL0 = 40707, |
| SPMEVFILT2R3_EL0 = 40755, |
| SPMEVFILTR3_EL0 = 40739, |
| SPMEVTYPER3_EL0 = 40723, |
| SPMEVCNTR4_EL0 = 40708, |
| SPMEVFILT2R4_EL0 = 40756, |
| SPMEVFILTR4_EL0 = 40740, |
| SPMEVTYPER4_EL0 = 40724, |
| SPMEVCNTR5_EL0 = 40709, |
| SPMEVFILT2R5_EL0 = 40757, |
| SPMEVFILTR5_EL0 = 40741, |
| SPMEVTYPER5_EL0 = 40725, |
| SPMEVCNTR6_EL0 = 40710, |
| SPMEVFILT2R6_EL0 = 40758, |
| SPMEVFILTR6_EL0 = 40742, |
| SPMEVTYPER6_EL0 = 40726, |
| SPMEVCNTR7_EL0 = 40711, |
| SPMEVFILT2R7_EL0 = 40759, |
| SPMEVFILTR7_EL0 = 40743, |
| SPMEVTYPER7_EL0 = 40727, |
| SPMEVCNTR8_EL0 = 40712, |
| SPMEVFILT2R8_EL0 = 40760, |
| SPMEVFILTR8_EL0 = 40744, |
| SPMEVTYPER8_EL0 = 40728, |
| SPMEVCNTR9_EL0 = 40713, |
| SPMEVFILT2R9_EL0 = 40761, |
| SPMEVFILTR9_EL0 = 40745, |
| SPMEVTYPER9_EL0 = 40729, |
| SPMEVCNTR10_EL0 = 40714, |
| SPMEVFILT2R10_EL0 = 40762, |
| SPMEVFILTR10_EL0 = 40746, |
| SPMEVTYPER10_EL0 = 40730, |
| SPMEVCNTR11_EL0 = 40715, |
| SPMEVFILT2R11_EL0 = 40763, |
| SPMEVFILTR11_EL0 = 40747, |
| SPMEVTYPER11_EL0 = 40731, |
| SPMEVCNTR12_EL0 = 40716, |
| SPMEVFILT2R12_EL0 = 40764, |
| SPMEVFILTR12_EL0 = 40748, |
| SPMEVTYPER12_EL0 = 40732, |
| SPMEVCNTR13_EL0 = 40717, |
| SPMEVFILT2R13_EL0 = 40765, |
| SPMEVFILTR13_EL0 = 40749, |
| SPMEVTYPER13_EL0 = 40733, |
| SPMEVCNTR14_EL0 = 40718, |
| SPMEVFILT2R14_EL0 = 40766, |
| SPMEVFILTR14_EL0 = 40750, |
| SPMEVTYPER14_EL0 = 40734, |
| SPMEVCNTR15_EL0 = 40719, |
| SPMEVFILT2R15_EL0 = 40767, |
| SPMEVFILTR15_EL0 = 40751, |
| SPMEVTYPER15_EL0 = 40735, |
| SPMIIDR_EL1 = 34028, |
| SPMINTENCLR_EL1 = 34034, |
| SPMINTENSET_EL1 = 34033, |
| SPMOVSCLR_EL0 = 40163, |
| SPMOVSSET_EL0 = 40179, |
| SPMSELR_EL0 = 40165, |
| SPMCGCR0_EL1 = 34024, |
| SPMCGCR1_EL1 = 34025, |
| SPMCFGR_EL1 = 34031, |
| SPMROOTCR_EL3 = 46327, |
| SPMSCR_EL1 = 48375, |
| TRCITEEDCR = 34833, |
| TRCITECR_EL1 = 49299, |
| TRCITECR_EL12 = 59539, |
| TRCITECR_EL2 = 57491, |
| PMSDSFR_EL1 = 50388, |
| ERXGSR_EL1 = 49818, |
| PFAR_EL1 = 49925, |
| PFAR_EL12 = 60165, |
| PFAR_EL2 = 58117, |
| PM = 49689, |
| }; |
| #endif |
| |
| #ifdef GET_TSB_DECL |
| enum TSBValues { |
| csync = 0, |
| }; |
| #endif |
| |
| #ifdef GET_TLBITable_DECL |
| const TLBI *lookupTLBIByEncoding(uint16_t Encoding); |
| const TLBI *lookupTLBIByName(StringRef Name); |
| #endif |
| |
| #ifdef GET_TLBITable_IMPL |
| constexpr TLBI TLBITable[] = { |
| { "ALLE1", 0x243C, false, { } }, // 0 |
| { "ALLE1IS", 0x241C, false, { } }, // 1 |
| { "ALLE1ISnXS", 0x249C, false, { AArch64::FeatureXS } }, // 2 |
| { "ALLE1nXS", 0x24BC, false, { AArch64::FeatureXS } }, // 3 |
| { "ALLE1OS", 0x240C, false, { AArch64::FeatureTLB_RMI } }, // 4 |
| { "ALLE1OSnXS", 0x248C, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 5 |
| { "ALLE2", 0x2438, false, { } }, // 6 |
| { "ALLE2IS", 0x2418, false, { } }, // 7 |
| { "ALLE2ISnXS", 0x2498, false, { AArch64::FeatureXS } }, // 8 |
| { "ALLE2nXS", 0x24B8, false, { AArch64::FeatureXS } }, // 9 |
| { "ALLE2OS", 0x2408, false, { AArch64::FeatureTLB_RMI } }, // 10 |
| { "ALLE2OSnXS", 0x2488, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 11 |
| { "ALLE3", 0x3438, false, { } }, // 12 |
| { "ALLE3IS", 0x3418, false, { } }, // 13 |
| { "ALLE3ISnXS", 0x3498, false, { AArch64::FeatureXS } }, // 14 |
| { "ALLE3nXS", 0x34B8, false, { AArch64::FeatureXS } }, // 15 |
| { "ALLE3OS", 0x3408, false, { AArch64::FeatureTLB_RMI } }, // 16 |
| { "ALLE3OSnXS", 0x3488, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 17 |
| { "ASIDE1", 0x43A, true, { } }, // 18 |
| { "ASIDE1IS", 0x41A, true, { } }, // 19 |
| { "ASIDE1ISnXS", 0x49A, true, { AArch64::FeatureXS } }, // 20 |
| { "ASIDE1nXS", 0x4BA, true, { AArch64::FeatureXS } }, // 21 |
| { "ASIDE1OS", 0x40A, true, { AArch64::FeatureTLB_RMI } }, // 22 |
| { "ASIDE1OSnXS", 0x48A, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 23 |
| { "IPAS2E1", 0x2421, true, { } }, // 24 |
| { "IPAS2E1IS", 0x2401, true, { } }, // 25 |
| { "IPAS2E1ISnXS", 0x2481, true, { AArch64::FeatureXS } }, // 26 |
| { "IPAS2E1nXS", 0x24A1, true, { AArch64::FeatureXS } }, // 27 |
| { "IPAS2E1OS", 0x2420, true, { AArch64::FeatureTLB_RMI } }, // 28 |
| { "IPAS2E1OSnXS", 0x24A0, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 29 |
| { "IPAS2LE1", 0x2425, true, { } }, // 30 |
| { "IPAS2LE1IS", 0x2405, true, { } }, // 31 |
| { "IPAS2LE1ISnXS", 0x2485, true, { AArch64::FeatureXS } }, // 32 |
| { "IPAS2LE1nXS", 0x24A5, true, { AArch64::FeatureXS } }, // 33 |
| { "IPAS2LE1OS", 0x2424, true, { AArch64::FeatureTLB_RMI } }, // 34 |
| { "IPAS2LE1OSnXS", 0x24A4, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 35 |
| { "PAALL", 0x343C, false, { AArch64::FeatureRME } }, // 36 |
| { "PAALLnXS", 0x34BC, false, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 37 |
| { "PAALLOS", 0x340C, false, { AArch64::FeatureRME } }, // 38 |
| { "PAALLOSnXS", 0x348C, false, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 39 |
| { "RIPAS2E1", 0x2422, true, { AArch64::FeatureTLB_RMI } }, // 40 |
| { "RIPAS2E1IS", 0x2402, true, { AArch64::FeatureTLB_RMI } }, // 41 |
| { "RIPAS2E1ISnXS", 0x2482, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 42 |
| { "RIPAS2E1nXS", 0x24A2, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 43 |
| { "RIPAS2E1OS", 0x2423, true, { AArch64::FeatureTLB_RMI } }, // 44 |
| { "RIPAS2E1OSnXS", 0x24A3, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 45 |
| { "RIPAS2LE1", 0x2426, true, { AArch64::FeatureTLB_RMI } }, // 46 |
| { "RIPAS2LE1IS", 0x2406, true, { AArch64::FeatureTLB_RMI } }, // 47 |
| { "RIPAS2LE1ISnXS", 0x2486, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 48 |
| { "RIPAS2LE1nXS", 0x24A6, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 49 |
| { "RIPAS2LE1OS", 0x2427, true, { AArch64::FeatureTLB_RMI } }, // 50 |
| { "RIPAS2LE1OSnXS", 0x24A7, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 51 |
| { "RPALOS", 0x3427, true, { AArch64::FeatureRME } }, // 52 |
| { "RPALOSnXS", 0x34A7, true, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 53 |
| { "RPAOS", 0x3423, true, { AArch64::FeatureRME } }, // 54 |
| { "RPAOSnXS", 0x34A3, true, { AArch64::FeatureRME, AArch64::FeatureXS } }, // 55 |
| { "RVAAE1", 0x433, true, { AArch64::FeatureTLB_RMI } }, // 56 |
| { "RVAAE1IS", 0x413, true, { AArch64::FeatureTLB_RMI } }, // 57 |
| { "RVAAE1ISnXS", 0x493, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 58 |
| { "RVAAE1nXS", 0x4B3, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 59 |
| { "RVAAE1OS", 0x42B, true, { AArch64::FeatureTLB_RMI } }, // 60 |
| { "RVAAE1OSnXS", 0x4AB, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 61 |
| { "RVAALE1", 0x437, true, { AArch64::FeatureTLB_RMI } }, // 62 |
| { "RVAALE1IS", 0x417, true, { AArch64::FeatureTLB_RMI } }, // 63 |
| { "RVAALE1ISnXS", 0x497, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 64 |
| { "RVAALE1nXS", 0x4B7, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 65 |
| { "RVAALE1OS", 0x42F, true, { AArch64::FeatureTLB_RMI } }, // 66 |
| { "RVAALE1OSnXS", 0x4AF, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 67 |
| { "RVAE1", 0x431, true, { AArch64::FeatureTLB_RMI } }, // 68 |
| { "RVAE1IS", 0x411, true, { AArch64::FeatureTLB_RMI } }, // 69 |
| { "RVAE1ISnXS", 0x491, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 70 |
| { "RVAE1nXS", 0x4B1, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 71 |
| { "RVAE1OS", 0x429, true, { AArch64::FeatureTLB_RMI } }, // 72 |
| { "RVAE1OSnXS", 0x4A9, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 73 |
| { "RVAE2", 0x2431, true, { AArch64::FeatureTLB_RMI } }, // 74 |
| { "RVAE2IS", 0x2411, true, { AArch64::FeatureTLB_RMI } }, // 75 |
| { "RVAE2ISnXS", 0x2491, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 76 |
| { "RVAE2nXS", 0x24B1, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 77 |
| { "RVAE2OS", 0x2429, true, { AArch64::FeatureTLB_RMI } }, // 78 |
| { "RVAE2OSnXS", 0x24A9, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 79 |
| { "RVAE3", 0x3431, true, { AArch64::FeatureTLB_RMI } }, // 80 |
| { "RVAE3IS", 0x3411, true, { AArch64::FeatureTLB_RMI } }, // 81 |
| { "RVAE3ISnXS", 0x3491, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 82 |
| { "RVAE3nXS", 0x34B1, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 83 |
| { "RVAE3OS", 0x3429, true, { AArch64::FeatureTLB_RMI } }, // 84 |
| { "RVAE3OSnXS", 0x34A9, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 85 |
| { "RVALE1", 0x435, true, { AArch64::FeatureTLB_RMI } }, // 86 |
| { "RVALE1IS", 0x415, true, { AArch64::FeatureTLB_RMI } }, // 87 |
| { "RVALE1ISnXS", 0x495, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 88 |
| { "RVALE1nXS", 0x4B5, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 89 |
| { "RVALE1OS", 0x42D, true, { AArch64::FeatureTLB_RMI } }, // 90 |
| { "RVALE1OSnXS", 0x4AD, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 91 |
| { "RVALE2", 0x2435, true, { AArch64::FeatureTLB_RMI } }, // 92 |
| { "RVALE2IS", 0x2415, true, { AArch64::FeatureTLB_RMI } }, // 93 |
| { "RVALE2ISnXS", 0x2495, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 94 |
| { "RVALE2nXS", 0x24B5, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 95 |
| { "RVALE2OS", 0x242D, true, { AArch64::FeatureTLB_RMI } }, // 96 |
| { "RVALE2OSnXS", 0x24AD, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 97 |
| { "RVALE3", 0x3435, true, { AArch64::FeatureTLB_RMI } }, // 98 |
| { "RVALE3IS", 0x3415, true, { AArch64::FeatureTLB_RMI } }, // 99 |
| { "RVALE3ISnXS", 0x3495, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 100 |
| { "RVALE3nXS", 0x34B5, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 101 |
| { "RVALE3OS", 0x342D, true, { AArch64::FeatureTLB_RMI } }, // 102 |
| { "RVALE3OSnXS", 0x34AD, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 103 |
| { "VAAE1", 0x43B, true, { } }, // 104 |
| { "VAAE1IS", 0x41B, true, { } }, // 105 |
| { "VAAE1ISnXS", 0x49B, true, { AArch64::FeatureXS } }, // 106 |
| { "VAAE1nXS", 0x4BB, true, { AArch64::FeatureXS } }, // 107 |
| { "VAAE1OS", 0x40B, true, { AArch64::FeatureTLB_RMI } }, // 108 |
| { "VAAE1OSnXS", 0x48B, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 109 |
| { "VAALE1", 0x43F, true, { } }, // 110 |
| { "VAALE1IS", 0x41F, true, { } }, // 111 |
| { "VAALE1ISnXS", 0x49F, true, { AArch64::FeatureXS } }, // 112 |
| { "VAALE1nXS", 0x4BF, true, { AArch64::FeatureXS } }, // 113 |
| { "VAALE1OS", 0x40F, true, { AArch64::FeatureTLB_RMI } }, // 114 |
| { "VAALE1OSnXS", 0x48F, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 115 |
| { "VAE1", 0x439, true, { } }, // 116 |
| { "VAE1IS", 0x419, true, { } }, // 117 |
| { "VAE1ISnXS", 0x499, true, { AArch64::FeatureXS } }, // 118 |
| { "VAE1nXS", 0x4B9, true, { AArch64::FeatureXS } }, // 119 |
| { "VAE1OS", 0x409, true, { AArch64::FeatureTLB_RMI } }, // 120 |
| { "VAE1OSnXS", 0x489, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 121 |
| { "VAE2", 0x2439, true, { } }, // 122 |
| { "VAE2IS", 0x2419, true, { } }, // 123 |
| { "VAE2ISnXS", 0x2499, true, { AArch64::FeatureXS } }, // 124 |
| { "VAE2nXS", 0x24B9, true, { AArch64::FeatureXS } }, // 125 |
| { "VAE2OS", 0x2409, true, { AArch64::FeatureTLB_RMI } }, // 126 |
| { "VAE2OSnXS", 0x2489, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 127 |
| { "VAE3", 0x3439, true, { } }, // 128 |
| { "VAE3IS", 0x3419, true, { } }, // 129 |
| { "VAE3ISnXS", 0x3499, true, { AArch64::FeatureXS } }, // 130 |
| { "VAE3nXS", 0x34B9, true, { AArch64::FeatureXS } }, // 131 |
| { "VAE3OS", 0x3409, true, { AArch64::FeatureTLB_RMI } }, // 132 |
| { "VAE3OSnXS", 0x3489, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 133 |
| { "VALE1", 0x43D, true, { } }, // 134 |
| { "VALE1IS", 0x41D, true, { } }, // 135 |
| { "VALE1ISnXS", 0x49D, true, { AArch64::FeatureXS } }, // 136 |
| { "VALE1nXS", 0x4BD, true, { AArch64::FeatureXS } }, // 137 |
| { "VALE1OS", 0x40D, true, { AArch64::FeatureTLB_RMI } }, // 138 |
| { "VALE1OSnXS", 0x48D, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 139 |
| { "VALE2", 0x243D, true, { } }, // 140 |
| { "VALE2IS", 0x241D, true, { } }, // 141 |
| { "VALE2ISnXS", 0x249D, true, { AArch64::FeatureXS } }, // 142 |
| { "VALE2nXS", 0x24BD, true, { AArch64::FeatureXS } }, // 143 |
| { "VALE2OS", 0x240D, true, { AArch64::FeatureTLB_RMI } }, // 144 |
| { "VALE2OSnXS", 0x248D, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 145 |
| { "VALE3", 0x343D, true, { } }, // 146 |
| { "VALE3IS", 0x341D, true, { } }, // 147 |
| { "VALE3ISnXS", 0x349D, true, { AArch64::FeatureXS } }, // 148 |
| { "VALE3nXS", 0x34BD, true, { AArch64::FeatureXS } }, // 149 |
| { "VALE3OS", 0x340D, true, { AArch64::FeatureTLB_RMI } }, // 150 |
| { "VALE3OSnXS", 0x348D, true, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 151 |
| { "VMALLE1", 0x438, false, { } }, // 152 |
| { "VMALLE1IS", 0x418, false, { } }, // 153 |
| { "VMALLE1ISnXS", 0x498, false, { AArch64::FeatureXS } }, // 154 |
| { "VMALLE1nXS", 0x4B8, false, { AArch64::FeatureXS } }, // 155 |
| { "VMALLE1OS", 0x408, false, { AArch64::FeatureTLB_RMI } }, // 156 |
| { "VMALLE1OSnXS", 0x488, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 157 |
| { "VMALLS12E1", 0x243E, false, { } }, // 158 |
| { "VMALLS12E1IS", 0x241E, false, { } }, // 159 |
| { "VMALLS12E1ISnXS", 0x249E, false, { AArch64::FeatureXS } }, // 160 |
| { "VMALLS12E1nXS", 0x24BE, false, { AArch64::FeatureXS } }, // 161 |
| { "VMALLS12E1OS", 0x240E, false, { AArch64::FeatureTLB_RMI } }, // 162 |
| { "VMALLS12E1OSnXS", 0x248E, false, { AArch64::FeatureTLB_RMI, AArch64::FeatureXS } }, // 163 |
| }; |
| |
| const TLBI *lookupTLBIByEncoding(uint16_t Encoding) { |
| struct IndexType { |
| uint16_t Encoding; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x408, 156 }, |
| { 0x409, 120 }, |
| { 0x40A, 22 }, |
| { 0x40B, 108 }, |
| { 0x40D, 138 }, |
| { 0x40F, 114 }, |
| { 0x411, 69 }, |
| { 0x413, 57 }, |
| { 0x415, 87 }, |
| { 0x417, 63 }, |
| { 0x418, 153 }, |
| { 0x419, 117 }, |
| { 0x41A, 19 }, |
| { 0x41B, 105 }, |
| { 0x41D, 135 }, |
| { 0x41F, 111 }, |
| { 0x429, 72 }, |
| { 0x42B, 60 }, |
| { 0x42D, 90 }, |
| { 0x42F, 66 }, |
| { 0x431, 68 }, |
| { 0x433, 56 }, |
| { 0x435, 86 }, |
| { 0x437, 62 }, |
| { 0x438, 152 }, |
| { 0x439, 116 }, |
| { 0x43A, 18 }, |
| { 0x43B, 104 }, |
| { 0x43D, 134 }, |
| { 0x43F, 110 }, |
| { 0x488, 157 }, |
| { 0x489, 121 }, |
| { 0x48A, 23 }, |
| { 0x48B, 109 }, |
| { 0x48D, 139 }, |
| { 0x48F, 115 }, |
| { 0x491, 70 }, |
| { 0x493, 58 }, |
| { 0x495, 88 }, |
| { 0x497, 64 }, |
| { 0x498, 154 }, |
| { 0x499, 118 }, |
| { 0x49A, 20 }, |
| { 0x49B, 106 }, |
| { 0x49D, 136 }, |
| { 0x49F, 112 }, |
| { 0x4A9, 73 }, |
| { 0x4AB, 61 }, |
| { 0x4AD, 91 }, |
| { 0x4AF, 67 }, |
| { 0x4B1, 71 }, |
| { 0x4B3, 59 }, |
| { 0x4B5, 89 }, |
| { 0x4B7, 65 }, |
| { 0x4B8, 155 }, |
| { 0x4B9, 119 }, |
| { 0x4BA, 21 }, |
| { 0x4BB, 107 }, |
| { 0x4BD, 137 }, |
| { 0x4BF, 113 }, |
| { 0x2401, 25 }, |
| { 0x2402, 41 }, |
| { 0x2405, 31 }, |
| { 0x2406, 47 }, |
| { 0x2408, 10 }, |
| { 0x2409, 126 }, |
| { 0x240C, 4 }, |
| { 0x240D, 144 }, |
| { 0x240E, 162 }, |
| { 0x2411, 75 }, |
| { 0x2415, 93 }, |
| { 0x2418, 7 }, |
| { 0x2419, 123 }, |
| { 0x241C, 1 }, |
| { 0x241D, 141 }, |
| { 0x241E, 159 }, |
| { 0x2420, 28 }, |
| { 0x2421, 24 }, |
| { 0x2422, 40 }, |
| { 0x2423, 44 }, |
| { 0x2424, 34 }, |
| { 0x2425, 30 }, |
| { 0x2426, 46 }, |
| { 0x2427, 50 }, |
| { 0x2429, 78 }, |
| { 0x242D, 96 }, |
| { 0x2431, 74 }, |
| { 0x2435, 92 }, |
| { 0x2438, 6 }, |
| { 0x2439, 122 }, |
| { 0x243C, 0 }, |
| { 0x243D, 140 }, |
| { 0x243E, 158 }, |
| { 0x2481, 26 }, |
| { 0x2482, 42 }, |
| { 0x2485, 32 }, |
| { 0x2486, 48 }, |
| { 0x2488, 11 }, |
| { 0x2489, 127 }, |
| { 0x248C, 5 }, |
| { 0x248D, 145 }, |
| { 0x248E, 163 }, |
| { 0x2491, 76 }, |
| { 0x2495, 94 }, |
| { 0x2498, 8 }, |
| { 0x2499, 124 }, |
| { 0x249C, 2 }, |
| { 0x249D, 142 }, |
| { 0x249E, 160 }, |
| { 0x24A0, 29 }, |
| { 0x24A1, 27 }, |
| { 0x24A2, 43 }, |
| { 0x24A3, 45 }, |
| { 0x24A4, 35 }, |
| { 0x24A5, 33 }, |
| { 0x24A6, 49 }, |
| { 0x24A7, 51 }, |
| { 0x24A9, 79 }, |
| { 0x24AD, 97 }, |
| { 0x24B1, 77 }, |
| { 0x24B5, 95 }, |
| { 0x24B8, 9 }, |
| { 0x24B9, 125 }, |
| { 0x24BC, 3 }, |
| { 0x24BD, 143 }, |
| { 0x24BE, 161 }, |
| { 0x3408, 16 }, |
| { 0x3409, 132 }, |
| { 0x340C, 38 }, |
| { 0x340D, 150 }, |
| { 0x3411, 81 }, |
| { 0x3415, 99 }, |
| { 0x3418, 13 }, |
| { 0x3419, 129 }, |
| { 0x341D, 147 }, |
| { 0x3423, 54 }, |
| { 0x3427, 52 }, |
| { 0x3429, 84 }, |
| { 0x342D, 102 }, |
| { 0x3431, 80 }, |
| { 0x3435, 98 }, |
| { 0x3438, 12 }, |
| { 0x3439, 128 }, |
| { 0x343C, 36 }, |
| { 0x343D, 146 }, |
| { 0x3488, 17 }, |
| { 0x3489, 133 }, |
| { 0x348C, 39 }, |
| { 0x348D, 151 }, |
| { 0x3491, 82 }, |
| { 0x3495, 100 }, |
| { 0x3498, 14 }, |
| { 0x3499, 130 }, |
| { 0x349D, 148 }, |
| { 0x34A3, 55 }, |
| { 0x34A7, 53 }, |
| { 0x34A9, 85 }, |
| { 0x34AD, 103 }, |
| { 0x34B1, 83 }, |
| { 0x34B5, 101 }, |
| { 0x34B8, 15 }, |
| { 0x34B9, 131 }, |
| { 0x34BC, 37 }, |
| { 0x34BD, 149 }, |
| }; |
| |
| struct KeyType { |
| uint16_t Encoding; |
| }; |
| KeyType Key = {Encoding}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| if (LHS.Encoding < RHS.Encoding) |
| return true; |
| if (LHS.Encoding > RHS.Encoding) |
| return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Encoding != Idx->Encoding) |
| return nullptr; |
| return &TLBITable[Idx->_index]; |
| } |
| |
| const TLBI *lookupTLBIByName(StringRef Name) { |
| struct IndexType { |
| const char * Name; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { "ALLE1", 0 }, |
| { "ALLE1IS", 1 }, |
| { "ALLE1ISNXS", 2 }, |
| { "ALLE1NXS", 3 }, |
| { "ALLE1OS", 4 }, |
| { "ALLE1OSNXS", 5 }, |
| { "ALLE2", 6 }, |
| { "ALLE2IS", 7 }, |
| { "ALLE2ISNXS", 8 }, |
| { "ALLE2NXS", 9 }, |
| { "ALLE2OS", 10 }, |
| { "ALLE2OSNXS", 11 }, |
| { "ALLE3", 12 }, |
| { "ALLE3IS", 13 }, |
| { "ALLE3ISNXS", 14 }, |
| { "ALLE3NXS", 15 }, |
| { "ALLE3OS", 16 }, |
| { "ALLE3OSNXS", 17 }, |
| { "ASIDE1", 18 }, |
| { "ASIDE1IS", 19 }, |
| { "ASIDE1ISNXS", 20 }, |
| { "ASIDE1NXS", 21 }, |
| { "ASIDE1OS", 22 }, |
| { "ASIDE1OSNXS", 23 }, |
| { "IPAS2E1", 24 }, |
| { "IPAS2E1IS", 25 }, |
| { "IPAS2E1ISNXS", 26 }, |
| { "IPAS2E1NXS", 27 }, |
| { "IPAS2E1OS", 28 }, |
| { "IPAS2E1OSNXS", 29 }, |
| { "IPAS2LE1", 30 }, |
| { "IPAS2LE1IS", 31 }, |
| { "IPAS2LE1ISNXS", 32 }, |
| { "IPAS2LE1NXS", 33 }, |
| { "IPAS2LE1OS", 34 }, |
| { "IPAS2LE1OSNXS", 35 }, |
| { "PAALL", 36 }, |
| { "PAALLNXS", 37 }, |
| { "PAALLOS", 38 }, |
| { "PAALLOSNXS", 39 }, |
| { "RIPAS2E1", 40 }, |
| { "RIPAS2E1IS", 41 }, |
| { "RIPAS2E1ISNXS", 42 }, |
| { "RIPAS2E1NXS", 43 }, |
| { "RIPAS2E1OS", 44 }, |
| { "RIPAS2E1OSNXS", 45 }, |
| { "RIPAS2LE1", 46 }, |
| { "RIPAS2LE1IS", 47 }, |
| { "RIPAS2LE1ISNXS", 48 }, |
| { "RIPAS2LE1NXS", 49 }, |
| { "RIPAS2LE1OS", 50 }, |
| { "RIPAS2LE1OSNXS", 51 }, |
| { "RPALOS", 52 }, |
| { "RPALOSNXS", 53 }, |
| { "RPAOS", 54 }, |
| { "RPAOSNXS", 55 }, |
| { "RVAAE1", 56 }, |
| { "RVAAE1IS", 57 }, |
| { "RVAAE1ISNXS", 58 }, |
| { "RVAAE1NXS", 59 }, |
| { "RVAAE1OS", 60 }, |
| { "RVAAE1OSNXS", 61 }, |
| { "RVAALE1", 62 }, |
| { "RVAALE1IS", 63 }, |
| { "RVAALE1ISNXS", 64 }, |
| { "RVAALE1NXS", 65 }, |
| { "RVAALE1OS", 66 }, |
| { "RVAALE1OSNXS", 67 }, |
| { "RVAE1", 68 }, |
| { "RVAE1IS", 69 }, |
| { "RVAE1ISNXS", 70 }, |
| { "RVAE1NXS", 71 }, |
| { "RVAE1OS", 72 }, |
| { "RVAE1OSNXS", 73 }, |
| { "RVAE2", 74 }, |
| { "RVAE2IS", 75 }, |
| { "RVAE2ISNXS", 76 }, |
| { "RVAE2NXS", 77 }, |
| { "RVAE2OS", 78 }, |
| { "RVAE2OSNXS", 79 }, |
| { "RVAE3", 80 }, |
| { "RVAE3IS", 81 }, |
| { "RVAE3ISNXS", 82 }, |
| { "RVAE3NXS", 83 }, |
| { "RVAE3OS", 84 }, |
| { "RVAE3OSNXS", 85 }, |
| { "RVALE1", 86 }, |
| { "RVALE1IS", 87 }, |
| { "RVALE1ISNXS", 88 }, |
| { "RVALE1NXS", 89 }, |
| { "RVALE1OS", 90 }, |
| { "RVALE1OSNXS", 91 }, |
| { "RVALE2", 92 }, |
| { "RVALE2IS", 93 }, |
| { "RVALE2ISNXS", 94 }, |
| { "RVALE2NXS", 95 }, |
| { "RVALE2OS", 96 }, |
| { "RVALE2OSNXS", 97 }, |
| { "RVALE3", 98 }, |
| { "RVALE3IS", 99 }, |
| { "RVALE3ISNXS", 100 }, |
| { "RVALE3NXS", 101 }, |
| { "RVALE3OS", 102 }, |
| { "RVALE3OSNXS", 103 }, |
| { "VAAE1", 104 }, |
| { "VAAE1IS", 105 }, |
| { "VAAE1ISNXS", 106 }, |
| { "VAAE1NXS", 107 }, |
| { "VAAE1OS", 108 }, |
| { "VAAE1OSNXS", 109 }, |
| { "VAALE1", 110 }, |
| { "VAALE1IS", 111 }, |
| { "VAALE1ISNXS", 112 }, |
| { "VAALE1NXS", 113 }, |
| { "VAALE1OS", 114 }, |
| { "VAALE1OSNXS", 115 }, |
| { "VAE1", 116 }, |
| { "VAE1IS", 117 }, |
| { "VAE1ISNXS", 118 }, |
| { "VAE1NXS", 119 }, |
| { "VAE1OS", 120 }, |
| { "VAE1OSNXS", 121 }, |
| { "VAE2", 122 }, |
| { "VAE2IS", 123 }, |
| { "VAE2ISNXS", 124 }, |
| { "VAE2NXS", 125 }, |
| { "VAE2OS", 126 }, |
| { "VAE2OSNXS", 127 }, |
| { "VAE3", 128 }, |
| { "VAE3IS", 129 }, |
| { "VAE3ISNXS", 130 }, |
| { "VAE3NXS", 131 }, |
| { "VAE3OS", 132 }, |
| { "VAE3OSNXS", 133 }, |
| { "VALE1", 134 }, |
| { "VALE1IS", 135 }, |
| { "VALE1ISNXS", 136 }, |
| { "VALE1NXS", 137 }, |
| { "VALE1OS", 138 }, |
| { "VALE1OSNXS", 139 }, |
| { "VALE2", 140 }, |
| { "VALE2IS", 141 }, |
| { "VALE2ISNXS", 142 }, |
| { "VALE2NXS", 143 }, |
| { "VALE2OS", 144 }, |
| { "VALE2OSNXS", 145 }, |
| { "VALE3", 146 }, |
| { "VALE3IS", 147 }, |
| { "VALE3ISNXS", 148 }, |
| { "VALE3NXS", 149 }, |
| { "VALE3OS", 150 }, |
| { "VALE3OSNXS", 151 }, |
| { "VMALLE1", 152 }, |
| { "VMALLE1IS", 153 }, |
| { "VMALLE1ISNXS", 154 }, |
| { "VMALLE1NXS", 155 }, |
| { "VMALLE1OS", 156 }, |
| { "VMALLE1OSNXS", 157 }, |
| { "VMALLS12E1", 158 }, |
| { "VMALLS12E1IS", 159 }, |
| { "VMALLS12E1ISNXS", 160 }, |
| { "VMALLS12E1NXS", 161 }, |
| { "VMALLS12E1OS", 162 }, |
| { "VMALLS12E1OSNXS", 163 }, |
| }; |
| |
| struct KeyType { |
| std::string Name; |
| }; |
| KeyType Key = {Name.upper()}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| int CmpName = StringRef(LHS.Name).compare(RHS.Name); |
| if (CmpName < 0) return true; |
| if (CmpName > 0) return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Name != Idx->Name) |
| return nullptr; |
| return &TLBITable[Idx->_index]; |
| } |
| #endif |
| |
| #ifdef GET_AT_DECL |
| const AT *lookupATByName(StringRef Name); |
| const AT *lookupATByEncoding(uint16_t Encoding); |
| #endif |
| |
| #ifdef GET_AT_IMPL |
| constexpr AT ATsList[] = { |
| { "S12E0R", 0x23C6, {} }, // 0 |
| { "S12E0W", 0x23C7, {} }, // 1 |
| { "S12E1R", 0x23C4, {} }, // 2 |
| { "S12E1W", 0x23C5, {} }, // 3 |
| { "S1E0R", 0x3C2, {} }, // 4 |
| { "S1E0W", 0x3C3, {} }, // 5 |
| { "S1E1R", 0x3C0, {} }, // 6 |
| { "S1E1RP", 0x3C8, {AArch64::FeaturePAN_RWV} }, // 7 |
| { "S1E1W", 0x3C1, {} }, // 8 |
| { "S1E1WP", 0x3C9, {AArch64::FeaturePAN_RWV} }, // 9 |
| { "S1E2R", 0x23C0, {} }, // 10 |
| { "S1E2W", 0x23C1, {} }, // 11 |
| { "S1E3R", 0x33C0, {} }, // 12 |
| { "S1E3W", 0x33C1, {} }, // 13 |
| }; |
| |
| const AT *lookupATByName(StringRef Name) { |
| struct IndexType { |
| const char * Name; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { "S12E0R", 0 }, |
| { "S12E0W", 1 }, |
| { "S12E1R", 2 }, |
| { "S12E1W", 3 }, |
| { "S1E0R", 4 }, |
| { "S1E0W", 5 }, |
| { "S1E1R", 6 }, |
| { "S1E1RP", 7 }, |
| { "S1E1W", 8 }, |
| { "S1E1WP", 9 }, |
| { "S1E2R", 10 }, |
| { "S1E2W", 11 }, |
| { "S1E3R", 12 }, |
| { "S1E3W", 13 }, |
| }; |
| |
| struct KeyType { |
| std::string Name; |
| }; |
| KeyType Key = {Name.upper()}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| int CmpName = StringRef(LHS.Name).compare(RHS.Name); |
| if (CmpName < 0) return true; |
| if (CmpName > 0) return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Name != Idx->Name) |
| return nullptr; |
| return &ATsList[Idx->_index]; |
| } |
| |
| const AT *lookupATByEncoding(uint16_t Encoding) { |
| struct IndexType { |
| uint16_t Encoding; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x3C0, 6 }, |
| { 0x3C1, 8 }, |
| { 0x3C2, 4 }, |
| { 0x3C3, 5 }, |
| { 0x3C8, 7 }, |
| { 0x3C9, 9 }, |
| { 0x23C0, 10 }, |
| { 0x23C1, 11 }, |
| { 0x23C4, 2 }, |
| { 0x23C5, 3 }, |
| { 0x23C6, 0 }, |
| { 0x23C7, 1 }, |
| { 0x33C0, 12 }, |
| { 0x33C1, 13 }, |
| }; |
| |
| struct KeyType { |
| uint16_t Encoding; |
| }; |
| KeyType Key = {Encoding}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| if (LHS.Encoding < RHS.Encoding) |
| return true; |
| if (LHS.Encoding > RHS.Encoding) |
| return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Encoding != Idx->Encoding) |
| return nullptr; |
| return &ATsList[Idx->_index]; |
| } |
| #endif |
| |
| #ifdef GET_BTI_DECL |
| const BTI *lookupBTIByName(StringRef Name); |
| const BTI *lookupBTIByEncoding(uint8_t Encoding); |
| #endif |
| |
| #ifdef GET_BTI_IMPL |
| constexpr BTI BTIsList[] = { |
| { "c", 0x2 }, // 0 |
| { "j", 0x4 }, // 1 |
| { "jc", 0x6 }, // 2 |
| }; |
| |
| const BTI *lookupBTIByName(StringRef Name) { |
| struct IndexType { |
| const char * Name; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { "C", 0 }, |
| { "J", 1 }, |
| { "JC", 2 }, |
| }; |
| |
| struct KeyType { |
| std::string Name; |
| }; |
| KeyType Key = {Name.upper()}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| int CmpName = StringRef(LHS.Name).compare(RHS.Name); |
| if (CmpName < 0) return true; |
| if (CmpName > 0) return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Name != Idx->Name) |
| return nullptr; |
| return &BTIsList[Idx->_index]; |
| } |
| |
| const BTI *lookupBTIByEncoding(uint8_t Encoding) { |
| struct IndexType { |
| uint8_t Encoding; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x2, 0 }, |
| { 0x4, 1 }, |
| { 0x6, 2 }, |
| }; |
| |
| struct KeyType { |
| uint8_t Encoding; |
| }; |
| KeyType Key = {Encoding}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| if (LHS.Encoding < RHS.Encoding) |
| return true; |
| if (LHS.Encoding > RHS.Encoding) |
| return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Encoding != Idx->Encoding) |
| return nullptr; |
| return &BTIsList[Idx->_index]; |
| } |
| #endif |
| |
| #ifdef GET_DB_DECL |
| const DB *lookupDBByName(StringRef Name); |
| const DB *lookupDBByEncoding(uint8_t Encoding); |
| #endif |
| |
| #ifdef GET_DB_IMPL |
| constexpr DB DBsList[] = { |
| { "ish", 0xB }, // 0 |
| { "ishld", 0x9 }, // 1 |
| { "ishst", 0xA }, // 2 |
| { "ld", 0xD }, // 3 |
| { "nsh", 0x7 }, // 4 |
| { "nshld", 0x5 }, // 5 |
| { "nshst", 0x6 }, // 6 |
| { "osh", 0x3 }, // 7 |
| { "oshld", 0x1 }, // 8 |
| { "oshst", 0x2 }, // 9 |
| { "st", 0xE }, // 10 |
| { "sy", 0xF }, // 11 |
| }; |
| |
| const DB *lookupDBByName(StringRef Name) { |
| struct IndexType { |
| const char * Name; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { "ISH", 0 }, |
| { "ISHLD", 1 }, |
| { "ISHST", 2 }, |
| { "LD", 3 }, |
| { "NSH", 4 }, |
| { "NSHLD", 5 }, |
| { "NSHST", 6 }, |
| { "OSH", 7 }, |
| { "OSHLD", 8 }, |
| { "OSHST", 9 }, |
| { "ST", 10 }, |
| { "SY", 11 }, |
| }; |
| |
| struct KeyType { |
| std::string Name; |
| }; |
| KeyType Key = {Name.upper()}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| int CmpName = StringRef(LHS.Name).compare(RHS.Name); |
| if (CmpName < 0) return true; |
| if (CmpName > 0) return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Name != Idx->Name) |
| return nullptr; |
| return &DBsList[Idx->_index]; |
| } |
| |
| const DB *lookupDBByEncoding(uint8_t Encoding) { |
| struct IndexType { |
| uint8_t Encoding; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x1, 8 }, |
| { 0x2, 9 }, |
| { 0x3, 7 }, |
| { 0x5, 5 }, |
| { 0x6, 6 }, |
| { 0x7, 4 }, |
| { 0x9, 1 }, |
| { 0xA, 2 }, |
| { 0xB, 0 }, |
| { 0xD, 3 }, |
| { 0xE, 10 }, |
| { 0xF, 11 }, |
| }; |
| |
| struct KeyType { |
| uint8_t Encoding; |
| }; |
| KeyType Key = {Encoding}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| if (LHS.Encoding < RHS.Encoding) |
| return true; |
| if (LHS.Encoding > RHS.Encoding) |
| return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Encoding != Idx->Encoding) |
| return nullptr; |
| return &DBsList[Idx->_index]; |
| } |
| #endif |
| |
| #ifdef GET_DBNXS_DECL |
| const DBnXS *lookupDBnXSByName(StringRef Name); |
| const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding); |
| const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue); |
| #endif |
| |
| #ifdef GET_DBNXS_IMPL |
| constexpr DBnXS DBnXSsList[] = { |
| { "ishnxs", 0xB, 0x18, {AArch64::FeatureXS} }, // 0 |
| { "nshnxs", 0x7, 0x14, {AArch64::FeatureXS} }, // 1 |
| { "oshnxs", 0x3, 0x10, {AArch64::FeatureXS} }, // 2 |
| { "synxs", 0xF, 0x1C, {AArch64::FeatureXS} }, // 3 |
| }; |
| |
| const DBnXS *lookupDBnXSByName(StringRef Name) { |
| struct IndexType { |
| const char * Name; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { "ISHNXS", 0 }, |
| { "NSHNXS", 1 }, |
| { "OSHNXS", 2 }, |
| { "SYNXS", 3 }, |
| }; |
| |
| struct KeyType { |
| std::string Name; |
| }; |
| KeyType Key = {Name.upper()}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| int CmpName = StringRef(LHS.Name).compare(RHS.Name); |
| if (CmpName < 0) return true; |
| if (CmpName > 0) return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Name != Idx->Name) |
| return nullptr; |
| return &DBnXSsList[Idx->_index]; |
| } |
| |
| const DBnXS *lookupDBnXSByEncoding(uint8_t Encoding) { |
| struct IndexType { |
| uint8_t Encoding; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x3, 2 }, |
| { 0x7, 1 }, |
| { 0xB, 0 }, |
| { 0xF, 3 }, |
| }; |
| |
| struct KeyType { |
| uint8_t Encoding; |
| }; |
| KeyType Key = {Encoding}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| if (LHS.Encoding < RHS.Encoding) |
| return true; |
| if (LHS.Encoding > RHS.Encoding) |
| return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Encoding != Idx->Encoding) |
| return nullptr; |
| return &DBnXSsList[Idx->_index]; |
| } |
| |
| const DBnXS *lookupDBnXSByImmValue(uint8_t ImmValue) { |
| struct IndexType { |
| uint8_t ImmValue; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x10, 2 }, |
| { 0x14, 1 }, |
| { 0x18, 0 }, |
| { 0x1C, 3 }, |
| }; |
| |
| struct KeyType { |
| uint8_t ImmValue; |
| }; |
| KeyType Key = {ImmValue}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| if (LHS.ImmValue < RHS.ImmValue) |
| return true; |
| if (LHS.ImmValue > RHS.ImmValue) |
| return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.ImmValue != Idx->ImmValue) |
| return nullptr; |
| return &DBnXSsList[Idx->_index]; |
| } |
| #endif |
| |
| #ifdef GET_DC_DECL |
| const DC *lookupDCByName(StringRef Name); |
| const DC *lookupDCByEncoding(uint16_t Encoding); |
| #endif |
| |
| #ifdef GET_DC_IMPL |
| constexpr DC DCsList[] = { |
| { "CGDSW", 0x3D6, {AArch64::FeatureMTE} }, // 0 |
| { "CGDVAC", 0x1BD5, {AArch64::FeatureMTE} }, // 1 |
| { "CGDVADP", 0x1BED, {AArch64::FeatureMTE} }, // 2 |
| { "CGDVAP", 0x1BE5, {AArch64::FeatureMTE} }, // 3 |
| { "CGSW", 0x3D4, {AArch64::FeatureMTE} }, // 4 |
| { "CGVAC", 0x1BD3, {AArch64::FeatureMTE} }, // 5 |
| { "CGVADP", 0x1BEB, {AArch64::FeatureMTE} }, // 6 |
| { "CGVAP", 0x1BE3, {AArch64::FeatureMTE} }, // 7 |
| { "CIGDPAE", 0x23F7, {AArch64::FeatureMEC} }, // 8 |
| { "CIGDSW", 0x3F6, {AArch64::FeatureMTE} }, // 9 |
| { "CIGDVAC", 0x1BF5, {AArch64::FeatureMTE} }, // 10 |
| { "CIGSW", 0x3F4, {AArch64::FeatureMTE} }, // 11 |
| { "CIGVAC", 0x1BF3, {AArch64::FeatureMTE} }, // 12 |
| { "CIPAE", 0x23F0, {AArch64::FeatureMEC} }, // 13 |
| { "CISW", 0x3F2, {} }, // 14 |
| { "CIVAC", 0x1BF1, {} }, // 15 |
| { "CSW", 0x3D2, {} }, // 16 |
| { "CVAC", 0x1BD1, {} }, // 17 |
| { "CVADP", 0x1BE9, {AArch64::FeatureCacheDeepPersist} }, // 18 |
| { "CVAP", 0x1BE1, {AArch64::FeatureCCPP} }, // 19 |
| { "CVAU", 0x1BD9, {} }, // 20 |
| { "GVA", 0x1BA3, {AArch64::FeatureMTE} }, // 21 |
| { "GZVA", 0x1BA4, {AArch64::FeatureMTE} }, // 22 |
| { "IGDSW", 0x3B6, {AArch64::FeatureMTE} }, // 23 |
| { "IGDVAC", 0x3B5, {AArch64::FeatureMTE} }, // 24 |
| { "IGSW", 0x3B4, {AArch64::FeatureMTE} }, // 25 |
| { "IGVAC", 0x3B3, {AArch64::FeatureMTE} }, // 26 |
| { "ISW", 0x3B2, {} }, // 27 |
| { "IVAC", 0x3B1, {} }, // 28 |
| { "ZVA", 0x1BA1, {} }, // 29 |
| }; |
| |
| const DC *lookupDCByName(StringRef Name) { |
| struct IndexType { |
| const char * Name; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { "CGDSW", 0 }, |
| { "CGDVAC", 1 }, |
| { "CGDVADP", 2 }, |
| { "CGDVAP", 3 }, |
| { "CGSW", 4 }, |
| { "CGVAC", 5 }, |
| { "CGVADP", 6 }, |
| { "CGVAP", 7 }, |
| { "CIGDPAE", 8 }, |
| { "CIGDSW", 9 }, |
| { "CIGDVAC", 10 }, |
| { "CIGSW", 11 }, |
| { "CIGVAC", 12 }, |
| { "CIPAE", 13 }, |
| { "CISW", 14 }, |
| { "CIVAC", 15 }, |
| { "CSW", 16 }, |
| { "CVAC", 17 }, |
| { "CVADP", 18 }, |
| { "CVAP", 19 }, |
| { "CVAU", 20 }, |
| { "GVA", 21 }, |
| { "GZVA", 22 }, |
| { "IGDSW", 23 }, |
| { "IGDVAC", 24 }, |
| { "IGSW", 25 }, |
| { "IGVAC", 26 }, |
| { "ISW", 27 }, |
| { "IVAC", 28 }, |
| { "ZVA", 29 }, |
| }; |
| |
| struct KeyType { |
| std::string Name; |
| }; |
| KeyType Key = {Name.upper()}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| int CmpName = StringRef(LHS.Name).compare(RHS.Name); |
| if (CmpName < 0) return true; |
| if (CmpName > 0) return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Name != Idx->Name) |
| return nullptr; |
| return &DCsList[Idx->_index]; |
| } |
| |
| const DC *lookupDCByEncoding(uint16_t Encoding) { |
| struct IndexType { |
| uint16_t Encoding; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x3B1, 28 }, |
| { 0x3B2, 27 }, |
| { 0x3B3, 26 }, |
| { 0x3B4, 25 }, |
| { 0x3B5, 24 }, |
| { 0x3B6, 23 }, |
| { 0x3D2, 16 }, |
| { 0x3D4, 4 }, |
| { 0x3D6, 0 }, |
| { 0x3F2, 14 }, |
| { 0x3F4, 11 }, |
| { 0x3F6, 9 }, |
| { 0x1BA1, 29 }, |
| { 0x1BA3, 21 }, |
| { 0x1BA4, 22 }, |
| { 0x1BD1, 17 }, |
| { 0x1BD3, 5 }, |
| { 0x1BD5, 1 }, |
| { 0x1BD9, 20 }, |
| { 0x1BE1, 19 }, |
| { 0x1BE3, 7 }, |
| { 0x1BE5, 3 }, |
| { 0x1BE9, 18 }, |
| { 0x1BEB, 6 }, |
| { 0x1BED, 2 }, |
| { 0x1BF1, 15 }, |
| { 0x1BF3, 12 }, |
| { 0x1BF5, 10 }, |
| { 0x23F0, 13 }, |
| { 0x23F7, 8 }, |
| }; |
| |
| struct KeyType { |
| uint16_t Encoding; |
| }; |
| KeyType Key = {Encoding}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| if (LHS.Encoding < RHS.Encoding) |
| return true; |
| if (LHS.Encoding > RHS.Encoding) |
| return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Encoding != Idx->Encoding) |
| return nullptr; |
| return &DCsList[Idx->_index]; |
| } |
| #endif |
| |
| #ifdef GET_EXACTFPIMM_DECL |
| const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum); |
| const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr); |
| #endif |
| |
| #ifdef GET_EXACTFPIMM_IMPL |
| constexpr ExactFPImm ExactFPImmsList[] = { |
| { "half", 0x1, "0.5" }, // 0 |
| { "one", 0x2, "1.0" }, // 1 |
| { "two", 0x3, "2.0" }, // 2 |
| { "zero", 0x0, "0.0" }, // 3 |
| }; |
| |
| const ExactFPImm *lookupExactFPImmByEnum(uint8_t Enum) { |
| struct IndexType { |
| uint8_t Enum; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { 0x0, 3 }, |
| { 0x1, 0 }, |
| { 0x2, 1 }, |
| { 0x3, 2 }, |
| }; |
| |
| auto Table = ArrayRef(Index); |
| size_t Idx = Enum; |
| return Idx >= Table.size() ? nullptr : &ExactFPImmsList[Table[Idx]._index]; |
| } |
| |
| const ExactFPImm *lookupExactFPImmByRepr(StringRef Repr) { |
| struct IndexType { |
| const char * Repr; |
| unsigned _index; |
| }; |
| static const struct IndexType Index[] = { |
| { "0.0", 3 }, |
| { "0.5", 0 }, |
| { "1.0", 1 }, |
| { "2.0", 2 }, |
| }; |
| |
| struct KeyType { |
| std::string Repr; |
| }; |
| KeyType Key = {Repr.upper()}; |
| auto Table = ArrayRef(Index); |
| auto Idx = std::lower_bound(Table.begin(), Table.end(), Key, |
| [](const IndexType &LHS, const KeyType &RHS) { |
| int CmpRepr = StringRef(LHS.Repr).compare(RHS.Repr); |
| if (CmpRepr < 0) return true; |
| if (CmpRepr > 0) return false; |
| return false; |
| }); |
| |
| if (Idx == Table.end() || |
| Key.Repr != Idx->Repr) |
| return nullptr; |
| return &ExactFPImmsList[Idx->_index]; |
| } |
| #endif |
| |
| #ifdef GET_IC_DECL |
| const IC *lookupICByName(StringRef Name); |
| const IC *lookupICByEncoding(uint16_t Encoding); |
| #endif |
| |
| #ifdef GET_IC_IMPL |
| constexpr IC ICsList[] = { |
| { "IALLU", 0x3A8, false }, // 0 |
| { "IALLUIS", 0x388, false }, // 1 |
| { "IVAU", 0x1BA9, true }, // 2 |
| }; |
| |
| const IC *lookupICByName(StringRef Name) { |
| |