#pragma once enum SystemReg { SYSREG_NONE=32769, REG_OSDTRRX_EL1=32770, REG_DBGBVR0_EL1=32772, REG_DBGBCR0_EL1=32773, REG_DBGWVR0_EL1=32774, REG_DBGWCR0_EL1=32775, REG_DBGBVR1_EL1=32780, REG_DBGBCR1_EL1=32781, REG_DBGWVR1_EL1=32782, REG_DBGWCR1_EL1=32783, REG_MDCCINT_EL1=32784, REG_MDSCR_EL1=32786, REG_DBGBVR2_EL1=32788, REG_DBGBCR2_EL1=32789, REG_DBGWVR2_EL1=32790, REG_DBGWCR2_EL1=32791, REG_OSDTRTX_EL1=32794, REG_DBGBVR3_EL1=32796, REG_DBGBCR3_EL1=32797, REG_DBGWVR3_EL1=32798, REG_DBGWCR3_EL1=32799, REG_DBGBVR4_EL1=32804, REG_DBGBCR4_EL1=32805, REG_DBGWVR4_EL1=32806, REG_DBGWCR4_EL1=32807, REG_DBGBVR5_EL1=32812, REG_DBGBCR5_EL1=32813, REG_DBGWVR5_EL1=32814, REG_DBGWCR5_EL1=32815, REG_OSECCR_EL1=32818, REG_DBGBVR6_EL1=32820, REG_DBGBCR6_EL1=32821, REG_DBGWVR6_EL1=32822, REG_DBGWCR6_EL1=32823, REG_DBGBVR7_EL1=32828, REG_DBGBCR7_EL1=32829, REG_DBGWVR7_EL1=32830, REG_DBGWCR7_EL1=32831, REG_DBGBVR8_EL1=32836, REG_DBGBCR8_EL1=32837, REG_DBGWVR8_EL1=32838, REG_DBGWCR8_EL1=32839, REG_DBGBVR9_EL1=32844, REG_DBGBCR9_EL1=32845, REG_DBGWVR9_EL1=32846, REG_DBGWCR9_EL1=32847, REG_DBGBVR10_EL1=32852, REG_DBGBCR10_EL1=32853, REG_DBGWVR10_EL1=32854, REG_DBGWCR10_EL1=32855, REG_DBGBVR11_EL1=32860, REG_DBGBCR11_EL1=32861, REG_DBGWVR11_EL1=32862, REG_DBGWCR11_EL1=32863, REG_DBGBVR12_EL1=32868, REG_DBGBCR12_EL1=32869, REG_DBGWVR12_EL1=32870, REG_DBGWCR12_EL1=32871, REG_DBGBVR13_EL1=32876, REG_DBGBCR13_EL1=32877, REG_DBGWVR13_EL1=32878, REG_DBGWCR13_EL1=32879, REG_DBGBVR14_EL1=32884, REG_DBGBCR14_EL1=32885, REG_DBGWVR14_EL1=32886, REG_DBGWCR14_EL1=32887, REG_DBGBVR15_EL1=32892, REG_DBGBCR15_EL1=32893, REG_DBGWVR15_EL1=32894, REG_DBGWCR15_EL1=32895, REG_OSLAR_EL1=32900, REG_OSDLR_EL1=32924, REG_DBGPRCR_EL1=32932, REG_DBGCLAIMSET_EL1=33734, REG_DBGCLAIMCLR_EL1=33742, REG_TRCTRACEIDR=34817, REG_TRCVICTLR=34818, REG_TRCSEQEVR0=34820, REG_TRCCNTRLDVR0=34821, REG_TRCIMSPEC0=34823, REG_TRCPRGCTLR=34824, REG_TRCQCTLR=34825, REG_TRCVIIECTLR=34826, REG_TRCSEQEVR1=34828, REG_TRCCNTRLDVR1=34829, REG_TRCIMSPEC1=34831, REG_TRCPROCSELR=34832, REG_TRCVISSCTLR=34834, REG_TRCSEQEVR2=34836, REG_TRCCNTRLDVR2=34837, REG_TRCIMSPEC2=34839, REG_TRCVIPCSSCTLR=34842, REG_TRCCNTRLDVR3=34845, REG_TRCIMSPEC3=34847, REG_TRCCONFIGR=34848, REG_TRCCNTCTLR0=34853, REG_TRCIMSPEC4=34855, REG_TRCCNTCTLR1=34861, REG_TRCIMSPEC5=34863, REG_TRCAUXCTLR=34864, REG_TRCSEQRSTEVR=34868, REG_TRCCNTCTLR2=34869, REG_TRCIMSPEC6=34871, REG_TRCSEQSTR=34876, REG_TRCCNTCTLR3=34877, REG_TRCIMSPEC7=34879, REG_TRCEVENTCTL0R=34880, REG_TRCVDCTLR=34882, REG_TRCEXTINSELR=34884, REG_TRCCNTVR0=34885, REG_TRCEVENTCTL1R=34888, REG_TRCVDSACCTLR=34890, REG_TRCEXTINSELR1=34892, REG_TRCCNTVR1=34893, REG_TRCRSR=34896, REG_TRCVDARCCTLR=34898, REG_TRCEXTINSELR2=34900, REG_TRCCNTVR2=34901, REG_TRCSTALLCTLR=34904, REG_TRCEXTINSELR3=34908, REG_TRCCNTVR3=34909, REG_TRCTSCTLR=34912, REG_TRCSYNCPR=34920, REG_TRCCCCTLR=34928, REG_TRCBBCTLR=34936, REG_TRCRSCTLR16=34945, REG_TRCSSCCR0=34946, REG_TRCSSPCICR0=34947, REG_TRCOSLAR=34948, REG_TRCRSCTLR17=34953, REG_TRCSSCCR1=34954, REG_TRCSSPCICR1=34955, REG_TRCRSCTLR2=34960, REG_TRCRSCTLR18=34961, REG_TRCSSCCR2=34962, REG_TRCSSPCICR2=34963, REG_TRCRSCTLR3=34968, REG_TRCRSCTLR19=34969, REG_TRCSSCCR3=34970, REG_TRCSSPCICR3=34971, REG_TRCRSCTLR4=34976, REG_TRCRSCTLR20=34977, REG_TRCSSCCR4=34978, REG_TRCSSPCICR4=34979, REG_TRCPDCR=34980, REG_TRCRSCTLR5=34984, REG_TRCRSCTLR21=34985, REG_TRCSSCCR5=34986, REG_TRCSSPCICR5=34987, REG_TRCRSCTLR6=34992, REG_TRCRSCTLR22=34993, REG_TRCSSCCR6=34994, REG_TRCSSPCICR6=34995, REG_TRCRSCTLR7=35000, REG_TRCRSCTLR23=35001, REG_TRCSSCCR7=35002, REG_TRCSSPCICR7=35003, REG_TRCRSCTLR8=35008, REG_TRCRSCTLR24=35009, REG_TRCSSCSR0=35010, REG_TRCRSCTLR9=35016, REG_TRCRSCTLR25=35017, REG_TRCSSCSR1=35018, REG_TRCRSCTLR10=35024, REG_TRCRSCTLR26=35025, REG_TRCSSCSR2=35026, REG_TRCRSCTLR11=35032, REG_TRCRSCTLR27=35033, REG_TRCSSCSR3=35034, REG_TRCRSCTLR12=35040, REG_TRCRSCTLR28=35041, REG_TRCSSCSR4=35042, REG_TRCRSCTLR13=35048, REG_TRCRSCTLR29=35049, REG_TRCSSCSR5=35050, REG_TRCRSCTLR14=35056, REG_TRCRSCTLR30=35057, REG_TRCSSCSR6=35058, REG_TRCRSCTLR15=35064, REG_TRCRSCTLR31=35065, REG_TRCSSCSR7=35066, REG_TRCACVR0=35072, REG_TRCACVR8=35073, REG_TRCACATR0=35074, REG_TRCACATR8=35075, REG_TRCDVCVR0=35076, REG_TRCDVCVR4=35077, REG_TRCDVCMR0=35078, REG_TRCDVCMR4=35079, REG_TRCACVR1=35088, REG_TRCACVR9=35089, REG_TRCACATR1=35090, REG_TRCACATR9=35091, REG_TRCACVR2=35104, REG_TRCACVR10=35105, REG_TRCACATR2=35106, REG_TRCACATR10=35107, REG_TRCDVCVR1=35108, REG_TRCDVCVR5=35109, REG_TRCDVCMR1=35110, REG_TRCDVCMR5=35111, REG_TRCACVR3=35120, REG_TRCACVR11=35121, REG_TRCACATR3=35122, REG_TRCACATR11=35123, REG_TRCACVR4=35136, REG_TRCACVR12=35137, REG_TRCACATR4=35138, REG_TRCACATR12=35139, REG_TRCDVCVR2=35140, REG_TRCDVCVR6=35141, REG_TRCDVCMR2=35142, REG_TRCDVCMR6=35143, REG_TRCACVR5=35152, REG_TRCACVR13=35153, REG_TRCACATR5=35154, REG_TRCACATR13=35155, REG_TRCACVR6=35168, REG_TRCACVR14=35169, REG_TRCACATR6=35170, REG_TRCACATR14=35171, REG_TRCDVCVR3=35172, REG_TRCDVCVR7=35173, REG_TRCDVCMR3=35174, REG_TRCDVCMR7=35175, REG_TRCACVR7=35184, REG_TRCACVR15=35185, REG_TRCACATR7=35186, REG_TRCACATR15=35187, REG_TRCCIDCVR0=35200, REG_TRCVMIDCVR0=35201, REG_TRCCIDCCTLR0=35202, REG_TRCCIDCCTLR1=35210, REG_TRCCIDCVR1=35216, REG_TRCVMIDCVR1=35217, REG_TRCVMIDCCTLR0=35218, REG_TRCVMIDCCTLR1=35226, REG_TRCCIDCVR2=35232, REG_TRCVMIDCVR2=35233, REG_TRCCIDCVR3=35248, REG_TRCVMIDCVR3=35249, REG_TRCCIDCVR4=35264, REG_TRCVMIDCVR4=35265, REG_TRCCIDCVR5=35280, REG_TRCVMIDCVR5=35281, REG_TRCCIDCVR6=35296, REG_TRCVMIDCVR6=35297, REG_TRCCIDCVR7=35312, REG_TRCVMIDCVR7=35313, REG_TRCITCTRL=35716, REG_TRCCLAIMSET=35782, REG_TRCCLAIMCLR=35790, REG_TRCLAR=35814, REG_TEECR32_EL1=36864, REG_TEEHBR32_EL1=36992, REG_DBGDTR_EL0=38944, REG_DBGDTRTX_EL0=38952, REG_DBGVCR32_EL2=41016, REG_SCTLR_EL1=49280, REG_ACTLR_EL1=49281, REG_CPACR_EL1=49282, REG_RGSR_EL1=49285, REG_GCR_EL1=49286, REG_TRFCR_EL1=49297, REG_TTBR0_EL1=49408, REG_TTBR1_EL1=49409, REG_TCR_EL1=49410, REG_APIAKEYLO_EL1=49416, REG_APIAKEYHI_EL1=49417, REG_APIBKEYLO_EL1=49418, REG_APIBKEYHI_EL1=49419, REG_APDAKEYLO_EL1=49424, REG_APDAKEYHI_EL1=49425, REG_APDBKEYLO_EL1=49426, REG_APDBKEYHI_EL1=49427, REG_APGAKEYLO_EL1=49432, REG_APGAKEYHI_EL1=49433, REG_SPSR_EL1=49664, REG_ELR_EL1=49665, REG_SP_EL0=49672, REG_SPSEL=49680, REG_CURRENTEL=49682, REG_PAN=49683, REG_UAO=49684, REG_ICC_PMR_EL1=49712, REG_AFSR0_EL1=49800, REG_AFSR1_EL1=49801, REG_ESR_EL1=49808, REG_ERRSELR_EL1=49817, REG_ERXCTLR_EL1=49825, REG_ERXSTATUS_EL1=49826, REG_ERXADDR_EL1=49827, REG_ERXPFGCTL_EL1=49829, REG_ERXPFGCDN_EL1=49830, REG_ERXMISC0_EL1=49832, REG_ERXMISC1_EL1=49833, REG_ERXMISC2_EL1=49834, REG_ERXMISC3_EL1=49835, REG_ERXTS_EL1=49839, REG_TFSR_EL1=49840, REG_TFSRE0_EL1=49841, REG_FAR_EL1=49920, REG_PAR_EL1=50080, REG_PMSCR_EL1=50376, REG_PMSICR_EL1=50378, REG_PMSIRR_EL1=50379, REG_PMSFCR_EL1=50380, REG_PMSEVFR_EL1=50381, REG_PMSLATFR_EL1=50382, REG_PMSIDR_EL1=50383, REG_PMBLIMITR_EL1=50384, REG_PMBPTR_EL1=50385, REG_PMBSR_EL1=50387, REG_PMBIDR_EL1=50391, REG_TRBLIMITR_EL1=50392, REG_TRBPTR_EL1=50393, REG_TRBBASER_EL1=50394, REG_TRBSR_EL1=50395, REG_TRBMAR_EL1=50396, REG_TRBTRG_EL1=50398, REG_PMINTENSET_EL1=50417, REG_PMINTENCLR_EL1=50418, REG_PMMIR_EL1=50422, REG_MAIR_EL1=50448, REG_AMAIR_EL1=50456, REG_LORSA_EL1=50464, REG_LOREA_EL1=50465, REG_LORN_EL1=50466, REG_LORC_EL1=50467, REG_MPAM1_EL1=50472, REG_MPAM0_EL1=50473, REG_VBAR_EL1=50688, REG_RMR_EL1=50690, REG_DISR_EL1=50697, REG_ICC_EOIR0_EL1=50753, REG_ICC_BPR0_EL1=50755, REG_ICC_AP0R0_EL1=50756, REG_ICC_AP0R1_EL1=50757, REG_ICC_AP0R2_EL1=50758, REG_ICC_AP0R3_EL1=50759, REG_ICC_AP1R0_EL1=50760, REG_ICC_AP1R1_EL1=50761, REG_ICC_AP1R2_EL1=50762, REG_ICC_AP1R3_EL1=50763, REG_ICC_DIR_EL1=50777, REG_ICC_SGI1R_EL1=50781, REG_ICC_ASGI1R_EL1=50782, REG_ICC_SGI0R_EL1=50783, REG_ICC_EOIR1_EL1=50785, REG_ICC_BPR1_EL1=50787, REG_ICC_CTLR_EL1=50788, REG_ICC_SRE_EL1=50789, REG_ICC_IGRPEN0_EL1=50790, REG_ICC_IGRPEN1_EL1=50791, REG_ICC_SEIEN_EL1=50792, REG_CONTEXTIDR_EL1=50817, REG_TPIDR_EL1=50820, REG_SCXTNUM_EL1=50823, REG_CNTKCTL_EL1=50952, REG_CSSELR_EL1=53248, REG_NZCV=55824, REG_DAIFSET=55825, REG_DIT=55829, REG_SSBS=55830, REG_TCO=55831, REG_FPCR=55840, REG_FPSR=55841, REG_DSPSR_EL0=55848, REG_DLR_EL0=55849, REG_PMCR_EL0=56544, REG_PMCNTENSET_EL0=56545, REG_PMCNTENCLR_EL0=56546, REG_PMOVSCLR_EL0=56547, REG_PMSWINC_EL0=56548, REG_PMSELR_EL0=56549, REG_PMCCNTR_EL0=56552, REG_PMXEVTYPER_EL0=56553, REG_PMXEVCNTR_EL0=56554, REG_DAIFCLR=56557, REG_PMUSERENR_EL0=56560, REG_PMOVSSET_EL0=56563, REG_TPIDR_EL0=56962, REG_TPIDRRO_EL0=56963, REG_SCXTNUM_EL0=56967, REG_AMCR_EL0=56976, REG_AMUSERENR_EL0=56979, REG_AMCNTENCLR0_EL0=56980, REG_AMCNTENSET0_EL0=56981, REG_AMCNTENCLR1_EL0=56984, REG_AMCNTENSET1_EL0=56985, REG_AMEVCNTR00_EL0=56992, REG_AMEVCNTR01_EL0=56993, REG_AMEVCNTR02_EL0=56994, REG_AMEVCNTR03_EL0=56995, REG_AMEVCNTR10_EL0=57056, REG_AMEVCNTR11_EL0=57057, REG_AMEVCNTR12_EL0=57058, REG_AMEVCNTR13_EL0=57059, REG_AMEVCNTR14_EL0=57060, REG_AMEVCNTR15_EL0=57061, REG_AMEVCNTR16_EL0=57062, REG_AMEVCNTR17_EL0=57063, REG_AMEVCNTR18_EL0=57064, REG_AMEVCNTR19_EL0=57065, REG_AMEVCNTR110_EL0=57066, REG_AMEVCNTR111_EL0=57067, REG_AMEVCNTR112_EL0=57068, REG_AMEVCNTR113_EL0=57069, REG_AMEVCNTR114_EL0=57070, REG_AMEVCNTR115_EL0=57071, REG_AMEVTYPER10_EL0=57072, REG_AMEVTYPER11_EL0=57073, REG_AMEVTYPER12_EL0=57074, REG_AMEVTYPER13_EL0=57075, REG_AMEVTYPER14_EL0=57076, REG_AMEVTYPER15_EL0=57077, REG_AMEVTYPER16_EL0=57078, REG_AMEVTYPER17_EL0=57079, REG_AMEVTYPER18_EL0=57080, REG_AMEVTYPER19_EL0=57081, REG_AMEVTYPER110_EL0=57082, REG_AMEVTYPER111_EL0=57083, REG_AMEVTYPER112_EL0=57084, REG_AMEVTYPER113_EL0=57085, REG_AMEVTYPER114_EL0=57086, REG_AMEVTYPER115_EL0=57087, REG_CNTFRQ_EL0=57088, REG_CNTP_TVAL_EL0=57104, REG_CNTP_CTL_EL0=57105, REG_CNTP_CVAL_EL0=57106, REG_CNTV_TVAL_EL0=57112, REG_CNTV_CTL_EL0=57113, REG_CNTV_CVAL_EL0=57114, REG_PMEVCNTR0_EL0=57152, REG_PMEVCNTR1_EL0=57153, REG_PMEVCNTR2_EL0=57154, REG_PMEVCNTR3_EL0=57155, REG_PMEVCNTR4_EL0=57156, REG_PMEVCNTR5_EL0=57157, REG_PMEVCNTR6_EL0=57158, REG_PMEVCNTR7_EL0=57159, REG_PMEVCNTR8_EL0=57160, REG_PMEVCNTR9_EL0=57161, REG_PMEVCNTR10_EL0=57162, REG_PMEVCNTR11_EL0=57163, REG_PMEVCNTR12_EL0=57164, REG_PMEVCNTR13_EL0=57165, REG_PMEVCNTR14_EL0=57166, REG_PMEVCNTR15_EL0=57167, REG_PMEVCNTR16_EL0=57168, REG_PMEVCNTR17_EL0=57169, REG_PMEVCNTR18_EL0=57170, REG_PMEVCNTR19_EL0=57171, REG_PMEVCNTR20_EL0=57172, REG_PMEVCNTR21_EL0=57173, REG_PMEVCNTR22_EL0=57174, REG_PMEVCNTR23_EL0=57175, REG_PMEVCNTR24_EL0=57176, REG_PMEVCNTR25_EL0=57177, REG_PMEVCNTR26_EL0=57178, REG_PMEVCNTR27_EL0=57179, REG_PMEVCNTR28_EL0=57180, REG_PMEVCNTR29_EL0=57181, REG_PMEVCNTR30_EL0=57182, REG_PMEVTYPER0_EL0=57184, REG_PMEVTYPER1_EL0=57185, REG_PMEVTYPER2_EL0=57186, REG_PMEVTYPER3_EL0=57187, REG_PMEVTYPER4_EL0=57188, REG_PMEVTYPER5_EL0=57189, REG_PMEVTYPER6_EL0=57190, REG_PMEVTYPER7_EL0=57191, REG_PMEVTYPER8_EL0=57192, REG_PMEVTYPER9_EL0=57193, REG_PMEVTYPER10_EL0=57194, REG_PMEVTYPER11_EL0=57195, REG_PMEVTYPER12_EL0=57196, REG_PMEVTYPER13_EL0=57197, REG_PMEVTYPER14_EL0=57198, REG_PMEVTYPER15_EL0=57199, REG_PMEVTYPER16_EL0=57200, REG_PMEVTYPER17_EL0=57201, REG_PMEVTYPER18_EL0=57202, REG_PMEVTYPER19_EL0=57203, REG_PMEVTYPER20_EL0=57204, REG_PMEVTYPER21_EL0=57205, REG_PMEVTYPER22_EL0=57206, REG_PMEVTYPER23_EL0=57207, REG_PMEVTYPER24_EL0=57208, REG_PMEVTYPER25_EL0=57209, REG_PMEVTYPER26_EL0=57210, REG_PMEVTYPER27_EL0=57211, REG_PMEVTYPER28_EL0=57212, REG_PMEVTYPER29_EL0=57213, REG_PMEVTYPER30_EL0=57214, REG_PMCCFILTR_EL0=57215, REG_VPIDR_EL2=57344, REG_VMPIDR_EL2=57349, REG_SCTLR_EL2=57472, REG_ACTLR_EL2=57473, REG_HCR_EL2=57480, REG_MDCR_EL2=57481, REG_CPTR_EL2=57482, REG_HSTR_EL2=57483, REG_HACR_EL2=57487, REG_TRFCR_EL2=57489, REG_SDER32_EL2=57497, REG_TTBR0_EL2=57600, REG_TTBR1_EL2=57601, REG_TCR_EL2=57602, REG_VTTBR_EL2=57608, REG_VTCR_EL2=57610, REG_VNCR_EL2=57616, REG_VSTTBR_EL2=57648, REG_VSTCR_EL2=57650, REG_DACR32_EL2=57728, REG_SPSR_EL2=57856, REG_ELR_EL2=57857, REG_SP_EL1=57864, REG_SPSR_IRQ=57880, REG_SPSR_ABT=57881, REG_SPSR_UND=57882, REG_SPSR_FIQ=57883, REG_IFSR32_EL2=57985, REG_AFSR0_EL2=57992, REG_AFSR1_EL2=57993, REG_ESR_EL2=58000, REG_VSESR_EL2=58003, REG_FPEXC32_EL2=58008, REG_TFSR_EL2=58032, REG_FAR_EL2=58112, REG_HPFAR_EL2=58116, REG_PMSCR_EL2=58568, REG_MAIR_EL2=58640, REG_AMAIR_EL2=58648, REG_MPAMHCR_EL2=58656, REG_MPAMVPMV_EL2=58657, REG_MPAM2_EL2=58664, REG_MPAMVPM0_EL2=58672, REG_MPAMVPM1_EL2=58673, REG_MPAMVPM2_EL2=58674, REG_MPAMVPM3_EL2=58675, REG_MPAMVPM4_EL2=58676, REG_MPAMVPM5_EL2=58677, REG_MPAMVPM6_EL2=58678, REG_MPAMVPM7_EL2=58679, REG_VBAR_EL2=58880, REG_RMR_EL2=58882, REG_VDISR_EL2=58889, REG_ICH_AP0R0_EL2=58944, REG_ICH_AP0R1_EL2=58945, REG_ICH_AP0R2_EL2=58946, REG_ICH_AP0R3_EL2=58947, REG_ICH_AP1R0_EL2=58952, REG_ICH_AP1R1_EL2=58953, REG_ICH_AP1R2_EL2=58954, REG_ICH_AP1R3_EL2=58955, REG_ICH_VSEIR_EL2=58956, REG_ICC_SRE_EL2=58957, REG_ICH_HCR_EL2=58968, REG_ICH_MISR_EL2=58970, REG_ICH_VMCR_EL2=58975, REG_ICH_LR0_EL2=58976, REG_ICH_LR1_EL2=58977, REG_ICH_LR2_EL2=58978, REG_ICH_LR3_EL2=58979, REG_ICH_LR4_EL2=58980, REG_ICH_LR5_EL2=58981, REG_ICH_LR6_EL2=58982, REG_ICH_LR7_EL2=58983, REG_ICH_LR8_EL2=58984, REG_ICH_LR9_EL2=58985, REG_ICH_LR10_EL2=58986, REG_ICH_LR11_EL2=58987, REG_ICH_LR12_EL2=58988, REG_ICH_LR13_EL2=58989, REG_ICH_LR14_EL2=58990, REG_ICH_LR15_EL2=58991, REG_CONTEXTIDR_EL2=59009, REG_TPIDR_EL2=59010, REG_SCXTNUM_EL2=59015, REG_CNTVOFF_EL2=59139, REG_CNTHCTL_EL2=59144, REG_CNTHP_TVAL_EL2=59152, REG_CNTHP_CTL_EL2=59153, REG_CNTHP_CVAL_EL2=59154, REG_CNTHV_TVAL_EL2=59160, REG_CNTHV_CTL_EL2=59161, REG_CNTHV_CVAL_EL2=59162, REG_CNTHVS_TVAL_EL2=59168, REG_CNTHVS_CTL_EL2=59169, REG_CNTHVS_CVAL_EL2=59170, REG_CNTHPS_TVAL_EL2=59176, REG_CNTHPS_CTL_EL2=59177, REG_CNTHPS_CVAL_EL2=59178, REG_SCTLR_EL12=59520, REG_CPACR_EL12=59522, REG_TRFCR_EL12=59537, REG_TTBR0_EL12=59648, REG_TTBR1_EL12=59649, REG_TCR_EL12=59650, REG_SPSR_EL12=59904, REG_ELR_EL12=59905, REG_AFSR0_EL12=60040, REG_AFSR1_EL12=60041, REG_ESR_EL12=60048, REG_TFSR_EL12=60080, REG_FAR_EL12=60160, REG_PMSCR_EL12=60616, REG_MAIR_EL12=60688, REG_AMAIR_EL12=60696, REG_MPAM1_EL12=60712, REG_VBAR_EL12=60928, REG_CONTEXTIDR_EL12=61057, REG_SCXTNUM_EL12=61063, REG_CNTKCTL_EL12=61192, REG_CNTP_TVAL_EL02=61200, REG_CNTP_CTL_EL02=61201, REG_CNTP_CVAL_EL02=61202, REG_CNTV_TVAL_EL02=61208, REG_CNTV_CTL_EL02=61209, REG_CNTV_CVAL_EL02=61210, REG_SCTLR_EL3=61568, REG_ACTLR_EL3=61569, REG_SCR_EL3=61576, REG_SDER32_EL3=61577, REG_CPTR_EL3=61578, REG_MDCR_EL3=61593, REG_TTBR0_EL3=61696, REG_TCR_EL3=61698, REG_SPSR_EL3=61952, REG_ELR_EL3=61953, REG_SP_EL2=61960, REG_AFSR0_EL3=62088, REG_AFSR1_EL3=62089, REG_ESR_EL3=62096, REG_TFSR_EL3=62128, REG_FAR_EL3=62208, REG_MAIR_EL3=62736, REG_AMAIR_EL3=62744, REG_MPAM3_EL3=62760, REG_VBAR_EL3=62976, REG_RMR_EL3=62978, REG_ICC_CTLR_EL3=63076, REG_ICC_SRE_EL3=63077, REG_ICC_IGRPEN1_EL3=63079, REG_TPIDR_EL3=63106, REG_SCXTNUM_EL3=63111, REG_CNTPS_TVAL_EL1=65296, REG_CNTPS_CTL_EL1=65297, REG_CNTPS_CVAL_EL1=65298, /* exceptional system registers */ REG_PSTATE_SPSEL=65299, // (op0,op1,crn,crm,op2)=(0,0,4,9,5) doesn't map to [SYSREG_NONE+1, SYSREG_END) SYSREG_END=65300, }; #ifdef __cplusplus extern "C" { #endif const char *get_system_register_name(enum SystemReg); const char *get_system_register_name_decomposed(int op0, int op1, int CRn, int CRm, int op2); #ifdef __cplusplus } #endif