summaryrefslogtreecommitdiff
path: root/arch/arm64
diff options
context:
space:
mode:
authorGalen Williamson <galen@vector35.com>2025-03-25 21:27:51 -0400
committerGalen Williamson <galen@vector35.com>2025-03-31 18:31:33 -0400
commitb095215397ca8fe7e9808f312403ec4494de76f6 (patch)
tree5eebe61a44d2f95aa5fadd78d9974234fca376be /arch/arm64
parent8093106217331012734564301118244748535715 (diff)
[aarch64] Updating Aarch64 system registers to 2024-12 spec, fix MSR/MRS lifting to use ReadMSR/WriteMSR intrinsics that take enums, removing the sysregs from the register list of the architecture
* sysregs are no longer registers, add enum for TLBI and AT operands * add erroneously missing cases for unsupported encodings, add enum for DC operands
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/CMakeLists.txt5
-rw-r--r--arch/arm64/arch_arm64.cpp262
-rw-r--r--arch/arm64/disassembler/decode.h266
-rw-r--r--arch/arm64/disassembler/decode2.c9
-rw-r--r--arch/arm64/disassembler/decode_fields32.c1
-rw-r--r--arch/arm64/disassembler/decode_scratchpad.c773
-rw-r--r--arch/arm64/disassembler/format.h2
-rw-r--r--arch/arm64/disassembler/pcode.c364
-rw-r--r--arch/arm64/disassembler/sysregs_fmt_gen.c1501
-rw-r--r--arch/arm64/disassembler/sysregs_fmt_gen.h12
-rw-r--r--arch/arm64/disassembler/sysregs_gen.c1497
-rw-r--r--arch/arm64/disassembler/sysregs_gen.h1560
-rw-r--r--arch/arm64/il.cpp335
-rw-r--r--arch/arm64/il.h6
-rw-r--r--arch/arm64/neon_intrinsics.cpp247
-rw-r--r--arch/arm64/neon_intrinsics.h3
-rw-r--r--arch/arm64/sysregs_enum.cpp3002
-rw-r--r--arch/arm64/sysregs_enum.h14
18 files changed, 9294 insertions, 565 deletions
diff --git a/arch/arm64/CMakeLists.txt b/arch/arm64/CMakeLists.txt
index a26fe3c1..f4b414bb 100644
--- a/arch/arm64/CMakeLists.txt
+++ b/arch/arm64/CMakeLists.txt
@@ -8,7 +8,8 @@ file(GLOB SOURCES
*.h
disassembler/decode.c
disassembler/format.c
- disassembler/sysregs.c
+ disassembler/sysregs_gen.c
+ disassembler/sysregs_fmt_gen.c
disassembler/regs.c
disassembler/encodings_dec.c
disassembler/encodings_fmt.c
@@ -21,6 +22,8 @@ file(GLOB SOURCES
disassembler/decode_scratchpad.c
disassembler/*.h)
+list(FILTER SOURCES EXCLUDE REGEX "sysregs\\.(h|cpp)$")
+
if(DEMO)
add_library(${PROJECT_NAME} STATIC ${SOURCES})
else()
diff --git a/arch/arm64/arch_arm64.cpp b/arch/arm64/arch_arm64.cpp
index 980febff..37641893 100644
--- a/arch/arm64/arch_arm64.cpp
+++ b/arch/arm64/arch_arm64.cpp
@@ -511,9 +511,17 @@ class Arm64Architecture : public Architecture
/* case: system registers */
if (operand->operandClass == SYS_REG)
{
- snprintf(buf, sizeof(buf), "%s", get_system_register_name((SystemReg)operand->sysreg));
- result.emplace_back(RegisterToken, buf);
- return DISASM_SUCCESS;
+ auto name = get_system_register_name((SystemReg)(operand->sysreg));
+ if (name && name[0])
+ {
+ snprintf(buf, sizeof(buf), "%s", get_system_register_name((SystemReg)(operand->sysreg)));
+ result.emplace_back(RegisterToken, buf);
+ return DISASM_SUCCESS;
+ }
+ else
+ {
+ return tokenize_implementation_specific(operand, result);
+ }
}
if (operand->operandClass != REG && operand->operandClass != MULTI_REG)
@@ -941,9 +949,9 @@ class Arm64Architecture : public Architecture
case ARM64_INTRIN_WFI:
return "__wfi";
case ARM64_INTRIN_MSR:
- return "_WriteStatusReg";
+ return "_WriteMSR";
case ARM64_INTRIN_MRS:
- return "_ReadStatusReg";
+ return "_ReadMSR";
case ARM64_INTRIN_HINT_DGH:
return "SystemHintOp_DGH";
case ARM64_INTRIN_ESB:
@@ -998,6 +1006,10 @@ class Arm64Architecture : public Architecture
return "__aesd";
case ARM64_INTRIN_AESE:
return "__aese";
+ case ARM64_INTRIN_AESIMC:
+ return "__aesimc";
+ case ARM64_INTRIN_AESMC:
+ return "__aesmc";
case ARM64_INTRIN_LDXR:
return "__ldxr";
case ARM64_INTRIN_LDXRB:
@@ -1022,6 +1034,11 @@ class Arm64Architecture : public Architecture
return "__stlxrb";
case ARM64_INTRIN_STLXRH:
return "__stlxrh";
+ case ARM64_INTRIN_TLBI:
+ case ARM64_INTRIN_TLBI_REG:
+ return "__tlbi";
+ case ARM64_INTRIN_AT:
+ return "__at";
default:
break;
}
@@ -1059,10 +1076,16 @@ class Arm64Architecture : public Architecture
{
switch (intrinsic)
{
- case ARM64_INTRIN_CLZ: // reads <Xn>
- case ARM64_INTRIN_DC: // reads <Xt>
- case ARM64_INTRIN_MSR:
case ARM64_INTRIN_MRS:
+ return {NameAndType("SystemReg", Confidence<Ref<Type>>(Type::EnumerationType(this, get_system_register_enum(), 4, false), BN_FULL_CONFIDENCE))};
+ break;
+ case ARM64_INTRIN_MSR:
+ return {
+ NameAndType("SystemReg", Confidence<Ref<Type>>(Type::EnumerationType(this, get_system_register_enum(), 4, false), BN_FULL_CONFIDENCE)),
+ NameAndType(Type::IntegerType(8, false))
+ };
+ break;
+ case ARM64_INTRIN_CLZ: // reads <Xn>
case ARM64_INTRIN_PRFM:
case ARM64_INTRIN_REV: // reads <Xn>
case ARM64_INTRIN_RBIT: // reads <Xn>
@@ -1077,6 +1100,25 @@ class Arm64Architecture : public Architecture
case ARM64_INTRIN_PACIA: // reads <Xd>, <Xn>
case ARM64_INTRIN_PACIB: // reads <Xd>, <Xn>
return {NameAndType(Type::IntegerType(8, false)), NameAndType(Type::IntegerType(8, false))};
+ case ARM64_INTRIN_TLBI: // reads <tlbi_op>, <Xn>
+ return {
+ NameAndType("tlbi_op", Confidence<Ref<Type>>(Type::EnumerationType(this, get_tlbi_op_enum(), 4, false), BN_FULL_CONFIDENCE))
+ };
+ case ARM64_INTRIN_TLBI_REG: // reads <tlbi_op>, <Xn>
+ return {
+ NameAndType("tlbi_op", Confidence<Ref<Type>>(Type::EnumerationType(this, get_tlbi_op_enum(), 4, false), BN_FULL_CONFIDENCE)),
+ NameAndType(Type::IntegerType(8, false))
+ };
+ case ARM64_INTRIN_AT: // reads <at_op>, <Xn>
+ return {
+ NameAndType("at_op", Confidence<Ref<Type>>(Type::EnumerationType(this, get_at_op_enum(), 4, false), BN_FULL_CONFIDENCE)),
+ NameAndType(Type::IntegerType(8, false))
+ };
+ case ARM64_INTRIN_DC: // reads <dc_op>, <Xn>
+ return {
+ NameAndType("dc_op", Confidence<Ref<Type>>(Type::EnumerationType(this, get_dc_op_enum(), 4, false), BN_FULL_CONFIDENCE)),
+ NameAndType(Type::IntegerType(8, false))
+ };
case ARM64_INTRIN_AESD:
case ARM64_INTRIN_AESE:
return {NameAndType(Type::IntegerType(16, false)), NameAndType(Type::IntegerType(16, false))};
@@ -1093,11 +1135,12 @@ class Arm64Architecture : public Architecture
switch (intrinsic)
{
case ARM64_INTRIN_MSR:
+ return {};
+ case ARM64_INTRIN_MRS:
case ARM64_INTRIN_AUTDA: // writes <Xd>
case ARM64_INTRIN_AUTDB: // writes <Xd>
case ARM64_INTRIN_AUTIA: // writes <Xd>
case ARM64_INTRIN_AUTIB: // writes <Xd>
- case ARM64_INTRIN_MRS:
case ARM64_INTRIN_PACDA: // writes <Xd>
case ARM64_INTRIN_PACDB: // writes <Xd>
case ARM64_INTRIN_PACIA: // writes <Xd>
@@ -1795,170 +1838,16 @@ class Arm64Architecture : public Architecture
REG_P8, REG_P9, REG_P10, REG_P11, REG_P12, REG_P13, REG_P14, REG_P15,
REG_P16, REG_P17, REG_P18, REG_P19, REG_P20, REG_P21, REG_P22, REG_P23,
REG_P24, REG_P25, REG_P26, REG_P27, REG_P28, REG_P29, REG_P30, REG_P31,
- /* system registers */
- REG_OSDTRRX_EL1, REG_DBGBVR0_EL1, REG_DBGBCR0_EL1, REG_DBGWVR0_EL1,
- REG_DBGWCR0_EL1, REG_DBGBVR1_EL1, REG_DBGBCR1_EL1, REG_DBGWVR1_EL1,
- REG_DBGWCR1_EL1, REG_MDCCINT_EL1, REG_MDSCR_EL1, REG_DBGBVR2_EL1,
- REG_DBGBCR2_EL1, REG_DBGWVR2_EL1, REG_DBGWCR2_EL1, REG_OSDTRTX_EL1,
- REG_DBGBVR3_EL1, REG_DBGBCR3_EL1, REG_DBGWVR3_EL1, REG_DBGWCR3_EL1,
- REG_DBGBVR4_EL1, REG_DBGBCR4_EL1, REG_DBGWVR4_EL1, REG_DBGWCR4_EL1,
- REG_DBGBVR5_EL1, REG_DBGBCR5_EL1, REG_DBGWVR5_EL1, REG_DBGWCR5_EL1,
- REG_OSECCR_EL1, REG_DBGBVR6_EL1, REG_DBGBCR6_EL1, REG_DBGWVR6_EL1,
- REG_DBGWCR6_EL1, REG_DBGBVR7_EL1, REG_DBGBCR7_EL1, REG_DBGWVR7_EL1,
- REG_DBGWCR7_EL1, REG_DBGBVR8_EL1, REG_DBGBCR8_EL1, REG_DBGWVR8_EL1,
- REG_DBGWCR8_EL1, REG_DBGBVR9_EL1, REG_DBGBCR9_EL1, REG_DBGWVR9_EL1,
- REG_DBGWCR9_EL1, REG_DBGBVR10_EL1, REG_DBGBCR10_EL1, REG_DBGWVR10_EL1,
- REG_DBGWCR10_EL1, REG_DBGBVR11_EL1, REG_DBGBCR11_EL1, REG_DBGWVR11_EL1,
- REG_DBGWCR11_EL1, REG_DBGBVR12_EL1, REG_DBGBCR12_EL1, REG_DBGWVR12_EL1,
- REG_DBGWCR12_EL1, REG_DBGBVR13_EL1, REG_DBGBCR13_EL1, REG_DBGWVR13_EL1,
- REG_DBGWCR13_EL1, REG_DBGBVR14_EL1, REG_DBGBCR14_EL1, REG_DBGWVR14_EL1,
- REG_DBGWCR14_EL1, REG_DBGBVR15_EL1, REG_DBGBCR15_EL1, REG_DBGWVR15_EL1,
- REG_DBGWCR15_EL1, REG_OSLAR_EL1, REG_OSDLR_EL1, REG_DBGPRCR_EL1,
- REG_DBGCLAIMSET_EL1, REG_DBGCLAIMCLR_EL1, REG_TRCTRACEIDR, REG_TRCVICTLR,
- REG_TRCSEQEVR0, REG_TRCCNTRLDVR0, REG_TRCIMSPEC0, REG_TRCPRGCTLR, REG_TRCQCTLR,
- REG_TRCVIIECTLR, REG_TRCSEQEVR1, REG_TRCCNTRLDVR1, REG_TRCIMSPEC1,
- REG_TRCPROCSELR, REG_TRCVISSCTLR, REG_TRCSEQEVR2, REG_TRCCNTRLDVR2,
- REG_TRCIMSPEC2, REG_TRCVIPCSSCTLR, REG_TRCCNTRLDVR3, REG_TRCIMSPEC3,
- REG_TRCCONFIGR, REG_TRCCNTCTLR0, REG_TRCIMSPEC4, REG_TRCCNTCTLR1,
- REG_TRCIMSPEC5, REG_TRCAUXCTLR, REG_TRCSEQRSTEVR, REG_TRCCNTCTLR2,
- REG_TRCIMSPEC6, REG_TRCSEQSTR, REG_TRCCNTCTLR3, REG_TRCIMSPEC7,
- REG_TRCEVENTCTL0R, REG_TRCVDCTLR, REG_TRCEXTINSELR, REG_TRCCNTVR0,
- REG_TRCEVENTCTL1R, REG_TRCVDSACCTLR, REG_TRCEXTINSELR1, REG_TRCCNTVR1,
- REG_TRCRSR, REG_TRCVDARCCTLR, REG_TRCEXTINSELR2, REG_TRCCNTVR2,
- REG_TRCSTALLCTLR, REG_TRCEXTINSELR3, REG_TRCCNTVR3, REG_TRCTSCTLR,
- REG_TRCSYNCPR, REG_TRCCCCTLR, REG_TRCBBCTLR, REG_TRCRSCTLR16, REG_TRCSSCCR0,
- REG_TRCSSPCICR0, REG_TRCOSLAR, REG_TRCRSCTLR17, REG_TRCSSCCR1, REG_TRCSSPCICR1,
- REG_TRCRSCTLR2, REG_TRCRSCTLR18, REG_TRCSSCCR2, REG_TRCSSPCICR2,
- REG_TRCRSCTLR3, REG_TRCRSCTLR19, REG_TRCSSCCR3, REG_TRCSSPCICR3,
- REG_TRCRSCTLR4, REG_TRCRSCTLR20, REG_TRCSSCCR4, REG_TRCSSPCICR4, REG_TRCPDCR,
- REG_TRCRSCTLR5, REG_TRCRSCTLR21, REG_TRCSSCCR5, REG_TRCSSPCICR5,
- REG_TRCRSCTLR6, REG_TRCRSCTLR22, REG_TRCSSCCR6, REG_TRCSSPCICR6,
- REG_TRCRSCTLR7, REG_TRCRSCTLR23, REG_TRCSSCCR7, REG_TRCSSPCICR7,
- REG_TRCRSCTLR8, REG_TRCRSCTLR24, REG_TRCSSCSR0, REG_TRCRSCTLR9,
- REG_TRCRSCTLR25, REG_TRCSSCSR1, REG_TRCRSCTLR10, REG_TRCRSCTLR26,
- REG_TRCSSCSR2, REG_TRCRSCTLR11, REG_TRCRSCTLR27, REG_TRCSSCSR3,
- REG_TRCRSCTLR12, REG_TRCRSCTLR28, REG_TRCSSCSR4, REG_TRCRSCTLR13,
- REG_TRCRSCTLR29, REG_TRCSSCSR5, REG_TRCRSCTLR14, REG_TRCRSCTLR30,
- REG_TRCSSCSR6, REG_TRCRSCTLR15, REG_TRCRSCTLR31, REG_TRCSSCSR7, REG_TRCACVR0,
- REG_TRCACVR8, REG_TRCACATR0, REG_TRCACATR8, REG_TRCDVCVR0, REG_TRCDVCVR4,
- REG_TRCDVCMR0, REG_TRCDVCMR4, REG_TRCACVR1, REG_TRCACVR9, REG_TRCACATR1,
- REG_TRCACATR9, REG_TRCACVR2, REG_TRCACVR10, REG_TRCACATR2, REG_TRCACATR10,
- REG_TRCDVCVR1, REG_TRCDVCVR5, REG_TRCDVCMR1, REG_TRCDVCMR5, REG_TRCACVR3,
- REG_TRCACVR11, REG_TRCACATR3, REG_TRCACATR11, REG_TRCACVR4, REG_TRCACVR12,
- REG_TRCACATR4, REG_TRCACATR12, REG_TRCDVCVR2, REG_TRCDVCVR6, REG_TRCDVCMR2,
- REG_TRCDVCMR6, REG_TRCACVR5, REG_TRCACVR13, REG_TRCACATR5, REG_TRCACATR13,
- REG_TRCACVR6, REG_TRCACVR14, REG_TRCACATR6, REG_TRCACATR14, REG_TRCDVCVR3,
- REG_TRCDVCVR7, REG_TRCDVCMR3, REG_TRCDVCMR7, REG_TRCACVR7, REG_TRCACVR15,
- REG_TRCACATR7, REG_TRCACATR15, REG_TRCCIDCVR0, REG_TRCVMIDCVR0,
- REG_TRCCIDCCTLR0, REG_TRCCIDCCTLR1, REG_TRCCIDCVR1, REG_TRCVMIDCVR1,
- REG_TRCVMIDCCTLR0, REG_TRCVMIDCCTLR1, REG_TRCCIDCVR2, REG_TRCVMIDCVR2,
- REG_TRCCIDCVR3, REG_TRCVMIDCVR3, REG_TRCCIDCVR4, REG_TRCVMIDCVR4,
- REG_TRCCIDCVR5, REG_TRCVMIDCVR5, REG_TRCCIDCVR6, REG_TRCVMIDCVR6,
- REG_TRCCIDCVR7, REG_TRCVMIDCVR7, REG_TRCITCTRL, REG_TRCCLAIMSET,
- REG_TRCCLAIMCLR, REG_TRCLAR, REG_TEECR32_EL1, REG_TEEHBR32_EL1, REG_DBGDTR_EL0,
- REG_DBGDTRTX_EL0, REG_DBGVCR32_EL2, REG_MPIDR_EL1, REG_SCTLR_EL1, REG_ACTLR_EL1,
- REG_CPACR_EL1, REG_RGSR_EL1, REG_GCR_EL1, REG_TRFCR_EL1, REG_TTBR0_EL1,
- REG_TTBR1_EL1, REG_TCR_EL1, REG_APIAKEYLO_EL1, REG_APIAKEYHI_EL1,
- REG_APIBKEYLO_EL1, REG_APIBKEYHI_EL1, REG_APDAKEYLO_EL1, REG_APDAKEYHI_EL1,
- REG_APDBKEYLO_EL1, REG_APDBKEYHI_EL1, REG_APGAKEYLO_EL1, REG_APGAKEYHI_EL1,
- REG_SPSR_EL1, REG_ELR_EL1, REG_SP_EL0, REG_SPSEL, REG_CURRENTEL, REG_PAN,
- REG_UAO, REG_ICC_PMR_EL1, REG_AFSR0_EL1, REG_AFSR1_EL1, REG_ESR_EL1,
- REG_ERRSELR_EL1, REG_ERXCTLR_EL1, REG_ERXSTATUS_EL1, REG_ERXADDR_EL1,
- REG_ERXPFGCTL_EL1, REG_ERXPFGCDN_EL1, REG_ERXMISC0_EL1, REG_ERXMISC1_EL1,
- REG_ERXMISC2_EL1, REG_ERXMISC3_EL1, REG_ERXTS_EL1, REG_TFSR_EL1,
- REG_TFSRE0_EL1, REG_FAR_EL1, REG_PAR_EL1, REG_PMSCR_EL1, REG_PMSICR_EL1,
- REG_PMSIRR_EL1, REG_PMSFCR_EL1, REG_PMSEVFR_EL1, REG_PMSLATFR_EL1,
- REG_PMSIDR_EL1, REG_PMBLIMITR_EL1, REG_PMBPTR_EL1, REG_PMBSR_EL1,
- REG_PMBIDR_EL1, REG_TRBLIMITR_EL1, REG_TRBPTR_EL1, REG_TRBBASER_EL1,
- REG_TRBSR_EL1, REG_TRBMAR_EL1, REG_TRBTRG_EL1, REG_PMINTENSET_EL1,
- REG_PMINTENCLR_EL1, REG_PMMIR_EL1, REG_MAIR_EL1, REG_AMAIR_EL1, REG_LORSA_EL1,
- REG_LOREA_EL1, REG_LORN_EL1, REG_LORC_EL1, REG_MPAM1_EL1, REG_MPAM0_EL1,
- REG_VBAR_EL1, REG_RMR_EL1, REG_DISR_EL1, REG_ICC_EOIR0_EL1, REG_ICC_BPR0_EL1,
- REG_ICC_AP0R0_EL1, REG_ICC_AP0R1_EL1, REG_ICC_AP0R2_EL1, REG_ICC_AP0R3_EL1,
- REG_ICC_AP1R0_EL1, REG_ICC_AP1R1_EL1, REG_ICC_AP1R2_EL1, REG_ICC_AP1R3_EL1,
- REG_ICC_DIR_EL1, REG_ICC_SGI1R_EL1, REG_ICC_ASGI1R_EL1, REG_ICC_SGI0R_EL1,
- REG_ICC_EOIR1_EL1, REG_ICC_BPR1_EL1, REG_ICC_CTLR_EL1, REG_ICC_SRE_EL1,
- REG_ICC_IGRPEN0_EL1, REG_ICC_IGRPEN1_EL1, REG_ICC_SEIEN_EL1,
- REG_CONTEXTIDR_EL1, REG_TPIDR_EL1, REG_SCXTNUM_EL1, REG_CNTKCTL_EL1,
- REG_CSSELR_EL1, REG_NZCV, REG_DAIFSET, REG_DIT, REG_SSBS, REG_TCO, REG_FPCR,
- REG_FPSR, REG_DSPSR_EL0, REG_DLR_EL0, REG_PMCR_EL0, REG_PMCNTENSET_EL0,
- REG_PMCNTENCLR_EL0, REG_PMOVSCLR_EL0, REG_PMSWINC_EL0, REG_PMSELR_EL0,
- REG_PMCCNTR_EL0, REG_PMXEVTYPER_EL0, REG_PMXEVCNTR_EL0, REG_DAIFCLR, REG_PMUSERENR_EL0,
- REG_PMOVSSET_EL0, REG_TPIDR_EL0, REG_TPIDRRO_EL0, REG_SCXTNUM_EL0,
- REG_AMCR_EL0, REG_AMUSERENR_EL0, REG_AMCNTENCLR0_EL0, REG_AMCNTENSET0_EL0,
- REG_AMCNTENCLR1_EL0, REG_AMCNTENSET1_EL0, REG_AMEVCNTR00_EL0,
- REG_AMEVCNTR01_EL0, REG_AMEVCNTR02_EL0, REG_AMEVCNTR03_EL0, REG_AMEVCNTR10_EL0,
- REG_AMEVCNTR11_EL0, REG_AMEVCNTR12_EL0, REG_AMEVCNTR13_EL0, REG_AMEVCNTR14_EL0,
- REG_AMEVCNTR15_EL0, REG_AMEVCNTR16_EL0, REG_AMEVCNTR17_EL0, REG_AMEVCNTR18_EL0,
- REG_AMEVCNTR19_EL0, REG_AMEVCNTR110_EL0, REG_AMEVCNTR111_EL0,
- REG_AMEVCNTR112_EL0, REG_AMEVCNTR113_EL0, REG_AMEVCNTR114_EL0,
- REG_AMEVCNTR115_EL0, REG_AMEVTYPER10_EL0, REG_AMEVTYPER11_EL0,
- REG_AMEVTYPER12_EL0, REG_AMEVTYPER13_EL0, REG_AMEVTYPER14_EL0,
- REG_AMEVTYPER15_EL0, REG_AMEVTYPER16_EL0, REG_AMEVTYPER17_EL0,
- REG_AMEVTYPER18_EL0, REG_AMEVTYPER19_EL0, REG_AMEVTYPER110_EL0,
- REG_AMEVTYPER111_EL0, REG_AMEVTYPER112_EL0, REG_AMEVTYPER113_EL0,
- REG_AMEVTYPER114_EL0, REG_AMEVTYPER115_EL0, REG_CNTFRQ_EL0, REG_CNTP_TVAL_EL0,
- REG_CNTP_CTL_EL0, REG_CNTP_CVAL_EL0, REG_CNTV_TVAL_EL0, REG_CNTV_CTL_EL0,
- REG_CNTV_CVAL_EL0, REG_PMEVCNTR0_EL0, REG_PMEVCNTR1_EL0, REG_PMEVCNTR2_EL0,
- REG_PMEVCNTR3_EL0, REG_PMEVCNTR4_EL0, REG_PMEVCNTR5_EL0, REG_PMEVCNTR6_EL0,
- REG_PMEVCNTR7_EL0, REG_PMEVCNTR8_EL0, REG_PMEVCNTR9_EL0, REG_PMEVCNTR10_EL0,
- REG_PMEVCNTR11_EL0, REG_PMEVCNTR12_EL0, REG_PMEVCNTR13_EL0, REG_PMEVCNTR14_EL0,
- REG_PMEVCNTR15_EL0, REG_PMEVCNTR16_EL0, REG_PMEVCNTR17_EL0, REG_PMEVCNTR18_EL0,
- REG_PMEVCNTR19_EL0, REG_PMEVCNTR20_EL0, REG_PMEVCNTR21_EL0, REG_PMEVCNTR22_EL0,
- REG_PMEVCNTR23_EL0, REG_PMEVCNTR24_EL0, REG_PMEVCNTR25_EL0, REG_PMEVCNTR26_EL0,
- REG_PMEVCNTR27_EL0, REG_PMEVCNTR28_EL0, REG_PMEVCNTR29_EL0, REG_PMEVCNTR30_EL0,
- REG_PMEVTYPER0_EL0, REG_PMEVTYPER1_EL0, REG_PMEVTYPER2_EL0, REG_PMEVTYPER3_EL0,
- REG_PMEVTYPER4_EL0, REG_PMEVTYPER5_EL0, REG_PMEVTYPER6_EL0, REG_PMEVTYPER7_EL0,
- REG_PMEVTYPER8_EL0, REG_PMEVTYPER9_EL0, REG_PMEVTYPER10_EL0,
- REG_PMEVTYPER11_EL0, REG_PMEVTYPER12_EL0, REG_PMEVTYPER13_EL0,
- REG_PMEVTYPER14_EL0, REG_PMEVTYPER15_EL0, REG_PMEVTYPER16_EL0,
- REG_PMEVTYPER17_EL0, REG_PMEVTYPER18_EL0, REG_PMEVTYPER19_EL0,
- REG_PMEVTYPER20_EL0, REG_PMEVTYPER21_EL0, REG_PMEVTYPER22_EL0,
- REG_PMEVTYPER23_EL0, REG_PMEVTYPER24_EL0, REG_PMEVTYPER25_EL0,
- REG_PMEVTYPER26_EL0, REG_PMEVTYPER27_EL0, REG_PMEVTYPER28_EL0,
- REG_PMEVTYPER29_EL0, REG_PMEVTYPER30_EL0, REG_PMCCFILTR_EL0, REG_VPIDR_EL2,
- REG_VMPIDR_EL2, REG_SCTLR_EL2, REG_ACTLR_EL2, REG_HCR_EL2, REG_MDCR_EL2,
- REG_CPTR_EL2, REG_HSTR_EL2, REG_HACR_EL2, REG_TRFCR_EL2, REG_SDER32_EL2,
- REG_TTBR0_EL2, REG_TTBR1_EL2, REG_TCR_EL2, REG_VTTBR_EL2, REG_VTCR_EL2,
- REG_VNCR_EL2, REG_VSTTBR_EL2, REG_VSTCR_EL2, REG_DACR32_EL2, REG_SPSR_EL2,
- REG_ELR_EL2, REG_SP_EL1, REG_SPSR_IRQ, REG_SPSR_ABT, REG_SPSR_UND,
- REG_SPSR_FIQ, REG_IFSR32_EL2, REG_AFSR0_EL2, REG_AFSR1_EL2, REG_ESR_EL2,
- REG_VSESR_EL2, REG_FPEXC32_EL2, REG_TFSR_EL2, REG_FAR_EL2, REG_HPFAR_EL2,
- REG_PMSCR_EL2, REG_MAIR_EL2, REG_AMAIR_EL2, REG_MPAMHCR_EL2, REG_MPAMVPMV_EL2,
- REG_MPAM2_EL2, REG_MPAMVPM0_EL2, REG_MPAMVPM1_EL2, REG_MPAMVPM2_EL2,
- REG_MPAMVPM3_EL2, REG_MPAMVPM4_EL2, REG_MPAMVPM5_EL2, REG_MPAMVPM6_EL2,
- REG_MPAMVPM7_EL2, REG_VBAR_EL2, REG_RMR_EL2, REG_VDISR_EL2, REG_ICH_AP0R0_EL2,
- REG_ICH_AP0R1_EL2, REG_ICH_AP0R2_EL2, REG_ICH_AP0R3_EL2, REG_ICH_AP1R0_EL2,
- REG_ICH_AP1R1_EL2, REG_ICH_AP1R2_EL2, REG_ICH_AP1R3_EL2, REG_ICH_VSEIR_EL2,
- REG_ICC_SRE_EL2, REG_ICH_HCR_EL2, REG_ICH_MISR_EL2, REG_ICH_VMCR_EL2,
- REG_ICH_LR0_EL2, REG_ICH_LR1_EL2, REG_ICH_LR2_EL2, REG_ICH_LR3_EL2,
- REG_ICH_LR4_EL2, REG_ICH_LR5_EL2, REG_ICH_LR6_EL2, REG_ICH_LR7_EL2,
- REG_ICH_LR8_EL2, REG_ICH_LR9_EL2, REG_ICH_LR10_EL2, REG_ICH_LR11_EL2,
- REG_ICH_LR12_EL2, REG_ICH_LR13_EL2, REG_ICH_LR14_EL2, REG_ICH_LR15_EL2,
- REG_CONTEXTIDR_EL2, REG_TPIDR_EL2, REG_SCXTNUM_EL2, REG_CNTVOFF_EL2,
- REG_CNTHCTL_EL2, REG_CNTHP_TVAL_EL2, REG_CNTHP_CTL_EL2, REG_CNTHP_CVAL_EL2,
- REG_CNTHV_TVAL_EL2, REG_CNTHV_CTL_EL2, REG_CNTHV_CVAL_EL2, REG_CNTHVS_TVAL_EL2,
- REG_CNTHVS_CTL_EL2, REG_CNTHVS_CVAL_EL2, REG_CNTHPS_TVAL_EL2,
- REG_CNTHPS_CTL_EL2, REG_CNTHPS_CVAL_EL2, REG_SCTLR_EL12, REG_CPACR_EL12,
- REG_TRFCR_EL12, REG_TTBR0_EL12, REG_TTBR1_EL12, REG_TCR_EL12, REG_SPSR_EL12,
- REG_ELR_EL12, REG_AFSR0_EL12, REG_AFSR1_EL12, REG_ESR_EL12, REG_TFSR_EL12,
- REG_FAR_EL12, REG_PMSCR_EL12, REG_MAIR_EL12, REG_AMAIR_EL12, REG_MPAM1_EL12,
- REG_VBAR_EL12, REG_CONTEXTIDR_EL12, REG_SCXTNUM_EL12, REG_CNTKCTL_EL12,
- REG_CNTP_TVAL_EL02, REG_CNTP_CTL_EL02, REG_CNTP_CVAL_EL02, REG_CNTV_TVAL_EL02,
- REG_CNTV_CTL_EL02, REG_CNTV_CVAL_EL02, REG_SCTLR_EL3, REG_ACTLR_EL3,
- REG_SCR_EL3, REG_SDER32_EL3, REG_CPTR_EL3, REG_MDCR_EL3, REG_TTBR0_EL3,
- REG_TCR_EL3, REG_SPSR_EL3, REG_ELR_EL3, REG_SP_EL2, REG_AFSR0_EL3,
- REG_AFSR1_EL3, REG_ESR_EL3, REG_TFSR_EL3, REG_FAR_EL3, REG_MAIR_EL3,
- REG_AMAIR_EL3, REG_MPAM3_EL3, REG_VBAR_EL3, REG_RMR_EL3, REG_ICC_CTLR_EL3,
- REG_ICC_SRE_EL3, REG_ICC_IGRPEN1_EL3, REG_TPIDR_EL3, REG_SCXTNUM_EL3,
- REG_CNTPS_TVAL_EL1, REG_CNTPS_CTL_EL1, REG_CNTPS_CVAL_EL1, REG_PSTATE_SPSEL,
+ /* system registers -- removed because they're not registers anymore */
+
/* fake registers */
FAKEREG_SYSREG_UNKNOWN, /* acts as an input/output to ARM64_INTRIN_MSR,
ARM64_INTRIN_MRS intrinsics when the sysreg
has no name (is implementation specific) */
FAKEREG_SYSCALL_INFO
};
-
+ // auto sysregs = get_system_registers();
+ // r.insert(r.end(), sysregs.begin(), sysregs.end());
return r;
}
@@ -2033,6 +1922,8 @@ class Arm64Architecture : public Architecture
case REG_X30:
case REG_SP:
return RegisterInfo(reg, 0, 8);
+ case REG_XZR:
+ return RegisterInfo(reg, 0, 0);
case REG_V0:
case REG_V1:
case REG_V2:
@@ -2331,32 +2222,51 @@ class Arm64Architecture : public Architecture
}
if (reg == FAKEREG_SYSREG_UNKNOWN)
+ {
+ // LogWarn("GetRegisterInfo called on FAKEREG_SYSREG_UNKNOWN %#x/%d", reg, reg);
return RegisterInfo(reg, 0, 8);
+ }
if (reg == FAKEREG_SYSCALL_INFO)
return RegisterInfo(reg, 0, 4);
if (reg > SYSREG_NONE && reg < SYSREG_END)
- return RegisterInfo(reg, 0, 8);
+ // constexpr auto sysregs = []() {
+ // auto sysregs = get_system_registers();
+ // auto sysreg_set = std::unordered_set<uint32_t>(sysregs.begin(), sysregs.end());
+ // return sysreg_set;
+ // };
+ // auto sysreg_set = sysregs();
+ // if (sysreg_set.find(reg) != sysreg_set.end())
+ // return RegisterInfo(reg, 0, 8);
+ LogWarn("GetRegisterInfo called on sysreg %#x/%d", reg, reg);
return RegisterInfo(0, 0, 0);
}
+ uint32_t GetRegisterStackForRegister(uint32_t reg)
+ {
+ return BN_INVALID_REGISTER;
+ }
+
virtual uint32_t GetStackPointerRegister() override { return REG_SP; }
virtual uint32_t GetLinkRegister() override { return REG_X30; }
virtual vector<uint32_t> GetSystemRegisters() override
{
- vector<uint32_t> system_regs = {};
-
- for (uint32_t ii = SYSREG_NONE + 1; ii < SYSREG_END; ++ii)
- {
- system_regs.push_back(ii);
- }
-
+ // vector<uint32_t> system_regs = {};
+ //
+ // for (uint32_t ii = SYSREG_NONE + 1; ii < SYSREG_END; ++ii)
+ // {
+ // system_regs.push_back(ii);
+ // }
+ //
+ // system_regs.push_back(FAKEREG_SYSREG_UNKNOWN);
+ //
+ // return system_regs;
+ vector<uint32_t> system_regs = get_system_registers();
system_regs.push_back(FAKEREG_SYSREG_UNKNOWN);
-
return system_regs;
}
};
diff --git a/arch/arm64/disassembler/decode.h b/arch/arm64/disassembler/decode.h
index a57d0247..4eb71bc8 100644
--- a/arch/arm64/disassembler/decode.h
+++ b/arch/arm64/disassembler/decode.h
@@ -10,7 +10,8 @@
#include "encodings_dec.h"
#include "regs.h"
-#include "sysregs.h"
+#include "sysregs_gen.h"
+#include "sysregs_fmt_gen.h"
#ifdef _MSC_VER
#undef REG_NONE // collides with winnt's define
@@ -113,6 +114,21 @@ enum SliceIndicator
#define FPCR_GET_IOE(X) SLICE(X, 8, 8)
//-----------------------------------------------------------------------------
+// <tlbi_op>: TLBI operands
+//-----------------------------------------------------------------------------
+#define TLBI_OP(op1, crn, crm, op2) (((op1 & 7) << 11) | ((crn & 0xF) << 7) | ((crm & 0xF) << 3) | ((op2) & 7))
+
+//-----------------------------------------------------------------------------
+// <at_op>: AT operands
+//-----------------------------------------------------------------------------
+#define AT_OP(op1, crm, op2) (TLBI_OP(op1, 7, crm, op2))
+
+//-----------------------------------------------------------------------------
+// <dc_op>: DC operands
+//-----------------------------------------------------------------------------
+#define DC_OP(op1, crm, op2) (TLBI_OP(op1, 7, crm, op2))
+
+//-----------------------------------------------------------------------------
// disassembly context (INPUT into disassembler)
//-----------------------------------------------------------------------------
@@ -497,6 +513,251 @@ enum FlagEffect
FLAGEFFECT_SETS_FLOAT=3 // sets flags after float comparison
};
+enum ImplSpec
+{
+ OP0 = 0,
+ OP1 = 1,
+ CRN = 2,
+ CRM = 3,
+ OP2 = 4
+};
+
+enum ATOp
+{
+ AT_OP_INVALID=-1,
+ AT_OP_S1E1R=AT_OP(0b000, 0b1000, 0b000),
+ AT_OP_S1E1W=AT_OP(0b000, 0b1000, 0b001),
+ AT_OP_S1E0R=AT_OP(0b000, 0b1000, 0b010),
+ AT_OP_S1E0W=AT_OP(0b000, 0b1000, 0b011),
+ AT_OP_S1E1RP=AT_OP(0b000, 0b1001, 0b000),
+ AT_OP_S1E1WP=AT_OP(0b000, 0b1001, 0b001),
+ AT_OP_S1E1A=AT_OP(0b000, 0b1001, 0b010),
+ AT_OP_S1E2R=AT_OP(0b100, 0b1000, 0b000),
+ AT_OP_S1E2W=AT_OP(0b100, 0b1000, 0b001),
+ AT_OP_S12E1R=AT_OP(0b100, 0b1000, 0b100),
+ AT_OP_S12E1W=AT_OP(0b100, 0b1000, 0b101),
+ AT_OP_S12E0R=AT_OP(0b100, 0b1000, 0b110),
+ AT_OP_S12E0W=AT_OP(0b100, 0b1000, 0b111),
+ AT_OP_S1E2A=AT_OP(0b100, 0b1001, 0b010),
+ AT_OP_S1E3R=AT_OP(0b110, 0b1000, 0b000),
+ AT_OP_S1E3W=AT_OP(0b110, 0b1000, 0b001),
+ AT_OP_S1E3A=AT_OP(0b110, 0b1001, 0b010),
+};
+
+enum TlbiOp
+{
+ TLBI_INVALID=-1,
+ TLBI_VMALLE1OS=TLBI_OP(0b000, 0b1000, 0b0001, 0b000),
+ TLBI_VAE1OS=TLBI_OP(0b000, 0b1000, 0b0001, 0b001),
+ TLBI_ASIDE1OS=TLBI_OP(0b000, 0b1000, 0b0001, 0b010),
+ TLBI_VAAE1OS=TLBI_OP(0b000, 0b1000, 0b0001, 0b011),
+ TLBI_VALE1OS=TLBI_OP(0b000, 0b1000, 0b0001, 0b101),
+ TLBI_VAALE1OS=TLBI_OP(0b000, 0b1000, 0b0001, 0b111),
+ TLBI_RVAE1IS=TLBI_OP(0b000, 0b1000, 0b0010, 0b001),
+ TLBI_RVAAE1IS=TLBI_OP(0b000, 0b1000, 0b0010, 0b011),
+ TLBI_RVALE1IS=TLBI_OP(0b000, 0b1000, 0b0010, 0b101),
+ TLBI_RVAALE1IS=TLBI_OP(0b000, 0b1000, 0b0010, 0b111),
+ TLBI_VMALLE1IS=TLBI_OP(0b000, 0b1000, 0b0011, 0b000),
+ TLBI_VAE1IS=TLBI_OP(0b000, 0b1000, 0b0011, 0b001),
+ TLBI_ASIDE1IS=TLBI_OP(0b000, 0b1000, 0b0011, 0b010),
+ TLBI_VAAE1IS=TLBI_OP(0b000, 0b1000, 0b0011, 0b011),
+ TLBI_VALE1IS=TLBI_OP(0b000, 0b1000, 0b0011, 0b101),
+ TLBI_VAALE1IS=TLBI_OP(0b000, 0b1000, 0b0011, 0b111),
+ TLBI_RVAE1OS=TLBI_OP(0b000, 0b1000, 0b0101, 0b001),
+ TLBI_RVAAE1OS=TLBI_OP(0b000, 0b1000, 0b0101, 0b011),
+ TLBI_RVALE1OS=TLBI_OP(0b000, 0b1000, 0b0101, 0b101),
+ TLBI_RVAALE1OS=TLBI_OP(0b000, 0b1000, 0b0101, 0b111),
+ TLBI_RVAE1=TLBI_OP(0b000, 0b1000, 0b0110, 0b001),
+ TLBI_RVAAE1=TLBI_OP(0b000, 0b1000, 0b0110, 0b011),
+ TLBI_RVALE1=TLBI_OP(0b000, 0b1000, 0b0110, 0b101),
+ TLBI_RVAALE1=TLBI_OP(0b000, 0b1000, 0b0110, 0b111),
+ TLBI_VMALLE1=TLBI_OP(0b000, 0b1000, 0b0111, 0b000),
+ TLBI_VAE1=TLBI_OP(0b000, 0b1000, 0b0111, 0b001),
+ TLBI_ASIDE1=TLBI_OP(0b000, 0b1000, 0b0111, 0b010),
+ TLBI_VAAE1=TLBI_OP(0b000, 0b1000, 0b0111, 0b011),
+ TLBI_VALE1=TLBI_OP(0b000, 0b1000, 0b0111, 0b101),
+ TLBI_VAALE1=TLBI_OP(0b000, 0b1000, 0b0111, 0b111),
+ TLBI_VMALLE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0001, 0b000),
+ TLBI_VAE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0001, 0b001),
+ TLBI_ASIDE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0001, 0b010),
+ TLBI_VAAE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0001, 0b011),
+ TLBI_VALE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0001, 0b101),
+ TLBI_VAALE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0001, 0b111),
+ TLBI_RVAE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0010, 0b001),
+ TLBI_RVAAE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0010, 0b011),
+ TLBI_RVALE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0010, 0b101),
+ TLBI_RVAALE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0010, 0b111),
+ TLBI_VMALLE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0011, 0b000),
+ TLBI_VAE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0011, 0b001),
+ TLBI_ASIDE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0011, 0b010),
+ TLBI_VAAE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0011, 0b011),
+ TLBI_VALE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0011, 0b101),
+ TLBI_VAALE1ISNXS=TLBI_OP(0b000, 0b1001, 0b0011, 0b111),
+ TLBI_RVAE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0101, 0b001),
+ TLBI_RVAAE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0101, 0b011),
+ TLBI_RVALE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0101, 0b101),
+ TLBI_RVAALE1OSNXS=TLBI_OP(0b000, 0b1001, 0b0101, 0b111),
+ TLBI_RVAE1NXS=TLBI_OP(0b000, 0b1001, 0b0110, 0b001),
+ TLBI_RVAAE1NXS=TLBI_OP(0b000, 0b1001, 0b0110, 0b011),
+ TLBI_RVALE1NXS=TLBI_OP(0b000, 0b1001, 0b0110, 0b101),
+ TLBI_RVAALE1NXS=TLBI_OP(0b000, 0b1001, 0b0110, 0b111),
+ TLBI_VMALLE1NXS=TLBI_OP(0b000, 0b1001, 0b0111, 0b000),
+ TLBI_VAE1NXS=TLBI_OP(0b000, 0b1001, 0b0111, 0b001),
+ TLBI_ASIDE1NXS=TLBI_OP(0b000, 0b1001, 0b0111, 0b010),
+ TLBI_VAAE1NXS=TLBI_OP(0b000, 0b1001, 0b0111, 0b011),
+ TLBI_VALE1NXS=TLBI_OP(0b000, 0b1001, 0b0111, 0b101),
+ TLBI_VAALE1NXS=TLBI_OP(0b000, 0b1001, 0b0111, 0b111),
+ TLBI_IPAS2E1IS=TLBI_OP(0b100, 0b1000, 0b0000, 0b001),
+ TLBI_RIPAS2E1IS=TLBI_OP(0b100, 0b1000, 0b0000, 0b010),
+ TLBI_IPAS2LE1IS=TLBI_OP(0b100, 0b1000, 0b0000, 0b101),
+ TLBI_RIPAS2LE1IS=TLBI_OP(0b100, 0b1000, 0b0000, 0b110),
+ TLBI_ALLE2OS=TLBI_OP(0b100, 0b1000, 0b0001, 0b000),
+ TLBI_VAE2OS=TLBI_OP(0b100, 0b1000, 0b0001, 0b001),
+ TLBI_ALLE1OS=TLBI_OP(0b100, 0b1000, 0b0001, 0b100),
+ TLBI_VALE2OS=TLBI_OP(0b100, 0b1000, 0b0001, 0b101),
+ TLBI_VMALLS12E1OS=TLBI_OP(0b100, 0b1000, 0b0001, 0b110),
+ TLBI_RVAE2IS=TLBI_OP(0b100, 0b1000, 0b0010, 0b001),
+ TLBI_VMALLWS2E1IS=TLBI_OP(0b100, 0b1000, 0b0010, 0b010),
+ TLBI_RVALE2IS=TLBI_OP(0b100, 0b1000, 0b0010, 0b101),
+ TLBI_ALLE2IS=TLBI_OP(0b100, 0b1000, 0b0011, 0b000),
+ TLBI_VAE2IS=TLBI_OP(0b100, 0b1000, 0b0011, 0b001),
+ TLBI_ALLE1IS=TLBI_OP(0b100, 0b1000, 0b0011, 0b100),
+ TLBI_VALE2IS=TLBI_OP(0b100, 0b1000, 0b0011, 0b101),
+ TLBI_VMALLS12E1IS=TLBI_OP(0b100, 0b1000, 0b0011, 0b110),
+ TLBI_IPAS2E1OS=TLBI_OP(0b100, 0b1000, 0b0100, 0b000),
+ TLBI_IPAS2E1=TLBI_OP(0b100, 0b1000, 0b0100, 0b001),
+ TLBI_RIPAS2E1=TLBI_OP(0b100, 0b1000, 0b0100, 0b010),
+ TLBI_RIPAS2E1OS=TLBI_OP(0b100, 0b1000, 0b0100, 0b011),
+ TLBI_IPAS2LE1OS=TLBI_OP(0b100, 0b1000, 0b0100, 0b100),
+ TLBI_IPAS2LE1=TLBI_OP(0b100, 0b1000, 0b0100, 0b101),
+ TLBI_RIPAS2LE1=TLBI_OP(0b100, 0b1000, 0b0100, 0b110),
+ TLBI_RIPAS2LE1OS=TLBI_OP(0b100, 0b1000, 0b0100, 0b111),
+ TLBI_RVAE2OS=TLBI_OP(0b100, 0b1000, 0b0101, 0b001),
+ TLBI_VMALLWS2E1OS=TLBI_OP(0b100, 0b1000, 0b0101, 0b010),
+ TLBI_RVALE2OS=TLBI_OP(0b100, 0b1000, 0b0101, 0b101),
+ TLBI_RVAE2=TLBI_OP(0b100, 0b1000, 0b0110, 0b001),
+ TLBI_VMALLWS2E1=TLBI_OP(0b100, 0b1000, 0b0110, 0b010),
+ TLBI_RVALE2=TLBI_OP(0b100, 0b1000, 0b0110, 0b101),
+ TLBI_ALLE2=TLBI_OP(0b100, 0b1000, 0b0111, 0b000),
+ TLBI_VAE2=TLBI_OP(0b100, 0b1000, 0b0111, 0b001),
+ TLBI_ALLE1=TLBI_OP(0b100, 0b1000, 0b0111, 0b100),
+ TLBI_VALE2=TLBI_OP(0b100, 0b1000, 0b0111, 0b101),
+ TLBI_VMALLS12E1=TLBI_OP(0b100, 0b1000, 0b0111, 0b110),
+ TLBI_IPAS2E1ISNXS=TLBI_OP(0b100, 0b1001, 0b0000, 0b001),
+ TLBI_RIPAS2E1ISNXS=TLBI_OP(0b100, 0b1001, 0b0000, 0b010),
+ TLBI_IPAS2LE1ISNXS=TLBI_OP(0b100, 0b1001, 0b0000, 0b101),
+ TLBI_RIPAS2LE1ISNXS=TLBI_OP(0b100, 0b1001, 0b0000, 0b110),
+ TLBI_ALLE2OSNXS=TLBI_OP(0b100, 0b1001, 0b0001, 0b000),
+ TLBI_VAE2OSNXS=TLBI_OP(0b100, 0b1001, 0b0001, 0b001),
+ TLBI_ALLE1OSNXS=TLBI_OP(0b100, 0b1001, 0b0001, 0b100),
+ TLBI_VALE2OSNXS=TLBI_OP(0b100, 0b1001, 0b0001, 0b101),
+ TLBI_VMALLS12E1OSNXS=TLBI_OP(0b100, 0b1001, 0b0001, 0b110),
+ TLBI_RVAE2ISNXS=TLBI_OP(0b100, 0b1001, 0b0010, 0b001),
+ TLBI_VMALLWS2E1ISNXS=TLBI_OP(0b100, 0b1001, 0b0010, 0b010),
+ TLBI_RVALE2ISNXS=TLBI_OP(0b100, 0b1001, 0b0010, 0b101),
+ TLBI_ALLE2ISNXS=TLBI_OP(0b100, 0b1001, 0b0011, 0b000),
+ TLBI_VAE2ISNXS=TLBI_OP(0b100, 0b1001, 0b0011, 0b001),
+ TLBI_ALLE1ISNXS=TLBI_OP(0b100, 0b1001, 0b0011, 0b100),
+ TLBI_VALE2ISNXS=TLBI_OP(0b100, 0b1001, 0b0011, 0b101),
+ TLBI_VMALLS12E1ISNXS=TLBI_OP(0b100, 0b1001, 0b0011, 0b110),
+ TLBI_IPAS2E1OSNXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b000),
+ TLBI_IPAS2E1NXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b001),
+ TLBI_RIPAS2E1NXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b010),
+ TLBI_RIPAS2E1OSNXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b011),
+ TLBI_IPAS2LE1OSNXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b100),
+ TLBI_IPAS2LE1NXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b101),
+ TLBI_RIPAS2LE1NXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b110),
+ TLBI_RIPAS2LE1OSNXS=TLBI_OP(0b100, 0b1001, 0b0100, 0b111),
+ TLBI_RVAE2OSNXS=TLBI_OP(0b100, 0b1001, 0b0101, 0b001),
+ TLBI_VMALLWS2E1OSNXS=TLBI_OP(0b100, 0b1001, 0b0101, 0b010),
+ TLBI_RVALE2OSNXS=TLBI_OP(0b100, 0b1001, 0b0101, 0b101),
+ TLBI_RVAE2NXS=TLBI_OP(0b100, 0b1001, 0b0110, 0b001),
+ TLBI_VMALLWS2E1NXS=TLBI_OP(0b100, 0b1001, 0b0110, 0b010),
+ TLBI_RVALE2NXS=TLBI_OP(0b100, 0b1001, 0b0110, 0b101),
+ TLBI_ALLE2NXS=TLBI_OP(0b100, 0b1001, 0b0111, 0b000),
+ TLBI_VAE2NXS=TLBI_OP(0b100, 0b1001, 0b0111, 0b001),
+ TLBI_ALLE1NXS=TLBI_OP(0b100, 0b1001, 0b0111, 0b100),
+ TLBI_VALE2NXS=TLBI_OP(0b100, 0b1001, 0b0111, 0b101),
+ TLBI_VMALLS12E1NXS=TLBI_OP(0b100, 0b1001, 0b0111, 0b110),
+ TLBI_ALLE3OS=TLBI_OP(0b110, 0b1000, 0b0001, 0b000),
+ TLBI_VAE3OS=TLBI_OP(0b110, 0b1000, 0b0001, 0b001),
+ TLBI_PAALLOS=TLBI_OP(0b110, 0b1000, 0b0001, 0b100),
+ TLBI_VALE3OS=TLBI_OP(0b110, 0b1000, 0b0001, 0b101),
+ TLBI_RVAE3IS=TLBI_OP(0b110, 0b1000, 0b0010, 0b001),
+ TLBI_RVALE3IS=TLBI_OP(0b110, 0b1000, 0b0010, 0b101),
+ TLBI_ALLE3IS=TLBI_OP(0b110, 0b1000, 0b0011, 0b000),
+ TLBI_VAE3IS=TLBI_OP(0b110, 0b1000, 0b0011, 0b001),
+ TLBI_VALE3IS=TLBI_OP(0b110, 0b1000, 0b0011, 0b101),
+ TLBI_RPAOS=TLBI_OP(0b110, 0b1000, 0b0100, 0b011),
+ TLBI_RPALOS=TLBI_OP(0b110, 0b1000, 0b0100, 0b111),
+ TLBI_RVAE3OS=TLBI_OP(0b110, 0b1000, 0b0101, 0b001),
+ TLBI_RVALE3OS=TLBI_OP(0b110, 0b1000, 0b0101, 0b101),
+ TLBI_RVAE3=TLBI_OP(0b110, 0b1000, 0b0110, 0b001),
+ TLBI_RVALE3=TLBI_OP(0b110, 0b1000, 0b0110, 0b101),
+ TLBI_ALLE3=TLBI_OP(0b110, 0b1000, 0b0111, 0b000),
+ TLBI_VAE3=TLBI_OP(0b110, 0b1000, 0b0111, 0b001),
+ TLBI_PAALL=TLBI_OP(0b110, 0b1000, 0b0111, 0b100),
+ TLBI_VALE3=TLBI_OP(0b110, 0b1000, 0b0111, 0b101),
+ TLBI_ALLE3OSNXS=TLBI_OP(0b110, 0b1001, 0b0001, 0b000),
+ TLBI_VAE3OSNXS=TLBI_OP(0b110, 0b1001, 0b0001, 0b001),
+ TLBI_VALE3OSNXS=TLBI_OP(0b110, 0b1001, 0b0001, 0b101),
+ TLBI_RVAE3ISNXS=TLBI_OP(0b110, 0b1001, 0b0010, 0b001),
+ TLBI_RVALE3ISNXS=TLBI_OP(0b110, 0b1001, 0b0010, 0b101),
+ TLBI_ALLE3ISNXS=TLBI_OP(0b110, 0b1001, 0b0011, 0b000),
+ TLBI_VAE3ISNXS=TLBI_OP(0b110, 0b1001, 0b0011, 0b001),
+ TLBI_VALE3ISNXS=TLBI_OP(0b110, 0b1001, 0b0011, 0b101),
+ TLBI_RVAE3OSNXS=TLBI_OP(0b110, 0b1001, 0b0101, 0b001),
+ TLBI_RVALE3OSNXS=TLBI_OP(0b110, 0b1001, 0b0101, 0b101),
+ TLBI_RVAE3NXS=TLBI_OP(0b110, 0b1001, 0b0110, 0b001),
+ TLBI_RVALE3NXS=TLBI_OP(0b110, 0b1001, 0b0110, 0b101),
+ TLBI_ALLE3NXS=TLBI_OP(0b110, 0b1001, 0b0111, 0b000),
+ TLBI_VAE3NXS=TLBI_OP(0b110, 0b1001, 0b0111, 0b001),
+ TLBI_VALE3NXS=TLBI_OP(0b110, 0b1001, 0b0111, 0b101),
+};
+
+enum DCOp
+{
+ DC_OP_INVALID=-1,
+ DC_OP_IVAC=DC_OP(0b000, 0b0110, 0b001),
+ DC_OP_ISW=DC_OP(0b000, 0b0110, 0b010),
+ DC_OP_IGVAC=DC_OP(0b000, 0b0110, 0b011),
+ DC_OP_IGSW=DC_OP(0b000, 0b0110, 0b100),
+ DC_OP_IGDVAC=DC_OP(0b000, 0b0110, 0b101),
+ DC_OP_IGDSW=DC_OP(0b000, 0b0110, 0b110),
+ DC_OP_CSW=DC_OP(0b000, 0b1010, 0b010),
+ DC_OP_CGSW=DC_OP(0b000, 0b1010, 0b100),
+ DC_OP_CGDSW=DC_OP(0b000, 0b1010, 0b110),
+ DC_OP_CISW=DC_OP(0b000, 0b1110, 0b010),
+ DC_OP_CIGSW=DC_OP(0b000, 0b1110, 0b100),
+ DC_OP_CIGDSW=DC_OP(0b000, 0b1110, 0b110),
+ DC_OP_CIVAPS=DC_OP(0b000, 0b1111, 0b001),
+ DC_OP_CIGDVAPS=DC_OP(0b000, 0b1111, 0b101),
+ DC_OP_ZVA=DC_OP(0b011, 0b0100, 0b001),
+ DC_OP_GVA=DC_OP(0b011, 0b0100, 0b011),
+ DC_OP_GZVA=DC_OP(0b011, 0b0100, 0b100),
+ DC_OP_CVAC=DC_OP(0b011, 0b1010, 0b001),
+ DC_OP_CGVAC=DC_OP(0b011, 0b1010, 0b011),
+ DC_OP_CGDVAC=DC_OP(0b011, 0b1010, 0b101),
+ DC_OP_CVAOC=DC_OP(0b011, 0b1011, 0b000),
+ DC_OP_CVAU=DC_OP(0b011, 0b1011, 0b001),
+ DC_OP_CGDVAOC=DC_OP(0b011, 0b1011, 0b111),
+ DC_OP_CVAP=DC_OP(0b011, 0b1100, 0b001),
+ DC_OP_CGVAP=DC_OP(0b011, 0b1100, 0b011),
+ DC_OP_CGDVAP=DC_OP(0b011, 0b1100, 0b101),
+ DC_OP_CVADP=DC_OP(0b011, 0b1101, 0b001),
+ DC_OP_CGVADP=DC_OP(0b011, 0b1101, 0b011),
+ DC_OP_CGDVADP=DC_OP(0b011, 0b1101, 0b101),
+ DC_OP_CIVAC=DC_OP(0b011, 0b1110, 0b001),
+ DC_OP_CIGVAC=DC_OP(0b011, 0b1110, 0b011),
+ DC_OP_CIGDVAC=DC_OP(0b011, 0b1110, 0b101),
+ DC_OP_CIVAOC=DC_OP(0b011, 0b1111, 0b000),
+ DC_OP_CIGDVAOC=DC_OP(0b011, 0b1111, 0b111),
+ DC_OP_CIPAE=DC_OP(0b100, 0b1110, 0b000),
+ DC_OP_CIGDPAE=DC_OP(0b100, 0b1110, 0b111),
+ DC_OP_CIPAPA=DC_OP(0b110, 0b1110, 0b001),
+ DC_OP_CIGDPAPA=DC_OP(0b110, 0b1110, 0b101),
+};
+
#ifndef __cplusplus
typedef enum SystemReg SystemReg;
typedef enum OperandClass OperandClass;
@@ -507,6 +768,8 @@ typedef enum Operation Operation;
typedef enum Group Group;
typedef enum ArrangementSpec ArrangementSpec;
typedef enum SliceIndicator SliceIndicator;
+typedef enum ImplSpec ImplSpec;
+typedef enum TlbiOp TlbiOp;
#endif
#define MAX_REGISTERS 5
@@ -574,6 +837,7 @@ extern "C"
int aarch64_decompose(uint32_t instructionValue, Instruction* instr, uint64_t address);
size_t get_register_size(enum Register);
+ // const char* tlbi_op(int32_t op);
#ifdef __cplusplus
}
diff --git a/arch/arm64/disassembler/decode2.c b/arch/arm64/disassembler/decode2.c
index 0d0d7c14..7dbe3699 100644
--- a/arch/arm64/disassembler/decode2.c
+++ b/arch/arm64/disassembler/decode2.c
@@ -27518,7 +27518,8 @@ int SYS(context *ctx, Instruction *instr)
if(ctx->CRn==7 && SysOp(ctx->op1,7,ctx->CRm,ctx->op2)==Sys_DC) return DC_SYS(ctx, instr);
if(ctx->op1==3 && ctx->CRn==7 && ctx->CRm==3 && ctx->op2==5) return DVP_SYS(ctx, instr);
if(ctx->CRn==7 && SysOp(ctx->op1,7,ctx->CRm,ctx->op2)==Sys_IC) return IC_SYS(ctx, instr);
- if(ctx->CRn==8 && SysOp(ctx->op1,8,ctx->CRm,ctx->op2)==Sys_TLBI) return TLBI_SYS(ctx, instr);
+ // if(ctx->CRn==8 && SysOp(ctx->op1,8,ctx->CRm,ctx->op2)==Sys_TLBI) return TLBI_SYS(ctx, instr);
+ if(((ctx->CRn&14)==8) && SysOp(ctx->op1,ctx->CRn,ctx->CRm,ctx->op2)==Sys_TLBI) return TLBI_SYS(ctx, instr);
OK(ENC_SYS_CR_SYSTEMINSTRS);
}
return rc;
@@ -27666,8 +27667,10 @@ int TLBI_SYS(context *ctx, Instruction *instr)
{
int rc = DECODE_STATUS_UNMATCHED;
/* class iclass_system */
- /* 1101010100|L=0|op0=01|op1=xxx|CRn=1000|CRm=xxxx|op2=xxx|Rt=xxxxx */
- if((INSWORD & 0xFFF8F000)==0xD5088000) {
+ // /* 1101010100|L=0|op0=01|op1=xxx|CRn=1000|CRm=xxxx|op2=xxx|Rt=xxxxx */
+ // if((INSWORD & 0xFFF8F000)==0xD5088000) {
+ /* 110|101|0100|L=0|01|op1=xxx|CRn=100x|CRm=xxxx|op2=xxx|Rt=xxxxx */
+ if((INSWORD & 0xFFF8E000)==0xD5088000) {
decode_fields32(ENC_TLBI_SYS_CR_SYSTEMINSTRS, ctx, instr);
OK(ENC_TLBI_SYS_CR_SYSTEMINSTRS);
}
diff --git a/arch/arm64/disassembler/decode_fields32.c b/arch/arm64/disassembler/decode_fields32.c
index 63e479cd..b5e26540 100644
--- a/arch/arm64/disassembler/decode_fields32.c
+++ b/arch/arm64/disassembler/decode_fields32.c
@@ -1626,6 +1626,7 @@ void decode_fields32(enum ENCODING enc, context *ctx, Instruction *instr)
case ENC_XAFLAG_M_PSTATE:
case ENC_XPACLRI_HI_HINTS:
case ENC_YIELD_HI_HINTS:
+ //['19:1101010100000:1101010100000', '16:op1:011', '12:0100:0100', '8:CRm:0111', '5:op2:110', '0:Rt:11111']
// xxxxxxxxxx|L=x|op0=xx|op1=xxx|CRn=xxxx|CRm=xxxx|op2=xxx|Rt=xxxxx
ctx->L = (insword>>21)&1;
ctx->op0 = (insword>>19)&3;
diff --git a/arch/arm64/disassembler/decode_scratchpad.c b/arch/arm64/disassembler/decode_scratchpad.c
index 0248b0ca..c1f63c10 100644
--- a/arch/arm64/disassembler/decode_scratchpad.c
+++ b/arch/arm64/disassembler/decode_scratchpad.c
@@ -1218,6 +1218,11 @@ const char* reg_lookup_c[16] = {"c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7",
#define ADD_OPERAND_SYSTEMREG(R) \
instr->operands[i].operandClass = SYS_REG; \
+ instr->operands[i].implspec[0] = ctx->sys_op0; \
+ instr->operands[i].implspec[1] = ctx->sys_op1; \
+ instr->operands[i].implspec[2] = ctx->sys_crn; \
+ instr->operands[i].implspec[3] = ctx->sys_crm; \
+ instr->operands[i].implspec[4] = ctx->sys_op2; \
instr->operands[i].sysreg = (R); \
i++;
@@ -7516,51 +7521,72 @@ int decode_scratchpad(context* ctx, Instruction* instr)
case ENC_AT_SYS_CR_SYSTEMINSTRS:
{
char* at_op = "";
- switch ((ctx->sys_op1 << 4) | ((ctx->sys_crm & 1) << 3) | (ctx->sys_op2 & 7))
+ switch (AT_OP(ctx->sys_op1, ctx->sys_crm, ctx->sys_op2))
{
- case 0b0000000:
- at_op = "S1E1R";
- break;
- case 0b0000001:
- at_op = "S1E1W";
- break;
- case 0b0000010:
- at_op = "S1E0R";
- break;
- case 0b0000011:
- at_op = "S1E0W";
- break;
- case 0b0001000:
- at_op = "S1E1RP";
- break;
- case 0b0001001:
- at_op = "S1E1WP";
- break;
- case 0b1000000:
- at_op = "S1E2R";
- break;
- case 0b1000001:
- at_op = "S1E2W";
- break;
- case 0b1000100:
- at_op = "S12E1R";
- break;
- case 0b1000101:
- at_op = "S12E1W";
- break;
- case 0b1000110:
- at_op = "S12E1R";
- break;
- case 0b1000111:
- at_op = "S12E0W";
- break;
- case 0b1100000:
- at_op = "S1E3R";
- break;
- case 0b1100001:
- at_op = "S1E3W";
- break;
+ case AT_OP(0b000, 0b1000, 0b000): at_op = "S1E1R"; break;
+ case AT_OP(0b000, 0b1000, 0b001): at_op = "S1E1W"; break;
+ case AT_OP(0b000, 0b1000, 0b010): at_op = "S1E0R"; break;
+ case AT_OP(0b000, 0b1000, 0b011): at_op = "S1E0W"; break;
+ case AT_OP(0b000, 0b1001, 0b000): at_op = "S1E1RP"; break;
+ case AT_OP(0b000, 0b1001, 0b001): at_op = "S1E1WP"; break;
+ case AT_OP(0b000, 0b1001, 0b010): at_op = "S1E1A"; break;
+ case AT_OP(0b100, 0b1000, 0b000): at_op = "S1E2R"; break;
+ case AT_OP(0b100, 0b1000, 0b001): at_op = "S1E2W"; break;
+ case AT_OP(0b100, 0b1000, 0b100): at_op = "S12E1R"; break;
+ case AT_OP(0b100, 0b1000, 0b101): at_op = "S12E1W"; break;
+ case AT_OP(0b100, 0b1000, 0b110): at_op = "S12E0R"; break;
+ case AT_OP(0b100, 0b1000, 0b111): at_op = "S12E0W"; break;
+ case AT_OP(0b100, 0b1001, 0b010): at_op = "S1E2A"; break;
+ case AT_OP(0b110, 0b1000, 0b000): at_op = "S1E3R"; break;
+ case AT_OP(0b110, 0b1000, 0b001): at_op = "S1E3W"; break;
+ case AT_OP(0b110, 0b1001, 0b010): at_op = "S1E3A"; break;
}
+ // switch ((ctx->sys_op1 << 4) | ((ctx->sys_crm & 1) << 3) | (ctx->sys_op2 & 7))
+ // {
+ // case 0b0000000:
+ // at_op = "S1E1R";
+ // break;
+ // case 0b0000001:
+ // at_op = "S1E1W";
+ // break;
+ // case 0b0000010:
+ // at_op = "S1E0R";
+ // break;
+ // case 0b0000011:
+ // at_op = "S1E0W";
+ // break;
+ // case 0b0001000:
+ // at_op = "S1E1RP";
+ // break;
+ // case 0b0001001:
+ // at_op = "S1E1WP";
+ // break;
+ // case 0b1000000:
+ // at_op = "S1E2R";
+ // break;
+ // case 0b1000001:
+ // at_op = "S1E2W";
+ // break;
+ // case 0b1000100:
+ // at_op = "S12E1R";
+ // break;
+ // case 0b1000101:
+ // at_op = "S12E1W";
+ // break;
+ // case 0b1000110:
+ // at_op = "S12E1R";
+ // break;
+ // case 0b1000111:
+ // at_op = "S12E0W";
+ // break;
+ // case 0b1100000:
+ // at_op = "S1E3R";
+ // break;
+ // case 0b1100001:
+ // at_op = "S1E3W";
+ // break;
+ // }
+ instr->operands[i].immediate = AT_OP(ctx->sys_op1, ctx->sys_crm, ctx->sys_op2);
// <at_op>
ADD_OPERAND_NAME(at_op)
// <Xt>
@@ -7582,69 +7608,122 @@ int decode_scratchpad(context* ctx, Instruction* instr)
}
case ENC_DC_SYS_CR_SYSTEMINSTRS:
{
+#define HavePoP() (1)
+#define HavePoPS() (1)
+#define HaveMT() (1)
+#define HaveMTE() (1)
+#define HaveDP() (1)
+#define HaveDPB() (1)
+#define HaveOCCM() (1)
+#define HaveOCCMO() (1)
+#define HaveRM() (1)
+#define HaveRME() (1)
+#define HaveME() (1)
+#define HaveMEC() (1)
const char* dc_op = "RESERVED";
uint64_t op1 = ctx->op1;
uint64_t op2 = ctx->op2;
uint64_t CRm = ctx->CRm;
- if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b001)
- dc_op = "ivac";
- else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b010)
- dc_op = "isw";
- else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b011 && HasMTE())
- dc_op = "igvac";
- else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b100 && HasMTE())
- dc_op = "igsw";
- else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b101 && HasMTE())
- dc_op = "igdvac";
- else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b110 && HasMTE())
- dc_op = "igdsw";
- else if (op1 == 0b000 && CRm == 0b1010 && op2 == 0b010)
- dc_op = "csw";
- else if (op1 == 0b000 && CRm == 0b1010 && op2 == 0b100 && HasMTE())
- dc_op = "cgsw";
- else if (op1 == 0b000 && CRm == 0b1010 && op2 == 0b010 && HasMTE())
- dc_op = "cgdsw";
- else if (op1 == 0b000 && CRm == 0b1110 && op2 == 0b010)
- dc_op = "cisw";
- else if (op1 == 0b000 && CRm == 0b1110 && op2 == 0b100 && HasMTE())
- dc_op = "cigsw";
- else if (op1 == 0b000 && CRm == 0b1110 && op2 == 0b110 && HasMTE())
- dc_op = "cigdsw";
- else if (op1 == 0b011 && CRm == 0b0100 && op2 == 0b001)
- dc_op = "zva";
- else if (op1 == 0b011 && CRm == 0b0100 && op2 == 0b011 && HasMTE())
- dc_op = "gva";
- else if (op1 == 0b011 && CRm == 0b0100 && op2 == 0b100 && HasMTE())
- dc_op = "gzva";
- else if (op1 == 0b011 && CRm == 0b1010 && op2 == 0b001)
- dc_op = "cvac";
- else if (op1 == 0b011 && CRm == 0b1010 && op2 == 0b011 && HasMTE())
- dc_op = "cgvac";
- else if (op1 == 0b011 && CRm == 0b1010 && op2 == 0b101 && HasMTE())
- dc_op = "cgdvac";
- else if (op1 == 0b011 && CRm == 0b1011 && op2 == 0b001)
- dc_op = "cvau";
- else if (op1 == 0b011 && CRm == 0b1100 && op2 == 0b001 && HaveDCPoP())
- dc_op = "cvap";
- else if (op1 == 0b011 && CRm == 0b1100 && op2 == 0b011 && HasMTE())
- dc_op = "cgvap";
- else if (op1 == 0b011 && CRm == 0b1100 && op2 == 0b101 && HasMTE())
- dc_op = "cgdvap";
- else if (op1 == 0b011 && CRm == 0b1101 && op2 == 0b001 && HaveDCCVADP())
- dc_op = "cvadp";
- else if (op1 == 0b011 && CRm == 0b1101 && op2 == 0b011 && HasMTE())
- dc_op = "cgvadp";
- else if (op1 == 0b011 && CRm == 0b1101 && op2 == 0b101 && HasMTE())
- dc_op = "cgdvadp";
- else if (op1 == 0b011 && CRm == 0b1110 && op2 == 0b001)
- dc_op = "civac";
- else if (op1 == 0b011 && CRm == 0b1110 && op2 == 0b011 && HasMTE())
- dc_op = "cigvac";
- else if (op1 == 0b011 && CRm == 0b1110 && op2 == 0b101 && HasMTE())
- dc_op = "cgdvac";
-
- // <dc_op>,<Xt>
+ switch (DC_OP(op1, CRm, op2)) {
+ case DC_OP(0b000, 0b0110, 0b001): dc_op = "IVAC"; break;
+ case DC_OP(0b000, 0b0110, 0b010): dc_op = "ISW"; break;
+ case DC_OP(0b000, 0b0110, 0b011): if (HaveMTE()) dc_op = "IGVAC"; break;
+ case DC_OP(0b000, 0b0110, 0b100): if (HaveMTE()) dc_op = "IGSW"; break;
+ case DC_OP(0b000, 0b0110, 0b101): if (HaveMTE()) dc_op = "IGDVAC"; break;
+ case DC_OP(0b000, 0b0110, 0b110): if (HaveMTE()) dc_op = "IGDSW"; break;
+ case DC_OP(0b000, 0b1010, 0b010): dc_op = "CSW"; break;
+ case DC_OP(0b000, 0b1010, 0b100): if (HaveMTE()) dc_op = "CGSW"; break;
+ case DC_OP(0b000, 0b1010, 0b110): if (HaveMTE()) dc_op = "CGDSW"; break;
+ case DC_OP(0b000, 0b1110, 0b010): dc_op = "CISW"; break;
+ case DC_OP(0b000, 0b1110, 0b100): if (HaveMTE()) dc_op = "CIGSW"; break;
+ case DC_OP(0b000, 0b1110, 0b110): if (HaveMTE()) dc_op = "CIGDSW"; break;
+ case DC_OP(0b000, 0b1111, 0b001): if (HavePoP()) dc_op = "CIVAPS"; break;
+ case DC_OP(0b000, 0b1111, 0b101): if (HavePoPS() && HaveMTE()) dc_op = "CIGDVAPS"; break;
+ case DC_OP(0b011, 0b0100, 0b001): dc_op = "ZVA"; break;
+ case DC_OP(0b011, 0b0100, 0b011): if (HaveMT()) dc_op = "GVA"; break;
+ case DC_OP(0b011, 0b0100, 0b100): if (HaveMT()) dc_op = "GZVA"; break;
+ case DC_OP(0b011, 0b1010, 0b001): dc_op = "CVAC"; break;
+ case DC_OP(0b011, 0b1010, 0b011): if (HaveMT()) dc_op = "CGVAC"; break;
+ case DC_OP(0b011, 0b1010, 0b101): if (HaveMT()) dc_op = "CGDVAC"; break;
+ case DC_OP(0b011, 0b1011, 0b000): if (HaveOCCM()) dc_op = "CVAOC"; break;
+ case DC_OP(0b011, 0b1011, 0b001): dc_op = "CVAU"; break;
+ case DC_OP(0b011, 0b1011, 0b111): if (HaveOCCMO() && HaveMT()) dc_op = "CGDVAOC"; break;
+ case DC_OP(0b011, 0b1100, 0b001): if (HaveDP()) dc_op = "CVAP"; break;
+ case DC_OP(0b011, 0b1100, 0b011): if (HaveMT()) dc_op = "CGVAP"; break;
+ case DC_OP(0b011, 0b1100, 0b101): if (HaveMT()) dc_op = "CGDVAP"; break;
+ case DC_OP(0b011, 0b1101, 0b001): if (HaveDPB()) dc_op = "CVADP"; break;
+ case DC_OP(0b011, 0b1101, 0b011): if (HaveMT()) dc_op = "CGVADP"; break;
+ case DC_OP(0b011, 0b1101, 0b101): if (HaveMT()) dc_op = "CGDVADP"; break;
+ case DC_OP(0b011, 0b1110, 0b001): dc_op = "CIVAC"; break;
+ case DC_OP(0b011, 0b1110, 0b011): if (HaveMT()) dc_op = "CIGVAC"; break;
+ case DC_OP(0b011, 0b1110, 0b101): if (HaveMT()) dc_op = "CIGDVAC"; break;
+ case DC_OP(0b011, 0b1111, 0b000): if (HaveOCCM()) dc_op = "CIVAOC"; break;
+ case DC_OP(0b011, 0b1111, 0b111): if (HaveOCCMO() && HaveMT()) dc_op = "CIGDVAOC"; break;
+ case DC_OP(0b100, 0b1110, 0b000): if (HaveME()) dc_op = "CIPAE"; break;
+ case DC_OP(0b100, 0b1110, 0b111): if (HaveMEC() && HaveMTE()) dc_op = "CIGDPAE"; break;
+ case DC_OP(0b110, 0b1110, 0b001): if (HaveRM()) dc_op = "CIPAPA"; break;
+ case DC_OP(0b110, 0b1110, 0b101): if (HaveRME() && HaveMTE()) dc_op = "CIGDPAPA"; break;
+ }
+// if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b001)
+// dc_op = "ivac";
+// else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b010)
+// dc_op = "isw";
+// else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b011 && HasMTE())
+// dc_op = "igvac";
+// else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b100 && HasMTE())
+// dc_op = "igsw";
+// else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b101 && HasMTE())
+// dc_op = "igdvac";
+// else if (op1 == 0b000 && CRm == 0b0110 && op2 == 0b110 && HasMTE())
+// dc_op = "igdsw";
+// else if (op1 == 0b000 && CRm == 0b1010 && op2 == 0b010)
+// dc_op = "csw";
+// else if (op1 == 0b000 && CRm == 0b1010 && op2 == 0b100 && HasMTE())
+// dc_op = "cgsw";
+// else if (op1 == 0b000 && CRm == 0b1010 && op2 == 0b010 && HasMTE())
+// dc_op = "cgdsw";
+// else if (op1 == 0b000 && CRm == 0b1110 && op2 == 0b010)
+// dc_op = "cisw";
+// else if (op1 == 0b000 && CRm == 0b1110 && op2 == 0b100 && HasMTE())
+// dc_op = "cigsw";
+// else if (op1 == 0b000 && CRm == 0b1110 && op2 == 0b110 && HasMTE())
+// dc_op = "cigdsw";
+// else if (op1 == 0b011 && CRm == 0b0100 && op2 == 0b001)
+// dc_op = "zva";
+// else if (op1 == 0b011 && CRm == 0b0100 && op2 == 0b011 && HasMTE())
+// dc_op = "gva";
+// else if (op1 == 0b011 && CRm == 0b0100 && op2 == 0b100 && HasMTE())
+// dc_op = "gzva";
+// else if (op1 == 0b011 && CRm == 0b1010 && op2 == 0b001)
+// dc_op = "cvac";
+// else if (op1 == 0b011 && CRm == 0b1010 && op2 == 0b011 && HasMTE())
+// dc_op = "cgvac";
+// else if (op1 == 0b011 && CRm == 0b1010 && op2 == 0b101 && HasMTE())
+// dc_op = "cgdvac";
+// else if (op1 == 0b011 && CRm == 0b1011 && op2 == 0b001)
+// dc_op = "cvau";
+// else if (op1 == 0b011 && CRm == 0b1100 && op2 == 0b001 && HaveDCPoP())
+// dc_op = "cvap";
+// else if (op1 == 0b011 && CRm == 0b1100 && op2 == 0b011 && HasMTE())
+// dc_op = "cgvap";
+// else if (op1 == 0b011 && CRm == 0b1100 && op2 == 0b101 && HasMTE())
+// dc_op = "cgdvap";
+// else if (op1 == 0b011 && CRm == 0b1101 && op2 == 0b001 && HaveDCCVADP())
+// dc_op = "cvadp";
+// else if (op1 == 0b011 && CRm == 0b1101 && op2 == 0b011 && HasMTE())
+// dc_op = "cgvadp";
+// else if (op1 == 0b011 && CRm == 0b1101 && op2 == 0b101 && HasMTE())
+// dc_op = "cgdvadp";
+// else if (op1 == 0b011 && CRm == 0b1110 && op2 == 0b001)
+// dc_op = "civac";
+// else if (op1 == 0b011 && CRm == 0b1110 && op2 == 0b011 && HasMTE())
+// dc_op = "cigvac";
+// else if (op1 == 0b011 && CRm == 0b1110 && op2 == 0b101 && HasMTE())
+// dc_op = "cgdvac";
+ instr->operands[i].immediate = DC_OP(op1, CRm, op2);
+ // <dc_op>
ADD_OPERAND_NAME(dc_op);
+ // <Xt>
ADD_OPERAND_XT;
break;
@@ -8074,164 +8153,344 @@ int decode_scratchpad(context* ctx, Instruction* instr)
{
uint64_t op1 = ctx->op1;
uint64_t op2 = ctx->op2;
+ uint64_t crn = ctx->CRn;
uint64_t crm = ctx->CRm;
const char* tlbi_op = "error";
- if (op1 == 0b000 && crm == 0b0001 && op2 == 0b000 && HaveTLBIOS())
- tlbi_op = "vmalle1os";
- else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b001 && HaveTLBIOS())
- tlbi_op = "vae1os";
- else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b010 && HaveTLBIOS())
- tlbi_op = "aside1os";
- else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b011 && HaveTLBIOS())
- tlbi_op = "vaae1os";
- else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b101 && HaveTLBIOS())
- tlbi_op = "vale1os";
- else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b111 && HaveTLBIOS())
- tlbi_op = "vaale1os";
- else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae1is";
- else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b011 && HaveTLBIRANGE())
- tlbi_op = "rvaae1is";
- else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale1is";
- else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b111 && HaveTLBIRANGE())
- tlbi_op = "rvaale1is";
- else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b000)
- tlbi_op = "vmalle1is";
- else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b001)
- tlbi_op = "vae1is";
- else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b010)
- tlbi_op = "aside1is";
- else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b011)
- tlbi_op = "vaae1is";
- else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b101)
- tlbi_op = "vale1is";
- else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b111)
- tlbi_op = "vaale1is";
- else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae1os";
- else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b011 && HaveTLBIRANGE())
- tlbi_op = "rvaae1os";
- else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale1os";
- else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b111 && HaveTLBIRANGE())
- tlbi_op = "rvaale1os";
- else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae1";
- else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b011 && HaveTLBIRANGE())
- tlbi_op = "rvaae1";
- else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale1";
- else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b111 && HaveTLBIRANGE())
- tlbi_op = "rvaale1";
- else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b000)
- tlbi_op = "vmalle1";
- else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b001)
- tlbi_op = "vae1";
- else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b010)
- tlbi_op = "aside1";
- else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b011)
- tlbi_op = "vaae1";
- else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b101)
- tlbi_op = "vale1";
- else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b111)
- tlbi_op = "vaale1";
- else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b001)
- tlbi_op = "ipas2e1is";
- else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b010 && HaveTLBIRANGE())
- tlbi_op = "ripas2e1is";
- else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b101)
- tlbi_op = "ipas2le1is";
- else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b110 && HaveTLBIRANGE())
- tlbi_op = "ripas2le1is";
- else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b000 && HaveTLBIOS())
- tlbi_op = "alle2os";
- else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b001 && HaveTLBIOS())
- tlbi_op = "vae2os";
- else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b100 && HaveTLBIOS())
- tlbi_op = "alle1os";
- else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b101 && HaveTLBIOS())
- tlbi_op = "vale2os";
- else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b110 && HaveTLBIOS())
- tlbi_op = "vmalls12e1os";
- else if (op1 == 0b100 && crm == 0b0010 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae2is";
- else if (op1 == 0b100 && crm == 0b0010 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale2is";
- else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b000)
- tlbi_op = "alle2is";
- else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b001)
- tlbi_op = "vae2is";
- else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b100)
- tlbi_op = "alle1is";
- else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b101)
- tlbi_op = "vale2is";
- else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b110)
- tlbi_op = "vmalls12e1is";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b000 && HaveTLBIOS())
- tlbi_op = "ipas2e1os";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b001)
- tlbi_op = "ipas2e1";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b010 && HaveTLBIRANGE())
- tlbi_op = "ripas2e1";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b011 && HaveTLBIRANGE())
- tlbi_op = "ripas2e1os";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b100 && HaveTLBIOS())
- tlbi_op = "ipas2le1os";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b101)
- tlbi_op = "ipas2le1";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b110 && HaveTLBIRANGE())
- tlbi_op = "ripas2le1";
- else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b111 && HaveTLBIRANGE())
- tlbi_op = "ripas2le1os";
- else if (op1 == 0b100 && crm == 0b0101 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae2os";
- else if (op1 == 0b100 && crm == 0b0101 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale2os";
- else if (op1 == 0b100 && crm == 0b0110 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae2";
- else if (op1 == 0b100 && crm == 0b0110 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale2";
- else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b000)
- tlbi_op = "alle2";
- else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b001)
- tlbi_op = "vae2";
- else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b100)
- tlbi_op = "alle1";
- else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b101)
- tlbi_op = "vale2";
- else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b110)
- tlbi_op = "vmalls12e1";
- else if (op1 == 0b110 && crm == 0b0001 && op2 == 0b000 && HaveTLBIOS())
- tlbi_op = "alle3os";
- else if (op1 == 0b110 && crm == 0b0001 && op2 == 0b001 && HaveTLBIOS())
- tlbi_op = "vae3os";
- else if (op1 == 0b110 && crm == 0b0001 && op2 == 0b101 && HaveTLBIOS())
- tlbi_op = "vale3os";
- else if (op1 == 0b110 && crm == 0b0010 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae3is";
- else if (op1 == 0b110 && crm == 0b0010 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale3is";
- else if (op1 == 0b110 && crm == 0b0011 && op2 == 0b000)
- tlbi_op = "alle3is";
- else if (op1 == 0b110 && crm == 0b0011 && op2 == 0b001)
- tlbi_op = "vae3is";
- else if (op1 == 0b110 && crm == 0b0011 && op2 == 0b101)
- tlbi_op = "vale3is";
- else if (op1 == 0b110 && crm == 0b0101 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae3os";
- else if (op1 == 0b110 && crm == 0b0101 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale3os";
- else if (op1 == 0b110 && crm == 0b0110 && op2 == 0b001 && HaveTLBIRANGE())
- tlbi_op = "rvae3";
- else if (op1 == 0b110 && crm == 0b0110 && op2 == 0b101 && HaveTLBIRANGE())
- tlbi_op = "rvale3";
- else if (op1 == 0b110 && crm == 0b0111 && op2 == 0b000)
- tlbi_op = "alle3";
- else if (op1 == 0b110 && crm == 0b0111 && op2 == 0b001)
- tlbi_op = "vae3";
- else if (op1 == 0b110 && crm == 0b0111 && op2 == 0b101)
- tlbi_op = "vale3";
+ instr->operands[i].immediate = -1;
+ switch (TLBI_OP(op1, crn, crm, op2))
+ {
+#define HaveXS() (1)
+#define HaveTLBIW() (1)
+#define HaveRME() (1)
+ case TLBI_OP(0b000, 0b1000, 0b0001, 0b000): if HaveTLBIOS() tlbi_op = "vmalle1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0001, 0b001): if HaveTLBIOS() tlbi_op = "vae1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0001, 0b010): if HaveTLBIOS() tlbi_op = "aside1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0001, 0b011): if HaveTLBIOS() tlbi_op = "vaae1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0001, 0b101): if HaveTLBIOS() tlbi_op = "vale1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0001, 0b111): if HaveTLBIOS() tlbi_op = "vaale1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0010, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0010, 0b011): if HaveTLBIRANGE() tlbi_op = "rvaae1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0010, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0010, 0b111): if HaveTLBIRANGE() tlbi_op = "rvaale1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0011, 0b000): tlbi_op = "vmalle1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0011, 0b001): tlbi_op = "vae1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0011, 0b010): tlbi_op = "aside1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0011, 0b011): tlbi_op = "vaae1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0011, 0b101): tlbi_op = "vale1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0011, 0b111): tlbi_op = "vaale1is"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0101, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0101, 0b011): if HaveTLBIRANGE() tlbi_op = "rvaae1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0101, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0101, 0b111): if HaveTLBIRANGE() tlbi_op = "rvaale1os"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0110, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0110, 0b011): if HaveTLBIRANGE() tlbi_op = "rvaae1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0110, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0110, 0b111): if HaveTLBIRANGE() tlbi_op = "rvaale1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0111, 0b000): tlbi_op = "vmalle1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0111, 0b001): tlbi_op = "vae1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0111, 0b010): tlbi_op = "aside1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0111, 0b011): tlbi_op = "vaae1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0111, 0b101): tlbi_op = "vale1"; break;
+ case TLBI_OP(0b000, 0b1000, 0b0111, 0b111): tlbi_op = "vaale1"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0001, 0b000): if HaveXS() tlbi_op = "vmalle1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0001, 0b001): if HaveXS() tlbi_op = "vae1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0001, 0b010): if HaveXS() tlbi_op = "aside1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0001, 0b011): if HaveXS() tlbi_op = "vaae1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0001, 0b101): if HaveXS() tlbi_op = "vale1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0001, 0b111): if HaveXS() tlbi_op = "vaale1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0010, 0b001): if HaveXS() tlbi_op = "rvae1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0010, 0b011): if HaveXS() tlbi_op = "rvaae1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0010, 0b101): if HaveXS() tlbi_op = "rvale1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0010, 0b111): if HaveXS() tlbi_op = "rvaale1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0011, 0b000): if HaveXS() tlbi_op = "vmalle1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0011, 0b001): if HaveXS() tlbi_op = "vae1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0011, 0b010): if HaveXS() tlbi_op = "aside1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0011, 0b011): if HaveXS() tlbi_op = "vaae1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0011, 0b101): if HaveXS() tlbi_op = "vale1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0011, 0b111): if HaveXS() tlbi_op = "vaale1isnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0101, 0b001): if HaveXS() tlbi_op = "rvae1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0101, 0b011): if HaveXS() tlbi_op = "rvaae1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0101, 0b101): if HaveXS() tlbi_op = "rvale1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0101, 0b111): if HaveXS() tlbi_op = "rvaale1osnxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0110, 0b001): if HaveXS() tlbi_op = "rvae1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0110, 0b011): if HaveXS() tlbi_op = "rvaae1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0110, 0b101): if HaveXS() tlbi_op = "rvale1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0110, 0b111): if HaveXS() tlbi_op = "rvaale1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0111, 0b000): if HaveXS() tlbi_op = "vmalle1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0111, 0b001): if HaveXS() tlbi_op = "vae1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0111, 0b010): if HaveXS() tlbi_op = "aside1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0111, 0b011): if HaveXS() tlbi_op = "vaae1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0111, 0b101): if HaveXS() tlbi_op = "vale1nxs"; break;
+ case TLBI_OP(0b000, 0b1001, 0b0111, 0b111): if HaveXS() tlbi_op = "vaale1nxs"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0000, 0b001): tlbi_op = "ipas2e1is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0000, 0b010): if HaveTLBIRANGE() tlbi_op = "ripas2e1is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0000, 0b101): tlbi_op = "ipas2le1is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0000, 0b110): if HaveTLBIRANGE() tlbi_op = "ripas2le1is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0001, 0b000): if HaveTLBIOS() tlbi_op = "alle2os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0001, 0b001): if HaveTLBIOS() tlbi_op = "vae2os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0001, 0b100): if HaveTLBIOS() tlbi_op = "alle1os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0001, 0b101): if HaveTLBIOS() tlbi_op = "vale2os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0001, 0b110): if HaveTLBIOS() tlbi_op = "vmalls12e1os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0010, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae2is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0010, 0b010): if HaveTLBIW() tlbi_op = "vmallws2e1is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0010, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale2is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0011, 0b000): tlbi_op = "alle2is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0011, 0b001): tlbi_op = "vae2is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0011, 0b100): tlbi_op = "alle1is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0011, 0b101): tlbi_op = "vale2is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0011, 0b110): tlbi_op = "vmalls12e1is"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b000): if HaveTLBIOS() tlbi_op = "ipas2e1os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b001): tlbi_op = "ipas2e1"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b010): if HaveTLBIRANGE() tlbi_op = "ripas2e1"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b011): if HaveTLBIRANGE() tlbi_op = "ripas2e1os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b100): if HaveTLBIOS() tlbi_op = "ipas2le1os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b101): tlbi_op = "ipas2le1"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b110): if HaveTLBIRANGE() tlbi_op = "ripas2le1"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0100, 0b111): if HaveTLBIRANGE() tlbi_op = "ripas2le1os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0101, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae2os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0101, 0b010): if HaveTLBIW() tlbi_op = "vmallws2e1os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0101, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale2os"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0110, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae2"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0110, 0b010): if HaveTLBIW() tlbi_op = "vmallws2e1"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0110, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale2"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0111, 0b000): tlbi_op = "alle2"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0111, 0b001): tlbi_op = "vae2"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0111, 0b100): tlbi_op = "alle1"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0111, 0b101): tlbi_op = "vale2"; break;
+ case TLBI_OP(0b100, 0b1000, 0b0111, 0b110): tlbi_op = "vmalls12e1"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0000, 0b001): if HaveXS() tlbi_op = "ipas2e1isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0000, 0b010): if HaveXS() tlbi_op = "ripas2e1isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0000, 0b101): if HaveXS() tlbi_op = "ipas2le1isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0000, 0b110): if HaveXS() tlbi_op = "ripas2le1isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0001, 0b000): if HaveXS() tlbi_op = "alle2osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0001, 0b001): if HaveXS() tlbi_op = "vae2osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0001, 0b100): if HaveXS() tlbi_op = "alle1osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0001, 0b101): if HaveXS() tlbi_op = "vale2osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0001, 0b110): if HaveXS() tlbi_op = "vmalls12e1osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0010, 0b001): if HaveXS() tlbi_op = "rvae2isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0010, 0b010): if HaveTLBIW() tlbi_op = "vmallws2e1isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0010, 0b101): if HaveXS() tlbi_op = "rvale2isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0011, 0b000): if HaveXS() tlbi_op = "alle2isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0011, 0b001): if HaveXS() tlbi_op = "vae2isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0011, 0b100): if HaveXS() tlbi_op = "alle1isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0011, 0b101): if HaveXS() tlbi_op = "vale2isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0011, 0b110): if HaveXS() tlbi_op = "vmalls12e1isnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b000): if HaveXS() tlbi_op = "ipas2e1osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b001): if HaveXS() tlbi_op = "ipas2e1nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b010): if HaveXS() tlbi_op = "ripas2e1nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b011): if HaveXS() tlbi_op = "ripas2e1osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b100): if HaveXS() tlbi_op = "ipas2le1osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b101): if HaveXS() tlbi_op = "ipas2le1nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b110): if HaveXS() tlbi_op = "ripas2le1nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0100, 0b111): if HaveXS() tlbi_op = "ripas2le1osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0101, 0b001): if HaveXS() tlbi_op = "rvae2osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0101, 0b010): if HaveTLBIW() tlbi_op = "vmallws2e1osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0101, 0b101): if HaveXS() tlbi_op = "rvale2osnxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0110, 0b001): if HaveXS() tlbi_op = "rvae2nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0110, 0b010): if HaveTLBIW() tlbi_op = "vmallws2e1nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0110, 0b101): if HaveXS() tlbi_op = "rvale2nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0111, 0b000): if HaveXS() tlbi_op = "alle2nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0111, 0b001): if HaveXS() tlbi_op = "vae2nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0111, 0b100): if HaveXS() tlbi_op = "alle1nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0111, 0b101): if HaveXS() tlbi_op = "vale2nxs"; break;
+ case TLBI_OP(0b100, 0b1001, 0b0111, 0b110): if HaveXS() tlbi_op = "vmalls12e1nxs"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0001, 0b000): if HaveTLBIOS() tlbi_op = "alle3os"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0001, 0b001): if HaveTLBIOS() tlbi_op = "vae3os"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0001, 0b100): if HaveRME() tlbi_op = "paallos"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0001, 0b101): if HaveTLBIOS() tlbi_op = "vale3os"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0010, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae3is"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0010, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale3is"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0011, 0b000): tlbi_op = "alle3is"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0011, 0b001): tlbi_op = "vae3is"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0011, 0b101): tlbi_op = "vale3is"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0100, 0b011): if HaveRME() tlbi_op = "rpaos"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0100, 0b111): if HaveRME() tlbi_op = "rpalos"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0101, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae3os"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0101, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale3os"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0110, 0b001): if HaveTLBIRANGE() tlbi_op = "rvae3"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0110, 0b101): if HaveTLBIRANGE() tlbi_op = "rvale3"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0111, 0b000): tlbi_op = "alle3"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0111, 0b001): tlbi_op = "vae3"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0111, 0b100): if HaveRME() tlbi_op = "paall"; break;
+ case TLBI_OP(0b110, 0b1000, 0b0111, 0b101): tlbi_op = "vale3"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0001, 0b000): if HaveXS() tlbi_op = "alle3osnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0001, 0b001): if HaveXS() tlbi_op = "vae3osnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0001, 0b101): if HaveXS() tlbi_op = "vale3osnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0010, 0b001): if HaveXS() tlbi_op = "rvae3isnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0010, 0b101): if HaveXS() tlbi_op = "rvale3isnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0011, 0b000): if HaveXS() tlbi_op = "alle3isnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0011, 0b001): if HaveXS() tlbi_op = "vae3isnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0011, 0b101): if HaveXS() tlbi_op = "vale3isnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0101, 0b001): if HaveXS() tlbi_op = "rvae3osnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0101, 0b101): if HaveXS() tlbi_op = "rvale3osnxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0110, 0b001): if HaveXS() tlbi_op = "rvae3nxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0110, 0b101): if HaveXS() tlbi_op = "rvale3nxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0111, 0b000): if HaveXS() tlbi_op = "alle3nxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0111, 0b001): if HaveXS() tlbi_op = "vae3nxs"; break;
+ case TLBI_OP(0b110, 0b1001, 0b0111, 0b101): if HaveXS() tlbi_op = "vale3nxs"; break;
+
+
+ }
+ // if (op1 == 0b000 && crm == 0b0001 && op2 == 0b000 && HaveTLBIOS())
+ // tlbi_op = "vmalle1os";
+ // else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b001 && HaveTLBIOS())
+ // tlbi_op = "vae1os";
+ // else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b010 && HaveTLBIOS())
+ // tlbi_op = "aside1os";
+ // else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b011 && HaveTLBIOS())
+ // tlbi_op = "vaae1os";
+ // else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b101 && HaveTLBIOS())
+ // tlbi_op = "vale1os";
+ // else if (op1 == 0b000 && crm == 0b0001 && op2 == 0b111 && HaveTLBIOS())
+ // tlbi_op = "vaale1os";
+ // else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae1is";
+ // else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b011 && HaveTLBIRANGE())
+ // tlbi_op = "rvaae1is";
+ // else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale1is";
+ // else if (op1 == 0b000 && crm == 0b0010 && op2 == 0b111 && HaveTLBIRANGE())
+ // tlbi_op = "rvaale1is";
+ // else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b000)
+ // tlbi_op = "vmalle1is";
+ // else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b001)
+ // tlbi_op = "vae1is";
+ // else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b010)
+ // tlbi_op = "aside1is";
+ // else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b011)
+ // tlbi_op = "vaae1is";
+ // else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b101)
+ // tlbi_op = "vale1is";
+ // else if (op1 == 0b000 && crm == 0b0011 && op2 == 0b111)
+ // tlbi_op = "vaale1is";
+ // else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae1os";
+ // else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b011 && HaveTLBIRANGE())
+ // tlbi_op = "rvaae1os";
+ // else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale1os";
+ // else if (op1 == 0b000 && crm == 0b0101 && op2 == 0b111 && HaveTLBIRANGE())
+ // tlbi_op = "rvaale1os";
+ // else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae1";
+ // else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b011 && HaveTLBIRANGE())
+ // tlbi_op = "rvaae1";
+ // else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale1";
+ // else if (op1 == 0b000 && crm == 0b0110 && op2 == 0b111 && HaveTLBIRANGE())
+ // tlbi_op = "rvaale1";
+ // else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b000)
+ // tlbi_op = "vmalle1";
+ // else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b001)
+ // tlbi_op = "vae1";
+ // else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b010)
+ // tlbi_op = "aside1";
+ // else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b011)
+ // tlbi_op = "vaae1";
+ // else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b101)
+ // tlbi_op = "vale1";
+ // else if (op1 == 0b000 && crm == 0b0111 && op2 == 0b111)
+ // tlbi_op = "vaale1";
+ // else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b001)
+ // tlbi_op = "ipas2e1is";
+ // else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b010 && HaveTLBIRANGE())
+ // tlbi_op = "ripas2e1is";
+ // else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b101)
+ // tlbi_op = "ipas2le1is";
+ // else if (op1 == 0b100 && crm == 0b0000 && op2 == 0b110 && HaveTLBIRANGE())
+ // tlbi_op = "ripas2le1is";
+ // else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b000 && HaveTLBIOS())
+ // tlbi_op = "alle2os";
+ // else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b001 && HaveTLBIOS())
+ // tlbi_op = "vae2os";
+ // else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b100 && HaveTLBIOS())
+ // tlbi_op = "alle1os";
+ // else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b101 && HaveTLBIOS())
+ // tlbi_op = "vale2os";
+ // else if (op1 == 0b100 && crm == 0b0001 && op2 == 0b110 && HaveTLBIOS())
+ // tlbi_op = "vmalls12e1os";
+ // else if (op1 == 0b100 && crm == 0b0010 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae2is";
+ // else if (op1 == 0b100 && crm == 0b0010 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale2is";
+ // else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b000)
+ // tlbi_op = "alle2is";
+ // else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b001)
+ // tlbi_op = "vae2is";
+ // else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b100)
+ // tlbi_op = "alle1is";
+ // else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b101)
+ // tlbi_op = "vale2is";
+ // else if (op1 == 0b100 && crm == 0b0011 && op2 == 0b110)
+ // tlbi_op = "vmalls12e1is";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b000 && HaveTLBIOS())
+ // tlbi_op = "ipas2e1os";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b001)
+ // tlbi_op = "ipas2e1";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b010 && HaveTLBIRANGE())
+ // tlbi_op = "ripas2e1";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b011 && HaveTLBIRANGE())
+ // tlbi_op = "ripas2e1os";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b100 && HaveTLBIOS())
+ // tlbi_op = "ipas2le1os";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b101)
+ // tlbi_op = "ipas2le1";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b110 && HaveTLBIRANGE())
+ // tlbi_op = "ripas2le1";
+ // else if (op1 == 0b100 && crm == 0b0100 && op2 == 0b111 && HaveTLBIRANGE())
+ // tlbi_op = "ripas2le1os";
+ // else if (op1 == 0b100 && crm == 0b0101 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae2os";
+ // else if (op1 == 0b100 && crm == 0b0101 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale2os";
+ // else if (op1 == 0b100 && crm == 0b0110 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae2";
+ // else if (op1 == 0b100 && crm == 0b0110 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale2";
+ // else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b000)
+ // tlbi_op = "alle2";
+ // else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b001)
+ // tlbi_op = "vae2";
+ // else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b100)
+ // tlbi_op = "alle1";
+ // else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b101)
+ // tlbi_op = "vale2";
+ // else if (op1 == 0b100 && crm == 0b0111 && op2 == 0b110)
+ // tlbi_op = "vmalls12e1";
+ // else if (op1 == 0b110 && crm == 0b0001 && op2 == 0b000 && HaveTLBIOS())
+ // tlbi_op = "alle3os";
+ // else if (op1 == 0b110 && crm == 0b0001 && op2 == 0b001 && HaveTLBIOS())
+ // tlbi_op = "vae3os";
+ // else if (op1 == 0b110 && crm == 0b0001 && op2 == 0b101 && HaveTLBIOS())
+ // tlbi_op = "vale3os";
+ // else if (op1 == 0b110 && crm == 0b0010 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae3is";
+ // else if (op1 == 0b110 && crm == 0b0010 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale3is";
+ // else if (op1 == 0b110 && crm == 0b0011 && op2 == 0b000)
+ // tlbi_op = "alle3is";
+ // else if (op1 == 0b110 && crm == 0b0011 && op2 == 0b001)
+ // tlbi_op = "vae3is";
+ // else if (op1 == 0b110 && crm == 0b0011 && op2 == 0b101)
+ // tlbi_op = "vale3is";
+ // else if (op1 == 0b110 && crm == 0b0101 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae3os";
+ // else if (op1 == 0b110 && crm == 0b0101 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale3os";
+ // else if (op1 == 0b110 && crm == 0b0110 && op2 == 0b001 && HaveTLBIRANGE())
+ // tlbi_op = "rvae3";
+ // else if (op1 == 0b110 && crm == 0b0110 && op2 == 0b101 && HaveTLBIRANGE())
+ // tlbi_op = "rvale3";
+ // else if (op1 == 0b110 && crm == 0b0111 && op2 == 0b000)
+ // tlbi_op = "alle3";
+ // else if (op1 == 0b110 && crm == 0b0111 && op2 == 0b001)
+ // tlbi_op = "vae3";
+ // else if (op1 == 0b110 && crm == 0b0111 && op2 == 0b101)
+ // tlbi_op = "vale3";
+ instr->operands[i].implspec[OP1] = op1;
+ instr->operands[i].implspec[CRM] = crm;
+ instr->operands[i].implspec[OP2] = op2;
+ instr->operands[i].immediate = TLBI_OP(op1, crn, crm, op2);
// NON-SYNTAX: <tlbi_op>{,<Xt>}
ADD_OPERAND_NAME(tlbi_op);
if (ctx->Rt != 31)
diff --git a/arch/arm64/disassembler/format.h b/arch/arm64/disassembler/format.h
index 6e743b46..6228cbf7 100644
--- a/arch/arm64/disassembler/format.h
+++ b/arch/arm64/disassembler/format.h
@@ -8,7 +8,7 @@
#include "encodings_fmt.h"
#include "operations.h"
#include "regs.h"
-#include "sysregs.h"
+#include "sysregs_fmt_gen.h"
//-----------------------------------------------------------------------------
// disassembly function prototypes, return values
diff --git a/arch/arm64/disassembler/pcode.c b/arch/arm64/disassembler/pcode.c
index 2daf070b..4623d368 100644
--- a/arch/arm64/disassembler/pcode.c
+++ b/arch/arm64/disassembler/pcode.c
@@ -196,36 +196,55 @@ enum ShiftType DecodeShift(uint8_t op)
enum SystemOp SysOp(uint32_t op1, uint32_t CRn, uint32_t CRm, uint32_t op2)
{
- uint32_t tmp = (op1 << 11) | (CRn << 7) | (CRm << 3) | op2;
+// uint32_t tmp = (op1 << 11) | (CRn << 7) | (CRm << 3) | op2;
+ uint32_t tmp = (((op1 & 7) << 11) | ((CRn & 0xF) << 7) | ((CRm & 0xF) << 3) | ((op2) & 7));
switch (tmp)
{
- case 0b00001111000000:
+ case AT_OP_S1E1R:
+ case AT_OP_S1E1W:
+ case AT_OP_S1E0R:
+ case AT_OP_S1E0W:
+ case AT_OP_S1E1RP:
+ case AT_OP_S1E1WP:
+ case AT_OP_S1E1A:
+ case AT_OP_S1E2R:
+ case AT_OP_S1E2W:
+ case AT_OP_S12E1R:
+ case AT_OP_S12E1W:
+ case AT_OP_S12E0R:
+ case AT_OP_S12E0W:
+ case AT_OP_S1E2A:
+ case AT_OP_S1E3R:
+ case AT_OP_S1E3W:
+ case AT_OP_S1E3A:
return Sys_AT; // S1E1R
- case 0b10001111000000:
- return Sys_AT; // S1E2R
- case 0b11001111000000:
- return Sys_AT; // S1E3R
- case 0b00001111000001:
- return Sys_AT; // S1E1W
- case 0b00001111001001:
- return Sys_AT; // S1E1WP
- case 0b10001111000001:
- return Sys_AT; // S1E2W
- case 0b11001111000001:
- return Sys_AT; // S1E3W
- case 0b00001111000010:
- return Sys_AT; // S1E0R
- case 0b00001111000011:
- return Sys_AT; // S1E0W
- case 0b10001111000100:
- return Sys_AT; // S12E1R
- case 0b10001111000101:
- return Sys_AT; // S12E1W
- case 0b10001111000110:
- return Sys_AT; // S12E0R
- case 0b10001111000111:
- return Sys_AT; // S12E0W
+// case 0b00001111000000:
+// return Sys_AT; // S1E1R
+// case 0b10001111000000:
+// return Sys_AT; // S1E2R
+// case 0b11001111000000:
+// return Sys_AT; // S1E3R
+// case 0b00001111000001:
+// return Sys_AT; // S1E1W
+// case 0b00001111001001:
+// return Sys_AT; // S1E1WP
+// case 0b10001111000001:
+// return Sys_AT; // S1E2W
+// case 0b11001111000001:
+// return Sys_AT; // S1E3W
+// case 0b00001111000010:
+// return Sys_AT; // S1E0R
+// case 0b00001111000011:
+// return Sys_AT; // S1E0W
+// case 0b10001111000100:
+// return Sys_AT; // S12E1R
+// case 0b10001111000101:
+// return Sys_AT; // S12E1W
+// case 0b10001111000110:
+// return Sys_AT; // S12E0R
+// case 0b10001111000111:
+// return Sys_AT; // S12E0W
case 0b01101110100001:
return Sys_DC; // ZVA
case 0b00001110110001:
@@ -250,70 +269,237 @@ enum SystemOp SysOp(uint32_t op1, uint32_t CRn, uint32_t CRm, uint32_t op2)
return Sys_IC; // IALLU
case 0b01101110101001:
return Sys_IC; // IVAU
- case 0b10010000000001:
+ case TLBI_VMALLE1OS:
+ case TLBI_VAE1OS:
+ case TLBI_ASIDE1OS:
+ case TLBI_VAAE1OS:
+ case TLBI_VALE1OS:
+ case TLBI_VAALE1OS:
+ case TLBI_RVAE1IS:
+ case TLBI_RVAAE1IS:
+ case TLBI_RVALE1IS:
+ case TLBI_RVAALE1IS:
+ case TLBI_VMALLE1IS:
+ case TLBI_VAE1IS:
+ case TLBI_ASIDE1IS:
+ case TLBI_VAAE1IS:
+ case TLBI_VALE1IS:
+ case TLBI_VAALE1IS:
+ case TLBI_RVAE1OS:
+ case TLBI_RVAAE1OS:
+ case TLBI_RVALE1OS:
+ case TLBI_RVAALE1OS:
+ case TLBI_RVAE1:
+ case TLBI_RVAAE1:
+ case TLBI_RVALE1:
+ case TLBI_RVAALE1:
+ case TLBI_VMALLE1:
+ case TLBI_VAE1:
+ case TLBI_ASIDE1:
+ case TLBI_VAAE1:
+ case TLBI_VALE1:
+ case TLBI_VAALE1:
+ case TLBI_VMALLE1OSNXS:
+ case TLBI_VAE1OSNXS:
+ case TLBI_ASIDE1OSNXS:
+ case TLBI_VAAE1OSNXS:
+ case TLBI_VALE1OSNXS:
+ case TLBI_VAALE1OSNXS:
+ case TLBI_RVAE1ISNXS:
+ case TLBI_RVAAE1ISNXS:
+ case TLBI_RVALE1ISNXS:
+ case TLBI_RVAALE1ISNXS:
+ case TLBI_VMALLE1ISNXS:
+ case TLBI_VAE1ISNXS:
+ case TLBI_ASIDE1ISNXS:
+ case TLBI_VAAE1ISNXS:
+ case TLBI_VALE1ISNXS:
+ case TLBI_VAALE1ISNXS:
+ case TLBI_RVAE1OSNXS:
+ case TLBI_RVAAE1OSNXS:
+ case TLBI_RVALE1OSNXS:
+ case TLBI_RVAALE1OSNXS:
+ case TLBI_RVAE1NXS:
+ case TLBI_RVAAE1NXS:
+ case TLBI_RVALE1NXS:
+ case TLBI_RVAALE1NXS:
+ case TLBI_VMALLE1NXS:
+ case TLBI_VAE1NXS:
+ case TLBI_ASIDE1NXS:
+ case TLBI_VAAE1NXS:
+ case TLBI_VALE1NXS:
+ case TLBI_VAALE1NXS:
+ case TLBI_IPAS2E1IS:
+ case TLBI_RIPAS2E1IS:
+ case TLBI_IPAS2LE1IS:
+ case TLBI_RIPAS2LE1IS:
+ case TLBI_ALLE2OS:
+ case TLBI_VAE2OS:
+ case TLBI_ALLE1OS:
+ case TLBI_VALE2OS:
+ case TLBI_VMALLS12E1OS:
+ case TLBI_RVAE2IS:
+ case TLBI_VMALLWS2E1IS:
+ case TLBI_RVALE2IS:
+ case TLBI_ALLE2IS:
+ case TLBI_VAE2IS:
+ case TLBI_ALLE1IS:
+ case TLBI_VALE2IS:
+ case TLBI_VMALLS12E1IS:
+ case TLBI_IPAS2E1OS:
+ case TLBI_IPAS2E1:
+ case TLBI_RIPAS2E1:
+ case TLBI_RIPAS2E1OS:
+ case TLBI_IPAS2LE1OS:
+ case TLBI_IPAS2LE1:
+ case TLBI_RIPAS2LE1:
+ case TLBI_RIPAS2LE1OS:
+ case TLBI_RVAE2OS:
+ case TLBI_VMALLWS2E1OS:
+ case TLBI_RVALE2OS:
+ case TLBI_RVAE2:
+ case TLBI_VMALLWS2E1:
+ case TLBI_RVALE2:
+ case TLBI_ALLE2:
+ case TLBI_VAE2:
+ case TLBI_ALLE1:
+ case TLBI_VALE2:
+ case TLBI_VMALLS12E1:
+ case TLBI_IPAS2E1ISNXS:
+ case TLBI_RIPAS2E1ISNXS:
+ case TLBI_IPAS2LE1ISNXS:
+ case TLBI_RIPAS2LE1ISNXS:
+ case TLBI_ALLE2OSNXS:
+ case TLBI_VAE2OSNXS:
+ case TLBI_ALLE1OSNXS:
+ case TLBI_VALE2OSNXS:
+ case TLBI_VMALLS12E1OSNXS:
+ case TLBI_RVAE2ISNXS:
+ case TLBI_VMALLWS2E1ISNXS:
+ case TLBI_RVALE2ISNXS:
+ case TLBI_ALLE2ISNXS:
+ case TLBI_VAE2ISNXS:
+ case TLBI_ALLE1ISNXS:
+ case TLBI_VALE2ISNXS:
+ case TLBI_VMALLS12E1ISNXS:
+ case TLBI_IPAS2E1OSNXS:
+ case TLBI_IPAS2E1NXS:
+ case TLBI_RIPAS2E1NXS:
+ case TLBI_RIPAS2E1OSNXS:
+ case TLBI_IPAS2LE1OSNXS:
+ case TLBI_IPAS2LE1NXS:
+ case TLBI_RIPAS2LE1NXS:
+ case TLBI_RIPAS2LE1OSNXS:
+ case TLBI_RVAE2OSNXS:
+ case TLBI_VMALLWS2E1OSNXS:
+ case TLBI_RVALE2OSNXS:
+ case TLBI_RVAE2NXS:
+ case TLBI_VMALLWS2E1NXS:
+ case TLBI_RVALE2NXS:
+ case TLBI_ALLE2NXS:
+ case TLBI_VAE2NXS:
+ case TLBI_ALLE1NXS:
+ case TLBI_VALE2NXS:
+ case TLBI_VMALLS12E1NXS:
+ case TLBI_ALLE3OS:
+ case TLBI_VAE3OS:
+ case TLBI_PAALLOS:
+ case TLBI_VALE3OS:
+ case TLBI_RVAE3IS:
+ case TLBI_RVALE3IS:
+ case TLBI_ALLE3IS:
+ case TLBI_VAE3IS:
+ case TLBI_VALE3IS:
+ case TLBI_RPAOS:
+ case TLBI_RPALOS:
+ case TLBI_RVAE3OS:
+ case TLBI_RVALE3OS:
+ case TLBI_RVAE3:
+ case TLBI_RVALE3:
+ case TLBI_ALLE3:
+ case TLBI_VAE3:
+ case TLBI_PAALL:
+ case TLBI_VALE3:
+ case TLBI_ALLE3OSNXS:
+ case TLBI_VAE3OSNXS:
+ case TLBI_VALE3OSNXS:
+ case TLBI_RVAE3ISNXS:
+ case TLBI_RVALE3ISNXS:
+ case TLBI_ALLE3ISNXS:
+ case TLBI_VAE3ISNXS:
+ case TLBI_VALE3ISNXS:
+ case TLBI_RVAE3OSNXS:
+ case TLBI_RVALE3OSNXS:
+ case TLBI_RVAE3NXS:
+ case TLBI_RVALE3NXS:
+ case TLBI_ALLE3NXS:
+ case TLBI_VAE3NXS:
+ case TLBI_VALE3NXS:
return Sys_TLBI; // IPAS2E1IS
- case 0b10010000000101:
- return Sys_TLBI; // IPAS2LE1IS
- case 0b00010000011000:
- return Sys_TLBI; // VMALLE1IS
- case 0b10010000011000:
- return Sys_TLBI; // ALLE2IS
- case 0b11010000011000:
- return Sys_TLBI; // ALLE3IS
- case 0b00010000011001:
- return Sys_TLBI; // VAE1IS
- case 0b10010000011001:
- return Sys_TLBI; // VAE2IS
- case 0b11010000011001:
- return Sys_TLBI; // VAE3IS
- case 0b00010000011010:
- return Sys_TLBI; // ASIDE1IS
- case 0b00010000011011:
- return Sys_TLBI; // VAAE1IS
- case 0b10010000011100:
- return Sys_TLBI; // ALLE1IS
- case 0b00010000011101:
- return Sys_TLBI; // VALE1IS
- case 0b10010000011101:
- return Sys_TLBI; // VALE2IS
- case 0b11010000011101:
- return Sys_TLBI; // VALE3IS
- case 0b10010000011110:
- return Sys_TLBI; // VMALLS12E1IS
- case 0b00010000011111:
- return Sys_TLBI; // VAALE1IS
- case 0b10010000100001:
- return Sys_TLBI; // IPAS2E1
- case 0b10010000100101:
- return Sys_TLBI; // IPAS2LE1
- case 0b00010000111000:
- return Sys_TLBI; // VMALLE1
- case 0b10010000111000:
- return Sys_TLBI; // ALLE2
- case 0b11010000111000:
- return Sys_TLBI; // ALLE3
- case 0b00010000111001:
- return Sys_TLBI; // VAE1
- case 0b10010000111001:
- return Sys_TLBI; // VAE2
- case 0b11010000111001:
- return Sys_TLBI; // VAE3
- case 0b00010000111010:
- return Sys_TLBI; // ASIDE1
- case 0b00010000111011:
- return Sys_TLBI; // VAAE1
- case 0b10010000111100:
- return Sys_TLBI; // ALLE1
- case 0b00010000111101:
- return Sys_TLBI; // VALE1
- case 0b10010000111101:
- return Sys_TLBI; // VALE2
- case 0b11010000111101:
- return Sys_TLBI; // VALE3
- case 0b10010000111110:
- return Sys_TLBI; // VMALLS12E1
- case 0b00010000111111:
- return Sys_TLBI; // VAALE1
+// case 0b10010000000001:
+// return Sys_TLBI; // IPAS2E1IS
+// case 0b10010000000101:
+// return Sys_TLBI; // IPAS2LE1IS
+// case 0b00010000011000:
+// return Sys_TLBI; // VMALLE1IS
+// case 0b10010000011000:
+// return Sys_TLBI; // ALLE2IS
+// case 0b11010000011000:
+// return Sys_TLBI; // ALLE3IS
+// case 0b00010000011001:
+// return Sys_TLBI; // VAE1IS
+// case 0b10010000011001:
+// return Sys_TLBI; // VAE2IS
+// case 0b11010000011001:
+// return Sys_TLBI; // VAE3IS
+// case 0b00010000011010:
+// return Sys_TLBI; // ASIDE1IS
+// case 0b00010000011011:
+// return Sys_TLBI; // VAAE1IS
+// case 0b10010000011100:
+// return Sys_TLBI; // ALLE1IS
+// case 0b00010000011101:
+// return Sys_TLBI; // VALE1IS
+// case 0b10010000011101:
+// return Sys_TLBI; // VALE2IS
+// case 0b11010000011101:
+// return Sys_TLBI; // VALE3IS
+// case 0b10010000011110:
+// return Sys_TLBI; // VMALLS12E1IS
+// case 0b00010000011111:
+// return Sys_TLBI; // VAALE1IS
+// case 0b10010000100001:
+// return Sys_TLBI; // IPAS2E1
+// case 0b10010000100101:
+// return Sys_TLBI; // IPAS2LE1
+// case 0b00010000111000:
+// return Sys_TLBI; // VMALLE1
+// case 0b10010000111000:
+// return Sys_TLBI; // ALLE2
+// case 0b11010000111000:
+// return Sys_TLBI; // ALLE3
+// case 0b00010000111001:
+// return Sys_TLBI; // VAE1
+// case 0b10010000111001:
+// return Sys_TLBI; // VAE2
+// case 0b11010000111001:
+// return Sys_TLBI; // VAE3
+// case 0b00010000111010:
+// return Sys_TLBI; // ASIDE1
+// case 0b00010000111011:
+// return Sys_TLBI; // VAAE1
+// case 0b10010000111100:
+// return Sys_TLBI; // ALLE1
+// case 0b00010000111101:
+// return Sys_TLBI; // VALE1
+// case 0b10010000111101:
+// return Sys_TLBI; // VALE2
+// case 0b11010000111101:
+// return Sys_TLBI; // VALE3
+// case 0b10010000111110:
+// return Sys_TLBI; // VMALLS12E1
+// case 0b00010000111111:
+// return Sys_TLBI; // VAALE1
default:
return Sys_ERROR;
}
diff --git a/arch/arm64/disassembler/sysregs_fmt_gen.c b/arch/arm64/disassembler/sysregs_fmt_gen.c
new file mode 100644
index 00000000..805303ab
--- /dev/null
+++ b/arch/arm64/disassembler/sysregs_fmt_gen.c
@@ -0,0 +1,1501 @@
+#include <stddef.h>
+
+#include "sysregs_gen.h"
+
+/* must parallel has_system_register_name() from the decode side */
+const char *get_system_register_name(enum SystemReg sr)
+{
+ switch(sr) {
+ case REG_EDSCR: return "edscr";
+ case REG_EDPRSR: return "edprsr";
+ case REG_UAOIMM: return "uaoimm";
+ case REG_PANIMM: return "panimm";
+ case REG_SPSELIMM: return "spselimm";
+ case REG_DITIMM: return "ditimm";
+ case REG_SVCRIMM: return "svcrimm";
+ case REG_ICIALLUIS: return "icialluis";
+ case REG_ICIALLU: return "iciallu";
+ case REG_DCIVAC: return "dcivac";
+ case REG_DCISW: return "dcisw";
+ case REG_ATS1E1R: return "ats1e1r";
+ case REG_ATS1E1W: return "ats1e1w";
+ case REG_ATS1E0R: return "ats1e0r";
+ case REG_ATS1E0W: return "ats1e0w";
+ case REG_DCCSW: return "dccsw";
+ case REG_DCCISW: return "dccisw";
+ case REG_TLBIVMALLE1IS: return "tlbivmalle1is";
+ case REG_TLBIVAE1IS: return "tlbivae1is";
+ case REG_TLBIASIDE1IS: return "tlbiaside1is";
+ case REG_TLBIVAAE1IS: return "tlbivaae1is";
+ case REG_TLBIVALE1IS: return "tlbivale1is";
+ case REG_TLBIVAALE1IS: return "tlbivaale1is";
+ case REG_TLBIVMALLE1: return "tlbivmalle1";
+ case REG_TLBIVAE1: return "tlbivae1";
+ case REG_TLBIASIDE1: return "tlbiaside1";
+ case REG_TLBIVAAE1: return "tlbivaae1";
+ case REG_TLBIVALE1: return "tlbivale1";
+ case REG_TLBIVAALE1: return "tlbivaale1";
+ case REG_DCZVA: return "dczva";
+ case REG_ICIVAU: return "icivau";
+ case REG_DCCVAC: return "dccvac";
+ case REG_DCCVAU: return "dccvau";
+ case REG_DCCIVAC: return "dccivac";
+ case REG_ATS1E2R: return "ats1e2r";
+ case REG_ATS1E2W: return "ats1e2w";
+ case REG_ATS12E1R: return "ats12e1r";
+ case REG_ATS12E1W: return "ats12e1w";
+ case REG_ATS12E0R: return "ats12e0r";
+ case REG_ATS12E0W: return "ats12e0w";
+ case REG_TLBIIPAS2E1IS: return "tlbiipas2e1is";
+ case REG_TLBIIPAS2LE1IS: return "tlbiipas2le1is";
+ case REG_TLBIALLE2IS: return "tlbialle2is";
+ case REG_TLBIVAE2IS: return "tlbivae2is";
+ case REG_TLBIALLE1IS: return "tlbialle1is";
+ case REG_TLBIVALE2IS: return "tlbivale2is";
+ case REG_TLBIVMALLS12E1IS: return "tlbivmalls12e1is";
+ case REG_TLBIIPAS2E1: return "tlbiipas2e1";
+ case REG_TLBIIPAS2LE1: return "tlbiipas2le1";
+ case REG_TLBIALLE2: return "tlbialle2";
+ case REG_TLBIVAE2: return "tlbivae2";
+ case REG_TLBIALLE1: return "tlbialle1";
+ case REG_TLBIVALE2: return "tlbivale2";
+ case REG_TLBIVMALLS12E1: return "tlbivmalls12e1";
+ case REG_ATS1E3R: return "ats1e3r";
+ case REG_ATS1E3W: return "ats1e3w";
+ case REG_TLBIALLE3IS: return "tlbialle3is";
+ case REG_TLBIVAE3IS: return "tlbivae3is";
+ case REG_TLBIVALE3IS: return "tlbivale3is";
+ case REG_TLBIALLE3: return "tlbialle3";
+ case REG_TLBIVAE3: return "tlbivae3";
+ case REG_TLBIVALE3: return "tlbivale3";
+ case REG_OSDTRRX_EL1: return "osdtrrx_el1";
+ case REG_DBGBVR0_EL1: return "dbgbvr0_el1";
+ case REG_DBGBCR0_EL1: return "dbgbcr0_el1";
+ case REG_DBGWVR0_EL1: return "dbgwvr0_el1";
+ case REG_DBGWCR0_EL1: return "dbgwcr0_el1";
+ case REG_DBGBVR1_EL1: return "dbgbvr1_el1";
+ case REG_DBGBCR1_EL1: return "dbgbcr1_el1";
+ case REG_DBGWVR1_EL1: return "dbgwvr1_el1";
+ case REG_DBGWCR1_EL1: return "dbgwcr1_el1";
+ case REG_MDCCINT_EL1: return "mdccint_el1";
+ case REG_MDSCR_EL1: return "mdscr_el1";
+ case REG_DBGBVR2_EL1: return "dbgbvr2_el1";
+ case REG_DBGBCR2_EL1: return "dbgbcr2_el1";
+ case REG_DBGWVR2_EL1: return "dbgwvr2_el1";
+ case REG_DBGWCR2_EL1: return "dbgwcr2_el1";
+ case REG_OSDTRTX_EL1: return "osdtrtx_el1";
+ case REG_DBGBVR3_EL1: return "dbgbvr3_el1";
+ case REG_DBGBCR3_EL1: return "dbgbcr3_el1";
+ case REG_DBGWVR3_EL1: return "dbgwvr3_el1";
+ case REG_DBGWCR3_EL1: return "dbgwcr3_el1";
+ case REG_DBGBVR4_EL1: return "dbgbvr4_el1";
+ case REG_DBGBCR4_EL1: return "dbgbcr4_el1";
+ case REG_DBGWVR4_EL1: return "dbgwvr4_el1";
+ case REG_DBGWCR4_EL1: return "dbgwcr4_el1";
+ case REG_DBGBVR5_EL1: return "dbgbvr5_el1";
+ case REG_DBGBCR5_EL1: return "dbgbcr5_el1";
+ case REG_DBGWVR5_EL1: return "dbgwvr5_el1";
+ case REG_DBGWCR5_EL1: return "dbgwcr5_el1";
+ case REG_DBGWFAR: return "dbgwfar";
+ case REG_OSECCR_EL1: return "oseccr_el1";
+ case REG_DBGBVR6_EL1: return "dbgbvr6_el1";
+ case REG_DBGBCR6_EL1: return "dbgbcr6_el1";
+ case REG_DBGWVR6_EL1: return "dbgwvr6_el1";
+ case REG_DBGWCR6_EL1: return "dbgwcr6_el1";
+ case REG_DBGBVR7_EL1: return "dbgbvr7_el1";
+ case REG_DBGBCR7_EL1: return "dbgbcr7_el1";
+ case REG_DBGWVR7_EL1: return "dbgwvr7_el1";
+ case REG_DBGWCR7_EL1: return "dbgwcr7_el1";
+ case REG_DBGBVR8_EL1: return "dbgbvr8_el1";
+ case REG_DBGBCR8_EL1: return "dbgbcr8_el1";
+ case REG_DBGWVR8_EL1: return "dbgwvr8_el1";
+ case REG_DBGWCR8_EL1: return "dbgwcr8_el1";
+ case REG_DBGBVR9_EL1: return "dbgbvr9_el1";
+ case REG_DBGBCR9_EL1: return "dbgbcr9_el1";
+ case REG_DBGWVR9_EL1: return "dbgwvr9_el1";
+ case REG_DBGWCR9_EL1: return "dbgwcr9_el1";
+ case REG_DBGBVR10_EL1: return "dbgbvr10_el1";
+ case REG_DBGBCR10_EL1: return "dbgbcr10_el1";
+ case REG_DBGWVR10_EL1: return "dbgwvr10_el1";
+ case REG_DBGWCR10_EL1: return "dbgwcr10_el1";
+ case REG_DBGBVR11_EL1: return "dbgbvr11_el1";
+ case REG_DBGBCR11_EL1: return "dbgbcr11_el1";
+ case REG_DBGWVR11_EL1: return "dbgwvr11_el1";
+ case REG_DBGWCR11_EL1: return "dbgwcr11_el1";
+ case REG_DBGBVR12_EL1: return "dbgbvr12_el1";
+ case REG_DBGBCR12_EL1: return "dbgbcr12_el1";
+ case REG_DBGWVR12_EL1: return "dbgwvr12_el1";
+ case REG_DBGWCR12_EL1: return "dbgwcr12_el1";
+ case REG_DBGBVR13_EL1: return "dbgbvr13_el1";
+ case REG_DBGBCR13_EL1: return "dbgbcr13_el1";
+ case REG_DBGWVR13_EL1: return "dbgwvr13_el1";
+ case REG_DBGWCR13_EL1: return "dbgwcr13_el1";
+ case REG_DBGBVR14_EL1: return "dbgbvr14_el1";
+ case REG_DBGBCR14_EL1: return "dbgbcr14_el1";
+ case REG_DBGWVR14_EL1: return "dbgwvr14_el1";
+ case REG_DBGWCR14_EL1: return "dbgwcr14_el1";
+ case REG_DBGBVR15_EL1: return "dbgbvr15_el1";
+ case REG_DBGBCR15_EL1: return "dbgbcr15_el1";
+ case REG_DBGWVR15_EL1: return "dbgwvr15_el1";
+ case REG_DBGWCR15_EL1: return "dbgwcr15_el1";
+ case REG_MDRAR_EL1: return "mdrar_el1";
+ case REG_OSLAR_EL1: return "oslar_el1";
+ case REG_OSLSR_EL1: return "oslsr_el1";
+ case REG_OSDLR_EL1: return "osdlr_el1";
+ case REG_DBGPRCR_EL1: return "dbgprcr_el1";
+ case REG_CLAIMSET_EL1: return "claimset_el1";
+ case REG_CLAIMCLR_EL1: return "claimclr_el1";
+ case REG_AUTHSTAT_EL1: return "authstat_el1";
+ case REG_TRCTRACEIDR: return "trctraceidr";
+ case REG_TRCVICTLR: return "trcvictlr";
+ case REG_TRCSEQEVR0: return "trcseqevr0";
+ case REG_TRCCNTRLDVR0: return "trccntrldvr0";
+ case REG_TRCIMSPEC0: return "trcimspec0";
+ case REG_TRCPRGCTLR: return "trcprgctlr";
+ case REG_TRCQCTLR: return "trcqctlr";
+ case REG_TRCVIIECTLR: return "trcviiectlr";
+ case REG_TRCSEQEVR1: return "trcseqevr1";
+ case REG_TRCCNTRLDVR1: return "trccntrldvr1";
+ case REG_TRCIMSPEC1: return "trcimspec1";
+ case REG_TRCPROCSELR: return "trcprocselr";
+ case REG_TRCVISSCTLR: return "trcvissctlr";
+ case REG_TRCSEQEVR2: return "trcseqevr2";
+ case REG_TRCCNTRLDVR2: return "trccntrldvr2";
+ case REG_TRCIMSPEC2: return "trcimspec2";
+ case REG_TRCVIPCSSCTLR: return "trcvipcssctlr";
+ case REG_TRCCNTRLDVR3: return "trccntrldvr3";
+ case REG_TRCIMSPEC3: return "trcimspec3";
+ case REG_TRCCONFIGR: return "trcconfigr";
+ case REG_TRCCNTCTLR0: return "trccntctlr0";
+ case REG_TRCIMSPEC4: return "trcimspec4";
+ case REG_TRCCNTCTLR1: return "trccntctlr1";
+ case REG_TRCIMSPEC5: return "trcimspec5";
+ case REG_TRCAUXCTLR: return "trcauxctlr";
+ case REG_TRCSEQRSTEVR: return "trcseqrstevr";
+ case REG_TRCCNTCTLR2: return "trccntctlr2";
+ case REG_TRCIMSPEC6: return "trcimspec6";
+ case REG_TRCSEQSTR: return "trcseqstr";
+ case REG_TRCCNTCTLR3: return "trccntctlr3";
+ case REG_TRCIMSPEC7: return "trcimspec7";
+ case REG_TRCEVENTCTL0R: return "trceventctl0r";
+ case REG_TRCVDCTLR: return "trcvdctlr";
+ case REG_TRCEXTINSELR: return "trcextinselr";
+ case REG_TRCCNTVR0: return "trccntvr0";
+ case REG_TRCEVENTCTL1R: return "trceventctl1r";
+ case REG_TRCVDSACCTLR: return "trcvdsacctlr";
+ case REG_TRCEXTINSELR1: return "trcextinselr1";
+ case REG_TRCCNTVR1: return "trccntvr1";
+ case REG_TRCRSR: return "trcrsr";
+ case REG_TRCVDARCCTLR: return "trcvdarcctlr";
+ case REG_TRCEXTINSELR2: return "trcextinselr2";
+ case REG_TRCCNTVR2: return "trccntvr2";
+ case REG_TRCSTALLCTLR: return "trcstallctlr";
+ case REG_TRCEXTINSELR3: return "trcextinselr3";
+ case REG_TRCCNTVR3: return "trccntvr3";
+ case REG_TRCTSCTLR: return "trctsctlr";
+ case REG_TRCSYNCPR: return "trcsyncpr";
+ case REG_TRCCCCTLR: return "trcccctlr";
+ case REG_TRCBBCTLR: return "trcbbctlr";
+ case REG_TRCRSCTLR16: return "trcrsctlr16";
+ case REG_TRCSSCCR0: return "trcssccr0";
+ case REG_TRCSSPCICR0: return "trcsspcicr0";
+ case REG_TRCOSLAR: return "trcoslar";
+ case REG_TRCRSCTLR17: return "trcrsctlr17";
+ case REG_TRCSSCCR1: return "trcssccr1";
+ case REG_TRCSSPCICR1: return "trcsspcicr1";
+ case REG_TRCRSCTLR2: return "trcrsctlr2";
+ case REG_TRCRSCTLR18: return "trcrsctlr18";
+ case REG_TRCSSCCR2: return "trcssccr2";
+ case REG_TRCSSPCICR2: return "trcsspcicr2";
+ case REG_TRCRSCTLR3: return "trcrsctlr3";
+ case REG_TRCRSCTLR19: return "trcrsctlr19";
+ case REG_TRCSSCCR3: return "trcssccr3";
+ case REG_TRCSSPCICR3: return "trcsspcicr3";
+ case REG_TRCRSCTLR4: return "trcrsctlr4";
+ case REG_TRCRSCTLR20: return "trcrsctlr20";
+ case REG_TRCSSCCR4: return "trcssccr4";
+ case REG_TRCSSPCICR4: return "trcsspcicr4";
+ case REG_TRCPDCR: return "trcpdcr";
+ case REG_TRCRSCTLR5: return "trcrsctlr5";
+ case REG_TRCRSCTLR21: return "trcrsctlr21";
+ case REG_TRCSSCCR5: return "trcssccr5";
+ case REG_TRCSSPCICR5: return "trcsspcicr5";
+ case REG_TRCRSCTLR6: return "trcrsctlr6";
+ case REG_TRCRSCTLR22: return "trcrsctlr22";
+ case REG_TRCSSCCR6: return "trcssccr6";
+ case REG_TRCSSPCICR6: return "trcsspcicr6";
+ case REG_TRCRSCTLR7: return "trcrsctlr7";
+ case REG_TRCRSCTLR23: return "trcrsctlr23";
+ case REG_TRCSSCCR7: return "trcssccr7";
+ case REG_TRCSSPCICR7: return "trcsspcicr7";
+ case REG_TRCRSCTLR8: return "trcrsctlr8";
+ case REG_TRCRSCTLR24: return "trcrsctlr24";
+ case REG_TRCSSCSR0: return "trcsscsr0";
+ case REG_TRCRSCTLR9: return "trcrsctlr9";
+ case REG_TRCRSCTLR25: return "trcrsctlr25";
+ case REG_TRCSSCSR1: return "trcsscsr1";
+ case REG_TRCRSCTLR10: return "trcrsctlr10";
+ case REG_TRCRSCTLR26: return "trcrsctlr26";
+ case REG_TRCSSCSR2: return "trcsscsr2";
+ case REG_TRCRSCTLR11: return "trcrsctlr11";
+ case REG_TRCRSCTLR27: return "trcrsctlr27";
+ case REG_TRCSSCSR3: return "trcsscsr3";
+ case REG_TRCRSCTLR12: return "trcrsctlr12";
+ case REG_TRCRSCTLR28: return "trcrsctlr28";
+ case REG_TRCSSCSR4: return "trcsscsr4";
+ case REG_TRCRSCTLR13: return "trcrsctlr13";
+ case REG_TRCRSCTLR29: return "trcrsctlr29";
+ case REG_TRCSSCSR5: return "trcsscsr5";
+ case REG_TRCRSCTLR14: return "trcrsctlr14";
+ case REG_TRCRSCTLR30: return "trcrsctlr30";
+ case REG_TRCSSCSR6: return "trcsscsr6";
+ case REG_TRCRSCTLR15: return "trcrsctlr15";
+ case REG_TRCRSCTLR31: return "trcrsctlr31";
+ case REG_TRCSSCSR7: return "trcsscsr7";
+ case REG_TRCACVR0: return "trcacvr0";
+ case REG_TRCACVR8: return "trcacvr8";
+ case REG_TRCACATR0: return "trcacatr0";
+ case REG_TRCACATR8: return "trcacatr8";
+ case REG_TRCDVCVR0: return "trcdvcvr0";
+ case REG_TRCDVCVR4: return "trcdvcvr4";
+ case REG_TRCDVCMR0: return "trcdvcmr0";
+ case REG_TRCDVCMR4: return "trcdvcmr4";
+ case REG_TRCACVR1: return "trcacvr1";
+ case REG_TRCACVR9: return "trcacvr9";
+ case REG_TRCACATR1: return "trcacatr1";
+ case REG_TRCACATR9: return "trcacatr9";
+ case REG_TRCACVR2: return "trcacvr2";
+ case REG_TRCACVR10: return "trcacvr10";
+ case REG_TRCACATR2: return "trcacatr2";
+ case REG_TRCACATR10: return "trcacatr10";
+ case REG_TRCDVCVR1: return "trcdvcvr1";
+ case REG_TRCDVCVR5: return "trcdvcvr5";
+ case REG_TRCDVCMR1: return "trcdvcmr1";
+ case REG_TRCDVCMR5: return "trcdvcmr5";
+ case REG_TRCACVR3: return "trcacvr3";
+ case REG_TRCACVR11: return "trcacvr11";
+ case REG_TRCACATR3: return "trcacatr3";
+ case REG_TRCACATR11: return "trcacatr11";
+ case REG_TRCACVR4: return "trcacvr4";
+ case REG_TRCACVR12: return "trcacvr12";
+ case REG_TRCACATR4: return "trcacatr4";
+ case REG_TRCACATR12: return "trcacatr12";
+ case REG_TRCDVCVR2: return "trcdvcvr2";
+ case REG_TRCDVCVR6: return "trcdvcvr6";
+ case REG_TRCDVCMR2: return "trcdvcmr2";
+ case REG_TRCDVCMR6: return "trcdvcmr6";
+ case REG_TRCACVR5: return "trcacvr5";
+ case REG_TRCACVR13: return "trcacvr13";
+ case REG_TRCACATR5: return "trcacatr5";
+ case REG_TRCACATR13: return "trcacatr13";
+ case REG_TRCACVR6: return "trcacvr6";
+ case REG_TRCACVR14: return "trcacvr14";
+ case REG_TRCACATR6: return "trcacatr6";
+ case REG_TRCACATR14: return "trcacatr14";
+ case REG_TRCDVCVR3: return "trcdvcvr3";
+ case REG_TRCDVCVR7: return "trcdvcvr7";
+ case REG_TRCDVCMR3: return "trcdvcmr3";
+ case REG_TRCDVCMR7: return "trcdvcmr7";
+ case REG_TRCACVR7: return "trcacvr7";
+ case REG_TRCACVR15: return "trcacvr15";
+ case REG_TRCACATR7: return "trcacatr7";
+ case REG_TRCACATR15: return "trcacatr15";
+ case REG_TRCCIDCVR0: return "trccidcvr0";
+ case REG_TRCVMIDCVR0: return "trcvmidcvr0";
+ case REG_TRCCIDCCTLR0: return "trccidcctlr0";
+ case REG_TRCCIDCCTLR1: return "trccidcctlr1";
+ case REG_TRCCIDCVR1: return "trccidcvr1";
+ case REG_TRCVMIDCVR1: return "trcvmidcvr1";
+ case REG_TRCVMIDCCTLR0: return "trcvmidcctlr0";
+ case REG_TRCVMIDCCTLR1: return "trcvmidcctlr1";
+ case REG_TRCCIDCVR2: return "trccidcvr2";
+ case REG_TRCVMIDCVR2: return "trcvmidcvr2";
+ case REG_TRCCIDCVR3: return "trccidcvr3";
+ case REG_TRCVMIDCVR3: return "trcvmidcvr3";
+ case REG_TRCCIDCVR4: return "trccidcvr4";
+ case REG_TRCVMIDCVR4: return "trcvmidcvr4";
+ case REG_TRCCIDCVR5: return "trccidcvr5";
+ case REG_TRCVMIDCVR5: return "trcvmidcvr5";
+ case REG_TRCCIDCVR6: return "trccidcvr6";
+ case REG_TRCVMIDCVR6: return "trcvmidcvr6";
+ case REG_TRCCIDCVR7: return "trccidcvr7";
+ case REG_TRCVMIDCVR7: return "trcvmidcvr7";
+ case REG_TRCITCTRL: return "trcitctrl";
+ case REG_TRCCLAIMSET: return "trcclaimset";
+ case REG_TRCCLAIMCLR: return "trcclaimclr";
+ case REG_TRCLAR: return "trclar";
+ case REG_TEECR32_EL1: return "teecr32_el1";
+ case REG_TEEHBR32_EL1: return "teehbr32_el1";
+ case REG_MDCCSR_EL0: return "mdccsr_el0";
+ case REG_MDDTR_EL0: return "mddtr_el0";
+ case REG_MDDTRTX_EL0: return "mddtrtx_el0";
+ case REG_DBGVCR32_EL2: return "dbgvcr32_el2";
+ case REG_MIDR_EL1: return "midr_el1";
+ case REG_MPIDR_EL1: return "mpidr_el1";
+ case REG_REVIDR_EL1: return "revidr_el1";
+ case REG_ID_PFR0_EL1: return "id_pfr0_el1";
+ case REG_ID_PFR1_EL1: return "id_pfr1_el1";
+ case REG_ID_DFR0_EL1: return "id_dfr0_el1";
+ case REG_ID_AFR0_EL1: return "id_afr0_el1";
+ case REG_ID_MMFR0_EL1: return "id_mmfr0_el1";
+ case REG_ID_MMFR1_EL1: return "id_mmfr1_el1";
+ case REG_ID_MMFR2_EL1: return "id_mmfr2_el1";
+ case REG_ID_MMFR3_EL1: return "id_mmfr3_el1";
+ case REG_ID_ISAR0_EL1: return "id_isar0_el1";
+ case REG_ID_ISAR1_EL1: return "id_isar1_el1";
+ case REG_ID_ISAR2_EL1: return "id_isar2_el1";
+ case REG_ID_ISAR3_EL1: return "id_isar3_el1";
+ case REG_ID_ISAR4_EL1: return "id_isar4_el1";
+ case REG_ID_ISAR5_EL1: return "id_isar5_el1";
+ case REG_ID_MMFR4_EL1: return "id_mmfr4_el1";
+ case REG_ID_ISAR6_EL1: return "id_isar6_el1";
+ case REG_MVFR0_EL1: return "mvfr0_el1";
+ case REG_MVFR1_EL1: return "mvfr1_el1";
+ case REG_MVFR2_EL1: return "mvfr2_el1";
+ case REG_ID_AA32RES3_EL1: return "id_aa32res3_el1";
+ case REG_ID_PFR2_EL1: return "id_pfr2_el1";
+ case REG_ID_AA32RES5_EL1: return "id_aa32res5_el1";
+ case REG_ID_AA32RES6_EL1: return "id_aa32res6_el1";
+ case REG_ID_AA32RES7_EL1: return "id_aa32res7_el1";
+ case REG_ID_AA64PFR0_EL1: return "id_aa64pfr0_el1";
+ case REG_ID_AA64PFR1_EL1: return "id_aa64pfr1_el1";
+ case REG_ID_AA64PFR2_EL1: return "id_aa64pfr2_el1";
+ case REG_ID_AA64PFR3_EL1: return "id_aa64pfr3_el1";
+ case REG_ID_AA64ZFR0_EL1: return "id_aa64zfr0_el1";
+ case REG_ID_AA64SMFR0_EL1: return "id_aa64smfr0_el1";
+ case REG_ID_AA64ZFR2_EL1: return "id_aa64zfr2_el1";
+ case REG_ID_AA64ZFR3_EL1: return "id_aa64zfr3_el1";
+ case REG_ID_AA64DFR0_EL1: return "id_aa64dfr0_el1";
+ case REG_ID_AA64DFR1_EL1: return "id_aa64dfr1_el1";
+ case REG_ID_AA64DFR2_EL1: return "id_aa64dfr2_el1";
+ case REG_ID_AA64DFR3_EL1: return "id_aa64dfr3_el1";
+ case REG_ID_AA64AFR0_EL1: return "id_aa64afr0_el1";
+ case REG_ID_AA64AFR1_EL1: return "id_aa64afr1_el1";
+ case REG_ID_AA64AFR2_EL1: return "id_aa64afr2_el1";
+ case REG_ID_AA64AFR3_EL1: return "id_aa64afr3_el1";
+ case REG_ID_AA64ISAR0_EL1: return "id_aa64isar0_el1";
+ case REG_ID_AA64ISAR1_EL1: return "id_aa64isar1_el1";
+ case REG_ID_AA64ISAR2_EL1: return "id_aa64isar2_el1";
+ case REG_ID_AA64ISAR3_EL1: return "id_aa64isar3_el1";
+ case REG_ID_AA64ISAR4_EL1: return "id_aa64isar4_el1";
+ case REG_ID_AA64ISAR5_EL1: return "id_aa64isar5_el1";
+ case REG_ID_AA64ISAR6_EL1: return "id_aa64isar6_el1";
+ case REG_ID_AA64ISAR7_EL1: return "id_aa64isar7_el1";
+ case REG_ID_AA64MMFR0_EL1: return "id_aa64mmfr0_el1";
+ case REG_ID_AA64MMFR1_EL1: return "id_aa64mmfr1_el1";
+ case REG_ID_AA64MMFR2_EL1: return "id_aa64mmfr2_el1";
+ case REG_ID_AA64MMFR3_EL1: return "id_aa64mmfr3_el1";
+ case REG_ID_AA64MMFR4_EL1: return "id_aa64mmfr4_el1";
+ case REG_ID_AA64MMFR5_EL1: return "id_aa64mmfr5_el1";
+ case REG_ID_AA64MMFR6_EL1: return "id_aa64mmfr6_el1";
+ case REG_ID_AA64MMFR7_EL1: return "id_aa64mmfr7_el1";
+ case REG_SCTLR_EL21: return "sctlr_el21";
+ case REG_ACTLR_EL21: return "actlr_el21";
+ case REG_CPTR_EL21: return "cptr_el21";
+ case REG_RGSR_EL1: return "rgsr_el1";
+ case REG_GCR_EL1: return "gcr_el1";
+ case REG_TRFCR_EL1: return "trfcr_el1";
+ case REG_SMPRI_EL1: return "smpri_el1";
+ case REG_SMCR_EL21: return "smcr_el21";
+ case REG_TTBR0_EL21: return "ttbr0_el21";
+ case REG_TTBR1_EL21: return "ttbr1_el21";
+ case REG_TCR_EL21: return "tcr_el21";
+ case REG_APIAKEYLO_EL21: return "apiakeylo_el21";
+ case REG_APIAKEYHI_EL21: return "apiakeyhi_el21";
+ case REG_APIBKEYLO_EL21: return "apibkeylo_el21";
+ case REG_APIBKEYHI_EL21: return "apibkeyhi_el21";
+ case REG_APDAKEYLO_EL21: return "apdakeylo_el21";
+ case REG_APDAKEYHI_EL21: return "apdakeyhi_el21";
+ case REG_APDBKEYLO_EL21: return "apdbkeylo_el21";
+ case REG_APDBKEYHI_EL21: return "apdbkeyhi_el21";
+ case REG_APGAKEYLO_EL21: return "apgakeylo_el21";
+ case REG_APGAKEYHI_EL21: return "apgakeyhi_el21";
+ case REG_SPSR_EL21: return "spsr_el21";
+ case REG_ELR_EL21: return "elr_el21";
+ case REG_SP_EL0: return "sp_el0";
+ case REG_SPSEL: return "spsel";
+ case REG_NESTEDCURRENTEL: return "nestedcurrentel";
+ case REG_PAN: return "pan";
+ case REG_UAO: return "uao";
+ case REG_ICV_PMR_EL1: return "icv_pmr_el1";
+ case REG_AFSR0_EL21: return "afsr0_el21";
+ case REG_AFSR1_EL21: return "afsr1_el21";
+ case REG_ESR_EL21: return "esr_el21";
+ case REG_ERRIDR_EL1: return "erridr_el1";
+ case REG_ERRSELR_EL1: return "errselr_el1";
+ case REG_ERXCTLR_EL1: return "erxctlr_el1";
+ case REG_ERXSTATUS_EL1: return "erxstatus_el1";
+ case REG_ERXADDR_EL1: return "erxaddr_el1";
+ case REG_ERXPFGCTL_EL1: return "erxpfgctl_el1";
+ case REG_ERXPFGCDN_EL1: return "erxpfgcdn_el1";
+ case REG_ERXMISC0_EL1: return "erxmisc0_el1";
+ case REG_ERXMISC1_EL1: return "erxmisc1_el1";
+ case REG_ERXMISC2_EL1: return "erxmisc2_el1";
+ case REG_ERXMISC3_EL1: return "erxmisc3_el1";
+ case REG_ERXTS_EL1: return "erxts_el1";
+ case REG_TFSR_EL1: return "tfsr_el1";
+ case REG_TFSRE0_EL1: return "tfsre0_el1";
+ case REG_FAR_EL21: return "far_el21";
+ case REG_PAR_EL1: return "par_el1";
+ case REG_PMSCR_EL1: return "pmscr_el1";
+ case REG_PMSICR_EL1: return "pmsicr_el1";
+ case REG_PMSIRR_EL1: return "pmsirr_el1";
+ case REG_PMSFCR_EL1: return "pmsfcr_el1";
+ case REG_PMSEVFR_EL1: return "pmsevfr_el1";
+ case REG_PMSLATFR_EL1: return "pmslatfr_el1";
+ case REG_PMSIDR_EL1: return "pmsidr_el1";
+ case REG_PMBLIMITR_EL1: return "pmblimitr_el1";
+ case REG_PMBPTR_EL1: return "pmbptr_el1";
+ case REG_PMBSR_EL1: return "pmbsr_el1";
+ case REG_PMBIDR_EL1: return "pmbidr_el1";
+ case REG_TRBLIMITR_EL1: return "trblimitr_el1";
+ case REG_TRBPTR_EL1: return "trbptr_el1";
+ case REG_TRBBASER_EL1: return "trbbaser_el1";
+ case REG_TRBSR_EL1: return "trbsr_el1";
+ case REG_TRBMAR_EL1: return "trbmar_el1";
+ case REG_TRBTRG_EL1: return "trbtrg_el1";
+ case REG_PMINTENSET_EL1: return "pmintenset_el1";
+ case REG_PMINTENCLR_EL1: return "pmintenclr_el1";
+ case REG_PMMIR_EL1: return "pmmir_el1";
+ case REG_MAIR_EL21: return "mair_el21";
+ case REG_AMAIR_EL21: return "amair_el21";
+ case REG_LORSA_EL1: return "lorsa_el1";
+ case REG_LOREA_EL1: return "lorea_el1";
+ case REG_LORN_EL1: return "lorn_el1";
+ case REG_LORC_EL1: return "lorc_el1";
+ case REG_LORID_EL1: return "lorid_el1";
+ case REG_MPAM1_EL1: return "mpam1_el1";
+ case REG_MPAM0_EL1: return "mpam0_el1";
+ case REG_CTRR_C_LWR_EL21: return "ctrr_c_lwr_el21";
+ case REG_CTRR_C_UPR_EL21: return "ctrr_c_upr_el21";
+ case REG_CTRR_D_LWR_EL21: return "ctrr_d_lwr_el21";
+ case REG_CTRR_D_UPR_EL21: return "ctrr_d_upr_el21";
+ case REG_CTRR_C_LWR_EL12: return "ctrr_c_lwr_el12";
+ case REG_CTRR_C_UPR_EL12: return "ctrr_c_upr_el12";
+ case REG_CTRR_D_LWR_EL12: return "ctrr_d_lwr_el12";
+ case REG_CTRR_D_UPR_EL12: return "ctrr_d_upr_el12";
+ case REG_CTRR_C_LWR_EL2: return "ctrr_c_lwr_el2";
+ case REG_CTRR_C_UPR_EL2: return "ctrr_c_upr_el2";
+ case REG_CTRR_D_LWR_EL2: return "ctrr_d_lwr_el2";
+ case REG_CTRR_D_UPR_EL2: return "ctrr_d_upr_el2";
+ case REG_CTRR_C_CTL_EL21: return "ctrr_c_ctl_el21";
+ case REG_CTRR_D_CTL_EL21: return "ctrr_d_ctl_el21";
+ case REG_CTRR_C_CTL_EL12: return "ctrr_c_ctl_el12";
+ case REG_CTRR_D_CTL_EL12: return "ctrr_d_ctl_el12";
+ case REG_CTRR_C_CTL_EL2: return "ctrr_c_ctl_el2";
+ case REG_CTRR_D_CTL_EL2: return "ctrr_d_ctl_el2";
+ case REG_CTXR_A_LWR_EL21: return "ctxr_a_lwr_el21";
+ case REG_CTXR_A_UPR_EL21: return "ctxr_a_upr_el21";
+ case REG_CTXR_B_LWR_EL21: return "ctxr_b_lwr_el21";
+ case REG_CTXR_B_UPR_EL21: return "ctxr_b_upr_el21";
+ case REG_CTXR_C_LWR_EL21: return "ctxr_c_lwr_el21";
+ case REG_CTXR_C_UPR_EL21: return "ctxr_c_upr_el21";
+ case REG_CTXR_D_LWR_EL21: return "ctxr_d_lwr_el21";
+ case REG_CTXR_D_UPR_EL21: return "ctxr_d_upr_el21";
+ case REG_CTXR_A_LWR_EL12: return "ctxr_a_lwr_el12";
+ case REG_CTXR_A_UPR_EL12: return "ctxr_a_upr_el12";
+ case REG_CTXR_B_LWR_EL12: return "ctxr_b_lwr_el12";
+ case REG_CTXR_B_UPR_EL12: return "ctxr_b_upr_el12";
+ case REG_CTXR_C_LWR_EL12: return "ctxr_c_lwr_el12";
+ case REG_CTXR_C_UPR_EL12: return "ctxr_c_upr_el12";
+ case REG_CTXR_D_LWR_EL12: return "ctxr_d_lwr_el12";
+ case REG_CTXR_D_UPR_EL12: return "ctxr_d_upr_el12";
+ case REG_CTXR_A_LWR_EL2: return "ctxr_a_lwr_el2";
+ case REG_CTXR_A_UPR_EL2: return "ctxr_a_upr_el2";
+ case REG_CTXR_B_LWR_EL2: return "ctxr_b_lwr_el2";
+ case REG_CTXR_B_UPR_EL2: return "ctxr_b_upr_el2";
+ case REG_CTXR_C_LWR_EL2: return "ctxr_c_lwr_el2";
+ case REG_CTXR_C_UPR_EL2: return "ctxr_c_upr_el2";
+ case REG_CTXR_D_LWR_EL2: return "ctxr_d_lwr_el2";
+ case REG_CTXR_D_UPR_EL2: return "ctxr_d_upr_el2";
+ case REG_CTXR_A_CTL_EL21: return "ctxr_a_ctl_el21";
+ case REG_CTXR_B_CTL_EL21: return "ctxr_b_ctl_el21";
+ case REG_CTXR_C_CTL_EL21: return "ctxr_c_ctl_el21";
+ case REG_CTXR_D_CTL_EL21: return "ctxr_d_ctl_el21";
+ case REG_CTXR_A_CTL_EL12: return "ctxr_a_ctl_el12";
+ case REG_CTXR_B_CTL_EL12: return "ctxr_b_ctl_el12";
+ case REG_CTXR_C_CTL_EL12: return "ctxr_c_ctl_el12";
+ case REG_CTXR_D_CTL_EL12: return "ctxr_d_ctl_el12";
+ case REG_CTXR_A_CTL_EL2: return "ctxr_a_ctl_el2";
+ case REG_CTXR_B_CTL_EL2: return "ctxr_b_ctl_el2";
+ case REG_CTXR_C_CTL_EL2: return "ctxr_c_ctl_el2";
+ case REG_CTXR_D_CTL_EL2: return "ctxr_d_ctl_el2";
+ case REG_ACC_CTRR_C_LWR_EL2: return "acc_ctrr_c_lwr_el2";
+ case REG_ACC_CTRR_C_UPR_EL2: return "acc_ctrr_c_upr_el2";
+ case REG_ACC_CTRR_D_LWR_EL2: return "acc_ctrr_d_lwr_el2";
+ case REG_ACC_CTRR_D_UPR_EL2: return "acc_ctrr_d_upr_el2";
+ case REG_ACC_CTXR_A_LWR_EL2: return "acc_ctxr_a_lwr_el2";
+ case REG_ACC_CTXR_A_UPR_EL2: return "acc_ctxr_a_upr_el2";
+ case REG_ACC_CTXR_B_LWR_EL2: return "acc_ctxr_b_lwr_el2";
+ case REG_ACC_CTXR_B_UPR_EL2: return "acc_ctxr_b_upr_el2";
+ case REG_ACC_CTXR_C_LWR_EL2: return "acc_ctxr_c_lwr_el2";
+ case REG_ACC_CTXR_C_UPR_EL2: return "acc_ctxr_c_upr_el2";
+ case REG_ACC_CTXR_D_LWR_EL2: return "acc_ctxr_d_lwr_el2";
+ case REG_ACC_CTXR_D_UPR_EL2: return "acc_ctxr_d_upr_el2";
+ case REG_ACC_CTRR_C_CTL_EL2: return "acc_ctrr_c_ctl_el2";
+ case REG_ACC_CTRR_D_CTL_EL2: return "acc_ctrr_d_ctl_el2";
+ case REG_ACC_CTXR_A_CTL_EL2: return "acc_ctxr_a_ctl_el2";
+ case REG_ACC_CTXR_B_CTL_EL2: return "acc_ctxr_b_ctl_el2";
+ case REG_ACC_CTXR_C_CTL_EL2: return "acc_ctxr_c_ctl_el2";
+ case REG_ACC_CTXR_D_CTL_EL2: return "acc_ctxr_d_ctl_el2";
+ case REG_VBAR_EL21: return "vbar_el21";
+ case REG_RVBAR_EL1: return "rvbar_el1";
+ case REG_RMR_EL1: return "rmr_el1";
+ case REG_ISR_EL1: return "isr_el1";
+ case REG_DISR_EL1: return "disr_el1";
+ case REG_ICV_IAR0_EL1: return "icv_iar0_el1";
+ case REG_ICV_EOIR0_EL1: return "icv_eoir0_el1";
+ case REG_ICV_HPPIR0_EL1: return "icv_hppir0_el1";
+ case REG_ICV_BPR0_EL1: return "icv_bpr0_el1";
+ case REG_ICC_AP0R0_EL1: return "icc_ap0r0_el1";
+ case REG_ICC_AP0R1_EL1: return "icc_ap0r1_el1";
+ case REG_ICC_AP0R2_EL1: return "icc_ap0r2_el1";
+ case REG_ICC_AP0R3_EL1: return "icc_ap0r3_el1";
+ case REG_ICC_AP1R0_EL1: return "icc_ap1r0_el1";
+ case REG_ICC_AP1R1_EL1: return "icc_ap1r1_el1";
+ case REG_ICC_AP1R2_EL1: return "icc_ap1r2_el1";
+ case REG_ICC_AP1R3_EL1: return "icc_ap1r3_el1";
+ case REG_ICV_DIR_EL1: return "icv_dir_el1";
+ case REG_ICV_RPR_EL1: return "icv_rpr_el1";
+ case REG_ICC_SGI1R_EL1: return "icc_sgi1r_el1";
+ case REG_ICC_ASGI1R_EL1: return "icc_asgi1r_el1";
+ case REG_ICC_SGI0R_EL1: return "icc_sgi0r_el1";
+ case REG_ICV_IAR1_EL1: return "icv_iar1_el1";
+ case REG_ICV_EOIR1_EL1: return "icv_eoir1_el1";
+ case REG_ICV_HPPIR1_EL1: return "icv_hppir1_el1";
+ case REG_ICV_BPR1_EL1: return "icv_bpr1_el1";
+ case REG_ICV_CTLR_EL1: return "icv_ctlr_el1";
+ case REG_ICC_SRE_EL1: return "icc_sre_el1";
+ case REG_ICV_IGRPEN0_EL1: return "icv_igrpen0_el1";
+ case REG_ICV_IGRPEN1_EL1: return "icv_igrpen1_el1";
+ case REG_ICC_SEIEN_EL1: return "icc_seien_el1";
+ case REG_CONTEXTIDR_EL21: return "contextidr_el21";
+ case REG_TPIDR_EL1: return "tpidr_el1";
+ case REG_SCXTNUM_EL21: return "scxtnum_el21";
+ case REG_REDIR_CNTKCTL_EL1: return "redir_cntkctl_el1";
+ case REG_HID0: return "hid0";
+ case REG_HID25: return "hid25";
+ case REG_HID26: return "hid26";
+ case REG_HID27: return "hid27";
+ case REG_HID28: return "hid28";
+ case REG_HID29: return "hid29";
+ case REG_HID34: return "hid34";
+ case REG_HID1: return "hid1";
+ case REG_HID21: return "hid21";
+ case REG_BIUVCSCUPCMDCRD: return "biuvcscupcmdcrd";
+ case REG_BIUVCSCUPDATCRD: return "biuvcscupdatcrd";
+ case REG_HID2: return "hid2";
+ case REG_HID30: return "hid30";
+ case REG_HID31: return "hid31";
+ case REG_HID32: return "hid32";
+ case REG_HID33: return "hid33";
+ case REG_HID3: return "hid3";
+ case REG_BIUVCSCUPCMDCRDC2: return "biuvcscupcmdcrdc2";
+ case REG_BIUVCSCUPDATCRDC2: return "biuvcscupdatcrdc2";
+ case REG_HID4: return "hid4";
+ case REG_HID5: return "hid5";
+ case REG_HID6: return "hid6";
+ case REG_HID7: return "hid7";
+ case REG_HID8: return "hid8";
+ case REG_HID9: return "hid9";
+ case REG_HID10: return "hid10";
+ case REG_BLOCK_CMAINT_CFG: return "block_cmaint_cfg";
+ case REG_HID11: return "hid11";
+ case REG_HID18: return "hid18";
+ case REG_HID36: return "hid36";
+ case REG_HID37: return "hid37";
+ case REG_HID12: return "hid12";
+ case REG_HID15: return "hid15";
+ case REG_HID19: return "hid19";
+ case REG_BIU_TLIMIT: return "biu_tlimit";
+ case REG_HID13: return "hid13";
+ case REG_HID_RCTX_G0CTL: return "hid_rctx_g0ctl";
+ case REG_HID_RCTX_G1CTL: return "hid_rctx_g1ctl";
+ case REG_HID14: return "hid14";
+ case REG_HID16: return "hid16";
+ case REG_LLC_WRR2: return "llc_wrr2";
+ case REG_BIU_AFI_CFG: return "biu_afi_cfg";
+ case REG_HID17: return "hid17";
+ case REG_HID24: return "hid24";
+ case REG_HID35: return "hid35";
+ case REG_CCSIDRPL1_I_EL1: return "ccsidrpl1_i_el1";
+ case REG_CLIDR_EL1: return "clidr_el1";
+ case REG_SMIDR_EL1: return "smidr_el1";
+ case REG_AIDR_EL1: return "aidr_el1";
+ case REG_PMCR0_EL1: return "pmcr0_el1";
+ case REG_APPL_CONTEXTPTR: return "appl_contextptr";
+ case REG_LD_LATPROF_CTL_EL21: return "ld_latprof_ctl_el21";
+ case REG_AON_CPU_MSTALL_CTL01_EL1: return "aon_cpu_mstall_ctl01_el1";
+ case REG_PM_MEMFLT_CTL23_EL1: return "pm_memflt_ctl23_el1";
+ case REG_REDIR_ACNTV_CTL_EL0: return "redir_acntv_ctl_el0";
+ case REG_LCL_ACNTVCTSS_NOREDIR_EL0: return "lcl_acntvctss_noredir_el0";
+ case REG_PMCR1_EL21: return "pmcr1_el21";
+ case REG_LD_LATPROF_CTR_EL1: return "ld_latprof_ctr_el1";
+ case REG_AON_CPU_MSTALL_CTL23_EL1: return "aon_cpu_mstall_ctl23_el1";
+ case REG_PM_MEMFLT_CTL45_EL1: return "pm_memflt_ctl45_el1";
+ case REG_AGTCNTRDIR_EL21: return "agtcntrdir_el21";
+ case REG_AGTCNTKCTL_NOREDIR_EL1: return "agtcntkctl_noredir_el1";
+ case REG_PMCR2_EL1: return "pmcr2_el1";
+ case REG_LD_LATPROF_STS_EL1: return "ld_latprof_sts_el1";
+ case REG_AON_CPU_MSTALL_CTL45_EL1: return "aon_cpu_mstall_ctl45_el1";
+ case REG_REDIR_ACNTHP_CVAL_EL2: return "redir_acnthp_cval_el2";
+ case REG_LCL_CNTVCT_NOREDIR_EL0: return "lcl_cntvct_noredir_el0";
+ case REG_AGTCNTP_CVAL_NOREDIR_EL0: return "agtcntp_cval_noredir_el0";
+ case REG_PMCR3_EL1: return "pmcr3_el1";
+ case REG_LD_LATPROF_INF_EL1: return "ld_latprof_inf_el1";
+ case REG_AON_CPU_MSTALL_CTL67_EL1: return "aon_cpu_mstall_ctl67_el1";
+ case REG_REDIR_ACNTHP_TVAL_EL2: return "redir_acnthp_tval_el2";
+ case REG_LCL_CNTPCTSS_NOREDIR_EL0: return "lcl_cntpctss_noredir_el0";
+ case REG_AGTCNTP_TVAL_NOREDIR_EL0: return "agtcntp_tval_noredir_el0";
+ case REG_PMCR4_EL1: return "pmcr4_el1";
+ case REG_LD_LATPROF_CTL_EL2: return "ld_latprof_ctl_el2";
+ case REG_AON_CPU_MEMFLT_CTL01_EL1: return "aon_cpu_memflt_ctl01_el1";
+ case REG_REDIR_ACNTHP_CTL_EL2: return "redir_acnthp_ctl_el2";
+ case REG_LCL_CNTVCTSS_NOREDIR_EL0: return "lcl_cntvctss_noredir_el0";
+ case REG_AGTCNTP_CTL_NOREDIR_EL0: return "agtcntp_ctl_noredir_el0";
+ case REG_PMESR0_EL1: return "pmesr0_el1";
+ case REG_LD_LATPROF_CMD_EL1: return "ld_latprof_cmd_el1";
+ case REG_AON_CPU_MEMFLT_CTL23_EL1: return "aon_cpu_memflt_ctl23_el1";
+ case REG_REDIR_ACNTHV_CVAL_EL2: return "redir_acnthv_cval_el2";
+ case REG_AGTCNTV_CVAL_NOREDIR_EL0: return "agtcntv_cval_noredir_el0";
+ case REG_PMESR1_EL1: return "pmesr1_el1";
+ case REG_PMCR1_EL2: return "pmcr1_el2";
+ case REG_AON_CPU_MEMFLT_CTL45_EL1: return "aon_cpu_memflt_ctl45_el1";
+ case REG_REDIR_ACNTHV_TVAL_EL2: return "redir_acnthv_tval_el2";
+ case REG_CNTKCTL_NOREDIR_EL1: return "cntkctl_noredir_el1";
+ case REG_AGTCNTV_TVAL_NOREDIR_EL0: return "agtcntv_tval_noredir_el0";
+ case REG_OPMAT0_EL1: return "opmat0_el1";
+ case REG_PMCR1_EL12: return "pmcr1_el12";
+ case REG_AON_CPU_MEMFLT_CTL67_EL1: return "aon_cpu_memflt_ctl67_el1";
+ case REG_REDIR_ACNTHV_CTL_EL2: return "redir_acnthv_ctl_el2";
+ case REG_CNTP_CVAL_NOREDIR_EL0: return "cntp_cval_noredir_el0";
+ case REG_AGTCNTV_CTL_NOREDIR_EL0: return "agtcntv_ctl_noredir_el0";
+ case REG_OPMAT1_EL1: return "opmat1_el1";
+ case REG_PMCR1_GL12: return "pmcr1_gl12";
+ case REG_AON_CPU_MSTALL_CTR0_EL1: return "aon_cpu_mstall_ctr0_el1";
+ case REG_REDIR_ACNTFRQ_EL0: return "redir_acntfrq_el0";
+ case REG_CNTP_TVAL_NOREDIR_EL0: return "cntp_tval_noredir_el0";
+ case REG_LCL_CNTPCT_NOREDIR_EL0: return "lcl_cntpct_noredir_el0";
+ case REG_OPMSK0_EL1: return "opmsk0_el1";
+ case REG_LD_LATPROF_CTL_EL12: return "ld_latprof_ctl_el12";
+ case REG_AON_CPU_MSTALL_CTR1_EL1: return "aon_cpu_mstall_ctr1_el1";
+ case REG_AGTCNTVOFF_EL2: return "agtcntvoff_el2";
+ case REG_CNTP_CTL_NOREDIR_EL0: return "cntp_ctl_noredir_el0";
+ case REG_CNTV_CTL_NOREDIR_EL0: return "cntv_ctl_noredir_el0";
+ case REG_OPMSK1_EL1: return "opmsk1_el1";
+ case REG_LD_LATPROF_INF_EL2: return "ld_latprof_inf_el2";
+ case REG_AON_CPU_MSTALL_CTR2_EL1: return "aon_cpu_mstall_ctr2_el1";
+ case REG_REDIR_ACNTP_CVAL_EL0: return "redir_acntp_cval_el0";
+ case REG_CNTV_CVAL_NOREDIR_EL0: return "cntv_cval_noredir_el0";
+ case REG_LCL_ACNTPCT_NOREDIR_EL0: return "lcl_acntpct_noredir_el0";
+ case REG_AON_CPU_MSTALL_CTR3_EL1: return "aon_cpu_mstall_ctr3_el1";
+ case REG_REDIR_ACNTP_TVAL_EL0: return "redir_acntp_tval_el0";
+ case REG_CNTV_TVAL_NOREDIR_EL0: return "cntv_tval_noredir_el0";
+ case REG_VMSA_HV_LOCK_EL2: return "vmsa_hv_lock_el2";
+ case REG_PMSWCTRL_EL1: return "pmswctrl_el1";
+ case REG_PMCR5_EL0: return "pmcr5_el0";
+ case REG_AON_CPU_MSTALL_CTR4_EL1: return "aon_cpu_mstall_ctr4_el1";
+ case REG_PMCOMPARE0_EL1: return "pmcompare0_el1";
+ case REG_PMCOMPARE1_EL1: return "pmcompare1_el1";
+ case REG_VMSA_NV_LOCK_EL2: return "vmsa_nv_lock_el2";
+ case REG_PMSR_EL1: return "pmsr_el1";
+ case REG_AON_CPU_MSTALL_CTR5_EL1: return "aon_cpu_mstall_ctr5_el1";
+ case REG_REDIR_ACNTP_CTL_EL0: return "redir_acntp_ctl_el0";
+ case REG_PMCOMPARE5_EL1: return "pmcompare5_el1";
+ case REG_PMCOMPARE6_EL1: return "pmcompare6_el1";
+ case REG_PMCOMPARE7_EL1: return "pmcompare7_el1";
+ case REG_PMCR_BVRNG4_EL1: return "pmcr_bvrng4_el1";
+ case REG_PM_PMI_PC: return "pm_pmi_pc";
+ case REG_AON_CPU_MSTALL_CTR6_EL1: return "aon_cpu_mstall_ctr6_el1";
+ case REG_REDIR_ACNTV_CVAL_EL0: return "redir_acntv_cval_el0";
+ case REG_LCL_ACNTVCT_NOREDIR_EL0: return "lcl_acntvct_noredir_el0";
+ case REG_PMCR_BVRNG5_EL1: return "pmcr_bvrng5_el1";
+ case REG_AON_CPU_MSTALL_CTR7_EL1: return "aon_cpu_mstall_ctr7_el1";
+ case REG_REDIR_ACNTV_TVAL_EL0: return "redir_acntv_tval_el0";
+ case REG_LCL_ACNTPCTSS_NOREDIR_EL0: return "lcl_acntpctss_noredir_el0";
+ case REG_CSSELR_EL1: return "csselr_el1";
+ case REG_PMC0: return "pmc0";
+ case REG_UPMCFILTER0: return "upmcfilter0";
+ case REG_UPMCFILTER1: return "upmcfilter1";
+ case REG_UPMCFILTER2: return "upmcfilter2";
+ case REG_UPMCFILTER3: return "upmcfilter3";
+ case REG_UPMCFILTER4: return "upmcfilter4";
+ case REG_UPMCFILTER5: return "upmcfilter5";
+ case REG_UPMCFILTER6: return "upmcfilter6";
+ case REG_PMC1: return "pmc1";
+ case REG_UPMCFILTER7: return "upmcfilter7";
+ case REG_PMC2: return "pmc2";
+ case REG_PMC3: return "pmc3";
+ case REG_PMC4: return "pmc4";
+ case REG_PMC5: return "pmc5";
+ case REG_PMC6: return "pmc6";
+ case REG_PMC7: return "pmc7";
+ case REG_PMC8: return "pmc8";
+ case REG_PMC9: return "pmc9";
+ case REG_PMTRHLD6_EL1: return "pmtrhld6_el1";
+ case REG_PMTRHLD4_EL1: return "pmtrhld4_el1";
+ case REG_PMTRHLD2_EL1: return "pmtrhld2_el1";
+ case REG_PMMMAP_EL1: return "pmmmap_el1";
+ case REG_CTR_EL0: return "ctr_el0";
+ case REG_DCZID_EL0: return "dczid_el0";
+ case REG_NZCV: return "nzcv";
+ case REG_DAIF: return "daif";
+ case REG_SVCR: return "svcr";
+ case REG_DIT: return "dit";
+ case REG_SSBS: return "ssbs";
+ case REG_TCO: return "tco";
+ case REG_FPCR: return "fpcr";
+ case REG_FPSR: return "fpsr";
+ case REG_DSPSR_EL0: return "dspsr_el0";
+ case REG_DLR_EL0: return "dlr_el0";
+ case REG_PMCR_EL0: return "pmcr_el0";
+ case REG_PMCNTENSET_EL0: return "pmcntenset_el0";
+ case REG_PMCNTENCLR_EL0: return "pmcntenclr_el0";
+ case REG_PMOVSCLR_EL0: return "pmovsclr_el0";
+ case REG_PMSWINC_EL0: return "pmswinc_el0";
+ case REG_PMSELR_EL0: return "pmselr_el0";
+ case REG_PMCCNTR_EL0: return "pmccntr_el0";
+ case REG_PMXEVTYPER_EL0: return "pmxevtyper_el0";
+ case REG_PMXEVCNTR_EL0: return "pmxevcntr_el0";
+ case REG_DAIFCLR: return "daifclr";
+ case REG_PMUSERENR_EL0: return "pmuserenr_el0";
+ case REG_PMOVSSET_EL0: return "pmovsset_el0";
+ case REG_TPIDR_EL0: return "tpidr_el0";
+ case REG_TPIDRRO_EL0: return "tpidrro_el0";
+ case REG_TPIDR2_EL0: return "tpidr2_el0";
+ case REG_SCXTNUM_EL0: return "scxtnum_el0";
+ case REG_AMCR_EL0: return "amcr_el0";
+ case REG_AMUSERENR_EL0: return "amuserenr_el0";
+ case REG_AMCNTENCLR0_EL0: return "amcntenclr0_el0";
+ case REG_AMCNTENSET0_EL0: return "amcntenset0_el0";
+ case REG_AMCNTENCLR1_EL0: return "amcntenclr1_el0";
+ case REG_AMCNTENSET1_EL0: return "amcntenset1_el0";
+ case REG_AMEVCNTR00_EL0: return "amevcntr00_el0";
+ case REG_AMEVCNTR01_EL0: return "amevcntr01_el0";
+ case REG_AMEVCNTR02_EL0: return "amevcntr02_el0";
+ case REG_AMEVCNTR03_EL0: return "amevcntr03_el0";
+ case REG_AMEVCNTR10_EL0: return "amevcntr10_el0";
+ case REG_AMEVCNTR11_EL0: return "amevcntr11_el0";
+ case REG_AMEVCNTR12_EL0: return "amevcntr12_el0";
+ case REG_AMEVCNTR13_EL0: return "amevcntr13_el0";
+ case REG_AMEVCNTR14_EL0: return "amevcntr14_el0";
+ case REG_AMEVCNTR15_EL0: return "amevcntr15_el0";
+ case REG_AMEVCNTR16_EL0: return "amevcntr16_el0";
+ case REG_AMEVCNTR17_EL0: return "amevcntr17_el0";
+ case REG_AMEVCNTR18_EL0: return "amevcntr18_el0";
+ case REG_AMEVCNTR19_EL0: return "amevcntr19_el0";
+ case REG_AMEVCNTR110_EL0: return "amevcntr110_el0";
+ case REG_AMEVCNTR111_EL0: return "amevcntr111_el0";
+ case REG_AMEVCNTR112_EL0: return "amevcntr112_el0";
+ case REG_AMEVCNTR113_EL0: return "amevcntr113_el0";
+ case REG_AMEVCNTR114_EL0: return "amevcntr114_el0";
+ case REG_AMEVCNTR115_EL0: return "amevcntr115_el0";
+ case REG_AMEVTYPER10_EL0: return "amevtyper10_el0";
+ case REG_AMEVTYPER11_EL0: return "amevtyper11_el0";
+ case REG_AMEVTYPER12_EL0: return "amevtyper12_el0";
+ case REG_AMEVTYPER13_EL0: return "amevtyper13_el0";
+ case REG_AMEVTYPER14_EL0: return "amevtyper14_el0";
+ case REG_AMEVTYPER15_EL0: return "amevtyper15_el0";
+ case REG_AMEVTYPER16_EL0: return "amevtyper16_el0";
+ case REG_AMEVTYPER17_EL0: return "amevtyper17_el0";
+ case REG_AMEVTYPER18_EL0: return "amevtyper18_el0";
+ case REG_AMEVTYPER19_EL0: return "amevtyper19_el0";
+ case REG_AMEVTYPER110_EL0: return "amevtyper110_el0";
+ case REG_AMEVTYPER111_EL0: return "amevtyper111_el0";
+ case REG_AMEVTYPER112_EL0: return "amevtyper112_el0";
+ case REG_AMEVTYPER113_EL0: return "amevtyper113_el0";
+ case REG_AMEVTYPER114_EL0: return "amevtyper114_el0";
+ case REG_AMEVTYPER115_EL0: return "amevtyper115_el0";
+ case REG_REDIR_CNTFRQ_EL0: return "redir_cntfrq_el0";
+ case REG_REDIR_LCL_CNTPCT_EL0: return "redir_lcl_cntpct_el0";
+ case REG_REDIR_LCL_CNTVCT_EL0: return "redir_lcl_cntvct_el0";
+ case REG_REDIR_LCL_CNTPCTSS_EL0: return "redir_lcl_cntpctss_el0";
+ case REG_REDIR_LCL_CNTVCTSS_EL0: return "redir_lcl_cntvctss_el0";
+ case REG_REDIR_CNTP_TVAL_EL0: return "redir_cntp_tval_el0";
+ case REG_REDIR_CNTP_CTL_EL0: return "redir_cntp_ctl_el0";
+ case REG_REDIR_CNTP_CVAL_EL0: return "redir_cntp_cval_el0";
+ case REG_REDIR_CNTV_TVAL_EL0: return "redir_cntv_tval_el0";
+ case REG_REDIR_CNTV_CTL_EL0: return "redir_cntv_ctl_el0";
+ case REG_REDIR_CNTV_CVAL_EL0: return "redir_cntv_cval_el0";
+ case REG_PMEVCNTR0_EL0: return "pmevcntr0_el0";
+ case REG_PMEVCNTR1_EL0: return "pmevcntr1_el0";
+ case REG_PMEVCNTR2_EL0: return "pmevcntr2_el0";
+ case REG_PMEVCNTR3_EL0: return "pmevcntr3_el0";
+ case REG_PMEVCNTR4_EL0: return "pmevcntr4_el0";
+ case REG_PMEVCNTR5_EL0: return "pmevcntr5_el0";
+ case REG_PMEVCNTR6_EL0: return "pmevcntr6_el0";
+ case REG_PMEVCNTR7_EL0: return "pmevcntr7_el0";
+ case REG_PMEVCNTR8_EL0: return "pmevcntr8_el0";
+ case REG_PMEVCNTR9_EL0: return "pmevcntr9_el0";
+ case REG_PMEVCNTR10_EL0: return "pmevcntr10_el0";
+ case REG_PMEVCNTR11_EL0: return "pmevcntr11_el0";
+ case REG_PMEVCNTR12_EL0: return "pmevcntr12_el0";
+ case REG_PMEVCNTR13_EL0: return "pmevcntr13_el0";
+ case REG_PMEVCNTR14_EL0: return "pmevcntr14_el0";
+ case REG_PMEVCNTR15_EL0: return "pmevcntr15_el0";
+ case REG_PMEVCNTR16_EL0: return "pmevcntr16_el0";
+ case REG_PMEVCNTR17_EL0: return "pmevcntr17_el0";
+ case REG_PMEVCNTR18_EL0: return "pmevcntr18_el0";
+ case REG_PMEVCNTR19_EL0: return "pmevcntr19_el0";
+ case REG_PMEVCNTR20_EL0: return "pmevcntr20_el0";
+ case REG_PMEVCNTR21_EL0: return "pmevcntr21_el0";
+ case REG_PMEVCNTR22_EL0: return "pmevcntr22_el0";
+ case REG_PMEVCNTR23_EL0: return "pmevcntr23_el0";
+ case REG_PMEVCNTR24_EL0: return "pmevcntr24_el0";
+ case REG_PMEVCNTR25_EL0: return "pmevcntr25_el0";
+ case REG_PMEVCNTR26_EL0: return "pmevcntr26_el0";
+ case REG_PMEVCNTR27_EL0: return "pmevcntr27_el0";
+ case REG_PMEVCNTR28_EL0: return "pmevcntr28_el0";
+ case REG_PMEVCNTR29_EL0: return "pmevcntr29_el0";
+ case REG_PMEVCNTR30_EL0: return "pmevcntr30_el0";
+ case REG_PMEVTYPER0_EL0: return "pmevtyper0_el0";
+ case REG_PMEVTYPER1_EL0: return "pmevtyper1_el0";
+ case REG_PMEVTYPER2_EL0: return "pmevtyper2_el0";
+ case REG_PMEVTYPER3_EL0: return "pmevtyper3_el0";
+ case REG_PMEVTYPER4_EL0: return "pmevtyper4_el0";
+ case REG_PMEVTYPER5_EL0: return "pmevtyper5_el0";
+ case REG_PMEVTYPER6_EL0: return "pmevtyper6_el0";
+ case REG_PMEVTYPER7_EL0: return "pmevtyper7_el0";
+ case REG_PMEVTYPER8_EL0: return "pmevtyper8_el0";
+ case REG_PMEVTYPER9_EL0: return "pmevtyper9_el0";
+ case REG_PMEVTYPER10_EL0: return "pmevtyper10_el0";
+ case REG_PMEVTYPER11_EL0: return "pmevtyper11_el0";
+ case REG_PMEVTYPER12_EL0: return "pmevtyper12_el0";
+ case REG_PMEVTYPER13_EL0: return "pmevtyper13_el0";
+ case REG_PMEVTYPER14_EL0: return "pmevtyper14_el0";
+ case REG_PMEVTYPER15_EL0: return "pmevtyper15_el0";
+ case REG_PMEVTYPER16_EL0: return "pmevtyper16_el0";
+ case REG_PMEVTYPER17_EL0: return "pmevtyper17_el0";
+ case REG_PMEVTYPER18_EL0: return "pmevtyper18_el0";
+ case REG_PMEVTYPER19_EL0: return "pmevtyper19_el0";
+ case REG_PMEVTYPER20_EL0: return "pmevtyper20_el0";
+ case REG_PMEVTYPER21_EL0: return "pmevtyper21_el0";
+ case REG_PMEVTYPER22_EL0: return "pmevtyper22_el0";
+ case REG_PMEVTYPER23_EL0: return "pmevtyper23_el0";
+ case REG_PMEVTYPER24_EL0: return "pmevtyper24_el0";
+ case REG_PMEVTYPER25_EL0: return "pmevtyper25_el0";
+ case REG_PMEVTYPER26_EL0: return "pmevtyper26_el0";
+ case REG_PMEVTYPER27_EL0: return "pmevtyper27_el0";
+ case REG_PMEVTYPER28_EL0: return "pmevtyper28_el0";
+ case REG_PMEVTYPER29_EL0: return "pmevtyper29_el0";
+ case REG_PMEVTYPER30_EL0: return "pmevtyper30_el0";
+ case REG_PMCCFILTR_EL0: return "pmccfiltr_el0";
+ case REG_LSU_ERR_STS: return "lsu_err_sts";
+ case REG_AFLATCTL1_EL1: return "aflatctl1_el1";
+ case REG_AFLATVALBIN0_EL1: return "aflatvalbin0_el1";
+ case REG_AFLATINFLO_EL1: return "aflatinflo_el1";
+ case REG_LSU_ERR_CTL: return "lsu_err_ctl";
+ case REG_AFLATCTL2_EL1: return "aflatctl2_el1";
+ case REG_AFLATVALBIN1_EL1: return "aflatvalbin1_el1";
+ case REG_AFLATINFHI_EL1: return "aflatinfhi_el1";
+ case REG_AFLATCTL3_EL1: return "aflatctl3_el1";
+ case REG_AFLATVALBIN2_EL1: return "aflatvalbin2_el1";
+ case REG_AFLATCTL4_EL1: return "aflatctl4_el1";
+ case REG_AFLATVALBIN3_EL1: return "aflatvalbin3_el1";
+ case REG_LLC_FILL_CTL: return "llc_fill_ctl";
+ case REG_AFLATCTL5_LO_EL1: return "aflatctl5_lo_el1";
+ case REG_AFLATVALBIN4_EL1: return "aflatvalbin4_el1";
+ case REG_AFLATCTL5_HI_EL1: return "aflatctl5_hi_el1";
+ case REG_LLC_FILL_DAT: return "llc_fill_dat";
+ case REG_AFLATVALBIN5_EL1: return "aflatvalbin5_el1";
+ case REG_AFLATVALBIN6_EL1: return "aflatvalbin6_el1";
+ case REG_LLC_RAM_CONFIG: return "llc_ram_config";
+ case REG_AFLATVALBIN7_EL1: return "aflatvalbin7_el1";
+ case REG_LLC_ERR_STS: return "llc_err_sts";
+ case REG_CMAINT_BCAST_LIST_0: return "cmaint_bcast_list_0";
+ case REG_CMAINT_BCAST_LIST_1: return "cmaint_bcast_list_1";
+ case REG_CMAINT_BCAST_CTL: return "cmaint_bcast_ctl";
+ case REG_LLC_ERR_ADR: return "llc_err_adr";
+ case REG_LLC_ERR_CTL: return "llc_err_ctl";
+ case REG_LLC_ERR_INJ: return "llc_err_inj";
+ case REG_LLC_ERR_INF: return "llc_err_inf";
+ case REG_USERTAGSEL_EL1: return "usertagsel_el1";
+ case REG_UUSERTAG_EL0: return "uusertag_el0";
+ case REG_KUSERTAG_EL1: return "kusertag_el1";
+ case REG_HUSERTAG_EL2: return "husertag_el2";
+ case REG_LLC_TRACE_CTL0: return "llc_trace_ctl0";
+ case REG_LLC_TRACE_CTL1: return "llc_trace_ctl1";
+ case REG_LLC_UP_REQ_VC: return "llc_up_req_vc";
+ case REG_LLC_UP_REQ_VC_THRESH: return "llc_up_req_vc_thresh";
+ case REG_LLC_UP_REQ_VC_2: return "llc_up_req_vc_2";
+ case REG_LLC_UP_REQ_VC_THRESH_2: return "llc_up_req_vc_thresh_2";
+ case REG_LLC_DRAM_HASH0: return "llc_dram_hash0";
+ case REG_LLC_DRAM_HASH1: return "llc_dram_hash1";
+ case REG_LLC_DRAM_HASH2: return "llc_dram_hash2";
+ case REG_LLC_DRAM_HASH3: return "llc_dram_hash3";
+ case REG_LLC_TRACE_CTL2: return "llc_trace_ctl2";
+ case REG_LLC_DRAM_HASH4: return "llc_dram_hash4";
+ case REG_LLC_UP_REQ_VC_3: return "llc_up_req_vc_3";
+ case REG_LLC_UP_REQ_VC_THRESH_3: return "llc_up_req_vc_thresh_3";
+ case REG_LLC_UP_REQ_VC_4: return "llc_up_req_vc_4";
+ case REG_LLC_UP_REQ_VC_THRESH_4: return "llc_up_req_vc_thresh_4";
+ case REG_LLC_HASH0: return "llc_hash0";
+ case REG_LLC_HASH1: return "llc_hash1";
+ case REG_LLC_HASH2: return "llc_hash2";
+ case REG_LLC_HASH3: return "llc_hash3";
+ case REG_LLC_WRR: return "llc_wrr";
+ case REG_LLC_DRAM_HASH5: return "llc_dram_hash5";
+ case REG_LLC_DRAM_HASH6: return "llc_dram_hash6";
+ case REG_VPIDR_EL2: return "vpidr_el2";
+ case REG_VMPIDR_EL2: return "vmpidr_el2";
+ case REG_SCTLR_EL2: return "sctlr_el2";
+ case REG_ACTLR_EL2: return "actlr_el2";
+ case REG_HCR_EL2: return "hcr_el2";
+ case REG_MDCR_EL2: return "mdcr_el2";
+ case REG_CPTR_EL2: return "cptr_el2";
+ case REG_HSTR_EL2: return "hstr_el2";
+ case REG_HFGRTR_EL2: return "hfgrtr_el2";
+ case REG_HFGWTR_EL2: return "hfgwtr_el2";
+ case REG_HFGITR_EL2: return "hfgitr_el2";
+ case REG_HACR_EL2: return "hacr_el2";
+ case REG_TRFCR_EL2: return "trfcr_el2";
+ case REG_HCRX_EL2: return "hcrx_el2";
+ case REG_SMPRIMAP_EL2: return "smprimap_el2";
+ case REG_SMCR_EL2: return "smcr_el2";
+ case REG_SDER32_EL2: return "sder32_el2";
+ case REG_TTBR0_EL2: return "ttbr0_el2";
+ case REG_TTBR1_EL2: return "ttbr1_el2";
+ case REG_TCR_EL2: return "tcr_el2";
+ case REG_VTTBR_EL2: return "vttbr_el2";
+ case REG_VTCR_EL2: return "vtcr_el2";
+ case REG_VNCR_EL2: return "vncr_el2";
+ case REG_VSTTBR_EL2: return "vsttbr_el2";
+ case REG_VSTCR_EL2: return "vstcr_el2";
+ case REG_DACR32_EL2: return "dacr32_el2";
+ case REG_HDFGRTR_EL2: return "hdfgrtr_el2";
+ case REG_HDFGWTR_EL2: return "hdfgwtr_el2";
+ case REG_SPSR_NV_EL21: return "spsr_nv_el21";
+ case REG_ELR_NV_EL21: return "elr_nv_el21";
+ case REG_SP_EL1: return "sp_el1";
+ case REG_SPSR_IRQ: return "spsr_irq";
+ case REG_SPSR_ABT: return "spsr_abt";
+ case REG_SPSR_UND: return "spsr_und";
+ case REG_SPSR_FIQ: return "spsr_fiq";
+ case REG_IFSR32_EL2: return "ifsr32_el2";
+ case REG_AFSR0_EL2: return "afsr0_el2";
+ case REG_AFSR1_EL2: return "afsr1_el2";
+ case REG_ESR_NV_EL21: return "esr_nv_el21";
+ case REG_VSESR_EL2: return "vsesr_el2";
+ case REG_FPEXC32_EL2: return "fpexc32_el2";
+ case REG_TFSR_EL2: return "tfsr_el2";
+ case REG_FAR_NV_EL21: return "far_nv_el21";
+ case REG_HPFAR_EL2: return "hpfar_el2";
+ case REG_PMSCR_EL2: return "pmscr_el2";
+ case REG_MAIR_EL2: return "mair_el2";
+ case REG_AMAIR_EL2: return "amair_el2";
+ case REG_MPAMHCR_EL2: return "mpamhcr_el2";
+ case REG_MPAMVPMV_EL2: return "mpamvpmv_el2";
+ case REG_MPAM2_EL2: return "mpam2_el2";
+ case REG_MPAMVPM0_EL2: return "mpamvpm0_el2";
+ case REG_MPAMVPM1_EL2: return "mpamvpm1_el2";
+ case REG_MPAMVPM2_EL2: return "mpamvpm2_el2";
+ case REG_MPAMVPM3_EL2: return "mpamvpm3_el2";
+ case REG_MPAMVPM4_EL2: return "mpamvpm4_el2";
+ case REG_MPAMVPM5_EL2: return "mpamvpm5_el2";
+ case REG_MPAMVPM6_EL2: return "mpamvpm6_el2";
+ case REG_MPAMVPM7_EL2: return "mpamvpm7_el2";
+ case REG_VBAR_EL2: return "vbar_el2";
+ case REG_RVBAR_EL2: return "rvbar_el2";
+ case REG_RMR_EL2: return "rmr_el2";
+ case REG_VDISR_EL2: return "vdisr_el2";
+ case REG_ICH_AP0R0_EL2: return "ich_ap0r0_el2";
+ case REG_ICH_AP0R1_EL2: return "ich_ap0r1_el2";
+ case REG_ICH_AP0R2_EL2: return "ich_ap0r2_el2";
+ case REG_ICH_AP0R3_EL2: return "ich_ap0r3_el2";
+ case REG_ICH_AP1R0_EL2: return "ich_ap1r0_el2";
+ case REG_ICH_AP1R1_EL2: return "ich_ap1r1_el2";
+ case REG_ICH_AP1R2_EL2: return "ich_ap1r2_el2";
+ case REG_ICH_AP1R3_EL2: return "ich_ap1r3_el2";
+ case REG_ICH_VSEIR_EL2: return "ich_vseir_el2";
+ case REG_ICC_SRE_EL2: return "icc_sre_el2";
+ case REG_ICH_HCR_EL2: return "ich_hcr_el2";
+ case REG_ICH_VTR_EL2: return "ich_vtr_el2";
+ case REG_ICH_MISR_EL2: return "ich_misr_el2";
+ case REG_ICH_EISR_EL2: return "ich_eisr_el2";
+ case REG_ICH_ELRSR_EL2: return "ich_elrsr_el2";
+ case REG_ICH_VMCR_EL2: return "ich_vmcr_el2";
+ case REG_ICH_LR0_EL2: return "ich_lr0_el2";
+ case REG_ICH_LR1_EL2: return "ich_lr1_el2";
+ case REG_ICH_LR2_EL2: return "ich_lr2_el2";
+ case REG_ICH_LR3_EL2: return "ich_lr3_el2";
+ case REG_ICH_LR4_EL2: return "ich_lr4_el2";
+ case REG_ICH_LR5_EL2: return "ich_lr5_el2";
+ case REG_ICH_LR6_EL2: return "ich_lr6_el2";
+ case REG_ICH_LR7_EL2: return "ich_lr7_el2";
+ case REG_ICH_LR8_EL2: return "ich_lr8_el2";
+ case REG_ICH_LR9_EL2: return "ich_lr9_el2";
+ case REG_ICH_LR10_EL2: return "ich_lr10_el2";
+ case REG_ICH_LR11_EL2: return "ich_lr11_el2";
+ case REG_ICH_LR12_EL2: return "ich_lr12_el2";
+ case REG_ICH_LR13_EL2: return "ich_lr13_el2";
+ case REG_ICH_LR14_EL2: return "ich_lr14_el2";
+ case REG_ICH_LR15_EL2: return "ich_lr15_el2";
+ case REG_CONTEXTIDR_EL2: return "contextidr_el2";
+ case REG_TPIDR_EL2: return "tpidr_el2";
+ case REG_SCXTNUM_EL2: return "scxtnum_el2";
+ case REG_CNTVOFF_EL2: return "cntvoff_el2";
+ case REG_REDIR_CNTHCTL_EL2: return "redir_cnthctl_el2";
+ case REG_REDIR_CNTHP_TVAL_EL2: return "redir_cnthp_tval_el2";
+ case REG_REDIR_CNTHP_CTL_EL2: return "redir_cnthp_ctl_el2";
+ case REG_REDIR_CNTHP_CVAL_EL2: return "redir_cnthp_cval_el2";
+ case REG_REDIR_CNTHV_TVAL_EL2: return "redir_cnthv_tval_el2";
+ case REG_REDIR_CNTHV_CTL_EL2: return "redir_cnthv_ctl_el2";
+ case REG_REDIR_CNTHV_CVAL_EL2: return "redir_cnthv_cval_el2";
+ case REG_CNTHVS_TVAL_EL2: return "cnthvs_tval_el2";
+ case REG_CNTHVS_CTL_EL2: return "cnthvs_ctl_el2";
+ case REG_CNTHVS_CVAL_EL2: return "cnthvs_cval_el2";
+ case REG_CNTHPS_TVAL_EL2: return "cnthps_tval_el2";
+ case REG_CNTHPS_CTL_EL2: return "cnthps_ctl_el2";
+ case REG_CNTHPS_CVAL_EL2: return "cnthps_cval_el2";
+ case REG_FED_ERR_STS: return "fed_err_sts";
+ case REG_FED_ERR_CTL: return "fed_err_ctl";
+ case REG_APCTL_EL21: return "apctl_el21";
+ case REG_KERNKEYLO_EL21: return "kernkeylo_el21";
+ case REG_KERNKEYHI_EL21: return "kernkeyhi_el21";
+ case REG_VMSA_LOCK_EL1: return "vmsa_lock_el1";
+ case REG_AMX_STATE_T_EL1: return "amx_state_t_el1";
+ case REG_AMX_CONFIG_EL21: return "amx_config_el21";
+ case REG_VMSA_LOCK_EL2: return "vmsa_lock_el2";
+ case REG_CTRR_B_UPR_EL21: return "ctrr_b_upr_el21";
+ case REG_CTRR_B_LWR_EL21: return "ctrr_b_lwr_el21";
+ case REG_SP_SETUP_GL21: return "sp_setup_gl21";
+ case REG_SP_SETUP_GL2: return "sp_setup_gl2";
+ case REG_CTRR_B_CTL_EL21: return "ctrr_b_ctl_el21";
+ case REG_CTRR_A_LWR_EL21: return "ctrr_a_lwr_el21";
+ case REG_CTRR_A_UPR_EL21: return "ctrr_a_upr_el21";
+ case REG_CTRR_A_CTL_EL21: return "ctrr_a_ctl_el21";
+ case REG_VMSA_LOCK_EL12: return "vmsa_lock_el12";
+ case REG_AGTCNTV_CTL_EL02: return "agtcntv_ctl_el02";
+ case REG_AMX_STATE_EL1: return "amx_state_el1";
+ case REG_AMX_STATUS_EL1: return "amx_status_el1";
+ case REG_AGTCNTP_CVAL_EL02: return "agtcntp_cval_el02";
+ case REG_REDIR_ACNTP_TVAL_EL02: return "redir_acntp_tval_el02";
+ case REG_AGTCNTP_CTL_EL02: return "agtcntp_ctl_el02";
+ case REG_AGTCNTV_CVAL_EL02: return "agtcntv_cval_el02";
+ case REG_AGTCNTV_TVAL_EL02: return "agtcntv_tval_el02";
+ case REG_AMX_CONFIG_EL12: return "amx_config_el12";
+ case REG_AMX_CONFIG_EL2: return "amx_config_el2";
+ case REG_SPRR_HUPERM_EL0: return "sprr_huperm_el0";
+ case REG_SPRR_VUPERM_EL0: return "sprr_vuperm_el0";
+ case REG_CTRR_A_CTL_EL2: return "ctrr_a_ctl_el2";
+ case REG_CTRR_B_CTL_EL2: return "ctrr_b_ctl_el2";
+ case REG_CTRR_A_LWR_EL2: return "ctrr_a_lwr_el2";
+ case REG_CTRR_A_UPR_EL2: return "ctrr_a_upr_el2";
+ case REG_CTRR_B_LWR_EL2: return "ctrr_b_lwr_el2";
+ case REG_CTRR_B_UPR_EL2: return "ctrr_b_upr_el2";
+ case REG_SPRR_HUMPRR_EL2: return "sprr_humprr_el2";
+ case REG_SPRR_HUPERM_SH01_EL2: return "sprr_huperm_sh01_el2";
+ case REG_SPRR_HUPERM_SH02_EL2: return "sprr_huperm_sh02_el2";
+ case REG_SPRR_HUPERM_SH03_EL2: return "sprr_huperm_sh03_el2";
+ case REG_SPRR_HUPERM_SH04_EL2: return "sprr_huperm_sh04_el2";
+ case REG_SPRR_HUPERM_SH05_EL2: return "sprr_huperm_sh05_el2";
+ case REG_SPRR_HUPERM_SH06_EL2: return "sprr_huperm_sh06_el2";
+ case REG_SPRR_HUPERM_SH07_EL2: return "sprr_huperm_sh07_el2";
+ case REG_SPRR_VUMPRR_EL1: return "sprr_vumprr_el1";
+ case REG_SPRR_VUPERM_SH01_EL1: return "sprr_vuperm_sh01_el1";
+ case REG_SPRR_VUPERM_SH02_EL1: return "sprr_vuperm_sh02_el1";
+ case REG_SPRR_VUPERM_SH03_EL1: return "sprr_vuperm_sh03_el1";
+ case REG_SPRR_VUPERM_SH04_EL1: return "sprr_vuperm_sh04_el1";
+ case REG_SPRR_VUPERM_SH05_EL1: return "sprr_vuperm_sh05_el1";
+ case REG_SPRR_VUPERM_SH06_EL1: return "sprr_vuperm_sh06_el1";
+ case REG_SPRR_VUPERM_SH07_EL1: return "sprr_vuperm_sh07_el1";
+ case REG_CTRR_A_LWR_EL12: return "ctrr_a_lwr_el12";
+ case REG_CTRR_A_UPR_EL12: return "ctrr_a_upr_el12";
+ case REG_CTRR_B_LWR_EL12: return "ctrr_b_lwr_el12";
+ case REG_CTRR_B_UPR_EL12: return "ctrr_b_upr_el12";
+ case REG_CTRR_A_CTL_EL12: return "ctrr_a_ctl_el12";
+ case REG_CTRR_B_CTL_EL12: return "ctrr_b_ctl_el12";
+ case REG_REDIR_ACNTKCTL_EL1: return "redir_acntkctl_el1";
+ case REG_AGTCNTKCTL_EL12: return "agtcntkctl_el12";
+ case REG_PREDAKEYLO_EL1: return "predakeylo_el1";
+ case REG_PREDAKEYHI_EL1: return "predakeyhi_el1";
+ case REG_PREDBKEYLO_EL1: return "predbkeylo_el1";
+ case REG_PREDBKEYHI_EL1: return "predbkeyhi_el1";
+ case REG_SIQ_CFG_EL1: return "siq_cfg_el1";
+ case REG_REDIR_LCL_ACNTPCTSS_EL0: return "redir_lcl_acntpctss_el0";
+ case REG_REDIR_LCL_ACNTVCTSS_EL0: return "redir_lcl_acntvctss_el0";
+ case REG_AVNCR_EL2: return "avncr_el2";
+ case REG_ACC_CTRR_A_LWR_EL2: return "acc_ctrr_a_lwr_el2";
+ case REG_ACC_CTRR_A_UPR_EL2: return "acc_ctrr_a_upr_el2";
+ case REG_ACC_CTRR_B_LWR_EL2: return "acc_ctrr_b_lwr_el2";
+ case REG_ACC_CTRR_B_UPR_EL2: return "acc_ctrr_b_upr_el2";
+ case REG_ACC_CTRR_A_CTL_EL2: return "acc_ctrr_a_ctl_el2";
+ case REG_ACC_CTRR_B_CTL_EL2: return "acc_ctrr_b_ctl_el2";
+ case REG_REDIR_LCL_ACNTPCT_EL0: return "redir_lcl_acntpct_el0";
+ case REG_REDIR_LCL_ACNTVCT_EL0: return "redir_lcl_acntvct_el0";
+ case REG_ACFG_EL1: return "acfg_el1";
+ case REG_AHCR_EL2: return "ahcr_el2";
+ case REG_APL_INTSTATUS_EL21: return "apl_intstatus_el21";
+ case REG_APL_INTSTATUS_EL2: return "apl_intstatus_el2";
+ case REG_REDIR_ACNTHCTL_EL2: return "redir_acnthctl_el2";
+ case REG_JAPIAKEYLO_NV_EL21: return "japiakeylo_nv_el21";
+ case REG_JAPIAKEYHI_NV_EL21: return "japiakeyhi_nv_el21";
+ case REG_JAPIBKEYLO_NV_EL21: return "japibkeylo_nv_el21";
+ case REG_JAPIBKEYHI_NV_EL21: return "japibkeyhi_nv_el21";
+ case REG_JAPIAKEYLO_EL21: return "japiakeylo_el21";
+ case REG_JAPIAKEYHI_EL21: return "japiakeyhi_el21";
+ case REG_JAPIBKEYLO_EL21: return "japibkeylo_el21";
+ case REG_JAPIBKEYHI_EL21: return "japibkeyhi_el21";
+ case REG_JAPIAKEYLO_EL12: return "japiakeylo_el12";
+ case REG_JAPIAKEYHI_EL12: return "japiakeyhi_el12";
+ case REG_JAPIBKEYLO_EL12: return "japibkeylo_el12";
+ case REG_JAPIBKEYHI_EL12: return "japibkeyhi_el12";
+ case REG_AGTCNTRDIR_EL2: return "agtcntrdir_el2";
+ case REG_AGTCNTRDIR_EL12: return "agtcntrdir_el12";
+ case REG_JRANGE_EL2: return "jrange_el2";
+ case REG_JRANGE_EL21: return "jrange_el21";
+ case REG_JRANGE_EL12: return "jrange_el12";
+ case REG_JCTL_EL2: return "jctl_el2";
+ case REG_JCTL_EL21: return "jctl_el21";
+ case REG_JCTL_EL12: return "jctl_el12";
+ case REG_JCTL_EL0: return "jctl_el0";
+ case REG_AMDSCR_EL1: return "amdscr_el1";
+ case REG_SCTLR_EL12: return "sctlr_el12";
+ case REG_ACTLR_EL12: return "actlr_el12";
+ case REG_CPACR_EL12: return "cpacr_el12";
+ case REG_TRFCR_EL12: return "trfcr_el12";
+ case REG_SMCR_EL12: return "smcr_el12";
+ case REG_TTBR0_EL12: return "ttbr0_el12";
+ case REG_TTBR1_EL12: return "ttbr1_el12";
+ case REG_TCR_EL12: return "tcr_el12";
+ case REG_SPSR_EL12: return "spsr_el12";
+ case REG_ELR_EL12: return "elr_el12";
+ case REG_AFSR0_EL12: return "afsr0_el12";
+ case REG_AFSR1_EL12: return "afsr1_el12";
+ case REG_ESR_EL12: return "esr_el12";
+ case REG_TFSR_EL12: return "tfsr_el12";
+ case REG_FAR_EL12: return "far_el12";
+ case REG_PMSCR_EL12: return "pmscr_el12";
+ case REG_MAIR_EL12: return "mair_el12";
+ case REG_AMAIR_EL12: return "amair_el12";
+ case REG_MPAM1_EL12: return "mpam1_el12";
+ case REG_VBAR_EL12: return "vbar_el12";
+ case REG_CONTEXTIDR_EL12: return "contextidr_el12";
+ case REG_SCXTNUM_EL12: return "scxtnum_el12";
+ case REG_CNTKCTL_EL12: return "cntkctl_el12";
+ case REG_CNTP_TVAL_EL02: return "cntp_tval_el02";
+ case REG_CNTP_CTL_EL02: return "cntp_ctl_el02";
+ case REG_CNTP_CVAL_EL02: return "cntp_cval_el02";
+ case REG_CNTV_TVAL_EL02: return "cntv_tval_el02";
+ case REG_CNTV_CTL_EL02: return "cntv_ctl_el02";
+ case REG_CNTV_CVAL_EL02: return "cntv_cval_el02";
+ case REG_IPI_RR_LOCAL_EL1: return "ipi_rr_local_el1";
+ case REG_IPI_RR_GLOBAL_EL1: return "ipi_rr_global_el1";
+ case REG_AF_ERR_CFG0: return "af_err_cfg0";
+ case REG_AP_ERR_CFG0: return "ap_err_cfg0";
+ case REG_AF_ERR_SRC_IDS: return "af_err_src_ids";
+ case REG_DPC_ERR_STS: return "dpc_err_sts";
+ case REG_DPC_ERR_CTL: return "dpc_err_ctl";
+ case REG_PROD_TRC_CORE_CFG_EL21: return "prod_trc_core_cfg_el21";
+ case REG_TRACE_CORE_CFG: return "trace_core_cfg";
+ case REG_IPI_SR: return "ipi_sr";
+ case REG_APL_LRTMR_EL2: return "apl_lrtmr_el2";
+ case REG_APL_INTENABLE_EL2: return "apl_intenable_el2";
+ case REG_KTRACE_MESSAGE: return "ktrace_message";
+ case REG_TRACE_CORE_CFG_EXT: return "trace_core_cfg_ext";
+ case REG_PROD_TRC_CORE_CFG_EL2: return "prod_trc_core_cfg_el2";
+ case REG_HID_PROD_TRC_CORE_CFG_EL1: return "hid_prod_trc_core_cfg_el1";
+ case REG_DBG_WRAP_GLB: return "dbg_wrap_glb";
+ case REG_TRACE_STREAM_BASE: return "trace_stream_base";
+ case REG_TRACE_STREAM_FILL: return "trace_stream_fill";
+ case REG_TRACE_STREAM_BASE1: return "trace_stream_base1";
+ case REG_TRACE_STREAM_FILL1: return "trace_stream_fill1";
+ case REG_TRACE_STREAM_IRQ: return "trace_stream_irq";
+ case REG_WATCHDOGDIAG0: return "watchdogdiag0";
+ case REG_WATCHDOGDIAG1: return "watchdogdiag1";
+ case REG_TRACE_AUX_CTL: return "trace_aux_ctl";
+ case REG_IPI_CR: return "ipi_cr";
+ case REG_UTRIG_EVENT: return "utrig_event";
+ case REG_HID_PROD_TRC_MASK_EL1: return "hid_prod_trc_mask_el1";
+ case REG_TRACE_CTL: return "trace_ctl";
+ case REG_TRACE_DAT: return "trace_dat";
+ case REG_PROD_TRC_STRM_BASE0_GL2: return "prod_trc_strm_base0_gl2";
+ case REG_PROD_TRC_STRM_BASE1_GL2: return "prod_trc_strm_base1_gl2";
+ case REG_CPU_CFG: return "cpu_cfg";
+ case REG_PBLK_STS: return "pblk_sts";
+ case REG_PROD_TRC_CTL_EL21: return "prod_trc_ctl_el21";
+ case REG_PROD_TRC_STRM_BASE0_GL21: return "prod_trc_strm_base0_gl21";
+ case REG_PROD_TRC_STRM_BASE1_GL21: return "prod_trc_strm_base1_gl21";
+ case REG_PROD_TRC_STRM_FIQ_EL21: return "prod_trc_strm_fiq_el21";
+ case REG_CPU_OVRD: return "cpu_ovrd";
+ case REG_PBLK_EXE_ST: return "pblk_exe_st";
+ case REG_PROD_TRC_CORE_GL_CTL_GL21: return "prod_trc_core_gl_ctl_gl21";
+ case REG_PROD_TRC_CORE_GL_CTL_GL2: return "prod_trc_core_gl_ctl_gl2";
+ case REG_ACC_OVRD: return "acc_ovrd";
+ case REG_ACC_OVRD1: return "acc_ovrd1";
+ case REG_CPM_PWRDN_CTL: return "cpm_pwrdn_ctl";
+ case REG_PROD_TRC_BUF_RESTORE0_GL21: return "prod_trc_buf_restore0_gl21";
+ case REG_PROD_TRC_BUF_RESTORE1_GL21: return "prod_trc_buf_restore1_gl21";
+ case REG_PROD_TRC_EN_GL21: return "prod_trc_en_gl21";
+ case REG_PRE_LLCFLUSH_TMR: return "pre_llcflush_tmr";
+ case REG_BIUINTFCTL_CFG: return "biuintfctl_cfg";
+ case REG_BIUINTFWRR_CFG: return "biuintfwrr_cfg";
+ case REG_PRE_TD_TMR: return "pre_td_tmr";
+ case REG_ACC_SLP_WAKE_UP_TMR: return "acc_slp_wake_up_tmr";
+ case REG_PBLK_PSW_DLY: return "pblk_psw_dly";
+ case REG_CPU_STS: return "cpu_sts";
+ case REG_HIST_TRIG: return "hist_trig";
+ case REG_PROD_TRC_BUF_RESTORE0_GL2: return "prod_trc_buf_restore0_gl2";
+ case REG_PROD_TRC_BUF_RESTORE1_GL2: return "prod_trc_buf_restore1_gl2";
+ case REG_PROD_TRC_STRM_FILL0_EL1: return "prod_trc_strm_fill0_el1";
+ case REG_PROD_TRC_STRM_FILL1_EL1: return "prod_trc_strm_fill1_el1";
+ case REG_ARRAY_INDEX: return "array_index";
+ case REG_PROD_TRC_CTL_EL2: return "prod_trc_ctl_el2";
+ case REG_PROD_TRC_EN_GL2: return "prod_trc_en_gl2";
+ case REG_PROD_TRC_STRM_FIQ_EL2: return "prod_trc_strm_fiq_el2";
+ case REG_PROD_TRC_CPMU_DUMP_TRIG_EL1: return "prod_trc_cpmu_dump_trig_el1";
+ case REG_PROD_LOSS_COUNT_EL1: return "prod_loss_count_el1";
+ case REG_SW_TRACE_DATA_EL0: return "sw_trace_data_el0";
+ case REG_IL1_DATA0: return "il1_data0";
+ case REG_IL1_DATA1: return "il1_data1";
+ case REG_DL1_DATA0: return "dl1_data0";
+ case REG_DL1_DATA1: return "dl1_data1";
+ case REG_MMUDATA0: return "mmudata0";
+ case REG_MMUDATA1: return "mmudata1";
+ case REG_DL1_DATA2: return "dl1_data2";
+ case REG_IL1_DATA2: return "il1_data2";
+ case REG_LLC_DATA0: return "llc_data0";
+ case REG_LLC_DATA1: return "llc_data1";
+ case REG_SCTLR_EL3: return "sctlr_el3";
+ case REG_ACTLR_EL3: return "actlr_el3";
+ case REG_SCR_EL3: return "scr_el3";
+ case REG_SDER32_EL3: return "sder32_el3";
+ case REG_CPTR_EL3: return "cptr_el3";
+ case REG_MDCR_EL3: return "mdcr_el3";
+ case REG_TTBR0_EL3: return "ttbr0_el3";
+ case REG_TCR_EL3: return "tcr_el3";
+ case REG_SPSR_EL3: return "spsr_el3";
+ case REG_ELR_EL3: return "elr_el3";
+ case REG_SP_EL2: return "sp_el2";
+ case REG_AFSR0_EL3: return "afsr0_el3";
+ case REG_AFSR1_EL3: return "afsr1_el3";
+ case REG_ESR_EL3: return "esr_el3";
+ case REG_TFSR_EL3: return "tfsr_el3";
+ case REG_FAR_EL3: return "far_el3";
+ case REG_MAIR_EL3: return "mair_el3";
+ case REG_AMAIR_EL3: return "amair_el3";
+ case REG_MPAM3_EL3: return "mpam3_el3";
+ case REG_VBAR_EL3: return "vbar_el3";
+ case REG_RVBAR_EL3: return "rvbar_el3";
+ case REG_RMR_EL3: return "rmr_el3";
+ case REG_ICC_CTLR_EL3: return "icc_ctlr_el3";
+ case REG_ICC_SRE_EL3: return "icc_sre_el3";
+ case REG_ICC_IGRPEN1_EL3: return "icc_igrpen1_el3";
+ case REG_TPIDR_EL3: return "tpidr_el3";
+ case REG_SCXTNUM_EL3: return "scxtnum_el3";
+ case REG_MMU_ERR_STS: return "mmu_err_sts";
+ case REG_AFSR1_GL21: return "afsr1_gl21";
+ case REG_AFSR1_GL2: return "afsr1_gl2";
+ case REG_AFSR1_GL12: return "afsr1_gl12";
+ case REG_BP_OBJC_ADR_EL1: return "bp_objc_adr_el1";
+ case REG_BP_OBJC_CTL_EL1: return "bp_objc_ctl_el1";
+ case REG_SP_GL11_GL21: return "sp_gl11_gl21";
+ case REG_MMU_SESR_EL2: return "mmu_sesr_el2";
+ case REG_SPRR_CONFIG_EL21: return "sprr_config_el21";
+ case REG_HPFAR_GL2: return "hpfar_gl2";
+ case REG_GXF_CONFIG_EL21: return "gxf_config_el21";
+ case REG_SPRR_AMRANGE_EL1: return "sprr_amrange_el1";
+ case REG_GXF_CONFIG_EL2: return "gxf_config_el2";
+ case REG_SPRR_UPERM_EL02: return "sprr_uperm_el02";
+ case REG_SPRR_PPERM_EL21: return "sprr_pperm_el21";
+ case REG_SPRR_PPERM_EL2: return "sprr_pperm_el2";
+ case REG_APGAKEYLO_EL12: return "apgakeylo_el12";
+ case REG_APGAKEYHI_EL12: return "apgakeyhi_el12";
+ case REG_KERNKEYLO_EL12: return "kernkeylo_el12";
+ case REG_KERNKEYHI_EL12: return "kernkeyhi_el12";
+ case REG_AFPCR_EL0: return "afpcr_el0";
+ case REG_SP_GL22: return "sp_gl22";
+ case REG_AMXIDR_EL1: return "amxidr_el1";
+ case REG_SPRR_UMPRR_EL1: return "sprr_umprr_el1";
+ case REG_SPRR_PMPRR_EL21: return "sprr_pmprr_el21";
+ case REG_SPRR_PMPRR_EL2: return "sprr_pmprr_el2";
+ case REG_SPRR_UPERM_SH01_EL1: return "sprr_uperm_sh01_el1";
+ case REG_SPRR_UPERM_SH02_EL1: return "sprr_uperm_sh02_el1";
+ case REG_SPRR_UPERM_SH03_EL1: return "sprr_uperm_sh03_el1";
+ case REG_SPRR_UPERM_SH04_EL1: return "sprr_uperm_sh04_el1";
+ case REG_SPRR_UPERM_SH05_EL1: return "sprr_uperm_sh05_el1";
+ case REG_SPRR_UPERM_SH06_EL1: return "sprr_uperm_sh06_el1";
+ case REG_SPRR_UPERM_SH07_EL1: return "sprr_uperm_sh07_el1";
+ case REG_SPRR_PPERM_SH01_EL21: return "sprr_pperm_sh01_el21";
+ case REG_SPRR_PPERM_SH02_EL21: return "sprr_pperm_sh02_el21";
+ case REG_SPRR_PPERM_SH03_EL21: return "sprr_pperm_sh03_el21";
+ case REG_SPRR_PPERM_SH04_EL21: return "sprr_pperm_sh04_el21";
+ case REG_SPRR_PPERM_SH05_EL21: return "sprr_pperm_sh05_el21";
+ case REG_SPRR_PPERM_SH06_EL21: return "sprr_pperm_sh06_el21";
+ case REG_SPRR_PPERM_SH07_EL21: return "sprr_pperm_sh07_el21";
+ case REG_SPRR_PPERM_SH01_EL2: return "sprr_pperm_sh01_el2";
+ case REG_SPRR_PPERM_SH02_EL2: return "sprr_pperm_sh02_el2";
+ case REG_SPRR_PPERM_SH03_EL2: return "sprr_pperm_sh03_el2";
+ case REG_SPRR_PPERM_SH04_EL2: return "sprr_pperm_sh04_el2";
+ case REG_SPRR_PPERM_SH05_EL2: return "sprr_pperm_sh05_el2";
+ case REG_SPRR_PPERM_SH06_EL2: return "sprr_pperm_sh06_el2";
+ case REG_SPRR_PPERM_SH07_EL2: return "sprr_pperm_sh07_el2";
+ case REG_SPRR_PMPRR_EL12: return "sprr_pmprr_el12";
+ case REG_SPRR_PPERM_SH01_EL12: return "sprr_pperm_sh01_el12";
+ case REG_SPRR_PPERM_SH02_EL12: return "sprr_pperm_sh02_el12";
+ case REG_SPRR_PPERM_SH03_EL12: return "sprr_pperm_sh03_el12";
+ case REG_SPRR_PPERM_SH04_EL12: return "sprr_pperm_sh04_el12";
+ case REG_SPRR_PPERM_SH05_EL12: return "sprr_pperm_sh05_el12";
+ case REG_SPRR_PPERM_SH06_EL12: return "sprr_pperm_sh06_el12";
+ case REG_SPRR_PPERM_SH07_EL12: return "sprr_pperm_sh07_el12";
+ case REG_APIAKEYLO_EL12: return "apiakeylo_el12";
+ case REG_APIAKEYHI_EL12: return "apiakeyhi_el12";
+ case REG_APIBKEYLO_EL12: return "apibkeylo_el12";
+ case REG_APIBKEYHI_EL12: return "apibkeyhi_el12";
+ case REG_APDAKEYLO_EL12: return "apdakeylo_el12";
+ case REG_APDAKEYHI_EL12: return "apdakeyhi_el12";
+ case REG_APDBKEYLO_EL12: return "apdbkeylo_el12";
+ case REG_APDBKEYHI_EL12: return "apdbkeyhi_el12";
+ case REG_CURRENTG: return "currentg";
+ case REG_GXF_ENTRY_EL21: return "gxf_entry_el21";
+ case REG_GXF_PABENTRY_EL21: return "gxf_pabentry_el21";
+ case REG_ASPSR_EL21: return "aspsr_el21";
+ case REG_ADSPSR_EL0: return "adspsr_el0";
+ case REG_PMCR1_GL2: return "pmcr1_gl2";
+ case REG_ASPSR_NV_EL21: return "aspsr_nv_el21";
+ case REG_PMCR1_GL21: return "pmcr1_gl21";
+ case REG_VBAR_GL12: return "vbar_gl12";
+ case REG_SPSR_GL12: return "spsr_gl12";
+ case REG_ASPSR_GL12: return "aspsr_gl12";
+ case REG_ESR_GL12: return "esr_gl12";
+ case REG_ELR_GL12: return "elr_gl12";
+ case REG_FAR_GL12: return "far_gl12";
+ case REG_SP_GL1: return "sp_gl1";
+ case REG_TPIDR_GL1: return "tpidr_gl1";
+ case REG_VBAR_GL21: return "vbar_gl21";
+ case REG_SPSR_GL21: return "spsr_gl21";
+ case REG_ASPSR_GL21: return "aspsr_gl21";
+ case REG_ESR_GL21: return "esr_gl21";
+ case REG_ELR_GL21: return "elr_gl21";
+ case REG_FAR_GL21: return "far_gl21";
+ case REG_SP_GL2: return "sp_gl2";
+ case REG_TPIDR_GL2: return "tpidr_gl2";
+ case REG_VBAR_GL2: return "vbar_gl2";
+ case REG_SPSR_GL2: return "spsr_gl2";
+ case REG_ASPSR_GL2: return "aspsr_gl2";
+ case REG_ESR_GL2: return "esr_gl2";
+ case REG_ELR_GL2: return "elr_gl2";
+ case REG_FAR_GL2: return "far_gl2";
+ case REG_GXF_ENTRY_EL2: return "gxf_entry_el2";
+ case REG_GXF_PABENTRY_EL2: return "gxf_pabentry_el2";
+ case REG_APCTL_EL2: return "apctl_el2";
+ case REG_APSTS_EL2: return "apsts_el2";
+ case REG_APSTS_NV1_EL1: return "apsts_nv1_el1";
+ case REG_KERNKEYLO_NV_EL21: return "kernkeylo_nv_el21";
+ case REG_KERNKEYHI_NV_EL21: return "kernkeyhi_nv_el21";
+ case REG_ASPSR_EL12: return "aspsr_el12";
+ case REG_APIAKEYLO_NV_EL21: return "apiakeylo_nv_el21";
+ case REG_APIAKEYHI_NV_EL21: return "apiakeyhi_nv_el21";
+ case REG_APIBKEYLO_NV_EL21: return "apibkeylo_nv_el21";
+ case REG_APIBKEYHI_NV_EL21: return "apibkeyhi_nv_el21";
+ case REG_APDAKEYLO_NV_EL21: return "apdakeylo_nv_el21";
+ case REG_APDAKEYHI_NV_EL21: return "apdakeyhi_nv_el21";
+ case REG_APDBKEYLO_NV_EL21: return "apdbkeylo_nv_el21";
+ case REG_APDBKEYHI_NV_EL21: return "apdbkeyhi_nv_el21";
+ case REG_APGAKEYLO_NV_EL21: return "apgakeylo_nv_el21";
+ case REG_APGAKEYHI_NV_EL21: return "apgakeyhi_nv_el21";
+ case REG_SPRR_CONFIG_EL2: return "sprr_config_el2";
+ case REG_SPRR_AMRANGE_EL2: return "sprr_amrange_el2";
+ case REG_VMKEYLO_EL2: return "vmkeylo_el2";
+ case REG_VMKEYHI_EL2: return "vmkeyhi_el2";
+ case REG_MMU_SFAR_EL2: return "mmu_sfar_el2";
+ case REG_APSTS_EL12: return "apsts_el12";
+ case REG_APCTL_EL12: return "apctl_el12";
+ case REG_GXF_CONFIG_EL12: return "gxf_config_el12";
+ case REG_GXF_ENTRY_EL12: return "gxf_entry_el12";
+ case REG_GXF_PABENTRY_EL12: return "gxf_pabentry_el12";
+ case REG_SPRR_CONFIG_EL12: return "sprr_config_el12";
+ case REG_SPRR_AMRANGE_EL12: return "sprr_amrange_el12";
+ case REG_MMU_SESR_CTL_EL2: return "mmu_sesr_ctl_el2";
+ case REG_SPRR_PPERM_EL12: return "sprr_pperm_el12";
+ case REG_CNTPS_TVAL_EL1: return "cntps_tval_el1";
+ case REG_CNTPS_CTL_EL1: return "cntps_ctl_el1";
+ case REG_CNTPS_CVAL_EL1: return "cntps_cval_el1";
+ case REG_PSTATE_SPSEL: return "pstate_spsel";
+ case REG_PWRDNSAVE0: return "pwrdnsave0";
+ case REG_NRG_ACC_CTL: return "nrg_acc_ctl";
+ case REG_AON_CNT0: return "aon_cnt0";
+ case REG_CPU_CNT0: return "cpu_cnt0";
+ case REG_UPMCR0_EL1: return "upmcr0_el1";
+ case REG_UPMC8: return "upmc8";
+ case REG_AON_CNT8: return "aon_cnt8";
+ case REG_PWRDNSAVE1: return "pwrdnsave1";
+ case REG_CORE_NRG_ACC_DAT: return "core_nrg_acc_dat";
+ case REG_AON_CNT_CTL0: return "aon_cnt_ctl0";
+ case REG_CPU_CNT_CTL0: return "cpu_cnt_ctl0";
+ case REG_UPMESR0_EL1: return "upmesr0_el1";
+ case REG_UPMC9: return "upmc9";
+ case REG_AON_CNT_CTL8: return "aon_cnt_ctl8";
+ case REG_ACC_PWR_DN_SAVE: return "acc_pwr_dn_save";
+ case REG_CPM_NRG_ACC_DAT: return "cpm_nrg_acc_dat";
+ case REG_AON_CNT1: return "aon_cnt1";
+ case REG_CPU_CNT1: return "cpu_cnt1";
+ case REG_UPMSWCTRL_EL1: return "upmswctrl_el1";
+ case REG_UPMC10: return "upmc10";
+ case REG_AON_CNT9: return "aon_cnt9";
+ case REG_CORE_SRM_NRG_ACC_DAT: return "core_srm_nrg_acc_dat";
+ case REG_AON_CNT_CTL1: return "aon_cnt_ctl1";
+ case REG_CPU_CNT_CTL1: return "cpu_cnt_ctl1";
+ case REG_UPMECM0_EL1: return "upmecm0_el1";
+ case REG_UPMC11: return "upmc11";
+ case REG_AON_CNT_CTL9: return "aon_cnt_ctl9";
+ case REG_AON_CNT_CTL: return "aon_cnt_ctl";
+ case REG_CPM_SRM_NRG_ACC_DAT: return "cpm_srm_nrg_acc_dat";
+ case REG_AON_CNT2: return "aon_cnt2";
+ case REG_CPU_CNT2: return "cpu_cnt2";
+ case REG_UPMECM1_EL1: return "upmecm1_el1";
+ case REG_UPMC12: return "upmc12";
+ case REG_AON_CNT10: return "aon_cnt10";
+ case REG_CPU_CNT_CTL: return "cpu_cnt_ctl";
+ case REG_AON_CNT_CTL2: return "aon_cnt_ctl2";
+ case REG_CPU_CNT_CTL2: return "cpu_cnt_ctl2";
+ case REG_UPMPCM_EL1: return "upmpcm_el1";
+ case REG_UPMC13: return "upmc13";
+ case REG_AON_CNT_CTL10: return "aon_cnt_ctl10";
+ case REG_AON_CNT3: return "aon_cnt3";
+ case REG_CPU_CNT3: return "cpu_cnt3";
+ case REG_UPMSR_EL1: return "upmsr_el1";
+ case REG_UPMC14: return "upmc14";
+ case REG_AON_CNT11: return "aon_cnt11";
+ case REG_AON_CNT_CTL3: return "aon_cnt_ctl3";
+ case REG_CPU_CNT_CTL3: return "cpu_cnt_ctl3";
+ case REG_UPMC0: return "upmc0";
+ case REG_UPMC15: return "upmc15";
+ case REG_AON_CNT_CTL11: return "aon_cnt_ctl11";
+ case REG_AON_CNT4: return "aon_cnt4";
+ case REG_CPU_CNT4: return "cpu_cnt4";
+ case REG_UPMC1: return "upmc1";
+ case REG_UPMECM2_EL1: return "upmecm2_el1";
+ case REG_AON_CNT_CTL4: return "aon_cnt_ctl4";
+ case REG_CPU_CNT_CTL4: return "cpu_cnt_ctl4";
+ case REG_UPMC2: return "upmc2";
+ case REG_UPMECM3_EL1: return "upmecm3_el1";
+ case REG_AON_CNT5: return "aon_cnt5";
+ case REG_CPU_CNT5: return "cpu_cnt5";
+ case REG_UPMC3: return "upmc3";
+ case REG_UPMCR1_EL1: return "upmcr1_el1";
+ case REG_AON_CNT_CTL5: return "aon_cnt_ctl5";
+ case REG_CPU_CNT_CTL5: return "cpu_cnt_ctl5";
+ case REG_UPMC4: return "upmc4";
+ case REG_UPMESR1_EL1: return "upmesr1_el1";
+ case REG_AON_CNT6: return "aon_cnt6";
+ case REG_CPU_CNT6: return "cpu_cnt6";
+ case REG_UPMC5: return "upmc5";
+ case REG_AON_CNT_CTL6: return "aon_cnt_ctl6";
+ case REG_CPU_CNT_CTL6: return "cpu_cnt_ctl6";
+ case REG_UPMC6: return "upmc6";
+ case REG_AON_CNT7: return "aon_cnt7";
+ case REG_CPU_CNT7: return "cpu_cnt7";
+ case REG_UPMC7: return "upmc7";
+ case REG_AON_CNT_CTL7: return "aon_cnt_ctl7";
+ case REG_CPU_CNT_CTL7: return "cpu_cnt_ctl7";
+ default: return "";
+ }
+}
+
+const char *get_system_register_name_decomposed(int op0, int op1, int CRn, int CRm, int op2)
+{
+ enum SystemReg sr = (enum SystemReg)((op0<<14)|(op1<<11)|(CRn<<7)|(CRm<<3)|op2);
+ return get_system_register_name(sr);
+}
+
diff --git a/arch/arm64/disassembler/sysregs_fmt_gen.h b/arch/arm64/disassembler/sysregs_fmt_gen.h
new file mode 100644
index 00000000..aaa54fed
--- /dev/null
+++ b/arch/arm64/disassembler/sysregs_fmt_gen.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "sysregs_gen.h"
+
+#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
diff --git a/arch/arm64/disassembler/sysregs_gen.c b/arch/arm64/disassembler/sysregs_gen.c
new file mode 100644
index 00000000..0ef69869
--- /dev/null
+++ b/arch/arm64/disassembler/sysregs_gen.c
@@ -0,0 +1,1497 @@
+#include <stddef.h>
+
+#include "sysregs_gen.h"
+
+/* must parallel has_system_register_name() from the decode side */
+bool has_system_register_name(enum SystemReg sr)
+{
+ switch(sr) {
+ case REG_EDSCR:
+ case REG_EDPRSR:
+ case REG_UAOIMM:
+ case REG_PANIMM:
+ case REG_SPSELIMM:
+ case REG_DITIMM:
+ case REG_SVCRIMM:
+ case REG_ICIALLUIS:
+ case REG_ICIALLU:
+ case REG_DCIVAC:
+ case REG_DCISW:
+ case REG_ATS1E1R:
+ case REG_ATS1E1W:
+ case REG_ATS1E0R:
+ case REG_ATS1E0W:
+ case REG_DCCSW:
+ case REG_DCCISW:
+ case REG_TLBIVMALLE1IS:
+ case REG_TLBIVAE1IS:
+ case REG_TLBIASIDE1IS:
+ case REG_TLBIVAAE1IS:
+ case REG_TLBIVALE1IS:
+ case REG_TLBIVAALE1IS:
+ case REG_TLBIVMALLE1:
+ case REG_TLBIVAE1:
+ case REG_TLBIASIDE1:
+ case REG_TLBIVAAE1:
+ case REG_TLBIVALE1:
+ case REG_TLBIVAALE1:
+ case REG_DCZVA:
+ case REG_ICIVAU:
+ case REG_DCCVAC:
+ case REG_DCCVAU:
+ case REG_DCCIVAC:
+ case REG_ATS1E2R:
+ case REG_ATS1E2W:
+ case REG_ATS12E1R:
+ case REG_ATS12E1W:
+ case REG_ATS12E0R:
+ case REG_ATS12E0W:
+ case REG_TLBIIPAS2E1IS:
+ case REG_TLBIIPAS2LE1IS:
+ case REG_TLBIALLE2IS:
+ case REG_TLBIVAE2IS:
+ case REG_TLBIALLE1IS:
+ case REG_TLBIVALE2IS:
+ case REG_TLBIVMALLS12E1IS:
+ case REG_TLBIIPAS2E1:
+ case REG_TLBIIPAS2LE1:
+ case REG_TLBIALLE2:
+ case REG_TLBIVAE2:
+ case REG_TLBIALLE1:
+ case REG_TLBIVALE2:
+ case REG_TLBIVMALLS12E1:
+ case REG_ATS1E3R:
+ case REG_ATS1E3W:
+ case REG_TLBIALLE3IS:
+ case REG_TLBIVAE3IS:
+ case REG_TLBIVALE3IS:
+ case REG_TLBIALLE3:
+ case REG_TLBIVAE3:
+ case REG_TLBIVALE3:
+ case REG_OSDTRRX_EL1:
+ case REG_DBGBVR0_EL1:
+ case REG_DBGBCR0_EL1:
+ case REG_DBGWVR0_EL1:
+ case REG_DBGWCR0_EL1:
+ case REG_DBGBVR1_EL1:
+ case REG_DBGBCR1_EL1:
+ case REG_DBGWVR1_EL1:
+ case REG_DBGWCR1_EL1:
+ case REG_MDCCINT_EL1:
+ case REG_MDSCR_EL1:
+ case REG_DBGBVR2_EL1:
+ case REG_DBGBCR2_EL1:
+ case REG_DBGWVR2_EL1:
+ case REG_DBGWCR2_EL1:
+ case REG_OSDTRTX_EL1:
+ case REG_DBGBVR3_EL1:
+ case REG_DBGBCR3_EL1:
+ case REG_DBGWVR3_EL1:
+ case REG_DBGWCR3_EL1:
+ case REG_DBGBVR4_EL1:
+ case REG_DBGBCR4_EL1:
+ case REG_DBGWVR4_EL1:
+ case REG_DBGWCR4_EL1:
+ case REG_DBGBVR5_EL1:
+ case REG_DBGBCR5_EL1:
+ case REG_DBGWVR5_EL1:
+ case REG_DBGWCR5_EL1:
+ case REG_DBGWFAR:
+ case REG_OSECCR_EL1:
+ case REG_DBGBVR6_EL1:
+ case REG_DBGBCR6_EL1:
+ case REG_DBGWVR6_EL1:
+ case REG_DBGWCR6_EL1:
+ case REG_DBGBVR7_EL1:
+ case REG_DBGBCR7_EL1:
+ case REG_DBGWVR7_EL1:
+ case REG_DBGWCR7_EL1:
+ case REG_DBGBVR8_EL1:
+ case REG_DBGBCR8_EL1:
+ case REG_DBGWVR8_EL1:
+ case REG_DBGWCR8_EL1:
+ case REG_DBGBVR9_EL1:
+ case REG_DBGBCR9_EL1:
+ case REG_DBGWVR9_EL1:
+ case REG_DBGWCR9_EL1:
+ case REG_DBGBVR10_EL1:
+ case REG_DBGBCR10_EL1:
+ case REG_DBGWVR10_EL1:
+ case REG_DBGWCR10_EL1:
+ case REG_DBGBVR11_EL1:
+ case REG_DBGBCR11_EL1:
+ case REG_DBGWVR11_EL1:
+ case REG_DBGWCR11_EL1:
+ case REG_DBGBVR12_EL1:
+ case REG_DBGBCR12_EL1:
+ case REG_DBGWVR12_EL1:
+ case REG_DBGWCR12_EL1:
+ case REG_DBGBVR13_EL1:
+ case REG_DBGBCR13_EL1:
+ case REG_DBGWVR13_EL1:
+ case REG_DBGWCR13_EL1:
+ case REG_DBGBVR14_EL1:
+ case REG_DBGBCR14_EL1:
+ case REG_DBGWVR14_EL1:
+ case REG_DBGWCR14_EL1:
+ case REG_DBGBVR15_EL1:
+ case REG_DBGBCR15_EL1:
+ case REG_DBGWVR15_EL1:
+ case REG_DBGWCR15_EL1:
+ case REG_MDRAR_EL1:
+ case REG_OSLAR_EL1:
+ case REG_OSLSR_EL1:
+ case REG_OSDLR_EL1:
+ case REG_DBGPRCR_EL1:
+ case REG_CLAIMSET_EL1:
+ case REG_CLAIMCLR_EL1:
+ case REG_AUTHSTAT_EL1:
+ case REG_TRCTRACEIDR:
+ case REG_TRCVICTLR:
+ case REG_TRCSEQEVR0:
+ case REG_TRCCNTRLDVR0:
+ case REG_TRCIMSPEC0:
+ case REG_TRCPRGCTLR:
+ case REG_TRCQCTLR:
+ case REG_TRCVIIECTLR:
+ case REG_TRCSEQEVR1:
+ case REG_TRCCNTRLDVR1:
+ case REG_TRCIMSPEC1:
+ case REG_TRCPROCSELR:
+ case REG_TRCVISSCTLR:
+ case REG_TRCSEQEVR2:
+ case REG_TRCCNTRLDVR2:
+ case REG_TRCIMSPEC2:
+ case REG_TRCVIPCSSCTLR:
+ case REG_TRCCNTRLDVR3:
+ case REG_TRCIMSPEC3:
+ case REG_TRCCONFIGR:
+ case REG_TRCCNTCTLR0:
+ case REG_TRCIMSPEC4:
+ case REG_TRCCNTCTLR1:
+ case REG_TRCIMSPEC5:
+ case REG_TRCAUXCTLR:
+ case REG_TRCSEQRSTEVR:
+ case REG_TRCCNTCTLR2:
+ case REG_TRCIMSPEC6:
+ case REG_TRCSEQSTR:
+ case REG_TRCCNTCTLR3:
+ case REG_TRCIMSPEC7:
+ case REG_TRCEVENTCTL0R:
+ case REG_TRCVDCTLR:
+ case REG_TRCEXTINSELR:
+ case REG_TRCCNTVR0:
+ case REG_TRCEVENTCTL1R:
+ case REG_TRCVDSACCTLR:
+ case REG_TRCEXTINSELR1:
+ case REG_TRCCNTVR1:
+ case REG_TRCRSR:
+ case REG_TRCVDARCCTLR:
+ case REG_TRCEXTINSELR2:
+ case REG_TRCCNTVR2:
+ case REG_TRCSTALLCTLR:
+ case REG_TRCEXTINSELR3:
+ case REG_TRCCNTVR3:
+ case REG_TRCTSCTLR:
+ case REG_TRCSYNCPR:
+ case REG_TRCCCCTLR:
+ case REG_TRCBBCTLR:
+ case REG_TRCRSCTLR16:
+ case REG_TRCSSCCR0:
+ case REG_TRCSSPCICR0:
+ case REG_TRCOSLAR:
+ case REG_TRCRSCTLR17:
+ case REG_TRCSSCCR1:
+ case REG_TRCSSPCICR1:
+ case REG_TRCRSCTLR2:
+ case REG_TRCRSCTLR18:
+ case REG_TRCSSCCR2:
+ case REG_TRCSSPCICR2:
+ case REG_TRCRSCTLR3:
+ case REG_TRCRSCTLR19:
+ case REG_TRCSSCCR3:
+ case REG_TRCSSPCICR3:
+ case REG_TRCRSCTLR4:
+ case REG_TRCRSCTLR20:
+ case REG_TRCSSCCR4:
+ case REG_TRCSSPCICR4:
+ case REG_TRCPDCR:
+ case REG_TRCRSCTLR5:
+ case REG_TRCRSCTLR21:
+ case REG_TRCSSCCR5:
+ case REG_TRCSSPCICR5:
+ case REG_TRCRSCTLR6:
+ case REG_TRCRSCTLR22:
+ case REG_TRCSSCCR6:
+ case REG_TRCSSPCICR6:
+ case REG_TRCRSCTLR7:
+ case REG_TRCRSCTLR23:
+ case REG_TRCSSCCR7:
+ case REG_TRCSSPCICR7:
+ case REG_TRCRSCTLR8:
+ case REG_TRCRSCTLR24:
+ case REG_TRCSSCSR0:
+ case REG_TRCRSCTLR9:
+ case REG_TRCRSCTLR25:
+ case REG_TRCSSCSR1:
+ case REG_TRCRSCTLR10:
+ case REG_TRCRSCTLR26:
+ case REG_TRCSSCSR2:
+ case REG_TRCRSCTLR11:
+ case REG_TRCRSCTLR27:
+ case REG_TRCSSCSR3:
+ case REG_TRCRSCTLR12:
+ case REG_TRCRSCTLR28:
+ case REG_TRCSSCSR4:
+ case REG_TRCRSCTLR13:
+ case REG_TRCRSCTLR29:
+ case REG_TRCSSCSR5:
+ case REG_TRCRSCTLR14:
+ case REG_TRCRSCTLR30:
+ case REG_TRCSSCSR6:
+ case REG_TRCRSCTLR15:
+ case REG_TRCRSCTLR31:
+ case REG_TRCSSCSR7:
+ case REG_TRCACVR0:
+ case REG_TRCACVR8:
+ case REG_TRCACATR0:
+ case REG_TRCACATR8:
+ case REG_TRCDVCVR0:
+ case REG_TRCDVCVR4:
+ case REG_TRCDVCMR0:
+ case REG_TRCDVCMR4:
+ case REG_TRCACVR1:
+ case REG_TRCACVR9:
+ case REG_TRCACATR1:
+ case REG_TRCACATR9:
+ case REG_TRCACVR2:
+ case REG_TRCACVR10:
+ case REG_TRCACATR2:
+ case REG_TRCACATR10:
+ case REG_TRCDVCVR1:
+ case REG_TRCDVCVR5:
+ case REG_TRCDVCMR1:
+ case REG_TRCDVCMR5:
+ case REG_TRCACVR3:
+ case REG_TRCACVR11:
+ case REG_TRCACATR3:
+ case REG_TRCACATR11:
+ case REG_TRCACVR4:
+ case REG_TRCACVR12:
+ case REG_TRCACATR4:
+ case REG_TRCACATR12:
+ case REG_TRCDVCVR2:
+ case REG_TRCDVCVR6:
+ case REG_TRCDVCMR2:
+ case REG_TRCDVCMR6:
+ case REG_TRCACVR5:
+ case REG_TRCACVR13:
+ case REG_TRCACATR5:
+ case REG_TRCACATR13:
+ case REG_TRCACVR6:
+ case REG_TRCACVR14:
+ case REG_TRCACATR6:
+ case REG_TRCACATR14:
+ case REG_TRCDVCVR3:
+ case REG_TRCDVCVR7:
+ case REG_TRCDVCMR3:
+ case REG_TRCDVCMR7:
+ case REG_TRCACVR7:
+ case REG_TRCACVR15:
+ case REG_TRCACATR7:
+ case REG_TRCACATR15:
+ case REG_TRCCIDCVR0:
+ case REG_TRCVMIDCVR0:
+ case REG_TRCCIDCCTLR0:
+ case REG_TRCCIDCCTLR1:
+ case REG_TRCCIDCVR1:
+ case REG_TRCVMIDCVR1:
+ case REG_TRCVMIDCCTLR0:
+ case REG_TRCVMIDCCTLR1:
+ case REG_TRCCIDCVR2:
+ case REG_TRCVMIDCVR2:
+ case REG_TRCCIDCVR3:
+ case REG_TRCVMIDCVR3:
+ case REG_TRCCIDCVR4:
+ case REG_TRCVMIDCVR4:
+ case REG_TRCCIDCVR5:
+ case REG_TRCVMIDCVR5:
+ case REG_TRCCIDCVR6:
+ case REG_TRCVMIDCVR6:
+ case REG_TRCCIDCVR7:
+ case REG_TRCVMIDCVR7:
+ case REG_TRCITCTRL:
+ case REG_TRCCLAIMSET:
+ case REG_TRCCLAIMCLR:
+ case REG_TRCLAR:
+ case REG_TEECR32_EL1:
+ case REG_TEEHBR32_EL1:
+ case REG_MDCCSR_EL0:
+ case REG_MDDTR_EL0:
+ case REG_MDDTRTX_EL0:
+ case REG_DBGVCR32_EL2:
+ case REG_MIDR_EL1:
+ case REG_MPIDR_EL1:
+ case REG_REVIDR_EL1:
+ case REG_ID_PFR0_EL1:
+ case REG_ID_PFR1_EL1:
+ case REG_ID_DFR0_EL1:
+ case REG_ID_AFR0_EL1:
+ case REG_ID_MMFR0_EL1:
+ case REG_ID_MMFR1_EL1:
+ case REG_ID_MMFR2_EL1:
+ case REG_ID_MMFR3_EL1:
+ case REG_ID_ISAR0_EL1:
+ case REG_ID_ISAR1_EL1:
+ case REG_ID_ISAR2_EL1:
+ case REG_ID_ISAR3_EL1:
+ case REG_ID_ISAR4_EL1:
+ case REG_ID_ISAR5_EL1:
+ case REG_ID_MMFR4_EL1:
+ case REG_ID_ISAR6_EL1:
+ case REG_MVFR0_EL1:
+ case REG_MVFR1_EL1:
+ case REG_MVFR2_EL1:
+ case REG_ID_AA32RES3_EL1:
+ case REG_ID_PFR2_EL1:
+ case REG_ID_AA32RES5_EL1:
+ case REG_ID_AA32RES6_EL1:
+ case REG_ID_AA32RES7_EL1:
+ case REG_ID_AA64PFR0_EL1:
+ case REG_ID_AA64PFR1_EL1:
+ case REG_ID_AA64PFR2_EL1:
+ case REG_ID_AA64PFR3_EL1:
+ case REG_ID_AA64ZFR0_EL1:
+ case REG_ID_AA64SMFR0_EL1:
+ case REG_ID_AA64ZFR2_EL1:
+ case REG_ID_AA64ZFR3_EL1:
+ case REG_ID_AA64DFR0_EL1:
+ case REG_ID_AA64DFR1_EL1:
+ case REG_ID_AA64DFR2_EL1:
+ case REG_ID_AA64DFR3_EL1:
+ case REG_ID_AA64AFR0_EL1:
+ case REG_ID_AA64AFR1_EL1:
+ case REG_ID_AA64AFR2_EL1:
+ case REG_ID_AA64AFR3_EL1:
+ case REG_ID_AA64ISAR0_EL1:
+ case REG_ID_AA64ISAR1_EL1:
+ case REG_ID_AA64ISAR2_EL1:
+ case REG_ID_AA64ISAR3_EL1:
+ case REG_ID_AA64ISAR4_EL1:
+ case REG_ID_AA64ISAR5_EL1:
+ case REG_ID_AA64ISAR6_EL1:
+ case REG_ID_AA64ISAR7_EL1:
+ case REG_ID_AA64MMFR0_EL1:
+ case REG_ID_AA64MMFR1_EL1:
+ case REG_ID_AA64MMFR2_EL1:
+ case REG_ID_AA64MMFR3_EL1:
+ case REG_ID_AA64MMFR4_EL1:
+ case REG_ID_AA64MMFR5_EL1:
+ case REG_ID_AA64MMFR6_EL1:
+ case REG_ID_AA64MMFR7_EL1:
+ case REG_SCTLR_EL21:
+ case REG_ACTLR_EL21:
+ case REG_CPTR_EL21:
+ case REG_RGSR_EL1:
+ case REG_GCR_EL1:
+ case REG_TRFCR_EL1:
+ case REG_SMPRI_EL1:
+ case REG_SMCR_EL21:
+ case REG_TTBR0_EL21:
+ case REG_TTBR1_EL21:
+ case REG_TCR_EL21:
+ case REG_APIAKEYLO_EL21:
+ case REG_APIAKEYHI_EL21:
+ case REG_APIBKEYLO_EL21:
+ case REG_APIBKEYHI_EL21:
+ case REG_APDAKEYLO_EL21:
+ case REG_APDAKEYHI_EL21:
+ case REG_APDBKEYLO_EL21:
+ case REG_APDBKEYHI_EL21:
+ case REG_APGAKEYLO_EL21:
+ case REG_APGAKEYHI_EL21:
+ case REG_SPSR_EL21:
+ case REG_ELR_EL21:
+ case REG_SP_EL0:
+ case REG_SPSEL:
+ case REG_NESTEDCURRENTEL:
+ case REG_PAN:
+ case REG_UAO:
+ case REG_ICV_PMR_EL1:
+ case REG_AFSR0_EL21:
+ case REG_AFSR1_EL21:
+ case REG_ESR_EL21:
+ case REG_ERRIDR_EL1:
+ case REG_ERRSELR_EL1:
+ case REG_ERXCTLR_EL1:
+ case REG_ERXSTATUS_EL1:
+ case REG_ERXADDR_EL1:
+ case REG_ERXPFGCTL_EL1:
+ case REG_ERXPFGCDN_EL1:
+ case REG_ERXMISC0_EL1:
+ case REG_ERXMISC1_EL1:
+ case REG_ERXMISC2_EL1:
+ case REG_ERXMISC3_EL1:
+ case REG_ERXTS_EL1:
+ case REG_TFSR_EL1:
+ case REG_TFSRE0_EL1:
+ case REG_FAR_EL21:
+ case REG_PAR_EL1:
+ case REG_PMSCR_EL1:
+ case REG_PMSICR_EL1:
+ case REG_PMSIRR_EL1:
+ case REG_PMSFCR_EL1:
+ case REG_PMSEVFR_EL1:
+ case REG_PMSLATFR_EL1:
+ case REG_PMSIDR_EL1:
+ case REG_PMBLIMITR_EL1:
+ case REG_PMBPTR_EL1:
+ case REG_PMBSR_EL1:
+ case REG_PMBIDR_EL1:
+ case REG_TRBLIMITR_EL1:
+ case REG_TRBPTR_EL1:
+ case REG_TRBBASER_EL1:
+ case REG_TRBSR_EL1:
+ case REG_TRBMAR_EL1:
+ case REG_TRBTRG_EL1:
+ case REG_PMINTENSET_EL1:
+ case REG_PMINTENCLR_EL1:
+ case REG_PMMIR_EL1:
+ case REG_MAIR_EL21:
+ case REG_AMAIR_EL21:
+ case REG_LORSA_EL1:
+ case REG_LOREA_EL1:
+ case REG_LORN_EL1:
+ case REG_LORC_EL1:
+ case REG_LORID_EL1:
+ case REG_MPAM1_EL1:
+ case REG_MPAM0_EL1:
+ case REG_CTRR_C_LWR_EL21:
+ case REG_CTRR_C_UPR_EL21:
+ case REG_CTRR_D_LWR_EL21:
+ case REG_CTRR_D_UPR_EL21:
+ case REG_CTRR_C_LWR_EL12:
+ case REG_CTRR_C_UPR_EL12:
+ case REG_CTRR_D_LWR_EL12:
+ case REG_CTRR_D_UPR_EL12:
+ case REG_CTRR_C_LWR_EL2:
+ case REG_CTRR_C_UPR_EL2:
+ case REG_CTRR_D_LWR_EL2:
+ case REG_CTRR_D_UPR_EL2:
+ case REG_CTRR_C_CTL_EL21:
+ case REG_CTRR_D_CTL_EL21:
+ case REG_CTRR_C_CTL_EL12:
+ case REG_CTRR_D_CTL_EL12:
+ case REG_CTRR_C_CTL_EL2:
+ case REG_CTRR_D_CTL_EL2:
+ case REG_CTXR_A_LWR_EL21:
+ case REG_CTXR_A_UPR_EL21:
+ case REG_CTXR_B_LWR_EL21:
+ case REG_CTXR_B_UPR_EL21:
+ case REG_CTXR_C_LWR_EL21:
+ case REG_CTXR_C_UPR_EL21:
+ case REG_CTXR_D_LWR_EL21:
+ case REG_CTXR_D_UPR_EL21:
+ case REG_CTXR_A_LWR_EL12:
+ case REG_CTXR_A_UPR_EL12:
+ case REG_CTXR_B_LWR_EL12:
+ case REG_CTXR_B_UPR_EL12:
+ case REG_CTXR_C_LWR_EL12:
+ case REG_CTXR_C_UPR_EL12:
+ case REG_CTXR_D_LWR_EL12:
+ case REG_CTXR_D_UPR_EL12:
+ case REG_CTXR_A_LWR_EL2:
+ case REG_CTXR_A_UPR_EL2:
+ case REG_CTXR_B_LWR_EL2:
+ case REG_CTXR_B_UPR_EL2:
+ case REG_CTXR_C_LWR_EL2:
+ case REG_CTXR_C_UPR_EL2:
+ case REG_CTXR_D_LWR_EL2:
+ case REG_CTXR_D_UPR_EL2:
+ case REG_CTXR_A_CTL_EL21:
+ case REG_CTXR_B_CTL_EL21:
+ case REG_CTXR_C_CTL_EL21:
+ case REG_CTXR_D_CTL_EL21:
+ case REG_CTXR_A_CTL_EL12:
+ case REG_CTXR_B_CTL_EL12:
+ case REG_CTXR_C_CTL_EL12:
+ case REG_CTXR_D_CTL_EL12:
+ case REG_CTXR_A_CTL_EL2:
+ case REG_CTXR_B_CTL_EL2:
+ case REG_CTXR_C_CTL_EL2:
+ case REG_CTXR_D_CTL_EL2:
+ case REG_ACC_CTRR_C_LWR_EL2:
+ case REG_ACC_CTRR_C_UPR_EL2:
+ case REG_ACC_CTRR_D_LWR_EL2:
+ case REG_ACC_CTRR_D_UPR_EL2:
+ case REG_ACC_CTXR_A_LWR_EL2:
+ case REG_ACC_CTXR_A_UPR_EL2:
+ case REG_ACC_CTXR_B_LWR_EL2:
+ case REG_ACC_CTXR_B_UPR_EL2:
+ case REG_ACC_CTXR_C_LWR_EL2:
+ case REG_ACC_CTXR_C_UPR_EL2:
+ case REG_ACC_CTXR_D_LWR_EL2:
+ case REG_ACC_CTXR_D_UPR_EL2:
+ case REG_ACC_CTRR_C_CTL_EL2:
+ case REG_ACC_CTRR_D_CTL_EL2:
+ case REG_ACC_CTXR_A_CTL_EL2:
+ case REG_ACC_CTXR_B_CTL_EL2:
+ case REG_ACC_CTXR_C_CTL_EL2:
+ case REG_ACC_CTXR_D_CTL_EL2:
+ case REG_VBAR_EL21:
+ case REG_RVBAR_EL1:
+ case REG_RMR_EL1:
+ case REG_ISR_EL1:
+ case REG_DISR_EL1:
+ case REG_ICV_IAR0_EL1:
+ case REG_ICV_EOIR0_EL1:
+ case REG_ICV_HPPIR0_EL1:
+ case REG_ICV_BPR0_EL1:
+ case REG_ICC_AP0R0_EL1:
+ case REG_ICC_AP0R1_EL1:
+ case REG_ICC_AP0R2_EL1:
+ case REG_ICC_AP0R3_EL1:
+ case REG_ICC_AP1R0_EL1:
+ case REG_ICC_AP1R1_EL1:
+ case REG_ICC_AP1R2_EL1:
+ case REG_ICC_AP1R3_EL1:
+ case REG_ICV_DIR_EL1:
+ case REG_ICV_RPR_EL1:
+ case REG_ICC_SGI1R_EL1:
+ case REG_ICC_ASGI1R_EL1:
+ case REG_ICC_SGI0R_EL1:
+ case REG_ICV_IAR1_EL1:
+ case REG_ICV_EOIR1_EL1:
+ case REG_ICV_HPPIR1_EL1:
+ case REG_ICV_BPR1_EL1:
+ case REG_ICV_CTLR_EL1:
+ case REG_ICC_SRE_EL1:
+ case REG_ICV_IGRPEN0_EL1:
+ case REG_ICV_IGRPEN1_EL1:
+ case REG_ICC_SEIEN_EL1:
+ case REG_CONTEXTIDR_EL21:
+ case REG_TPIDR_EL1:
+ case REG_SCXTNUM_EL21:
+ case REG_REDIR_CNTKCTL_EL1:
+ case REG_HID0:
+ case REG_HID25:
+ case REG_HID26:
+ case REG_HID27:
+ case REG_HID28:
+ case REG_HID29:
+ case REG_HID34:
+ case REG_HID1:
+ case REG_HID21:
+ case REG_BIUVCSCUPCMDCRD:
+ case REG_BIUVCSCUPDATCRD:
+ case REG_HID2:
+ case REG_HID30:
+ case REG_HID31:
+ case REG_HID32:
+ case REG_HID33:
+ case REG_HID3:
+ case REG_BIUVCSCUPCMDCRDC2:
+ case REG_BIUVCSCUPDATCRDC2:
+ case REG_HID4:
+ case REG_HID5:
+ case REG_HID6:
+ case REG_HID7:
+ case REG_HID8:
+ case REG_HID9:
+ case REG_HID10:
+ case REG_BLOCK_CMAINT_CFG:
+ case REG_HID11:
+ case REG_HID18:
+ case REG_HID36:
+ case REG_HID37:
+ case REG_HID12:
+ case REG_HID15:
+ case REG_HID19:
+ case REG_BIU_TLIMIT:
+ case REG_HID13:
+ case REG_HID_RCTX_G0CTL:
+ case REG_HID_RCTX_G1CTL:
+ case REG_HID14:
+ case REG_HID16:
+ case REG_LLC_WRR2:
+ case REG_BIU_AFI_CFG:
+ case REG_HID17:
+ case REG_HID24:
+ case REG_HID35:
+ case REG_CCSIDRPL1_I_EL1:
+ case REG_CLIDR_EL1:
+ case REG_SMIDR_EL1:
+ case REG_AIDR_EL1:
+ case REG_PMCR0_EL1:
+ case REG_APPL_CONTEXTPTR:
+ case REG_LD_LATPROF_CTL_EL21:
+ case REG_AON_CPU_MSTALL_CTL01_EL1:
+ case REG_PM_MEMFLT_CTL23_EL1:
+ case REG_REDIR_ACNTV_CTL_EL0:
+ case REG_LCL_ACNTVCTSS_NOREDIR_EL0:
+ case REG_PMCR1_EL21:
+ case REG_LD_LATPROF_CTR_EL1:
+ case REG_AON_CPU_MSTALL_CTL23_EL1:
+ case REG_PM_MEMFLT_CTL45_EL1:
+ case REG_AGTCNTRDIR_EL21:
+ case REG_AGTCNTKCTL_NOREDIR_EL1:
+ case REG_PMCR2_EL1:
+ case REG_LD_LATPROF_STS_EL1:
+ case REG_AON_CPU_MSTALL_CTL45_EL1:
+ case REG_REDIR_ACNTHP_CVAL_EL2:
+ case REG_LCL_CNTVCT_NOREDIR_EL0:
+ case REG_AGTCNTP_CVAL_NOREDIR_EL0:
+ case REG_PMCR3_EL1:
+ case REG_LD_LATPROF_INF_EL1:
+ case REG_AON_CPU_MSTALL_CTL67_EL1:
+ case REG_REDIR_ACNTHP_TVAL_EL2:
+ case REG_LCL_CNTPCTSS_NOREDIR_EL0:
+ case REG_AGTCNTP_TVAL_NOREDIR_EL0:
+ case REG_PMCR4_EL1:
+ case REG_LD_LATPROF_CTL_EL2:
+ case REG_AON_CPU_MEMFLT_CTL01_EL1:
+ case REG_REDIR_ACNTHP_CTL_EL2:
+ case REG_LCL_CNTVCTSS_NOREDIR_EL0:
+ case REG_AGTCNTP_CTL_NOREDIR_EL0:
+ case REG_PMESR0_EL1:
+ case REG_LD_LATPROF_CMD_EL1:
+ case REG_AON_CPU_MEMFLT_CTL23_EL1:
+ case REG_REDIR_ACNTHV_CVAL_EL2:
+ case REG_AGTCNTV_CVAL_NOREDIR_EL0:
+ case REG_PMESR1_EL1:
+ case REG_PMCR1_EL2:
+ case REG_AON_CPU_MEMFLT_CTL45_EL1:
+ case REG_REDIR_ACNTHV_TVAL_EL2:
+ case REG_CNTKCTL_NOREDIR_EL1:
+ case REG_AGTCNTV_TVAL_NOREDIR_EL0:
+ case REG_OPMAT0_EL1:
+ case REG_PMCR1_EL12:
+ case REG_AON_CPU_MEMFLT_CTL67_EL1:
+ case REG_REDIR_ACNTHV_CTL_EL2:
+ case REG_CNTP_CVAL_NOREDIR_EL0:
+ case REG_AGTCNTV_CTL_NOREDIR_EL0:
+ case REG_OPMAT1_EL1:
+ case REG_PMCR1_GL12:
+ case REG_AON_CPU_MSTALL_CTR0_EL1:
+ case REG_REDIR_ACNTFRQ_EL0:
+ case REG_CNTP_TVAL_NOREDIR_EL0:
+ case REG_LCL_CNTPCT_NOREDIR_EL0:
+ case REG_OPMSK0_EL1:
+ case REG_LD_LATPROF_CTL_EL12:
+ case REG_AON_CPU_MSTALL_CTR1_EL1:
+ case REG_AGTCNTVOFF_EL2:
+ case REG_CNTP_CTL_NOREDIR_EL0:
+ case REG_CNTV_CTL_NOREDIR_EL0:
+ case REG_OPMSK1_EL1:
+ case REG_LD_LATPROF_INF_EL2:
+ case REG_AON_CPU_MSTALL_CTR2_EL1:
+ case REG_REDIR_ACNTP_CVAL_EL0:
+ case REG_CNTV_CVAL_NOREDIR_EL0:
+ case REG_LCL_ACNTPCT_NOREDIR_EL0:
+ case REG_AON_CPU_MSTALL_CTR3_EL1:
+ case REG_REDIR_ACNTP_TVAL_EL0:
+ case REG_CNTV_TVAL_NOREDIR_EL0:
+ case REG_VMSA_HV_LOCK_EL2:
+ case REG_PMSWCTRL_EL1:
+ case REG_PMCR5_EL0:
+ case REG_AON_CPU_MSTALL_CTR4_EL1:
+ case REG_PMCOMPARE0_EL1:
+ case REG_PMCOMPARE1_EL1:
+ case REG_VMSA_NV_LOCK_EL2:
+ case REG_PMSR_EL1:
+ case REG_AON_CPU_MSTALL_CTR5_EL1:
+ case REG_REDIR_ACNTP_CTL_EL0:
+ case REG_PMCOMPARE5_EL1:
+ case REG_PMCOMPARE6_EL1:
+ case REG_PMCOMPARE7_EL1:
+ case REG_PMCR_BVRNG4_EL1:
+ case REG_PM_PMI_PC:
+ case REG_AON_CPU_MSTALL_CTR6_EL1:
+ case REG_REDIR_ACNTV_CVAL_EL0:
+ case REG_LCL_ACNTVCT_NOREDIR_EL0:
+ case REG_PMCR_BVRNG5_EL1:
+ case REG_AON_CPU_MSTALL_CTR7_EL1:
+ case REG_REDIR_ACNTV_TVAL_EL0:
+ case REG_LCL_ACNTPCTSS_NOREDIR_EL0:
+ case REG_CSSELR_EL1:
+ case REG_PMC0:
+ case REG_UPMCFILTER0:
+ case REG_UPMCFILTER1:
+ case REG_UPMCFILTER2:
+ case REG_UPMCFILTER3:
+ case REG_UPMCFILTER4:
+ case REG_UPMCFILTER5:
+ case REG_UPMCFILTER6:
+ case REG_PMC1:
+ case REG_UPMCFILTER7:
+ case REG_PMC2:
+ case REG_PMC3:
+ case REG_PMC4:
+ case REG_PMC5:
+ case REG_PMC6:
+ case REG_PMC7:
+ case REG_PMC8:
+ case REG_PMC9:
+ case REG_PMTRHLD6_EL1:
+ case REG_PMTRHLD4_EL1:
+ case REG_PMTRHLD2_EL1:
+ case REG_PMMMAP_EL1:
+ case REG_CTR_EL0:
+ case REG_DCZID_EL0:
+ case REG_NZCV:
+ case REG_DAIF:
+ case REG_SVCR:
+ case REG_DIT:
+ case REG_SSBS:
+ case REG_TCO:
+ case REG_FPCR:
+ case REG_FPSR:
+ case REG_DSPSR_EL0:
+ case REG_DLR_EL0:
+ case REG_PMCR_EL0:
+ case REG_PMCNTENSET_EL0:
+ case REG_PMCNTENCLR_EL0:
+ case REG_PMOVSCLR_EL0:
+ case REG_PMSWINC_EL0:
+ case REG_PMSELR_EL0:
+ case REG_PMCCNTR_EL0:
+ case REG_PMXEVTYPER_EL0:
+ case REG_PMXEVCNTR_EL0:
+ case REG_DAIFCLR:
+ case REG_PMUSERENR_EL0:
+ case REG_PMOVSSET_EL0:
+ case REG_TPIDR_EL0:
+ case REG_TPIDRRO_EL0:
+ case REG_TPIDR2_EL0:
+ case REG_SCXTNUM_EL0:
+ case REG_AMCR_EL0:
+ case REG_AMUSERENR_EL0:
+ case REG_AMCNTENCLR0_EL0:
+ case REG_AMCNTENSET0_EL0:
+ case REG_AMCNTENCLR1_EL0:
+ case REG_AMCNTENSET1_EL0:
+ case REG_AMEVCNTR00_EL0:
+ case REG_AMEVCNTR01_EL0:
+ case REG_AMEVCNTR02_EL0:
+ case REG_AMEVCNTR03_EL0:
+ case REG_AMEVCNTR10_EL0:
+ case REG_AMEVCNTR11_EL0:
+ case REG_AMEVCNTR12_EL0:
+ case REG_AMEVCNTR13_EL0:
+ case REG_AMEVCNTR14_EL0:
+ case REG_AMEVCNTR15_EL0:
+ case REG_AMEVCNTR16_EL0:
+ case REG_AMEVCNTR17_EL0:
+ case REG_AMEVCNTR18_EL0:
+ case REG_AMEVCNTR19_EL0:
+ case REG_AMEVCNTR110_EL0:
+ case REG_AMEVCNTR111_EL0:
+ case REG_AMEVCNTR112_EL0:
+ case REG_AMEVCNTR113_EL0:
+ case REG_AMEVCNTR114_EL0:
+ case REG_AMEVCNTR115_EL0:
+ case REG_AMEVTYPER10_EL0:
+ case REG_AMEVTYPER11_EL0:
+ case REG_AMEVTYPER12_EL0:
+ case REG_AMEVTYPER13_EL0:
+ case REG_AMEVTYPER14_EL0:
+ case REG_AMEVTYPER15_EL0:
+ case REG_AMEVTYPER16_EL0:
+ case REG_AMEVTYPER17_EL0:
+ case REG_AMEVTYPER18_EL0:
+ case REG_AMEVTYPER19_EL0:
+ case REG_AMEVTYPER110_EL0:
+ case REG_AMEVTYPER111_EL0:
+ case REG_AMEVTYPER112_EL0:
+ case REG_AMEVTYPER113_EL0:
+ case REG_AMEVTYPER114_EL0:
+ case REG_AMEVTYPER115_EL0:
+ case REG_REDIR_CNTFRQ_EL0:
+ case REG_REDIR_LCL_CNTPCT_EL0:
+ case REG_REDIR_LCL_CNTVCT_EL0:
+ case REG_REDIR_LCL_CNTPCTSS_EL0:
+ case REG_REDIR_LCL_CNTVCTSS_EL0:
+ case REG_REDIR_CNTP_TVAL_EL0:
+ case REG_REDIR_CNTP_CTL_EL0:
+ case REG_REDIR_CNTP_CVAL_EL0:
+ case REG_REDIR_CNTV_TVAL_EL0:
+ case REG_REDIR_CNTV_CTL_EL0:
+ case REG_REDIR_CNTV_CVAL_EL0:
+ case REG_PMEVCNTR0_EL0:
+ case REG_PMEVCNTR1_EL0:
+ case REG_PMEVCNTR2_EL0:
+ case REG_PMEVCNTR3_EL0:
+ case REG_PMEVCNTR4_EL0:
+ case REG_PMEVCNTR5_EL0:
+ case REG_PMEVCNTR6_EL0:
+ case REG_PMEVCNTR7_EL0:
+ case REG_PMEVCNTR8_EL0:
+ case REG_PMEVCNTR9_EL0:
+ case REG_PMEVCNTR10_EL0:
+ case REG_PMEVCNTR11_EL0:
+ case REG_PMEVCNTR12_EL0:
+ case REG_PMEVCNTR13_EL0:
+ case REG_PMEVCNTR14_EL0:
+ case REG_PMEVCNTR15_EL0:
+ case REG_PMEVCNTR16_EL0:
+ case REG_PMEVCNTR17_EL0:
+ case REG_PMEVCNTR18_EL0:
+ case REG_PMEVCNTR19_EL0:
+ case REG_PMEVCNTR20_EL0:
+ case REG_PMEVCNTR21_EL0:
+ case REG_PMEVCNTR22_EL0:
+ case REG_PMEVCNTR23_EL0:
+ case REG_PMEVCNTR24_EL0:
+ case REG_PMEVCNTR25_EL0:
+ case REG_PMEVCNTR26_EL0:
+ case REG_PMEVCNTR27_EL0:
+ case REG_PMEVCNTR28_EL0:
+ case REG_PMEVCNTR29_EL0:
+ case REG_PMEVCNTR30_EL0:
+ case REG_PMEVTYPER0_EL0:
+ case REG_PMEVTYPER1_EL0:
+ case REG_PMEVTYPER2_EL0:
+ case REG_PMEVTYPER3_EL0:
+ case REG_PMEVTYPER4_EL0:
+ case REG_PMEVTYPER5_EL0:
+ case REG_PMEVTYPER6_EL0:
+ case REG_PMEVTYPER7_EL0:
+ case REG_PMEVTYPER8_EL0:
+ case REG_PMEVTYPER9_EL0:
+ case REG_PMEVTYPER10_EL0:
+ case REG_PMEVTYPER11_EL0:
+ case REG_PMEVTYPER12_EL0:
+ case REG_PMEVTYPER13_EL0:
+ case REG_PMEVTYPER14_EL0:
+ case REG_PMEVTYPER15_EL0:
+ case REG_PMEVTYPER16_EL0:
+ case REG_PMEVTYPER17_EL0:
+ case REG_PMEVTYPER18_EL0:
+ case REG_PMEVTYPER19_EL0:
+ case REG_PMEVTYPER20_EL0:
+ case REG_PMEVTYPER21_EL0:
+ case REG_PMEVTYPER22_EL0:
+ case REG_PMEVTYPER23_EL0:
+ case REG_PMEVTYPER24_EL0:
+ case REG_PMEVTYPER25_EL0:
+ case REG_PMEVTYPER26_EL0:
+ case REG_PMEVTYPER27_EL0:
+ case REG_PMEVTYPER28_EL0:
+ case REG_PMEVTYPER29_EL0:
+ case REG_PMEVTYPER30_EL0:
+ case REG_PMCCFILTR_EL0:
+ case REG_LSU_ERR_STS:
+ case REG_AFLATCTL1_EL1:
+ case REG_AFLATVALBIN0_EL1:
+ case REG_AFLATINFLO_EL1:
+ case REG_LSU_ERR_CTL:
+ case REG_AFLATCTL2_EL1:
+ case REG_AFLATVALBIN1_EL1:
+ case REG_AFLATINFHI_EL1:
+ case REG_AFLATCTL3_EL1:
+ case REG_AFLATVALBIN2_EL1:
+ case REG_AFLATCTL4_EL1:
+ case REG_AFLATVALBIN3_EL1:
+ case REG_LLC_FILL_CTL:
+ case REG_AFLATCTL5_LO_EL1:
+ case REG_AFLATVALBIN4_EL1:
+ case REG_AFLATCTL5_HI_EL1:
+ case REG_LLC_FILL_DAT:
+ case REG_AFLATVALBIN5_EL1:
+ case REG_AFLATVALBIN6_EL1:
+ case REG_LLC_RAM_CONFIG:
+ case REG_AFLATVALBIN7_EL1:
+ case REG_LLC_ERR_STS:
+ case REG_CMAINT_BCAST_LIST_0:
+ case REG_CMAINT_BCAST_LIST_1:
+ case REG_CMAINT_BCAST_CTL:
+ case REG_LLC_ERR_ADR:
+ case REG_LLC_ERR_CTL:
+ case REG_LLC_ERR_INJ:
+ case REG_LLC_ERR_INF:
+ case REG_USERTAGSEL_EL1:
+ case REG_UUSERTAG_EL0:
+ case REG_KUSERTAG_EL1:
+ case REG_HUSERTAG_EL2:
+ case REG_LLC_TRACE_CTL0:
+ case REG_LLC_TRACE_CTL1:
+ case REG_LLC_UP_REQ_VC:
+ case REG_LLC_UP_REQ_VC_THRESH:
+ case REG_LLC_UP_REQ_VC_2:
+ case REG_LLC_UP_REQ_VC_THRESH_2:
+ case REG_LLC_DRAM_HASH0:
+ case REG_LLC_DRAM_HASH1:
+ case REG_LLC_DRAM_HASH2:
+ case REG_LLC_DRAM_HASH3:
+ case REG_LLC_TRACE_CTL2:
+ case REG_LLC_DRAM_HASH4:
+ case REG_LLC_UP_REQ_VC_3:
+ case REG_LLC_UP_REQ_VC_THRESH_3:
+ case REG_LLC_UP_REQ_VC_4:
+ case REG_LLC_UP_REQ_VC_THRESH_4:
+ case REG_LLC_HASH0:
+ case REG_LLC_HASH1:
+ case REG_LLC_HASH2:
+ case REG_LLC_HASH3:
+ case REG_LLC_WRR:
+ case REG_LLC_DRAM_HASH5:
+ case REG_LLC_DRAM_HASH6:
+ case REG_VPIDR_EL2:
+ case REG_VMPIDR_EL2:
+ case REG_SCTLR_EL2:
+ case REG_ACTLR_EL2:
+ case REG_HCR_EL2:
+ case REG_MDCR_EL2:
+ case REG_CPTR_EL2:
+ case REG_HSTR_EL2:
+ case REG_HFGRTR_EL2:
+ case REG_HFGWTR_EL2:
+ case REG_HFGITR_EL2:
+ case REG_HACR_EL2:
+ case REG_TRFCR_EL2:
+ case REG_HCRX_EL2:
+ case REG_SMPRIMAP_EL2:
+ case REG_SMCR_EL2:
+ case REG_SDER32_EL2:
+ case REG_TTBR0_EL2:
+ case REG_TTBR1_EL2:
+ case REG_TCR_EL2:
+ case REG_VTTBR_EL2:
+ case REG_VTCR_EL2:
+ case REG_VNCR_EL2:
+ case REG_VSTTBR_EL2:
+ case REG_VSTCR_EL2:
+ case REG_DACR32_EL2:
+ case REG_HDFGRTR_EL2:
+ case REG_HDFGWTR_EL2:
+ case REG_SPSR_NV_EL21:
+ case REG_ELR_NV_EL21:
+ case REG_SP_EL1:
+ case REG_SPSR_IRQ:
+ case REG_SPSR_ABT:
+ case REG_SPSR_UND:
+ case REG_SPSR_FIQ:
+ case REG_IFSR32_EL2:
+ case REG_AFSR0_EL2:
+ case REG_AFSR1_EL2:
+ case REG_ESR_NV_EL21:
+ case REG_VSESR_EL2:
+ case REG_FPEXC32_EL2:
+ case REG_TFSR_EL2:
+ case REG_FAR_NV_EL21:
+ case REG_HPFAR_EL2:
+ case REG_PMSCR_EL2:
+ case REG_MAIR_EL2:
+ case REG_AMAIR_EL2:
+ case REG_MPAMHCR_EL2:
+ case REG_MPAMVPMV_EL2:
+ case REG_MPAM2_EL2:
+ case REG_MPAMVPM0_EL2:
+ case REG_MPAMVPM1_EL2:
+ case REG_MPAMVPM2_EL2:
+ case REG_MPAMVPM3_EL2:
+ case REG_MPAMVPM4_EL2:
+ case REG_MPAMVPM5_EL2:
+ case REG_MPAMVPM6_EL2:
+ case REG_MPAMVPM7_EL2:
+ case REG_VBAR_EL2:
+ case REG_RVBAR_EL2:
+ case REG_RMR_EL2:
+ case REG_VDISR_EL2:
+ case REG_ICH_AP0R0_EL2:
+ case REG_ICH_AP0R1_EL2:
+ case REG_ICH_AP0R2_EL2:
+ case REG_ICH_AP0R3_EL2:
+ case REG_ICH_AP1R0_EL2:
+ case REG_ICH_AP1R1_EL2:
+ case REG_ICH_AP1R2_EL2:
+ case REG_ICH_AP1R3_EL2:
+ case REG_ICH_VSEIR_EL2:
+ case REG_ICC_SRE_EL2:
+ case REG_ICH_HCR_EL2:
+ case REG_ICH_VTR_EL2:
+ case REG_ICH_MISR_EL2:
+ case REG_ICH_EISR_EL2:
+ case REG_ICH_ELRSR_EL2:
+ case REG_ICH_VMCR_EL2:
+ case REG_ICH_LR0_EL2:
+ case REG_ICH_LR1_EL2:
+ case REG_ICH_LR2_EL2:
+ case REG_ICH_LR3_EL2:
+ case REG_ICH_LR4_EL2:
+ case REG_ICH_LR5_EL2:
+ case REG_ICH_LR6_EL2:
+ case REG_ICH_LR7_EL2:
+ case REG_ICH_LR8_EL2:
+ case REG_ICH_LR9_EL2:
+ case REG_ICH_LR10_EL2:
+ case REG_ICH_LR11_EL2:
+ case REG_ICH_LR12_EL2:
+ case REG_ICH_LR13_EL2:
+ case REG_ICH_LR14_EL2:
+ case REG_ICH_LR15_EL2:
+ case REG_CONTEXTIDR_EL2:
+ case REG_TPIDR_EL2:
+ case REG_SCXTNUM_EL2:
+ case REG_CNTVOFF_EL2:
+ case REG_REDIR_CNTHCTL_EL2:
+ case REG_REDIR_CNTHP_TVAL_EL2:
+ case REG_REDIR_CNTHP_CTL_EL2:
+ case REG_REDIR_CNTHP_CVAL_EL2:
+ case REG_REDIR_CNTHV_TVAL_EL2:
+ case REG_REDIR_CNTHV_CTL_EL2:
+ case REG_REDIR_CNTHV_CVAL_EL2:
+ case REG_CNTHVS_TVAL_EL2:
+ case REG_CNTHVS_CTL_EL2:
+ case REG_CNTHVS_CVAL_EL2:
+ case REG_CNTHPS_TVAL_EL2:
+ case REG_CNTHPS_CTL_EL2:
+ case REG_CNTHPS_CVAL_EL2:
+ case REG_FED_ERR_STS:
+ case REG_FED_ERR_CTL:
+ case REG_APCTL_EL21:
+ case REG_KERNKEYLO_EL21:
+ case REG_KERNKEYHI_EL21:
+ case REG_VMSA_LOCK_EL1:
+ case REG_AMX_STATE_T_EL1:
+ case REG_AMX_CONFIG_EL21:
+ case REG_VMSA_LOCK_EL2:
+ case REG_CTRR_B_UPR_EL21:
+ case REG_CTRR_B_LWR_EL21:
+ case REG_SP_SETUP_GL21:
+ case REG_SP_SETUP_GL2:
+ case REG_CTRR_B_CTL_EL21:
+ case REG_CTRR_A_LWR_EL21:
+ case REG_CTRR_A_UPR_EL21:
+ case REG_CTRR_A_CTL_EL21:
+ case REG_VMSA_LOCK_EL12:
+ case REG_AGTCNTV_CTL_EL02:
+ case REG_AMX_STATE_EL1:
+ case REG_AMX_STATUS_EL1:
+ case REG_AGTCNTP_CVAL_EL02:
+ case REG_REDIR_ACNTP_TVAL_EL02:
+ case REG_AGTCNTP_CTL_EL02:
+ case REG_AGTCNTV_CVAL_EL02:
+ case REG_AGTCNTV_TVAL_EL02:
+ case REG_AMX_CONFIG_EL12:
+ case REG_AMX_CONFIG_EL2:
+ case REG_SPRR_HUPERM_EL0:
+ case REG_SPRR_VUPERM_EL0:
+ case REG_CTRR_A_CTL_EL2:
+ case REG_CTRR_B_CTL_EL2:
+ case REG_CTRR_A_LWR_EL2:
+ case REG_CTRR_A_UPR_EL2:
+ case REG_CTRR_B_LWR_EL2:
+ case REG_CTRR_B_UPR_EL2:
+ case REG_SPRR_HUMPRR_EL2:
+ case REG_SPRR_HUPERM_SH01_EL2:
+ case REG_SPRR_HUPERM_SH02_EL2:
+ case REG_SPRR_HUPERM_SH03_EL2:
+ case REG_SPRR_HUPERM_SH04_EL2:
+ case REG_SPRR_HUPERM_SH05_EL2:
+ case REG_SPRR_HUPERM_SH06_EL2:
+ case REG_SPRR_HUPERM_SH07_EL2:
+ case REG_SPRR_VUMPRR_EL1:
+ case REG_SPRR_VUPERM_SH01_EL1:
+ case REG_SPRR_VUPERM_SH02_EL1:
+ case REG_SPRR_VUPERM_SH03_EL1:
+ case REG_SPRR_VUPERM_SH04_EL1:
+ case REG_SPRR_VUPERM_SH05_EL1:
+ case REG_SPRR_VUPERM_SH06_EL1:
+ case REG_SPRR_VUPERM_SH07_EL1:
+ case REG_CTRR_A_LWR_EL12:
+ case REG_CTRR_A_UPR_EL12:
+ case REG_CTRR_B_LWR_EL12:
+ case REG_CTRR_B_UPR_EL12:
+ case REG_CTRR_A_CTL_EL12:
+ case REG_CTRR_B_CTL_EL12:
+ case REG_REDIR_ACNTKCTL_EL1:
+ case REG_AGTCNTKCTL_EL12:
+ case REG_PREDAKEYLO_EL1:
+ case REG_PREDAKEYHI_EL1:
+ case REG_PREDBKEYLO_EL1:
+ case REG_PREDBKEYHI_EL1:
+ case REG_SIQ_CFG_EL1:
+ case REG_REDIR_LCL_ACNTPCTSS_EL0:
+ case REG_REDIR_LCL_ACNTVCTSS_EL0:
+ case REG_AVNCR_EL2:
+ case REG_ACC_CTRR_A_LWR_EL2:
+ case REG_ACC_CTRR_A_UPR_EL2:
+ case REG_ACC_CTRR_B_LWR_EL2:
+ case REG_ACC_CTRR_B_UPR_EL2:
+ case REG_ACC_CTRR_A_CTL_EL2:
+ case REG_ACC_CTRR_B_CTL_EL2:
+ case REG_REDIR_LCL_ACNTPCT_EL0:
+ case REG_REDIR_LCL_ACNTVCT_EL0:
+ case REG_ACFG_EL1:
+ case REG_AHCR_EL2:
+ case REG_APL_INTSTATUS_EL21:
+ case REG_APL_INTSTATUS_EL2:
+ case REG_REDIR_ACNTHCTL_EL2:
+ case REG_JAPIAKEYLO_NV_EL21:
+ case REG_JAPIAKEYHI_NV_EL21:
+ case REG_JAPIBKEYLO_NV_EL21:
+ case REG_JAPIBKEYHI_NV_EL21:
+ case REG_JAPIAKEYLO_EL21:
+ case REG_JAPIAKEYHI_EL21:
+ case REG_JAPIBKEYLO_EL21:
+ case REG_JAPIBKEYHI_EL21:
+ case REG_JAPIAKEYLO_EL12:
+ case REG_JAPIAKEYHI_EL12:
+ case REG_JAPIBKEYLO_EL12:
+ case REG_JAPIBKEYHI_EL12:
+ case REG_AGTCNTRDIR_EL2:
+ case REG_AGTCNTRDIR_EL12:
+ case REG_JRANGE_EL2:
+ case REG_JRANGE_EL21:
+ case REG_JRANGE_EL12:
+ case REG_JCTL_EL2:
+ case REG_JCTL_EL21:
+ case REG_JCTL_EL12:
+ case REG_JCTL_EL0:
+ case REG_AMDSCR_EL1:
+ case REG_SCTLR_EL12:
+ case REG_ACTLR_EL12:
+ case REG_CPACR_EL12:
+ case REG_TRFCR_EL12:
+ case REG_SMCR_EL12:
+ case REG_TTBR0_EL12:
+ case REG_TTBR1_EL12:
+ case REG_TCR_EL12:
+ case REG_SPSR_EL12:
+ case REG_ELR_EL12:
+ case REG_AFSR0_EL12:
+ case REG_AFSR1_EL12:
+ case REG_ESR_EL12:
+ case REG_TFSR_EL12:
+ case REG_FAR_EL12:
+ case REG_PMSCR_EL12:
+ case REG_MAIR_EL12:
+ case REG_AMAIR_EL12:
+ case REG_MPAM1_EL12:
+ case REG_VBAR_EL12:
+ case REG_CONTEXTIDR_EL12:
+ case REG_SCXTNUM_EL12:
+ case REG_CNTKCTL_EL12:
+ case REG_CNTP_TVAL_EL02:
+ case REG_CNTP_CTL_EL02:
+ case REG_CNTP_CVAL_EL02:
+ case REG_CNTV_TVAL_EL02:
+ case REG_CNTV_CTL_EL02:
+ case REG_CNTV_CVAL_EL02:
+ case REG_IPI_RR_LOCAL_EL1:
+ case REG_IPI_RR_GLOBAL_EL1:
+ case REG_AF_ERR_CFG0:
+ case REG_AP_ERR_CFG0:
+ case REG_AF_ERR_SRC_IDS:
+ case REG_DPC_ERR_STS:
+ case REG_DPC_ERR_CTL:
+ case REG_PROD_TRC_CORE_CFG_EL21:
+ case REG_TRACE_CORE_CFG:
+ case REG_IPI_SR:
+ case REG_APL_LRTMR_EL2:
+ case REG_APL_INTENABLE_EL2:
+ case REG_KTRACE_MESSAGE:
+ case REG_TRACE_CORE_CFG_EXT:
+ case REG_PROD_TRC_CORE_CFG_EL2:
+ case REG_HID_PROD_TRC_CORE_CFG_EL1:
+ case REG_DBG_WRAP_GLB:
+ case REG_TRACE_STREAM_BASE:
+ case REG_TRACE_STREAM_FILL:
+ case REG_TRACE_STREAM_BASE1:
+ case REG_TRACE_STREAM_FILL1:
+ case REG_TRACE_STREAM_IRQ:
+ case REG_WATCHDOGDIAG0:
+ case REG_WATCHDOGDIAG1:
+ case REG_TRACE_AUX_CTL:
+ case REG_IPI_CR:
+ case REG_UTRIG_EVENT:
+ case REG_HID_PROD_TRC_MASK_EL1:
+ case REG_TRACE_CTL:
+ case REG_TRACE_DAT:
+ case REG_PROD_TRC_STRM_BASE0_GL2:
+ case REG_PROD_TRC_STRM_BASE1_GL2:
+ case REG_CPU_CFG:
+ case REG_PBLK_STS:
+ case REG_PROD_TRC_CTL_EL21:
+ case REG_PROD_TRC_STRM_BASE0_GL21:
+ case REG_PROD_TRC_STRM_BASE1_GL21:
+ case REG_PROD_TRC_STRM_FIQ_EL21:
+ case REG_CPU_OVRD:
+ case REG_PBLK_EXE_ST:
+ case REG_PROD_TRC_CORE_GL_CTL_GL21:
+ case REG_PROD_TRC_CORE_GL_CTL_GL2:
+ case REG_ACC_OVRD:
+ case REG_ACC_OVRD1:
+ case REG_CPM_PWRDN_CTL:
+ case REG_PROD_TRC_BUF_RESTORE0_GL21:
+ case REG_PROD_TRC_BUF_RESTORE1_GL21:
+ case REG_PROD_TRC_EN_GL21:
+ case REG_PRE_LLCFLUSH_TMR:
+ case REG_BIUINTFCTL_CFG:
+ case REG_BIUINTFWRR_CFG:
+ case REG_PRE_TD_TMR:
+ case REG_ACC_SLP_WAKE_UP_TMR:
+ case REG_PBLK_PSW_DLY:
+ case REG_CPU_STS:
+ case REG_HIST_TRIG:
+ case REG_PROD_TRC_BUF_RESTORE0_GL2:
+ case REG_PROD_TRC_BUF_RESTORE1_GL2:
+ case REG_PROD_TRC_STRM_FILL0_EL1:
+ case REG_PROD_TRC_STRM_FILL1_EL1:
+ case REG_ARRAY_INDEX:
+ case REG_PROD_TRC_CTL_EL2:
+ case REG_PROD_TRC_EN_GL2:
+ case REG_PROD_TRC_STRM_FIQ_EL2:
+ case REG_PROD_TRC_CPMU_DUMP_TRIG_EL1:
+ case REG_PROD_LOSS_COUNT_EL1:
+ case REG_SW_TRACE_DATA_EL0:
+ case REG_IL1_DATA0:
+ case REG_IL1_DATA1:
+ case REG_DL1_DATA0:
+ case REG_DL1_DATA1:
+ case REG_MMUDATA0:
+ case REG_MMUDATA1:
+ case REG_DL1_DATA2:
+ case REG_IL1_DATA2:
+ case REG_LLC_DATA0:
+ case REG_LLC_DATA1:
+ case REG_SCTLR_EL3:
+ case REG_ACTLR_EL3:
+ case REG_SCR_EL3:
+ case REG_SDER32_EL3:
+ case REG_CPTR_EL3:
+ case REG_MDCR_EL3:
+ case REG_TTBR0_EL3:
+ case REG_TCR_EL3:
+ case REG_SPSR_EL3:
+ case REG_ELR_EL3:
+ case REG_SP_EL2:
+ case REG_AFSR0_EL3:
+ case REG_AFSR1_EL3:
+ case REG_ESR_EL3:
+ case REG_TFSR_EL3:
+ case REG_FAR_EL3:
+ case REG_MAIR_EL3:
+ case REG_AMAIR_EL3:
+ case REG_MPAM3_EL3:
+ case REG_VBAR_EL3:
+ case REG_RVBAR_EL3:
+ case REG_RMR_EL3:
+ case REG_ICC_CTLR_EL3:
+ case REG_ICC_SRE_EL3:
+ case REG_ICC_IGRPEN1_EL3:
+ case REG_TPIDR_EL3:
+ case REG_SCXTNUM_EL3:
+ case REG_MMU_ERR_STS:
+ case REG_AFSR1_GL21:
+ case REG_AFSR1_GL2:
+ case REG_AFSR1_GL12:
+ case REG_BP_OBJC_ADR_EL1:
+ case REG_BP_OBJC_CTL_EL1:
+ case REG_SP_GL11_GL21:
+ case REG_MMU_SESR_EL2:
+ case REG_SPRR_CONFIG_EL21:
+ case REG_HPFAR_GL2:
+ case REG_GXF_CONFIG_EL21:
+ case REG_SPRR_AMRANGE_EL1:
+ case REG_GXF_CONFIG_EL2:
+ case REG_SPRR_UPERM_EL02:
+ case REG_SPRR_PPERM_EL21:
+ case REG_SPRR_PPERM_EL2:
+ case REG_APGAKEYLO_EL12:
+ case REG_APGAKEYHI_EL12:
+ case REG_KERNKEYLO_EL12:
+ case REG_KERNKEYHI_EL12:
+ case REG_AFPCR_EL0:
+ case REG_SP_GL22:
+ case REG_AMXIDR_EL1:
+ case REG_SPRR_UMPRR_EL1:
+ case REG_SPRR_PMPRR_EL21:
+ case REG_SPRR_PMPRR_EL2:
+ case REG_SPRR_UPERM_SH01_EL1:
+ case REG_SPRR_UPERM_SH02_EL1:
+ case REG_SPRR_UPERM_SH03_EL1:
+ case REG_SPRR_UPERM_SH04_EL1:
+ case REG_SPRR_UPERM_SH05_EL1:
+ case REG_SPRR_UPERM_SH06_EL1:
+ case REG_SPRR_UPERM_SH07_EL1:
+ case REG_SPRR_PPERM_SH01_EL21:
+ case REG_SPRR_PPERM_SH02_EL21:
+ case REG_SPRR_PPERM_SH03_EL21:
+ case REG_SPRR_PPERM_SH04_EL21:
+ case REG_SPRR_PPERM_SH05_EL21:
+ case REG_SPRR_PPERM_SH06_EL21:
+ case REG_SPRR_PPERM_SH07_EL21:
+ case REG_SPRR_PPERM_SH01_EL2:
+ case REG_SPRR_PPERM_SH02_EL2:
+ case REG_SPRR_PPERM_SH03_EL2:
+ case REG_SPRR_PPERM_SH04_EL2:
+ case REG_SPRR_PPERM_SH05_EL2:
+ case REG_SPRR_PPERM_SH06_EL2:
+ case REG_SPRR_PPERM_SH07_EL2:
+ case REG_SPRR_PMPRR_EL12:
+ case REG_SPRR_PPERM_SH01_EL12:
+ case REG_SPRR_PPERM_SH02_EL12:
+ case REG_SPRR_PPERM_SH03_EL12:
+ case REG_SPRR_PPERM_SH04_EL12:
+ case REG_SPRR_PPERM_SH05_EL12:
+ case REG_SPRR_PPERM_SH06_EL12:
+ case REG_SPRR_PPERM_SH07_EL12:
+ case REG_APIAKEYLO_EL12:
+ case REG_APIAKEYHI_EL12:
+ case REG_APIBKEYLO_EL12:
+ case REG_APIBKEYHI_EL12:
+ case REG_APDAKEYLO_EL12:
+ case REG_APDAKEYHI_EL12:
+ case REG_APDBKEYLO_EL12:
+ case REG_APDBKEYHI_EL12:
+ case REG_CURRENTG:
+ case REG_GXF_ENTRY_EL21:
+ case REG_GXF_PABENTRY_EL21:
+ case REG_ASPSR_EL21:
+ case REG_ADSPSR_EL0:
+ case REG_PMCR1_GL2:
+ case REG_ASPSR_NV_EL21:
+ case REG_PMCR1_GL21:
+ case REG_VBAR_GL12:
+ case REG_SPSR_GL12:
+ case REG_ASPSR_GL12:
+ case REG_ESR_GL12:
+ case REG_ELR_GL12:
+ case REG_FAR_GL12:
+ case REG_SP_GL1:
+ case REG_TPIDR_GL1:
+ case REG_VBAR_GL21:
+ case REG_SPSR_GL21:
+ case REG_ASPSR_GL21:
+ case REG_ESR_GL21:
+ case REG_ELR_GL21:
+ case REG_FAR_GL21:
+ case REG_SP_GL2:
+ case REG_TPIDR_GL2:
+ case REG_VBAR_GL2:
+ case REG_SPSR_GL2:
+ case REG_ASPSR_GL2:
+ case REG_ESR_GL2:
+ case REG_ELR_GL2:
+ case REG_FAR_GL2:
+ case REG_GXF_ENTRY_EL2:
+ case REG_GXF_PABENTRY_EL2:
+ case REG_APCTL_EL2:
+ case REG_APSTS_EL2:
+ case REG_APSTS_NV1_EL1:
+ case REG_KERNKEYLO_NV_EL21:
+ case REG_KERNKEYHI_NV_EL21:
+ case REG_ASPSR_EL12:
+ case REG_APIAKEYLO_NV_EL21:
+ case REG_APIAKEYHI_NV_EL21:
+ case REG_APIBKEYLO_NV_EL21:
+ case REG_APIBKEYHI_NV_EL21:
+ case REG_APDAKEYLO_NV_EL21:
+ case REG_APDAKEYHI_NV_EL21:
+ case REG_APDBKEYLO_NV_EL21:
+ case REG_APDBKEYHI_NV_EL21:
+ case REG_APGAKEYLO_NV_EL21:
+ case REG_APGAKEYHI_NV_EL21:
+ case REG_SPRR_CONFIG_EL2:
+ case REG_SPRR_AMRANGE_EL2:
+ case REG_VMKEYLO_EL2:
+ case REG_VMKEYHI_EL2:
+ case REG_MMU_SFAR_EL2:
+ case REG_APSTS_EL12:
+ case REG_APCTL_EL12:
+ case REG_GXF_CONFIG_EL12:
+ case REG_GXF_ENTRY_EL12:
+ case REG_GXF_PABENTRY_EL12:
+ case REG_SPRR_CONFIG_EL12:
+ case REG_SPRR_AMRANGE_EL12:
+ case REG_MMU_SESR_CTL_EL2:
+ case REG_SPRR_PPERM_EL12:
+ case REG_CNTPS_TVAL_EL1:
+ case REG_CNTPS_CTL_EL1:
+ case REG_CNTPS_CVAL_EL1:
+ case REG_PSTATE_SPSEL:
+ case REG_PWRDNSAVE0:
+ case REG_NRG_ACC_CTL:
+ case REG_AON_CNT0:
+ case REG_CPU_CNT0:
+ case REG_UPMCR0_EL1:
+ case REG_UPMC8:
+ case REG_AON_CNT8:
+ case REG_PWRDNSAVE1:
+ case REG_CORE_NRG_ACC_DAT:
+ case REG_AON_CNT_CTL0:
+ case REG_CPU_CNT_CTL0:
+ case REG_UPMESR0_EL1:
+ case REG_UPMC9:
+ case REG_AON_CNT_CTL8:
+ case REG_ACC_PWR_DN_SAVE:
+ case REG_CPM_NRG_ACC_DAT:
+ case REG_AON_CNT1:
+ case REG_CPU_CNT1:
+ case REG_UPMSWCTRL_EL1:
+ case REG_UPMC10:
+ case REG_AON_CNT9:
+ case REG_CORE_SRM_NRG_ACC_DAT:
+ case REG_AON_CNT_CTL1:
+ case REG_CPU_CNT_CTL1:
+ case REG_UPMECM0_EL1:
+ case REG_UPMC11:
+ case REG_AON_CNT_CTL9:
+ case REG_AON_CNT_CTL:
+ case REG_CPM_SRM_NRG_ACC_DAT:
+ case REG_AON_CNT2:
+ case REG_CPU_CNT2:
+ case REG_UPMECM1_EL1:
+ case REG_UPMC12:
+ case REG_AON_CNT10:
+ case REG_CPU_CNT_CTL:
+ case REG_AON_CNT_CTL2:
+ case REG_CPU_CNT_CTL2:
+ case REG_UPMPCM_EL1:
+ case REG_UPMC13:
+ case REG_AON_CNT_CTL10:
+ case REG_AON_CNT3:
+ case REG_CPU_CNT3:
+ case REG_UPMSR_EL1:
+ case REG_UPMC14:
+ case REG_AON_CNT11:
+ case REG_AON_CNT_CTL3:
+ case REG_CPU_CNT_CTL3:
+ case REG_UPMC0:
+ case REG_UPMC15:
+ case REG_AON_CNT_CTL11:
+ case REG_AON_CNT4:
+ case REG_CPU_CNT4:
+ case REG_UPMC1:
+ case REG_UPMECM2_EL1:
+ case REG_AON_CNT_CTL4:
+ case REG_CPU_CNT_CTL4:
+ case REG_UPMC2:
+ case REG_UPMECM3_EL1:
+ case REG_AON_CNT5:
+ case REG_CPU_CNT5:
+ case REG_UPMC3:
+ case REG_UPMCR1_EL1:
+ case REG_AON_CNT_CTL5:
+ case REG_CPU_CNT_CTL5:
+ case REG_UPMC4:
+ case REG_UPMESR1_EL1:
+ case REG_AON_CNT6:
+ case REG_CPU_CNT6:
+ case REG_UPMC5:
+ case REG_AON_CNT_CTL6:
+ case REG_CPU_CNT_CTL6:
+ case REG_UPMC6:
+ case REG_AON_CNT7:
+ case REG_CPU_CNT7:
+ case REG_UPMC7:
+ case REG_AON_CNT_CTL7:
+ case REG_CPU_CNT_CTL7:
+ return true;
+ default: return false;
+ }
+}
+
+
diff --git a/arch/arm64/disassembler/sysregs_gen.h b/arch/arm64/disassembler/sysregs_gen.h
new file mode 100644
index 00000000..b7a16cd5
--- /dev/null
+++ b/arch/arm64/disassembler/sysregs_gen.h
@@ -0,0 +1,1560 @@
+#pragma once
+
+#include <stdbool.h>
+
+enum SystemReg {
+ SYSREG_NONE=0,
+ REG_EDSCR =4 /* 4 */, // S0_0_c0_c0_4 at min EL0: EDSCR
+ REG_EDPRSR =24 /* 24 */, // S0_0_c0_c3_0 at min EL0: EDPRSR
+ REG_UAOIMM =515 /* 515 */, // S0_0_c4_c0_3 at min EL1: UAOIMM
+ REG_PANIMM =516 /* 516 */, // S0_0_c4_c0_4 at min EL1: PANIMM
+ REG_SPSELIMM =517 /* 517 */, // S0_0_c4_c0_5 at min EL1: SPSELIMM
+ REG_DITIMM =6658 /* 6658 */, // S0_3_c4_c0_2 at min EL1: DITIMM
+ REG_SVCRIMM =6659 /* 6659 */, // S0_3_c4_c0_3 at min EL1: SVCRIMM
+ REG_ICIALLUIS =17288 /* 17288 */, // S1_0_c7_c1_0 at min EL1: ICIALLUIS
+ REG_ICIALLU =17320 /* 17320 */, // S1_0_c7_c5_0 at min EL1: ICIALLU
+ REG_DCIVAC =17329 /* 17329 */, // S1_0_c7_c6_1 at min EL1: DCIVAC
+ REG_DCISW =17330 /* 17330 */, // S1_0_c7_c6_2 at min EL1: DCISW
+ REG_ATS1E1R =17344 /* 17344 */, // S1_0_c7_c8_0 at min EL1: ATS1E1R
+ REG_ATS1E1W =17345 /* 17345 */, // S1_0_c7_c8_1 at min EL1: ATS1E1W
+ REG_ATS1E0R =17346 /* 17346 */, // S1_0_c7_c8_2 at min EL1: ATS1E0R
+ REG_ATS1E0W =17347 /* 17347 */, // S1_0_c7_c8_3 at min EL1: ATS1E0W
+ REG_DCCSW =17362 /* 17362 */, // S1_0_c7_c10_2 at min EL1: DCCSW
+ REG_DCCISW =17394 /* 17394 */, // S1_0_c7_c14_2 at min EL1: DCCISW
+ REG_TLBIVMALLE1IS =17432 /* 17432 */, // S1_0_c8_c3_0 at min EL1: TLBIVMALLE1IS
+ REG_TLBIVAE1IS =17433 /* 17433 */, // S1_0_c8_c3_1 at min EL1: TLBIVAE1IS
+ REG_TLBIASIDE1IS =17434 /* 17434 */, // S1_0_c8_c3_2 at min EL1: TLBIASIDE1IS
+ REG_TLBIVAAE1IS =17435 /* 17435 */, // S1_0_c8_c3_3 at min EL1: TLBIVAAE1IS
+ REG_TLBIVALE1IS =17437 /* 17437 */, // S1_0_c8_c3_5 at min EL1: TLBIVALE1IS
+ REG_TLBIVAALE1IS =17439 /* 17439 */, // S1_0_c8_c3_7 at min EL1: TLBIVAALE1IS
+ REG_TLBIVMALLE1 =17464 /* 17464 */, // S1_0_c8_c7_0 at min EL1: TLBIVMALLE1
+ REG_TLBIVAE1 =17465 /* 17465 */, // S1_0_c8_c7_1 at min EL1: TLBIVAE1
+ REG_TLBIASIDE1 =17466 /* 17466 */, // S1_0_c8_c7_2 at min EL1: TLBIASIDE1
+ REG_TLBIVAAE1 =17467 /* 17467 */, // S1_0_c8_c7_3 at min EL1: TLBIVAAE1
+ REG_TLBIVALE1 =17469 /* 17469 */, // S1_0_c8_c7_5 at min EL1: TLBIVALE1
+ REG_TLBIVAALE1 =17471 /* 17471 */, // S1_0_c8_c7_7 at min EL1: TLBIVAALE1
+ REG_DCZVA =23457 /* 23457 */, // S1_3_c7_c4_1 at min EL1: DCZVA
+ REG_ICIVAU =23465 /* 23465 */, // S1_3_c7_c5_1 at min EL1: ICIVAU
+ REG_DCCVAC =23505 /* 23505 */, // S1_3_c7_c10_1 at min EL1: DCCVAC
+ REG_DCCVAU =23513 /* 23513 */, // S1_3_c7_c11_1 at min EL1: DCCVAU
+ REG_DCCIVAC =23537 /* 23537 */, // S1_3_c7_c14_1 at min EL1: DCCIVAC
+ REG_ATS1E2R =25536 /* 25536 */, // S1_4_c7_c8_0 at min EL1: ATS1E2R
+ REG_ATS1E2W =25537 /* 25537 */, // S1_4_c7_c8_1 at min EL1: ATS1E2W
+ REG_ATS12E1R =25540 /* 25540 */, // S1_4_c7_c8_4 at min EL1: ATS12E1R
+ REG_ATS12E1W =25541 /* 25541 */, // S1_4_c7_c8_5 at min EL1: ATS12E1W
+ REG_ATS12E0R =25542 /* 25542 */, // S1_4_c7_c8_6 at min EL1: ATS12E0R
+ REG_ATS12E0W =25543 /* 25543 */, // S1_4_c7_c8_7 at min EL1: ATS12E0W
+ REG_TLBIIPAS2E1IS =25601 /* 25601 */, // S1_4_c8_c0_1 at min EL1: TLBIIPAS2E1IS
+ REG_TLBIIPAS2LE1IS =25605 /* 25605 */, // S1_4_c8_c0_5 at min EL1: TLBIIPAS2LE1IS
+ REG_TLBIALLE2IS =25624 /* 25624 */, // S1_4_c8_c3_0 at min EL1: TLBIALLE2IS
+ REG_TLBIVAE2IS =25625 /* 25625 */, // S1_4_c8_c3_1 at min EL1: TLBIVAE2IS
+ REG_TLBIALLE1IS =25628 /* 25628 */, // S1_4_c8_c3_4 at min EL1: TLBIALLE1IS
+ REG_TLBIVALE2IS =25629 /* 25629 */, // S1_4_c8_c3_5 at min EL1: TLBIVALE2IS
+ REG_TLBIVMALLS12E1IS =25630 /* 25630 */, // S1_4_c8_c3_6 at min EL1: TLBIVMALLS12E1IS
+ REG_TLBIIPAS2E1 =25633 /* 25633 */, // S1_4_c8_c4_1 at min EL1: TLBIIPAS2E1
+ REG_TLBIIPAS2LE1 =25637 /* 25637 */, // S1_4_c8_c4_5 at min EL1: TLBIIPAS2LE1
+ REG_TLBIALLE2 =25656 /* 25656 */, // S1_4_c8_c7_0 at min EL1: TLBIALLE2
+ REG_TLBIVAE2 =25657 /* 25657 */, // S1_4_c8_c7_1 at min EL1: TLBIVAE2
+ REG_TLBIALLE1 =25660 /* 25660 */, // S1_4_c8_c7_4 at min EL1: TLBIALLE1
+ REG_TLBIVALE2 =25661 /* 25661 */, // S1_4_c8_c7_5 at min EL1: TLBIVALE2
+ REG_TLBIVMALLS12E1 =25662 /* 25662 */, // S1_4_c8_c7_6 at min EL1: TLBIVMALLS12E1
+ REG_ATS1E3R =29632 /* 29632 */, // S1_6_c7_c8_0 at min EL1: ATS1E3R
+ REG_ATS1E3W =29633 /* 29633 */, // S1_6_c7_c8_1 at min EL1: ATS1E3W
+ REG_TLBIALLE3IS =29720 /* 29720 */, // S1_6_c8_c3_0 at min EL1: TLBIALLE3IS
+ REG_TLBIVAE3IS =29721 /* 29721 */, // S1_6_c8_c3_1 at min EL1: TLBIVAE3IS
+ REG_TLBIVALE3IS =29725 /* 29725 */, // S1_6_c8_c3_5 at min EL1: TLBIVALE3IS
+ REG_TLBIALLE3 =29752 /* 29752 */, // S1_6_c8_c7_0 at min EL1: TLBIALLE3
+ REG_TLBIVAE3 =29753 /* 29753 */, // S1_6_c8_c7_1 at min EL1: TLBIVAE3
+ REG_TLBIVALE3 =29757 /* 29757 */, // S1_6_c8_c7_5 at min EL1: TLBIVALE3
+ REG_OSDTRRX_EL1 =32770 /* 32770 */, // S2_0_c0_c0_2 at min EL1: OSDTRRX_EL1
+ REG_DBGBVR0_EL1 =32772 /* 32772 */, // S2_0_c0_c0_4 at min EL1: DBGBVR0_EL1
+ REG_DBGBCR0_EL1 =32773 /* 32773 */, // S2_0_c0_c0_5 at min EL1: DBGBCR0_EL1
+ REG_DBGWVR0_EL1 =32774 /* 32774 */, // S2_0_c0_c0_6 at min EL1: DBGWVR0_EL1
+ REG_DBGWCR0_EL1 =32775 /* 32775 */, // S2_0_c0_c0_7 at min EL1: DBGWCR0_EL1
+ REG_DBGBVR1_EL1 =32780 /* 32780 */, // S2_0_c0_c1_4 at min EL1: DBGBVR1_EL1
+ REG_DBGBCR1_EL1 =32781 /* 32781 */, // S2_0_c0_c1_5 at min EL1: DBGBCR1_EL1
+ REG_DBGWVR1_EL1 =32782 /* 32782 */, // S2_0_c0_c1_6 at min EL1: DBGWVR1_EL1
+ REG_DBGWCR1_EL1 =32783 /* 32783 */, // S2_0_c0_c1_7 at min EL1: DBGWCR1_EL1
+ REG_MDCCINT_EL1 =32784 /* 32784 */, // S2_0_c0_c2_0 at min EL1: MDCCINT_EL1
+ REG_MDSCR_EL1 =32786 /* 32786 */, // S2_0_c0_c2_2 at min EL1: MDSCR_EL1
+ REG_DBGBVR2_EL1 =32788 /* 32788 */, // S2_0_c0_c2_4 at min EL1: DBGBVR2_EL1
+ REG_DBGBCR2_EL1 =32789 /* 32789 */, // S2_0_c0_c2_5 at min EL1: DBGBCR2_EL1
+ REG_DBGWVR2_EL1 =32790 /* 32790 */, // S2_0_c0_c2_6 at min EL1: DBGWVR2_EL1
+ REG_DBGWCR2_EL1 =32791 /* 32791 */, // S2_0_c0_c2_7 at min EL1: DBGWCR2_EL1
+ REG_OSDTRTX_EL1 =32794 /* 32794 */, // S2_0_c0_c3_2 at min EL1: OSDTRTX_EL1
+ REG_DBGBVR3_EL1 =32796 /* 32796 */, // S2_0_c0_c3_4 at min EL1: DBGBVR3_EL1
+ REG_DBGBCR3_EL1 =32797 /* 32797 */, // S2_0_c0_c3_5 at min EL1: DBGBCR3_EL1
+ REG_DBGWVR3_EL1 =32798 /* 32798 */, // S2_0_c0_c3_6 at min EL1: DBGWVR3_EL1
+ REG_DBGWCR3_EL1 =32799 /* 32799 */, // S2_0_c0_c3_7 at min EL1: DBGWCR3_EL1
+ REG_DBGBVR4_EL1 =32804 /* 32804 */, // S2_0_c0_c4_4 at min EL1: DBGBVR4_EL1
+ REG_DBGBCR4_EL1 =32805 /* 32805 */, // S2_0_c0_c4_5 at min EL1: DBGBCR4_EL1
+ REG_DBGWVR4_EL1 =32806 /* 32806 */, // S2_0_c0_c4_6 at min EL1: DBGWVR4_EL1
+ REG_DBGWCR4_EL1 =32807 /* 32807 */, // S2_0_c0_c4_7 at min EL1: DBGWCR4_EL1
+ REG_DBGBVR5_EL1 =32812 /* 32812 */, // S2_0_c0_c5_4 at min EL1: DBGBVR5_EL1
+ REG_DBGBCR5_EL1 =32813 /* 32813 */, // S2_0_c0_c5_5 at min EL1: DBGBCR5_EL1
+ REG_DBGWVR5_EL1 =32814 /* 32814 */, // S2_0_c0_c5_6 at min EL1: DBGWVR5_EL1
+ REG_DBGWCR5_EL1 =32815 /* 32815 */, // S2_0_c0_c5_7 at min EL1: DBGWCR5_EL1
+ REG_DBGWFAR =32816 /* 32816 */, // S2_0_c0_c6_0 at min EL1: DBGWFAR
+ REG_OSECCR_EL1 =32818 /* 32818 */, // S2_0_c0_c6_2 at min EL1: OSECCR_EL1
+ REG_DBGBVR6_EL1 =32820 /* 32820 */, // S2_0_c0_c6_4 at min EL1: DBGBVR6_EL1
+ REG_DBGBCR6_EL1 =32821 /* 32821 */, // S2_0_c0_c6_5 at min EL1: DBGBCR6_EL1
+ REG_DBGWVR6_EL1 =32822 /* 32822 */, // S2_0_c0_c6_6 at min EL1: DBGWVR6_EL1
+ REG_DBGWCR6_EL1 =32823 /* 32823 */, // S2_0_c0_c6_7 at min EL1: DBGWCR6_EL1
+ REG_DBGBVR7_EL1 =32828 /* 32828 */, // S2_0_c0_c7_4 at min EL1: DBGBVR7_EL1
+ REG_DBGBCR7_EL1 =32829 /* 32829 */, // S2_0_c0_c7_5 at min EL1: DBGBCR7_EL1
+ REG_DBGWVR7_EL1 =32830 /* 32830 */, // S2_0_c0_c7_6 at min EL1: DBGWVR7_EL1
+ REG_DBGWCR7_EL1 =32831 /* 32831 */, // S2_0_c0_c7_7 at min EL1: DBGWCR7_EL1
+ REG_DBGBVR8_EL1 =32836 /* 32836 */, // S2_0_c0_c8_4 at min EL1: DBGBVR8_EL1
+ REG_DBGBCR8_EL1 =32837 /* 32837 */, // S2_0_c0_c8_5 at min EL1: DBGBCR8_EL1
+ REG_DBGWVR8_EL1 =32838 /* 32838 */, // S2_0_c0_c8_6 at min EL1: DBGWVR8_EL1
+ REG_DBGWCR8_EL1 =32839 /* 32839 */, // S2_0_c0_c8_7 at min EL1: DBGWCR8_EL1
+ REG_DBGBVR9_EL1 =32844 /* 32844 */, // S2_0_c0_c9_4 at min EL1: DBGBVR9_EL1
+ REG_DBGBCR9_EL1 =32845 /* 32845 */, // S2_0_c0_c9_5 at min EL1: DBGBCR9_EL1
+ REG_DBGWVR9_EL1 =32846 /* 32846 */, // S2_0_c0_c9_6 at min EL1: DBGWVR9_EL1
+ REG_DBGWCR9_EL1 =32847 /* 32847 */, // S2_0_c0_c9_7 at min EL1: DBGWCR9_EL1
+ REG_DBGBVR10_EL1 =32852 /* 32852 */, // S2_0_c0_c10_4 at min EL1: DBGBVR10_EL1
+ REG_DBGBCR10_EL1 =32853 /* 32853 */, // S2_0_c0_c10_5 at min EL1: DBGBCR10_EL1
+ REG_DBGWVR10_EL1 =32854 /* 32854 */, // S2_0_c0_c10_6 at min EL1: DBGWVR10_EL1
+ REG_DBGWCR10_EL1 =32855 /* 32855 */, // S2_0_c0_c10_7 at min EL1: DBGWCR10_EL1
+ REG_DBGBVR11_EL1 =32860 /* 32860 */, // S2_0_c0_c11_4 at min EL1: DBGBVR11_EL1
+ REG_DBGBCR11_EL1 =32861 /* 32861 */, // S2_0_c0_c11_5 at min EL1: DBGBCR11_EL1
+ REG_DBGWVR11_EL1 =32862 /* 32862 */, // S2_0_c0_c11_6 at min EL1: DBGWVR11_EL1
+ REG_DBGWCR11_EL1 =32863 /* 32863 */, // S2_0_c0_c11_7 at min EL1: DBGWCR11_EL1
+ REG_DBGBVR12_EL1 =32868 /* 32868 */, // S2_0_c0_c12_4 at min EL1: DBGBVR12_EL1
+ REG_DBGBCR12_EL1 =32869 /* 32869 */, // S2_0_c0_c12_5 at min EL1: DBGBCR12_EL1
+ REG_DBGWVR12_EL1 =32870 /* 32870 */, // S2_0_c0_c12_6 at min EL1: DBGWVR12_EL1
+ REG_DBGWCR12_EL1 =32871 /* 32871 */, // S2_0_c0_c12_7 at min EL1: DBGWCR12_EL1
+ REG_DBGBVR13_EL1 =32876 /* 32876 */, // S2_0_c0_c13_4 at min EL1: DBGBVR13_EL1
+ REG_DBGBCR13_EL1 =32877 /* 32877 */, // S2_0_c0_c13_5 at min EL1: DBGBCR13_EL1
+ REG_DBGWVR13_EL1 =32878 /* 32878 */, // S2_0_c0_c13_6 at min EL1: DBGWVR13_EL1
+ REG_DBGWCR13_EL1 =32879 /* 32879 */, // S2_0_c0_c13_7 at min EL1: DBGWCR13_EL1
+ REG_DBGBVR14_EL1 =32884 /* 32884 */, // S2_0_c0_c14_4 at min EL1: DBGBVR14_EL1
+ REG_DBGBCR14_EL1 =32885 /* 32885 */, // S2_0_c0_c14_5 at min EL1: DBGBCR14_EL1
+ REG_DBGWVR14_EL1 =32886 /* 32886 */, // S2_0_c0_c14_6 at min EL1: DBGWVR14_EL1
+ REG_DBGWCR14_EL1 =32887 /* 32887 */, // S2_0_c0_c14_7 at min EL1: DBGWCR14_EL1
+ REG_DBGBVR15_EL1 =32892 /* 32892 */, // S2_0_c0_c15_4 at min EL1: DBGBVR15_EL1
+ REG_DBGBCR15_EL1 =32893 /* 32893 */, // S2_0_c0_c15_5 at min EL1: DBGBCR15_EL1
+ REG_DBGWVR15_EL1 =32894 /* 32894 */, // S2_0_c0_c15_6 at min EL1: DBGWVR15_EL1
+ REG_DBGWCR15_EL1 =32895 /* 32895 */, // S2_0_c0_c15_7 at min EL1: DBGWCR15_EL1
+ REG_MDRAR_EL1 =32896 /* 32896 */, // S2_0_c1_c0_0 at min EL1: MDRAR_EL1
+ REG_OSLAR_EL1 =32900 /* 32900 */, // S2_0_c1_c0_4 at min EL1: OSLAR_EL1
+ REG_OSLSR_EL1 =32908 /* 32908 */, // S2_0_c1_c1_4 at min EL1: OSLSR_EL1
+ REG_OSDLR_EL1 =32924 /* 32924 */, // S2_0_c1_c3_4 at min EL1: OSDLR_EL1
+ REG_DBGPRCR_EL1 =32932 /* 32932 */, // S2_0_c1_c4_4 at min EL1: DBGPRCR_EL1
+ REG_CLAIMSET_EL1 =33734 /* 33734 */, // S2_0_c7_c8_6 at min EL1: CLAIMSET_EL1
+ REG_DBGCLAIMSET_EL1 =33734 /* 33734 */,
+ REG_CLAIMCLR_EL1 =33742 /* 33742 */, // S2_0_c7_c9_6 at min EL1: CLAIMCLR_EL1
+ REG_DBGCLAIMCLR_EL1 =33742 /* 33742 */,
+ REG_AUTHSTAT_EL1 =33782 /* 33782 */, // S2_0_c7_c14_6 at min EL1: AUTHSTAT_EL1
+ REG_TRCTRACEIDR =34817 /* 34817 */,
+ REG_TRCVICTLR =34818 /* 34818 */,
+ REG_TRCSEQEVR0 =34820 /* 34820 */,
+ REG_TRCCNTRLDVR0 =34821 /* 34821 */,
+ REG_TRCIMSPEC0 =34823 /* 34823 */,
+ REG_TRCPRGCTLR =34824 /* 34824 */,
+ REG_TRCQCTLR =34825 /* 34825 */,
+ REG_TRCVIIECTLR =34826 /* 34826 */,
+ REG_TRCSEQEVR1 =34828 /* 34828 */,
+ REG_TRCCNTRLDVR1 =34829 /* 34829 */,
+ REG_TRCIMSPEC1 =34831 /* 34831 */,
+ REG_TRCPROCSELR =34832 /* 34832 */,
+ REG_TRCVISSCTLR =34834 /* 34834 */,
+ REG_TRCSEQEVR2 =34836 /* 34836 */,
+ REG_TRCCNTRLDVR2 =34837 /* 34837 */,
+ REG_TRCIMSPEC2 =34839 /* 34839 */,
+ REG_TRCVIPCSSCTLR =34842 /* 34842 */,
+ REG_TRCCNTRLDVR3 =34845 /* 34845 */,
+ REG_TRCIMSPEC3 =34847 /* 34847 */,
+ REG_TRCCONFIGR =34848 /* 34848 */,
+ REG_TRCCNTCTLR0 =34853 /* 34853 */,
+ REG_TRCIMSPEC4 =34855 /* 34855 */,
+ REG_TRCCNTCTLR1 =34861 /* 34861 */,
+ REG_TRCIMSPEC5 =34863 /* 34863 */,
+ REG_TRCAUXCTLR =34864 /* 34864 */,
+ REG_TRCSEQRSTEVR =34868 /* 34868 */,
+ REG_TRCCNTCTLR2 =34869 /* 34869 */,
+ REG_TRCIMSPEC6 =34871 /* 34871 */,
+ REG_TRCSEQSTR =34876 /* 34876 */,
+ REG_TRCCNTCTLR3 =34877 /* 34877 */,
+ REG_TRCIMSPEC7 =34879 /* 34879 */,
+ REG_TRCEVENTCTL0R =34880 /* 34880 */,
+ REG_TRCVDCTLR =34882 /* 34882 */,
+ REG_TRCEXTINSELR =34884 /* 34884 */,
+ REG_TRCCNTVR0 =34885 /* 34885 */,
+ REG_TRCEVENTCTL1R =34888 /* 34888 */,
+ REG_TRCVDSACCTLR =34890 /* 34890 */,
+ REG_TRCEXTINSELR1 =34892 /* 34892 */,
+ REG_TRCCNTVR1 =34893 /* 34893 */,
+ REG_TRCRSR =34896 /* 34896 */,
+ REG_TRCVDARCCTLR =34898 /* 34898 */,
+ REG_TRCEXTINSELR2 =34900 /* 34900 */,
+ REG_TRCCNTVR2 =34901 /* 34901 */,
+ REG_TRCSTALLCTLR =34904 /* 34904 */,
+ REG_TRCEXTINSELR3 =34908 /* 34908 */,
+ REG_TRCCNTVR3 =34909 /* 34909 */,
+ REG_TRCTSCTLR =34912 /* 34912 */,
+ REG_TRCSYNCPR =34920 /* 34920 */,
+ REG_TRCCCCTLR =34928 /* 34928 */,
+ REG_TRCBBCTLR =34936 /* 34936 */,
+ REG_TRCRSCTLR16 =34945 /* 34945 */,
+ REG_TRCSSCCR0 =34946 /* 34946 */,
+ REG_TRCSSPCICR0 =34947 /* 34947 */,
+ REG_TRCOSLAR =34948 /* 34948 */,
+ REG_TRCRSCTLR17 =34953 /* 34953 */,
+ REG_TRCSSCCR1 =34954 /* 34954 */,
+ REG_TRCSSPCICR1 =34955 /* 34955 */,
+ REG_TRCRSCTLR2 =34960 /* 34960 */,
+ REG_TRCRSCTLR18 =34961 /* 34961 */,
+ REG_TRCSSCCR2 =34962 /* 34962 */,
+ REG_TRCSSPCICR2 =34963 /* 34963 */,
+ REG_TRCRSCTLR3 =34968 /* 34968 */,
+ REG_TRCRSCTLR19 =34969 /* 34969 */,
+ REG_TRCSSCCR3 =34970 /* 34970 */,
+ REG_TRCSSPCICR3 =34971 /* 34971 */,
+ REG_TRCRSCTLR4 =34976 /* 34976 */,
+ REG_TRCRSCTLR20 =34977 /* 34977 */,
+ REG_TRCSSCCR4 =34978 /* 34978 */,
+ REG_TRCSSPCICR4 =34979 /* 34979 */,
+ REG_TRCPDCR =34980 /* 34980 */,
+ REG_TRCRSCTLR5 =34984 /* 34984 */,
+ REG_TRCRSCTLR21 =34985 /* 34985 */,
+ REG_TRCSSCCR5 =34986 /* 34986 */,
+ REG_TRCSSPCICR5 =34987 /* 34987 */,
+ REG_TRCRSCTLR6 =34992 /* 34992 */,
+ REG_TRCRSCTLR22 =34993 /* 34993 */,
+ REG_TRCSSCCR6 =34994 /* 34994 */,
+ REG_TRCSSPCICR6 =34995 /* 34995 */,
+ REG_TRCRSCTLR7 =35000 /* 35000 */,
+ REG_TRCRSCTLR23 =35001 /* 35001 */,
+ REG_TRCSSCCR7 =35002 /* 35002 */,
+ REG_TRCSSPCICR7 =35003 /* 35003 */,
+ REG_TRCRSCTLR8 =35008 /* 35008 */,
+ REG_TRCRSCTLR24 =35009 /* 35009 */,
+ REG_TRCSSCSR0 =35010 /* 35010 */,
+ REG_TRCRSCTLR9 =35016 /* 35016 */,
+ REG_TRCRSCTLR25 =35017 /* 35017 */,
+ REG_TRCSSCSR1 =35018 /* 35018 */,
+ REG_TRCRSCTLR10 =35024 /* 35024 */,
+ REG_TRCRSCTLR26 =35025 /* 35025 */,
+ REG_TRCSSCSR2 =35026 /* 35026 */,
+ REG_TRCRSCTLR11 =35032 /* 35032 */,
+ REG_TRCRSCTLR27 =35033 /* 35033 */,
+ REG_TRCSSCSR3 =35034 /* 35034 */,
+ REG_TRCRSCTLR12 =35040 /* 35040 */,
+ REG_TRCRSCTLR28 =35041 /* 35041 */,
+ REG_TRCSSCSR4 =35042 /* 35042 */,
+ REG_TRCRSCTLR13 =35048 /* 35048 */,
+ REG_TRCRSCTLR29 =35049 /* 35049 */,
+ REG_TRCSSCSR5 =35050 /* 35050 */,
+ REG_TRCRSCTLR14 =35056 /* 35056 */,
+ REG_TRCRSCTLR30 =35057 /* 35057 */,
+ REG_TRCSSCSR6 =35058 /* 35058 */,
+ REG_TRCRSCTLR15 =35064 /* 35064 */,
+ REG_TRCRSCTLR31 =35065 /* 35065 */,
+ REG_TRCSSCSR7 =35066 /* 35066 */,
+ REG_TRCACVR0 =35072 /* 35072 */,
+ REG_TRCACVR8 =35073 /* 35073 */,
+ REG_TRCACATR0 =35074 /* 35074 */,
+ REG_TRCACATR8 =35075 /* 35075 */,
+ REG_TRCDVCVR0 =35076 /* 35076 */,
+ REG_TRCDVCVR4 =35077 /* 35077 */,
+ REG_TRCDVCMR0 =35078 /* 35078 */,
+ REG_TRCDVCMR4 =35079 /* 35079 */,
+ REG_TRCACVR1 =35088 /* 35088 */,
+ REG_TRCACVR9 =35089 /* 35089 */,
+ REG_TRCACATR1 =35090 /* 35090 */,
+ REG_TRCACATR9 =35091 /* 35091 */,
+ REG_TRCACVR2 =35104 /* 35104 */,
+ REG_TRCACVR10 =35105 /* 35105 */,
+ REG_TRCACATR2 =35106 /* 35106 */,
+ REG_TRCACATR10 =35107 /* 35107 */,
+ REG_TRCDVCVR1 =35108 /* 35108 */,
+ REG_TRCDVCVR5 =35109 /* 35109 */,
+ REG_TRCDVCMR1 =35110 /* 35110 */,
+ REG_TRCDVCMR5 =35111 /* 35111 */,
+ REG_TRCACVR3 =35120 /* 35120 */,
+ REG_TRCACVR11 =35121 /* 35121 */,
+ REG_TRCACATR3 =35122 /* 35122 */,
+ REG_TRCACATR11 =35123 /* 35123 */,
+ REG_TRCACVR4 =35136 /* 35136 */,
+ REG_TRCACVR12 =35137 /* 35137 */,
+ REG_TRCACATR4 =35138 /* 35138 */,
+ REG_TRCACATR12 =35139 /* 35139 */,
+ REG_TRCDVCVR2 =35140 /* 35140 */,
+ REG_TRCDVCVR6 =35141 /* 35141 */,
+ REG_TRCDVCMR2 =35142 /* 35142 */,
+ REG_TRCDVCMR6 =35143 /* 35143 */,
+ REG_TRCACVR5 =35152 /* 35152 */,
+ REG_TRCACVR13 =35153 /* 35153 */,
+ REG_TRCACATR5 =35154 /* 35154 */,
+ REG_TRCACATR13 =35155 /* 35155 */,
+ REG_TRCACVR6 =35168 /* 35168 */,
+ REG_TRCACVR14 =35169 /* 35169 */,
+ REG_TRCACATR6 =35170 /* 35170 */,
+ REG_TRCACATR14 =35171 /* 35171 */,
+ REG_TRCDVCVR3 =35172 /* 35172 */,
+ REG_TRCDVCVR7 =35173 /* 35173 */,
+ REG_TRCDVCMR3 =35174 /* 35174 */,
+ REG_TRCDVCMR7 =35175 /* 35175 */,
+ REG_TRCACVR7 =35184 /* 35184 */,
+ REG_TRCACVR15 =35185 /* 35185 */,
+ REG_TRCACATR7 =35186 /* 35186 */,
+ REG_TRCACATR15 =35187 /* 35187 */,
+ REG_TRCCIDCVR0 =35200 /* 35200 */,
+ REG_TRCVMIDCVR0 =35201 /* 35201 */,
+ REG_TRCCIDCCTLR0 =35202 /* 35202 */,
+ REG_TRCCIDCCTLR1 =35210 /* 35210 */,
+ REG_TRCCIDCVR1 =35216 /* 35216 */,
+ REG_TRCVMIDCVR1 =35217 /* 35217 */,
+ REG_TRCVMIDCCTLR0 =35218 /* 35218 */,
+ REG_TRCVMIDCCTLR1 =35226 /* 35226 */,
+ REG_TRCCIDCVR2 =35232 /* 35232 */,
+ REG_TRCVMIDCVR2 =35233 /* 35233 */,
+ REG_TRCCIDCVR3 =35248 /* 35248 */,
+ REG_TRCVMIDCVR3 =35249 /* 35249 */,
+ REG_TRCCIDCVR4 =35264 /* 35264 */,
+ REG_TRCVMIDCVR4 =35265 /* 35265 */,
+ REG_TRCCIDCVR5 =35280 /* 35280 */,
+ REG_TRCVMIDCVR5 =35281 /* 35281 */,
+ REG_TRCCIDCVR6 =35296 /* 35296 */,
+ REG_TRCVMIDCVR6 =35297 /* 35297 */,
+ REG_TRCCIDCVR7 =35312 /* 35312 */,
+ REG_TRCVMIDCVR7 =35313 /* 35313 */,
+ REG_TRCITCTRL =35716 /* 35716 */,
+ REG_TRCCLAIMSET =35782 /* 35782 */,
+ REG_TRCCLAIMCLR =35790 /* 35790 */,
+ REG_TRCLAR =35814 /* 35814 */,
+ REG_TEECR32_EL1 =36864 /* 36864 */, // S2_2_c0_c0_0 at min EL1: TEECR32_EL1
+ REG_TEEHBR32_EL1 =36992 /* 36992 */, // S2_2_c1_c0_0 at min EL1: TEEHBR32_EL1
+ REG_MDCCSR_EL0 =38920 /* 38920 */, // S2_3_c0_c1_0 at min EL1: MDCCSR_EL0
+ REG_MDDTR_EL0 =38944 /* 38944 */, // S2_3_c0_c4_0 at min EL1: MDDTR_EL0
+ REG_DBGDTR_EL0 =38944 /* 38944 */,
+ REG_MDDTRTX_EL0 =38952 /* 38952 */, // S2_3_c0_c5_0 at min EL1: MDDTRTX_EL0
+ REG_DBGDTRTX_EL0 =38952 /* 38952 */,
+ REG_DBGVCR32_EL2 =41016 /* 41016 */, // S2_4_c0_c7_0 at min EL2: DBGVCR32_EL2
+ REG_MIDR_EL1 =49152 /* 49152 */, // S3_0_c0_c0_0 at min EL1: MIDR_EL1
+ REG_MPIDR_EL1 =49157 /* 49157 */, // S3_0_c0_c0_5 at min EL1: MPIDR_EL1
+ REG_REVIDR_EL1 =49158 /* 49158 */, // S3_0_c0_c0_6 at min EL1: REVIDR_EL1
+ REG_ID_PFR0_EL1 =49160 /* 49160 */, // S3_0_c0_c1_0 at min EL1: ID_PFR0_EL1
+ REG_ID_PFR1_EL1 =49161 /* 49161 */, // S3_0_c0_c1_1 at min EL1: ID_PFR1_EL1
+ REG_ID_DFR0_EL1 =49162 /* 49162 */, // S3_0_c0_c1_2 at min EL1: ID_DFR0_EL1
+ REG_ID_AFR0_EL1 =49163 /* 49163 */, // S3_0_c0_c1_3 at min EL1: ID_AFR0_EL1
+ REG_ID_MMFR0_EL1 =49164 /* 49164 */, // S3_0_c0_c1_4 at min EL1: ID_MMFR0_EL1
+ REG_ID_MMFR1_EL1 =49165 /* 49165 */, // S3_0_c0_c1_5 at min EL1: ID_MMFR1_EL1
+ REG_ID_MMFR2_EL1 =49166 /* 49166 */, // S3_0_c0_c1_6 at min EL1: ID_MMFR2_EL1
+ REG_ID_MMFR3_EL1 =49167 /* 49167 */, // S3_0_c0_c1_7 at min EL1: ID_MMFR3_EL1
+ REG_ID_ISAR0_EL1 =49168 /* 49168 */, // S3_0_c0_c2_0 at min EL1: ID_ISAR0_EL1
+ REG_ID_ISAR1_EL1 =49169 /* 49169 */, // S3_0_c0_c2_1 at min EL1: ID_ISAR1_EL1
+ REG_ID_ISAR2_EL1 =49170 /* 49170 */, // S3_0_c0_c2_2 at min EL1: ID_ISAR2_EL1
+ REG_ID_ISAR3_EL1 =49171 /* 49171 */, // S3_0_c0_c2_3 at min EL1: ID_ISAR3_EL1
+ REG_ID_ISAR4_EL1 =49172 /* 49172 */, // S3_0_c0_c2_4 at min EL1: ID_ISAR4_EL1
+ REG_ID_ISAR5_EL1 =49173 /* 49173 */, // S3_0_c0_c2_5 at min EL1: ID_ISAR5_EL1
+ REG_ID_MMFR4_EL1 =49174 /* 49174 */, // S3_0_c0_c2_6 at min EL1: ID_MMFR4_EL1
+ REG_ID_ISAR6_EL1 =49175 /* 49175 */, // S3_0_c0_c2_7 at min EL1: ID_ISAR6_EL1
+ REG_MVFR0_EL1 =49176 /* 49176 */, // S3_0_c0_c3_0 at min EL1: MVFR0_EL1
+ REG_MVFR1_EL1 =49177 /* 49177 */, // S3_0_c0_c3_1 at min EL1: MVFR1_EL1
+ REG_MVFR2_EL1 =49178 /* 49178 */, // S3_0_c0_c3_2 at min EL1: MVFR2_EL1
+ REG_ID_AA32RES3_EL1 =49179 /* 49179 */, // S3_0_c0_c3_3 at min EL1: ID_AA32RES3_EL1
+ REG_ID_PFR2_EL1 =49180 /* 49180 */, // S3_0_c0_c3_4 at min EL1: ID_PFR2_EL1
+ REG_ID_AA32RES5_EL1 =49181 /* 49181 */, // S3_0_c0_c3_5 at min EL1: ID_AA32RES5_EL1
+ REG_ID_AA32RES6_EL1 =49182 /* 49182 */, // S3_0_c0_c3_6 at min EL1: ID_AA32RES6_EL1
+ REG_ID_AA32RES7_EL1 =49183 /* 49183 */, // S3_0_c0_c3_7 at min EL1: ID_AA32RES7_EL1
+ REG_ID_AA64PFR0_EL1 =49184 /* 49184 */, // S3_0_c0_c4_0 at min EL1: ID_AA64PFR0_EL1
+ REG_ID_AA64PFR1_EL1 =49185 /* 49185 */, // S3_0_c0_c4_1 at min EL1: ID_AA64PFR1_EL1
+ REG_ID_AA64PFR2_EL1 =49186 /* 49186 */, // S3_0_c0_c4_2 at min EL1: ID_AA64PFR2_EL1
+ REG_ID_AA64PFR3_EL1 =49187 /* 49187 */, // S3_0_c0_c4_3 at min EL1: ID_AA64PFR3_EL1
+ REG_ID_AA64ZFR0_EL1 =49188 /* 49188 */, // S3_0_c0_c4_4 at min EL1: ID_AA64ZFR0_EL1
+ REG_ID_AA64SMFR0_EL1 =49189 /* 49189 */, // S3_0_c0_c4_5 at min EL1: ID_AA64SMFR0_EL1
+ REG_ID_AA64ZFR2_EL1 =49190 /* 49190 */, // S3_0_c0_c4_6 at min EL1: ID_AA64ZFR2_EL1
+ REG_ID_AA64ZFR3_EL1 =49191 /* 49191 */, // S3_0_c0_c4_7 at min EL1: ID_AA64ZFR3_EL1
+ REG_ID_AA64DFR0_EL1 =49192 /* 49192 */, // S3_0_c0_c5_0 at min EL1: ID_AA64DFR0_EL1
+ REG_ID_AA64DFR1_EL1 =49193 /* 49193 */, // S3_0_c0_c5_1 at min EL1: ID_AA64DFR1_EL1
+ REG_ID_AA64DFR2_EL1 =49194 /* 49194 */, // S3_0_c0_c5_2 at min EL1: ID_AA64DFR2_EL1
+ REG_ID_AA64DFR3_EL1 =49195 /* 49195 */, // S3_0_c0_c5_3 at min EL1: ID_AA64DFR3_EL1
+ REG_ID_AA64AFR0_EL1 =49196 /* 49196 */, // S3_0_c0_c5_4 at min EL1: ID_AA64AFR0_EL1
+ REG_ID_AA64AFR1_EL1 =49197 /* 49197 */, // S3_0_c0_c5_5 at min EL1: ID_AA64AFR1_EL1
+ REG_ID_AA64AFR2_EL1 =49198 /* 49198 */, // S3_0_c0_c5_6 at min EL1: ID_AA64AFR2_EL1
+ REG_ID_AA64AFR3_EL1 =49199 /* 49199 */, // S3_0_c0_c5_7 at min EL1: ID_AA64AFR3_EL1
+ REG_ID_AA64ISAR0_EL1 =49200 /* 49200 */, // S3_0_c0_c6_0 at min EL1: ID_AA64ISAR0_EL1
+ REG_ID_AA64ISAR1_EL1 =49201 /* 49201 */, // S3_0_c0_c6_1 at min EL1: ID_AA64ISAR1_EL1
+ REG_ID_AA64ISAR2_EL1 =49202 /* 49202 */, // S3_0_c0_c6_2 at min EL1: ID_AA64ISAR2_EL1
+ REG_ID_AA64ISAR3_EL1 =49203 /* 49203 */, // S3_0_c0_c6_3 at min EL1: ID_AA64ISAR3_EL1
+ REG_ID_AA64ISAR4_EL1 =49204 /* 49204 */, // S3_0_c0_c6_4 at min EL1: ID_AA64ISAR4_EL1
+ REG_ID_AA64ISAR5_EL1 =49205 /* 49205 */, // S3_0_c0_c6_5 at min EL1: ID_AA64ISAR5_EL1
+ REG_ID_AA64ISAR6_EL1 =49206 /* 49206 */, // S3_0_c0_c6_6 at min EL1: ID_AA64ISAR6_EL1
+ REG_ID_AA64ISAR7_EL1 =49207 /* 49207 */, // S3_0_c0_c6_7 at min EL1: ID_AA64ISAR7_EL1
+ REG_ID_AA64MMFR0_EL1 =49208 /* 49208 */, // S3_0_c0_c7_0 at min EL1: ID_AA64MMFR0_EL1
+ REG_ID_AA64MMFR1_EL1 =49209 /* 49209 */, // S3_0_c0_c7_1 at min EL1: ID_AA64MMFR1_EL1
+ REG_ID_AA64MMFR2_EL1 =49210 /* 49210 */, // S3_0_c0_c7_2 at min EL1: ID_AA64MMFR2_EL1
+ REG_ID_AA64MMFR3_EL1 =49211 /* 49211 */, // S3_0_c0_c7_3 at min EL1: ID_AA64MMFR3_EL1
+ REG_ID_AA64MMFR4_EL1 =49212 /* 49212 */, // S3_0_c0_c7_4 at min EL1: ID_AA64MMFR4_EL1
+ REG_ID_AA64MMFR5_EL1 =49213 /* 49213 */, // S3_0_c0_c7_5 at min EL1: ID_AA64MMFR5_EL1
+ REG_ID_AA64MMFR6_EL1 =49214 /* 49214 */, // S3_0_c0_c7_6 at min EL1: ID_AA64MMFR6_EL1
+ REG_ID_AA64MMFR7_EL1 =49215 /* 49215 */, // S3_0_c0_c7_7 at min EL1: ID_AA64MMFR7_EL1
+ REG_SCTLR_EL21 =49280 /* 49280 */, // S3_0_c1_c0_0 at min EL1: SCTLR_EL21
+ REG_SCTLR_EL1 =49280 /* 49280 */,
+ REG_ACTLR_EL21 =49281 /* 49281 */, // S3_0_c1_c0_1 at min EL1: ACTLR_EL21
+ REG_ACTLR_EL1 =49281 /* 49281 */,
+ REG_CPTR_EL21 =49282 /* 49282 */, // S3_0_c1_c0_2 at min EL1: CPTR_EL21
+ REG_CPACR_EL1 =49282 /* 49282 */,
+ REG_RGSR_EL1 =49285 /* 49285 */,
+ REG_GCR_EL1 =49286 /* 49286 */,
+ REG_TRFCR_EL1 =49297 /* 49297 */,
+ REG_SMPRI_EL1 =49300 /* 49300 */, // S3_0_c1_c2_4 at min EL1: SMPRI_EL1
+ REG_SMCR_EL21 =49302 /* 49302 */, // S3_0_c1_c2_6 at min EL1: SMCR_EL21
+ REG_TTBR0_EL21 =49408 /* 49408 */, // S3_0_c2_c0_0 at min EL1: TTBR0_EL21
+ REG_TTBR0_EL1 =49408 /* 49408 */,
+ REG_TTBR1_EL21 =49409 /* 49409 */, // S3_0_c2_c0_1 at min EL1: TTBR1_EL21
+ REG_TTBR1_EL1 =49409 /* 49409 */,
+ REG_TCR_EL21 =49410 /* 49410 */, // S3_0_c2_c0_2 at min EL1: TCR_EL21
+ REG_TCR_EL1 =49410 /* 49410 */,
+ REG_APIAKEYLO_EL21 =49416 /* 49416 */, // S3_0_c2_c1_0 at min EL1: APIAKeyLo_EL21
+ REG_APIAKEYLO_EL1 =49416 /* 49416 */,
+ REG_APIAKEYHI_EL21 =49417 /* 49417 */, // S3_0_c2_c1_1 at min EL1: APIAKeyHi_EL21
+ REG_APIAKEYHI_EL1 =49417 /* 49417 */,
+ REG_APIBKEYLO_EL21 =49418 /* 49418 */, // S3_0_c2_c1_2 at min EL1: APIBKeyLo_EL21
+ REG_APIBKEYLO_EL1 =49418 /* 49418 */,
+ REG_APIBKEYHI_EL21 =49419 /* 49419 */, // S3_0_c2_c1_3 at min EL1: APIBKeyHi_EL21
+ REG_APIBKEYHI_EL1 =49419 /* 49419 */,
+ REG_APDAKEYLO_EL21 =49424 /* 49424 */, // S3_0_c2_c2_0 at min EL1: APDAKeyLo_EL21
+ REG_APDAKEYLO_EL1 =49424 /* 49424 */,
+ REG_APDAKEYHI_EL21 =49425 /* 49425 */, // S3_0_c2_c2_1 at min EL1: APDAKeyHi_EL21
+ REG_APDAKEYHI_EL1 =49425 /* 49425 */,
+ REG_APDBKEYLO_EL21 =49426 /* 49426 */, // S3_0_c2_c2_2 at min EL1: APDBKeyLo_EL21
+ REG_APDBKEYLO_EL1 =49426 /* 49426 */,
+ REG_APDBKEYHI_EL21 =49427 /* 49427 */, // S3_0_c2_c2_3 at min EL1: APDBKeyHi_EL21
+ REG_APDBKEYHI_EL1 =49427 /* 49427 */,
+ REG_APGAKEYLO_EL21 =49432 /* 49432 */, // S3_0_c2_c3_0 at min EL1: APGAKeyLo_EL21
+ REG_APGAKEYLO_EL1 =49432 /* 49432 */,
+ REG_APGAKEYHI_EL21 =49433 /* 49433 */, // S3_0_c2_c3_1 at min EL1: APGAKeyHi_EL21
+ REG_APGAKEYHI_EL1 =49433 /* 49433 */,
+ REG_SPSR_EL21 =49664 /* 49664 */, // S3_0_c4_c0_0 at min EL1: SPSR_EL21
+ REG_SPSR_EL1 =49664 /* 49664 */,
+ REG_ELR_EL21 =49665 /* 49665 */, // S3_0_c4_c0_1 at min EL1: ELR_EL21
+ REG_ELR_EL1 =49665 /* 49665 */,
+ REG_SP_EL0 =49672 /* 49672 */, // S3_0_c4_c1_0 at min EL1: SP_EL0
+ REG_SPSEL =49680 /* 49680 */, // S3_0_c4_c2_0 at min EL1: SPSEL
+ REG_NESTEDCURRENTEL =49682 /* 49682 */, // S3_0_c4_c2_2 at min EL1: NestedCurrentEL
+ REG_CURRENTEL =49682 /* 49682 */,
+ REG_PAN =49683 /* 49683 */, // S3_0_c4_c2_3 at min EL1: PAN
+ REG_UAO =49684 /* 49684 */, // S3_0_c4_c2_4 at min EL1: UAO
+ REG_ICV_PMR_EL1 =49712 /* 49712 */, // S3_0_c4_c6_0 at min EL1: ICV_PMR_EL1
+ REG_ICC_PMR_EL1 =49712 /* 49712 */,
+ REG_AFSR0_EL21 =49800 /* 49800 */, // S3_0_c5_c1_0 at min EL1: AFSR0_EL21
+ REG_AFSR0_EL1 =49800 /* 49800 */,
+ REG_AFSR1_EL21 =49801 /* 49801 */, // S3_0_c5_c1_1 at min EL1: AFSR1_EL21
+ REG_AFSR1_EL1 =49801 /* 49801 */,
+ REG_ESR_EL21 =49808 /* 49808 */, // S3_0_c5_c2_0 at min EL1: ESR_EL21
+ REG_ESR_EL1 =49808 /* 49808 */,
+ REG_ERRIDR_EL1 =49816 /* 49816 */, // S3_0_c5_c3_0 at min EL1: ERRIDR_EL1
+ REG_ERRSELR_EL1 =49817 /* 49817 */,
+ REG_ERXCTLR_EL1 =49825 /* 49825 */,
+ REG_ERXSTATUS_EL1 =49826 /* 49826 */,
+ REG_ERXADDR_EL1 =49827 /* 49827 */,
+ REG_ERXPFGCTL_EL1 =49829 /* 49829 */,
+ REG_ERXPFGCDN_EL1 =49830 /* 49830 */,
+ REG_ERXMISC0_EL1 =49832 /* 49832 */,
+ REG_ERXMISC1_EL1 =49833 /* 49833 */,
+ REG_ERXMISC2_EL1 =49834 /* 49834 */,
+ REG_ERXMISC3_EL1 =49835 /* 49835 */,
+ REG_ERXTS_EL1 =49839 /* 49839 */,
+ REG_TFSR_EL1 =49840 /* 49840 */,
+ REG_TFSRE0_EL1 =49841 /* 49841 */,
+ REG_FAR_EL21 =49920 /* 49920 */, // S3_0_c6_c0_0 at min EL1: FAR_EL21
+ REG_FAR_EL1 =49920 /* 49920 */,
+ REG_PAR_EL1 =50080 /* 50080 */, // S3_0_c7_c4_0 at min EL1: PAR_EL1
+ REG_PMSCR_EL1 =50376 /* 50376 */,
+ REG_PMSICR_EL1 =50378 /* 50378 */,
+ REG_PMSIRR_EL1 =50379 /* 50379 */,
+ REG_PMSFCR_EL1 =50380 /* 50380 */,
+ REG_PMSEVFR_EL1 =50381 /* 50381 */,
+ REG_PMSLATFR_EL1 =50382 /* 50382 */,
+ REG_PMSIDR_EL1 =50383 /* 50383 */,
+ REG_PMBLIMITR_EL1 =50384 /* 50384 */,
+ REG_PMBPTR_EL1 =50385 /* 50385 */,
+ REG_PMBSR_EL1 =50387 /* 50387 */,
+ REG_PMBIDR_EL1 =50391 /* 50391 */,
+ REG_TRBLIMITR_EL1 =50392 /* 50392 */,
+ REG_TRBPTR_EL1 =50393 /* 50393 */,
+ REG_TRBBASER_EL1 =50394 /* 50394 */,
+ REG_TRBSR_EL1 =50395 /* 50395 */,
+ REG_TRBMAR_EL1 =50396 /* 50396 */,
+ REG_TRBTRG_EL1 =50398 /* 50398 */,
+ REG_PMINTENSET_EL1 =50417 /* 50417 */,
+ REG_PMINTENCLR_EL1 =50418 /* 50418 */,
+ REG_PMMIR_EL1 =50422 /* 50422 */,
+ REG_MAIR_EL21 =50448 /* 50448 */, // S3_0_c10_c2_0 at min EL1: MAIR_EL21
+ REG_MAIR_EL1 =50448 /* 50448 */,
+ REG_AMAIR_EL21 =50456 /* 50456 */, // S3_0_c10_c3_0 at min EL1: AMAIR_EL21
+ REG_AMAIR_EL1 =50456 /* 50456 */,
+ REG_LORSA_EL1 =50464 /* 50464 */, // S3_0_c10_c4_0 at min EL1: LORSA_EL1
+ REG_LOREA_EL1 =50465 /* 50465 */, // S3_0_c10_c4_1 at min EL1: LOREA_EL1
+ REG_LORN_EL1 =50466 /* 50466 */, // S3_0_c10_c4_2 at min EL1: LORN_EL1
+ REG_LORC_EL1 =50467 /* 50467 */, // S3_0_c10_c4_3 at min EL1: LORC_EL1
+ REG_LORID_EL1 =50471 /* 50471 */, // S3_0_c10_c4_7 at min EL1: LORID_EL1
+ REG_MPAM1_EL1 =50472 /* 50472 */,
+ REG_MPAM0_EL1 =50473 /* 50473 */,
+ REG_CTRR_C_LWR_EL21 =50560 /* 50560 */, // S3_0_c11_c0_0 at min EL1: CTRR_C_LWR_EL21
+ REG_CTRR_C_UPR_EL21 =50561 /* 50561 */, // S3_0_c11_c0_1 at min EL1: CTRR_C_UPR_EL21
+ REG_CTRR_D_LWR_EL21 =50562 /* 50562 */, // S3_0_c11_c0_2 at min EL1: CTRR_D_LWR_EL21
+ REG_CTRR_D_UPR_EL21 =50563 /* 50563 */, // S3_0_c11_c0_3 at min EL1: CTRR_D_UPR_EL21
+ REG_CTRR_C_LWR_EL12 =50564 /* 50564 */, // S3_0_c11_c0_4 at min EL2: CTRR_C_LWR_EL12
+ REG_CTRR_C_UPR_EL12 =50565 /* 50565 */, // S3_0_c11_c0_5 at min EL2: CTRR_C_UPR_EL12
+ REG_CTRR_D_LWR_EL12 =50566 /* 50566 */, // S3_0_c11_c0_6 at min EL2: CTRR_D_LWR_EL12
+ REG_CTRR_D_UPR_EL12 =50567 /* 50567 */, // S3_0_c11_c0_7 at min EL2: CTRR_D_UPR_EL12
+ REG_CTRR_C_LWR_EL2 =50568 /* 50568 */, // S3_0_c11_c1_0 at min EL2: CTRR_C_LWR_EL2
+ REG_CTRR_C_UPR_EL2 =50569 /* 50569 */, // S3_0_c11_c1_1 at min EL2: CTRR_C_UPR_EL2
+ REG_CTRR_D_LWR_EL2 =50570 /* 50570 */, // S3_0_c11_c1_2 at min EL2: CTRR_D_LWR_EL2
+ REG_CTRR_D_UPR_EL2 =50571 /* 50571 */, // S3_0_c11_c1_3 at min EL2: CTRR_D_UPR_EL2
+ REG_CTRR_C_CTL_EL21 =50572 /* 50572 */, // S3_0_c11_c1_4 at min EL1: CTRR_C_CTL_EL21
+ REG_CTRR_D_CTL_EL21 =50573 /* 50573 */, // S3_0_c11_c1_5 at min EL1: CTRR_D_CTL_EL21
+ REG_CTRR_C_CTL_EL12 =50574 /* 50574 */, // S3_0_c11_c1_6 at min EL2: CTRR_C_CTL_EL12
+ REG_CTRR_D_CTL_EL12 =50575 /* 50575 */, // S3_0_c11_c1_7 at min EL2: CTRR_D_CTL_EL12
+ REG_CTRR_C_CTL_EL2 =50576 /* 50576 */, // S3_0_c11_c2_0 at min EL2: CTRR_C_CTL_EL2
+ REG_CTRR_D_CTL_EL2 =50577 /* 50577 */, // S3_0_c11_c2_1 at min EL2: CTRR_D_CTL_EL2
+ REG_CTXR_A_LWR_EL21 =50578 /* 50578 */, // S3_0_c11_c2_2 at min EL1: CTXR_A_LWR_EL21
+ REG_CTXR_A_UPR_EL21 =50579 /* 50579 */, // S3_0_c11_c2_3 at min EL1: CTXR_A_UPR_EL21
+ REG_CTXR_B_LWR_EL21 =50580 /* 50580 */, // S3_0_c11_c2_4 at min EL1: CTXR_B_LWR_EL21
+ REG_CTXR_B_UPR_EL21 =50581 /* 50581 */, // S3_0_c11_c2_5 at min EL1: CTXR_B_UPR_EL21
+ REG_CTXR_C_LWR_EL21 =50582 /* 50582 */, // S3_0_c11_c2_6 at min EL1: CTXR_C_LWR_EL21
+ REG_CTXR_C_UPR_EL21 =50583 /* 50583 */, // S3_0_c11_c2_7 at min EL1: CTXR_C_UPR_EL21
+ REG_CTXR_D_LWR_EL21 =50584 /* 50584 */, // S3_0_c11_c3_0 at min EL1: CTXR_D_LWR_EL21
+ REG_CTXR_D_UPR_EL21 =50585 /* 50585 */, // S3_0_c11_c3_1 at min EL1: CTXR_D_UPR_EL21
+ REG_CTXR_A_LWR_EL12 =50586 /* 50586 */, // S3_0_c11_c3_2 at min EL2: CTXR_A_LWR_EL12
+ REG_CTXR_A_UPR_EL12 =50587 /* 50587 */, // S3_0_c11_c3_3 at min EL2: CTXR_A_UPR_EL12
+ REG_CTXR_B_LWR_EL12 =50588 /* 50588 */, // S3_0_c11_c3_4 at min EL2: CTXR_B_LWR_EL12
+ REG_CTXR_B_UPR_EL12 =50589 /* 50589 */, // S3_0_c11_c3_5 at min EL2: CTXR_B_UPR_EL12
+ REG_CTXR_C_LWR_EL12 =50590 /* 50590 */, // S3_0_c11_c3_6 at min EL2: CTXR_C_LWR_EL12
+ REG_CTXR_C_UPR_EL12 =50591 /* 50591 */, // S3_0_c11_c3_7 at min EL2: CTXR_C_UPR_EL12
+ REG_CTXR_D_LWR_EL12 =50592 /* 50592 */, // S3_0_c11_c4_0 at min EL2: CTXR_D_LWR_EL12
+ REG_CTXR_D_UPR_EL12 =50593 /* 50593 */, // S3_0_c11_c4_1 at min EL2: CTXR_D_UPR_EL12
+ REG_CTXR_A_LWR_EL2 =50594 /* 50594 */, // S3_0_c11_c4_2 at min EL2: CTXR_A_LWR_EL2
+ REG_CTXR_A_UPR_EL2 =50595 /* 50595 */, // S3_0_c11_c4_3 at min EL2: CTXR_A_UPR_EL2
+ REG_CTXR_B_LWR_EL2 =50596 /* 50596 */, // S3_0_c11_c4_4 at min EL2: CTXR_B_LWR_EL2
+ REG_CTXR_B_UPR_EL2 =50597 /* 50597 */, // S3_0_c11_c4_5 at min EL2: CTXR_B_UPR_EL2
+ REG_CTXR_C_LWR_EL2 =50598 /* 50598 */, // S3_0_c11_c4_6 at min EL2: CTXR_C_LWR_EL2
+ REG_CTXR_C_UPR_EL2 =50599 /* 50599 */, // S3_0_c11_c4_7 at min EL2: CTXR_C_UPR_EL2
+ REG_CTXR_D_LWR_EL2 =50600 /* 50600 */, // S3_0_c11_c5_0 at min EL2: CTXR_D_LWR_EL2
+ REG_CTXR_D_UPR_EL2 =50601 /* 50601 */, // S3_0_c11_c5_1 at min EL2: CTXR_D_UPR_EL2
+ REG_CTXR_A_CTL_EL21 =50602 /* 50602 */, // S3_0_c11_c5_2 at min EL1: CTXR_A_CTL_EL21
+ REG_CTXR_B_CTL_EL21 =50603 /* 50603 */, // S3_0_c11_c5_3 at min EL1: CTXR_B_CTL_EL21
+ REG_CTXR_C_CTL_EL21 =50604 /* 50604 */, // S3_0_c11_c5_4 at min EL1: CTXR_C_CTL_EL21
+ REG_CTXR_D_CTL_EL21 =50605 /* 50605 */, // S3_0_c11_c5_5 at min EL1: CTXR_D_CTL_EL21
+ REG_CTXR_A_CTL_EL12 =50606 /* 50606 */, // S3_0_c11_c5_6 at min EL2: CTXR_A_CTL_EL12
+ REG_CTXR_B_CTL_EL12 =50607 /* 50607 */, // S3_0_c11_c5_7 at min EL2: CTXR_B_CTL_EL12
+ REG_CTXR_C_CTL_EL12 =50608 /* 50608 */, // S3_0_c11_c6_0 at min EL2: CTXR_C_CTL_EL12
+ REG_CTXR_D_CTL_EL12 =50609 /* 50609 */, // S3_0_c11_c6_1 at min EL2: CTXR_D_CTL_EL12
+ REG_CTXR_A_CTL_EL2 =50610 /* 50610 */, // S3_0_c11_c6_2 at min EL2: CTXR_A_CTL_EL2
+ REG_CTXR_B_CTL_EL2 =50611 /* 50611 */, // S3_0_c11_c6_3 at min EL2: CTXR_B_CTL_EL2
+ REG_CTXR_C_CTL_EL2 =50612 /* 50612 */, // S3_0_c11_c6_4 at min EL2: CTXR_C_CTL_EL2
+ REG_CTXR_D_CTL_EL2 =50613 /* 50613 */, // S3_0_c11_c6_5 at min EL2: CTXR_D_CTL_EL2
+ REG_ACC_CTRR_C_LWR_EL2 =50614 /* 50614 */, // S3_0_c11_c6_6 at min EL2: ACC_CTRR_C_LWR_EL2
+ REG_ACC_CTRR_C_UPR_EL2 =50615 /* 50615 */, // S3_0_c11_c6_7 at min EL2: ACC_CTRR_C_UPR_EL2
+ REG_ACC_CTRR_D_LWR_EL2 =50616 /* 50616 */, // S3_0_c11_c7_0 at min EL2: ACC_CTRR_D_LWR_EL2
+ REG_ACC_CTRR_D_UPR_EL2 =50617 /* 50617 */, // S3_0_c11_c7_1 at min EL2: ACC_CTRR_D_UPR_EL2
+ REG_ACC_CTXR_A_LWR_EL2 =50618 /* 50618 */, // S3_0_c11_c7_2 at min EL2: ACC_CTXR_A_LWR_EL2
+ REG_ACC_CTXR_A_UPR_EL2 =50619 /* 50619 */, // S3_0_c11_c7_3 at min EL2: ACC_CTXR_A_UPR_EL2
+ REG_ACC_CTXR_B_LWR_EL2 =50620 /* 50620 */, // S3_0_c11_c7_4 at min EL2: ACC_CTXR_B_LWR_EL2
+ REG_ACC_CTXR_B_UPR_EL2 =50621 /* 50621 */, // S3_0_c11_c7_5 at min EL2: ACC_CTXR_B_UPR_EL2
+ REG_ACC_CTXR_C_LWR_EL2 =50622 /* 50622 */, // S3_0_c11_c7_6 at min EL2: ACC_CTXR_C_LWR_EL2
+ REG_ACC_CTXR_C_UPR_EL2 =50623 /* 50623 */, // S3_0_c11_c7_7 at min EL2: ACC_CTXR_C_UPR_EL2
+ REG_ACC_CTXR_D_LWR_EL2 =50624 /* 50624 */, // S3_0_c11_c8_0 at min EL2: ACC_CTXR_D_LWR_EL2
+ REG_ACC_CTXR_D_UPR_EL2 =50625 /* 50625 */, // S3_0_c11_c8_1 at min EL2: ACC_CTXR_D_UPR_EL2
+ REG_ACC_CTRR_C_CTL_EL2 =50626 /* 50626 */, // S3_0_c11_c8_2 at min EL2: ACC_CTRR_C_CTL_EL2
+ REG_ACC_CTRR_D_CTL_EL2 =50627 /* 50627 */, // S3_0_c11_c8_3 at min EL2: ACC_CTRR_D_CTL_EL2
+ REG_ACC_CTXR_A_CTL_EL2 =50628 /* 50628 */, // S3_0_c11_c8_4 at min EL2: ACC_CTXR_A_CTL_EL2
+ REG_ACC_CTXR_B_CTL_EL2 =50629 /* 50629 */, // S3_0_c11_c8_5 at min EL2: ACC_CTXR_B_CTL_EL2
+ REG_ACC_CTXR_C_CTL_EL2 =50630 /* 50630 */, // S3_0_c11_c8_6 at min EL2: ACC_CTXR_C_CTL_EL2
+ REG_ACC_CTXR_D_CTL_EL2 =50631 /* 50631 */, // S3_0_c11_c8_7 at min EL2: ACC_CTXR_D_CTL_EL2
+ REG_VBAR_EL21 =50688 /* 50688 */, // S3_0_c12_c0_0 at min EL1: VBAR_EL21
+ REG_VBAR_EL1 =50688 /* 50688 */,
+ REG_RVBAR_EL1 =50689 /* 50689 */, // S3_0_c12_c0_1 at min EL1: RVBAR_EL1
+ REG_RMR_EL1 =50690 /* 50690 */, // S3_0_c12_c0_2 at min EL1: RMR_EL1
+ REG_ISR_EL1 =50696 /* 50696 */, // S3_0_c12_c1_0 at min EL1: ISR_EL1
+ REG_DISR_EL1 =50697 /* 50697 */, // S3_0_c12_c1_1 at min EL1: DISR_EL1
+ REG_ICV_IAR0_EL1 =50752 /* 50752 */, // S3_0_c12_c8_0 at min EL1: ICV_IAR0_EL1
+ REG_ICV_EOIR0_EL1 =50753 /* 50753 */, // S3_0_c12_c8_1 at min EL1: ICV_EOIR0_EL1
+ REG_ICC_EOIR0_EL1 =50753 /* 50753 */,
+ REG_ICV_HPPIR0_EL1 =50754 /* 50754 */, // S3_0_c12_c8_2 at min EL1: ICV_HPPIR0_EL1
+ REG_ICV_BPR0_EL1 =50755 /* 50755 */, // S3_0_c12_c8_3 at min EL1: ICV_BPR0_EL1
+ REG_ICC_BPR0_EL1 =50755 /* 50755 */,
+ REG_ICC_AP0R0_EL1 =50756 /* 50756 */, // S3_0_c12_c8_4 at min EL1: ICC_AP0R0_EL1
+ REG_ICC_AP0R1_EL1 =50757 /* 50757 */,
+ REG_ICC_AP0R2_EL1 =50758 /* 50758 */,
+ REG_ICC_AP0R3_EL1 =50759 /* 50759 */,
+ REG_ICC_AP1R0_EL1 =50760 /* 50760 */, // S3_0_c12_c9_0 at min EL1: ICC_AP1R0_EL1
+ REG_ICC_AP1R1_EL1 =50761 /* 50761 */,
+ REG_ICC_AP1R2_EL1 =50762 /* 50762 */,
+ REG_ICC_AP1R3_EL1 =50763 /* 50763 */,
+ REG_ICV_DIR_EL1 =50777 /* 50777 */, // S3_0_c12_c11_1 at min EL1: ICV_DIR_EL1
+ REG_ICC_DIR_EL1 =50777 /* 50777 */,
+ REG_ICV_RPR_EL1 =50779 /* 50779 */, // S3_0_c12_c11_3 at min EL1: ICV_RPR_EL1
+ REG_ICC_SGI1R_EL1 =50781 /* 50781 */, // S3_0_c12_c11_5 at min EL1: ICC_SGI1R_EL1
+ REG_ICC_ASGI1R_EL1 =50782 /* 50782 */, // S3_0_c12_c11_6 at min EL1: ICC_ASGI1R_EL1
+ REG_ICC_SGI0R_EL1 =50783 /* 50783 */, // S3_0_c12_c11_7 at min EL1: ICC_SGI0R_EL1
+ REG_ICV_IAR1_EL1 =50784 /* 50784 */, // S3_0_c12_c12_0 at min EL1: ICV_IAR1_EL1
+ REG_ICV_EOIR1_EL1 =50785 /* 50785 */, // S3_0_c12_c12_1 at min EL1: ICV_EOIR1_EL1
+ REG_ICC_EOIR1_EL1 =50785 /* 50785 */,
+ REG_ICV_HPPIR1_EL1 =50786 /* 50786 */, // S3_0_c12_c12_2 at min EL1: ICV_HPPIR1_EL1
+ REG_ICV_BPR1_EL1 =50787 /* 50787 */, // S3_0_c12_c12_3 at min EL1: ICV_BPR1_EL1
+ REG_ICC_BPR1_EL1 =50787 /* 50787 */,
+ REG_ICV_CTLR_EL1 =50788 /* 50788 */, // S3_0_c12_c12_4 at min EL1: ICV_CTLR_EL1
+ REG_ICC_CTLR_EL1 =50788 /* 50788 */,
+ REG_ICC_SRE_EL1 =50789 /* 50789 */, // S3_0_c12_c12_5 at min EL1: ICC_SRE_EL1
+ REG_ICV_IGRPEN0_EL1 =50790 /* 50790 */, // S3_0_c12_c12_6 at min EL1: ICV_IGRPEN0_EL1
+ REG_ICC_IGRPEN0_EL1 =50790 /* 50790 */,
+ REG_ICV_IGRPEN1_EL1 =50791 /* 50791 */, // S3_0_c12_c12_7 at min EL1: ICV_IGRPEN1_EL1
+ REG_ICC_IGRPEN1_EL1 =50791 /* 50791 */,
+ REG_ICC_SEIEN_EL1 =50792 /* 50792 */,
+ REG_CONTEXTIDR_EL21 =50817 /* 50817 */, // S3_0_c13_c0_1 at min EL1: CONTEXTIDR_EL21
+ REG_CONTEXTIDR_EL1 =50817 /* 50817 */,
+ REG_TPIDR_EL1 =50820 /* 50820 */, // S3_0_c13_c0_4 at min EL1: TPIDR_EL1
+ REG_SCXTNUM_EL21 =50823 /* 50823 */, // S3_0_c13_c0_7 at min EL1: SCXTNUM_EL21
+ REG_SCXTNUM_EL1 =50823 /* 50823 */,
+ REG_REDIR_CNTKCTL_EL1 =50952 /* 50952 */, // S3_0_c14_c1_0 at min EL1: REDIR_CNTKCTL_EL1
+ REG_CNTKCTL_EL1 =50952 /* 50952 */,
+ REG_HID0 =51072 /* 51072 */, // S3_0_c15_c0_0 at min EL1: HID0
+ REG_HID25 =51074 /* 51074 */, // S3_0_c15_c0_2 at min EL1: HID25
+ REG_HID26 =51075 /* 51075 */, // S3_0_c15_c0_3 at min EL1: HID26
+ REG_HID27 =51076 /* 51076 */, // S3_0_c15_c0_4 at min EL1: HID27
+ REG_HID28 =51077 /* 51077 */, // S3_0_c15_c0_5 at min EL1: HID28
+ REG_HID29 =51078 /* 51078 */, // S3_0_c15_c0_6 at min EL1: HID29
+ REG_HID34 =51079 /* 51079 */, // S3_0_c15_c0_7 at min EL1: HID34
+ REG_HID1 =51080 /* 51080 */, // S3_0_c15_c1_0 at min EL1: HID1
+ REG_HID21 =51083 /* 51083 */, // S3_0_c15_c1_3 at min EL1: HID21
+ REG_BIUVCSCUPCMDCRD =51084 /* 51084 */, // S3_0_c15_c1_4 at min EL1: BiuVCSCUpCmdCrd
+ REG_BIUVCSCUPDATCRD =51085 /* 51085 */, // S3_0_c15_c1_5 at min EL1: BiuVCSCUpDatCrd
+ REG_HID2 =51088 /* 51088 */, // S3_0_c15_c2_0 at min EL1: HID2
+ REG_HID30 =51091 /* 51091 */, // S3_0_c15_c2_3 at min EL1: HID30
+ REG_HID31 =51092 /* 51092 */, // S3_0_c15_c2_4 at min EL1: HID31
+ REG_HID32 =51093 /* 51093 */, // S3_0_c15_c2_5 at min EL1: HID32
+ REG_HID33 =51095 /* 51095 */, // S3_0_c15_c2_7 at min EL1: HID33
+ REG_HID3 =51096 /* 51096 */, // S3_0_c15_c3_0 at min EL1: HID3
+ REG_BIUVCSCUPCMDCRDC2 =51098 /* 51098 */, // S3_0_c15_c3_2 at min EL1: BiuVCSCUpCmdCrdC2
+ REG_BIUVCSCUPDATCRDC2 =51099 /* 51099 */, // S3_0_c15_c3_3 at min EL1: BiuVCSCUpDatCrdC2
+ REG_HID4 =51104 /* 51104 */, // S3_0_c15_c4_0 at min EL1: HID4
+ REG_HID5 =51112 /* 51112 */, // S3_0_c15_c5_0 at min EL1: HID5
+ REG_HID6 =51120 /* 51120 */, // S3_0_c15_c6_0 at min EL1: HID6
+ REG_HID7 =51128 /* 51128 */, // S3_0_c15_c7_0 at min EL1: HID7
+ REG_HID8 =51136 /* 51136 */, // S3_0_c15_c8_0 at min EL1: HID8
+ REG_HID9 =51144 /* 51144 */, // S3_0_c15_c9_0 at min EL1: HID9
+ REG_HID10 =51152 /* 51152 */, // S3_0_c15_c10_0 at min EL1: HID10
+ REG_BLOCK_CMAINT_CFG =51154 /* 51154 */, // S3_0_c15_c10_2 at min EL1: BLOCK_CMAINT_CFG
+ REG_HID11 =51160 /* 51160 */, // S3_0_c15_c11_0 at min EL1: HID11
+ REG_HID18 =51162 /* 51162 */, // S3_0_c15_c11_2 at min EL1: HID18
+ REG_HID36 =51164 /* 51164 */, // S3_0_c15_c11_4 at min EL1: HID36
+ REG_HID37 =51165 /* 51165 */, // S3_0_c15_c11_5 at min EL1: HID37
+ REG_HID12 =51168 /* 51168 */, // S3_0_c15_c12_0 at min EL1: HID12
+ REG_HID15 =51169 /* 51169 */, // S3_0_c15_c12_1 at min EL1: HID15
+ REG_HID19 =51170 /* 51170 */, // S3_0_c15_c12_2 at min EL1: HID19
+ REG_BIU_TLIMIT =51176 /* 51176 */, // S3_0_c15_c13_0 at min EL1: BIU_TLIMIT
+ REG_HID13 =51184 /* 51184 */, // S3_0_c15_c14_0 at min EL1: HID13
+ REG_HID_RCTX_G0CTL =51186 /* 51186 */, // S3_0_c15_c14_2 at min EL1: HID_RCTX_G0CTL
+ REG_HID_RCTX_G1CTL =51187 /* 51187 */, // S3_0_c15_c14_3 at min EL1: HID_RCTX_G1CTL
+ REG_HID14 =51192 /* 51192 */, // S3_0_c15_c15_0 at min EL1: HID14
+ REG_HID16 =51194 /* 51194 */, // S3_0_c15_c15_2 at min EL1: HID16
+ REG_LLC_WRR2 =51195 /* 51195 */, // S3_0_c15_c15_3 at min EL1: LLC_WRR2
+ REG_BIU_AFI_CFG =51196 /* 51196 */, // S3_0_c15_c15_4 at min EL1: BIU_AFI_CFG
+ REG_HID17 =51197 /* 51197 */, // S3_0_c15_c15_5 at min EL1: HID17
+ REG_HID24 =51198 /* 51198 */, // S3_0_c15_c15_6 at min EL1: HID24
+ REG_HID35 =51199 /* 51199 */, // S3_0_c15_c15_7 at min EL1: HID35
+ REG_CCSIDRPL1_I_EL1 =51200 /* 51200 */, // S3_1_c0_c0_0 at min EL1: CCSIDRPL1_I_EL1
+ REG_CLIDR_EL1 =51201 /* 51201 */, // S3_1_c0_c0_1 at min EL1: CLIDR_EL1
+ REG_SMIDR_EL1 =51206 /* 51206 */, // S3_1_c0_c0_6 at min EL1: SMIDR_EL1
+ REG_AIDR_EL1 =51207 /* 51207 */, // S3_1_c0_c0_7 at min EL1: AIDR_EL1
+ REG_PMCR0_EL1 =53120 /* 53120 */, // S3_1_c15_c0_0 at min EL1: PMCR0_EL1
+ REG_APPL_CONTEXTPTR =53121 /* 53121 */, // S3_1_c15_c0_1 at min EL1: APPL_CONTEXTPTR
+ REG_LD_LATPROF_CTL_EL21 =53122 /* 53122 */, // S3_1_c15_c0_2 at min EL1: LD_LATPROF_CTL_EL21
+ REG_AON_CPU_MSTALL_CTL01_EL1 =53123 /* 53123 */, // S3_1_c15_c0_3 at min EL1: AON_CPU_MSTALL_CTL01_EL1
+ REG_PM_MEMFLT_CTL23_EL1 =53124 /* 53124 */, // S3_1_c15_c0_4 at min EL1: PM_MEMFLT_CTL23_EL1
+ REG_REDIR_ACNTV_CTL_EL0 =53125 /* 53125 */, // S3_1_c15_c0_5 at min EL1: REDIR_ACNTV_CTL_EL0
+ REG_LCL_ACNTVCTSS_NOREDIR_EL0 =53126 /* 53126 */, // S3_1_c15_c0_6 at min EL1: LCL_ACNTVCTSS_NOREDIR_EL0
+ REG_PMCR1_EL21 =53128 /* 53128 */, // S3_1_c15_c1_0 at min EL1: PMCR1_EL21
+ REG_LD_LATPROF_CTR_EL1 =53130 /* 53130 */, // S3_1_c15_c1_2 at min EL1: LD_LATPROF_CTR_EL1
+ REG_AON_CPU_MSTALL_CTL23_EL1 =53131 /* 53131 */, // S3_1_c15_c1_3 at min EL1: AON_CPU_MSTALL_CTL23_EL1
+ REG_PM_MEMFLT_CTL45_EL1 =53132 /* 53132 */, // S3_1_c15_c1_4 at min EL1: PM_MEMFLT_CTL45_EL1
+ REG_AGTCNTRDIR_EL21 =53133 /* 53133 */, // S3_1_c15_c1_5 at min EL1: AGTCNTRDIR_EL21
+ REG_AGTCNTKCTL_NOREDIR_EL1 =53134 /* 53134 */, // S3_1_c15_c1_6 at min EL1: AGTCNTKCTL_NOREDIR_EL1
+ REG_PMCR2_EL1 =53136 /* 53136 */, // S3_1_c15_c2_0 at min EL1: PMCR2_EL1
+ REG_LD_LATPROF_STS_EL1 =53138 /* 53138 */, // S3_1_c15_c2_2 at min EL1: LD_LATPROF_STS_EL1
+ REG_AON_CPU_MSTALL_CTL45_EL1 =53139 /* 53139 */, // S3_1_c15_c2_3 at min EL1: AON_CPU_MSTALL_CTL45_EL1
+ REG_REDIR_ACNTHP_CVAL_EL2 =53140 /* 53140 */, // S3_1_c15_c2_4 at min EL2: REDIR_ACNTHP_CVAL_EL2
+ REG_LCL_CNTVCT_NOREDIR_EL0 =53141 /* 53141 */, // S3_1_c15_c2_5 at min EL1: LCL_CNTVCT_NOREDIR_EL0
+ REG_AGTCNTP_CVAL_NOREDIR_EL0 =53142 /* 53142 */, // S3_1_c15_c2_6 at min EL1: AGTCNTP_CVAL_NOREDIR_EL0
+ REG_PMCR3_EL1 =53144 /* 53144 */, // S3_1_c15_c3_0 at min EL1: PMCR3_EL1
+ REG_LD_LATPROF_INF_EL1 =53146 /* 53146 */, // S3_1_c15_c3_2 at min EL1: LD_LATPROF_INF_EL1
+ REG_AON_CPU_MSTALL_CTL67_EL1 =53147 /* 53147 */, // S3_1_c15_c3_3 at min EL1: AON_CPU_MSTALL_CTL67_EL1
+ REG_REDIR_ACNTHP_TVAL_EL2 =53148 /* 53148 */, // S3_1_c15_c3_4 at min EL2: REDIR_ACNTHP_TVAL_EL2
+ REG_LCL_CNTPCTSS_NOREDIR_EL0 =53149 /* 53149 */, // S3_1_c15_c3_5 at min EL1: LCL_CNTPCTSS_NOREDIR_EL0
+ REG_AGTCNTP_TVAL_NOREDIR_EL0 =53150 /* 53150 */, // S3_1_c15_c3_6 at min EL1: AGTCNTP_TVAL_NOREDIR_EL0
+ REG_PMCR4_EL1 =53152 /* 53152 */, // S3_1_c15_c4_0 at min EL1: PMCR4_EL1
+ REG_LD_LATPROF_CTL_EL2 =53154 /* 53154 */, // S3_1_c15_c4_2 at min EL2: LD_LATPROF_CTL_EL2
+ REG_AON_CPU_MEMFLT_CTL01_EL1 =53155 /* 53155 */, // S3_1_c15_c4_3 at min EL1: AON_CPU_MEMFLT_CTL01_EL1
+ REG_REDIR_ACNTHP_CTL_EL2 =53156 /* 53156 */, // S3_1_c15_c4_4 at min EL2: REDIR_ACNTHP_CTL_EL2
+ REG_LCL_CNTVCTSS_NOREDIR_EL0 =53157 /* 53157 */, // S3_1_c15_c4_5 at min EL1: LCL_CNTVCTSS_NOREDIR_EL0
+ REG_AGTCNTP_CTL_NOREDIR_EL0 =53158 /* 53158 */, // S3_1_c15_c4_6 at min EL1: AGTCNTP_CTL_NOREDIR_EL0
+ REG_PMESR0_EL1 =53160 /* 53160 */, // S3_1_c15_c5_0 at min EL1: PMESR0_EL1
+ REG_LD_LATPROF_CMD_EL1 =53162 /* 53162 */, // S3_1_c15_c5_2 at min EL1: LD_LATPROF_CMD_EL1
+ REG_AON_CPU_MEMFLT_CTL23_EL1 =53163 /* 53163 */, // S3_1_c15_c5_3 at min EL1: AON_CPU_MEMFLT_CTL23_EL1
+ REG_REDIR_ACNTHV_CVAL_EL2 =53164 /* 53164 */, // S3_1_c15_c5_4 at min EL2: REDIR_ACNTHV_CVAL_EL2
+ REG_AGTCNTV_CVAL_NOREDIR_EL0 =53166 /* 53166 */, // S3_1_c15_c5_6 at min EL1: AGTCNTV_CVAL_NOREDIR_EL0
+ REG_PMESR1_EL1 =53168 /* 53168 */, // S3_1_c15_c6_0 at min EL1: PMESR1_EL1
+ REG_PMCR1_EL2 =53170 /* 53170 */, // S3_1_c15_c6_2 at min EL2: PMCR1_EL2
+ REG_AON_CPU_MEMFLT_CTL45_EL1 =53171 /* 53171 */, // S3_1_c15_c6_3 at min EL1: AON_CPU_MEMFLT_CTL45_EL1
+ REG_REDIR_ACNTHV_TVAL_EL2 =53172 /* 53172 */, // S3_1_c15_c6_4 at min EL2: REDIR_ACNTHV_TVAL_EL2
+ REG_CNTKCTL_NOREDIR_EL1 =53173 /* 53173 */, // S3_1_c15_c6_5 at min EL1: CNTKCTL_NOREDIR_EL1
+ REG_AGTCNTV_TVAL_NOREDIR_EL0 =53174 /* 53174 */, // S3_1_c15_c6_6 at min EL1: AGTCNTV_TVAL_NOREDIR_EL0
+ REG_OPMAT0_EL1 =53176 /* 53176 */, // S3_1_c15_c7_0 at min EL1: OPMAT0_EL1
+ REG_PMCR1_EL12 =53178 /* 53178 */, // S3_1_c15_c7_2 at min EL2: PMCR1_EL12
+ REG_AON_CPU_MEMFLT_CTL67_EL1 =53179 /* 53179 */, // S3_1_c15_c7_3 at min EL1: AON_CPU_MEMFLT_CTL67_EL1
+ REG_REDIR_ACNTHV_CTL_EL2 =53180 /* 53180 */, // S3_1_c15_c7_4 at min EL2: REDIR_ACNTHV_CTL_EL2
+ REG_CNTP_CVAL_NOREDIR_EL0 =53181 /* 53181 */, // S3_1_c15_c7_5 at min EL1: CNTP_CVAL_NOREDIR_EL0
+ REG_AGTCNTV_CTL_NOREDIR_EL0 =53182 /* 53182 */, // S3_1_c15_c7_6 at min EL1: AGTCNTV_CTL_NOREDIR_EL0
+ REG_OPMAT1_EL1 =53184 /* 53184 */, // S3_1_c15_c8_0 at min EL1: OPMAT1_EL1
+ REG_PMCR1_GL12 =53186 /* 53186 */, // S3_1_c15_c8_2 at min EL2: PMCR1_GL12
+ REG_AON_CPU_MSTALL_CTR0_EL1 =53187 /* 53187 */, // S3_1_c15_c8_3 at min EL1: AON_CPU_MSTALL_CTR0_EL1
+ REG_REDIR_ACNTFRQ_EL0 =53188 /* 53188 */, // S3_1_c15_c8_4 at min EL1: REDIR_ACNTFRQ_EL0
+ REG_CNTP_TVAL_NOREDIR_EL0 =53189 /* 53189 */, // S3_1_c15_c8_5 at min EL1: CNTP_TVAL_NOREDIR_EL0
+ REG_LCL_CNTPCT_NOREDIR_EL0 =53190 /* 53190 */, // S3_1_c15_c8_6 at min EL1: LCL_CNTPCT_NOREDIR_EL0
+ REG_OPMSK0_EL1 =53192 /* 53192 */, // S3_1_c15_c9_0 at min EL1: OPMSK0_EL1
+ REG_LD_LATPROF_CTL_EL12 =53194 /* 53194 */, // S3_1_c15_c9_2 at min EL2: LD_LATPROF_CTL_EL12
+ REG_AON_CPU_MSTALL_CTR1_EL1 =53195 /* 53195 */, // S3_1_c15_c9_3 at min EL1: AON_CPU_MSTALL_CTR1_EL1
+ REG_AGTCNTVOFF_EL2 =53196 /* 53196 */, // S3_1_c15_c9_4 at min EL2: AGTCNTVOFF_EL2
+ REG_CNTP_CTL_NOREDIR_EL0 =53197 /* 53197 */, // S3_1_c15_c9_5 at min EL1: CNTP_CTL_NOREDIR_EL0
+ REG_CNTV_CTL_NOREDIR_EL0 =53198 /* 53198 */, // S3_1_c15_c9_6 at min EL1: CNTV_CTL_NOREDIR_EL0
+ REG_OPMSK1_EL1 =53200 /* 53200 */, // S3_1_c15_c10_0 at min EL1: OPMSK1_EL1
+ REG_LD_LATPROF_INF_EL2 =53202 /* 53202 */, // S3_1_c15_c10_2 at min EL2: LD_LATPROF_INF_EL2
+ REG_AON_CPU_MSTALL_CTR2_EL1 =53203 /* 53203 */, // S3_1_c15_c10_3 at min EL1: AON_CPU_MSTALL_CTR2_EL1
+ REG_REDIR_ACNTP_CVAL_EL0 =53204 /* 53204 */, // S3_1_c15_c10_4 at min EL1: REDIR_ACNTP_CVAL_EL0
+ REG_CNTV_CVAL_NOREDIR_EL0 =53205 /* 53205 */, // S3_1_c15_c10_5 at min EL1: CNTV_CVAL_NOREDIR_EL0
+ REG_LCL_ACNTPCT_NOREDIR_EL0 =53206 /* 53206 */, // S3_1_c15_c10_6 at min EL1: LCL_ACNTPCT_NOREDIR_EL0
+ REG_AON_CPU_MSTALL_CTR3_EL1 =53211 /* 53211 */, // S3_1_c15_c11_3 at min EL1: AON_CPU_MSTALL_CTR3_EL1
+ REG_REDIR_ACNTP_TVAL_EL0 =53212 /* 53212 */, // S3_1_c15_c11_4 at min EL1: REDIR_ACNTP_TVAL_EL0
+ REG_CNTV_TVAL_NOREDIR_EL0 =53213 /* 53213 */, // S3_1_c15_c11_5 at min EL1: CNTV_TVAL_NOREDIR_EL0
+ REG_VMSA_HV_LOCK_EL2 =53214 /* 53214 */, // S3_1_c15_c11_6 at min EL2: VMSA_HV_LOCK_EL2
+ REG_PMSWCTRL_EL1 =53216 /* 53216 */, // S3_1_c15_c12_0 at min EL1: PMSWCTRL_EL1
+ REG_PMCR5_EL0 =53217 /* 53217 */, // S3_1_c15_c12_1 at min EL1: PMCR5_EL0
+ REG_AON_CPU_MSTALL_CTR4_EL1 =53219 /* 53219 */, // S3_1_c15_c12_3 at min EL1: AON_CPU_MSTALL_CTR4_EL1
+ REG_PMCOMPARE0_EL1 =53220 /* 53220 */, // S3_1_c15_c12_4 at min EL1: PMCompare0_EL1
+ REG_PMCOMPARE1_EL1 =53221 /* 53221 */, // S3_1_c15_c12_5 at min EL1: PMCompare1_EL1
+ REG_VMSA_NV_LOCK_EL2 =53222 /* 53222 */, // S3_1_c15_c12_6 at min EL2: VMSA_NV_LOCK_EL2
+ REG_PMSR_EL1 =53224 /* 53224 */, // S3_1_c15_c13_0 at min EL1: PMSR_EL1
+ REG_AON_CPU_MSTALL_CTR5_EL1 =53227 /* 53227 */, // S3_1_c15_c13_3 at min EL1: AON_CPU_MSTALL_CTR5_EL1
+ REG_REDIR_ACNTP_CTL_EL0 =53228 /* 53228 */, // S3_1_c15_c13_4 at min EL1: REDIR_ACNTP_CTL_EL0
+ REG_PMCOMPARE5_EL1 =53229 /* 53229 */, // S3_1_c15_c13_5 at min EL1: PMCompare5_EL1
+ REG_PMCOMPARE6_EL1 =53230 /* 53230 */, // S3_1_c15_c13_6 at min EL1: PMCompare6_EL1
+ REG_PMCOMPARE7_EL1 =53231 /* 53231 */, // S3_1_c15_c13_7 at min EL1: PMCompare7_EL1
+ REG_PMCR_BVRNG4_EL1 =53232 /* 53232 */, // S3_1_c15_c14_0 at min EL1: PMCR_BVRNG4_EL1
+ REG_PM_PMI_PC =53233 /* 53233 */, // S3_1_c15_c14_1 at min EL1: PM_PMI_PC
+ REG_AON_CPU_MSTALL_CTR6_EL1 =53235 /* 53235 */, // S3_1_c15_c14_3 at min EL1: AON_CPU_MSTALL_CTR6_EL1
+ REG_REDIR_ACNTV_CVAL_EL0 =53236 /* 53236 */, // S3_1_c15_c14_4 at min EL1: REDIR_ACNTV_CVAL_EL0
+ REG_LCL_ACNTVCT_NOREDIR_EL0 =53237 /* 53237 */, // S3_1_c15_c14_5 at min EL1: LCL_ACNTVCT_NOREDIR_EL0
+ REG_PMCR_BVRNG5_EL1 =53240 /* 53240 */, // S3_1_c15_c15_0 at min EL1: PMCR_BVRNG5_EL1
+ REG_AON_CPU_MSTALL_CTR7_EL1 =53243 /* 53243 */, // S3_1_c15_c15_3 at min EL1: AON_CPU_MSTALL_CTR7_EL1
+ REG_REDIR_ACNTV_TVAL_EL0 =53244 /* 53244 */, // S3_1_c15_c15_4 at min EL1: REDIR_ACNTV_TVAL_EL0
+ REG_LCL_ACNTPCTSS_NOREDIR_EL0 =53245 /* 53245 */, // S3_1_c15_c15_5 at min EL1: LCL_ACNTPCTSS_NOREDIR_EL0
+ REG_CSSELR_EL1 =53248 /* 53248 */, // S3_2_c0_c0_0 at min EL1: CSSELR_EL1
+ REG_PMC0 =55168 /* 55168 */, // S3_2_c15_c0_0 at min EL1: PMC0
+ REG_UPMCFILTER0 =55169 /* 55169 */, // S3_2_c15_c0_1 at min EL1: UPMCFILTER0
+ REG_UPMCFILTER1 =55170 /* 55170 */, // S3_2_c15_c0_2 at min EL1: UPMCFILTER1
+ REG_UPMCFILTER2 =55171 /* 55171 */, // S3_2_c15_c0_3 at min EL1: UPMCFILTER2
+ REG_UPMCFILTER3 =55172 /* 55172 */, // S3_2_c15_c0_4 at min EL1: UPMCFILTER3
+ REG_UPMCFILTER4 =55173 /* 55173 */, // S3_2_c15_c0_5 at min EL1: UPMCFILTER4
+ REG_UPMCFILTER5 =55174 /* 55174 */, // S3_2_c15_c0_6 at min EL1: UPMCFILTER5
+ REG_UPMCFILTER6 =55175 /* 55175 */, // S3_2_c15_c0_7 at min EL1: UPMCFILTER6
+ REG_PMC1 =55176 /* 55176 */, // S3_2_c15_c1_0 at min EL1: PMC1
+ REG_UPMCFILTER7 =55177 /* 55177 */, // S3_2_c15_c1_1 at min EL1: UPMCFILTER7
+ REG_PMC2 =55184 /* 55184 */, // S3_2_c15_c2_0 at min EL1: PMC2
+ REG_PMC3 =55192 /* 55192 */, // S3_2_c15_c3_0 at min EL1: PMC3
+ REG_PMC4 =55200 /* 55200 */, // S3_2_c15_c4_0 at min EL1: PMC4
+ REG_PMC5 =55208 /* 55208 */, // S3_2_c15_c5_0 at min EL1: PMC5
+ REG_PMC6 =55216 /* 55216 */, // S3_2_c15_c6_0 at min EL1: PMC6
+ REG_PMC7 =55224 /* 55224 */, // S3_2_c15_c7_0 at min EL1: PMC7
+ REG_PMC8 =55240 /* 55240 */, // S3_2_c15_c9_0 at min EL1: PMC8
+ REG_PMC9 =55248 /* 55248 */, // S3_2_c15_c10_0 at min EL1: PMC9
+ REG_PMTRHLD6_EL1 =55264 /* 55264 */, // S3_2_c15_c12_0 at min EL1: PMTRHLD6_EL1
+ REG_PMTRHLD4_EL1 =55272 /* 55272 */, // S3_2_c15_c13_0 at min EL1: PMTRHLD4_EL1
+ REG_PMTRHLD2_EL1 =55280 /* 55280 */, // S3_2_c15_c14_0 at min EL1: PMTRHLD2_EL1
+ REG_PMMMAP_EL1 =55288 /* 55288 */, // S3_2_c15_c15_0 at min EL1: PMMMAP_EL1
+ REG_CTR_EL0 =55297 /* 55297 */, // S3_3_c0_c0_1 at min EL1: CTR_EL0
+ REG_DCZID_EL0 =55303 /* 55303 */, // S3_3_c0_c0_7 at min EL1: DCZID_EL0
+ REG_NZCV =55824 /* 55824 */, // S3_3_c4_c2_0 at min EL1: NZCV
+ REG_DAIF =55825 /* 55825 */, // S3_3_c4_c2_1 at min EL1: DAIF
+ REG_DAIFSET =55825 /* 55825 */,
+ REG_SVCR =55826 /* 55826 */, // S3_3_c4_c2_2 at min EL1: SVCR
+ REG_DIT =55829 /* 55829 */, // S3_3_c4_c2_5 at min EL1: DIT
+ REG_SSBS =55830 /* 55830 */,
+ REG_TCO =55831 /* 55831 */,
+ REG_FPCR =55840 /* 55840 */, // S3_3_c4_c4_0 at min EL1: FPCR
+ REG_FPSR =55841 /* 55841 */, // S3_3_c4_c4_1 at min EL1: FPSR
+ REG_DSPSR_EL0 =55848 /* 55848 */, // S3_3_c4_c5_0 at min EL1: DSPSR_EL0
+ REG_DLR_EL0 =55849 /* 55849 */, // S3_3_c4_c5_1 at min EL1: DLR_EL0
+ REG_PMCR_EL0 =56544 /* 56544 */,
+ REG_PMCNTENSET_EL0 =56545 /* 56545 */,
+ REG_PMCNTENCLR_EL0 =56546 /* 56546 */,
+ REG_PMOVSCLR_EL0 =56547 /* 56547 */,
+ REG_PMSWINC_EL0 =56548 /* 56548 */,
+ REG_PMSELR_EL0 =56549 /* 56549 */,
+ REG_PMCCNTR_EL0 =56552 /* 56552 */,
+ REG_PMXEVTYPER_EL0 =56553 /* 56553 */,
+ REG_PMXEVCNTR_EL0 =56554 /* 56554 */,
+ REG_DAIFCLR =56557 /* 56557 */,
+ REG_PMUSERENR_EL0 =56560 /* 56560 */,
+ REG_PMOVSSET_EL0 =56563 /* 56563 */,
+ REG_TPIDR_EL0 =56962 /* 56962 */, // S3_3_c13_c0_2 at min EL1: TPIDR_EL0
+ REG_TPIDRRO_EL0 =56963 /* 56963 */, // S3_3_c13_c0_3 at min EL1: TPIDRRO_EL0
+ REG_TPIDR2_EL0 =56965 /* 56965 */, // S3_3_c13_c0_5 at min EL1: TPIDR2_EL0
+ REG_SCXTNUM_EL0 =56967 /* 56967 */, // S3_3_c13_c0_7 at min EL1: SCXTNUM_EL0
+ REG_AMCR_EL0 =56976 /* 56976 */,
+ REG_AMUSERENR_EL0 =56979 /* 56979 */,
+ REG_AMCNTENCLR0_EL0 =56980 /* 56980 */,
+ REG_AMCNTENSET0_EL0 =56981 /* 56981 */,
+ REG_AMCNTENCLR1_EL0 =56984 /* 56984 */,
+ REG_AMCNTENSET1_EL0 =56985 /* 56985 */,
+ REG_AMEVCNTR00_EL0 =56992 /* 56992 */,
+ REG_AMEVCNTR01_EL0 =56993 /* 56993 */,
+ REG_AMEVCNTR02_EL0 =56994 /* 56994 */,
+ REG_AMEVCNTR03_EL0 =56995 /* 56995 */,
+ REG_AMEVCNTR10_EL0 =57056 /* 57056 */,
+ REG_AMEVCNTR11_EL0 =57057 /* 57057 */,
+ REG_AMEVCNTR12_EL0 =57058 /* 57058 */,
+ REG_AMEVCNTR13_EL0 =57059 /* 57059 */,
+ REG_AMEVCNTR14_EL0 =57060 /* 57060 */,
+ REG_AMEVCNTR15_EL0 =57061 /* 57061 */,
+ REG_AMEVCNTR16_EL0 =57062 /* 57062 */,
+ REG_AMEVCNTR17_EL0 =57063 /* 57063 */,
+ REG_AMEVCNTR18_EL0 =57064 /* 57064 */,
+ REG_AMEVCNTR19_EL0 =57065 /* 57065 */,
+ REG_AMEVCNTR110_EL0 =57066 /* 57066 */,
+ REG_AMEVCNTR111_EL0 =57067 /* 57067 */,
+ REG_AMEVCNTR112_EL0 =57068 /* 57068 */,
+ REG_AMEVCNTR113_EL0 =57069 /* 57069 */,
+ REG_AMEVCNTR114_EL0 =57070 /* 57070 */,
+ REG_AMEVCNTR115_EL0 =57071 /* 57071 */,
+ REG_AMEVTYPER10_EL0 =57072 /* 57072 */,
+ REG_AMEVTYPER11_EL0 =57073 /* 57073 */,
+ REG_AMEVTYPER12_EL0 =57074 /* 57074 */,
+ REG_AMEVTYPER13_EL0 =57075 /* 57075 */,
+ REG_AMEVTYPER14_EL0 =57076 /* 57076 */,
+ REG_AMEVTYPER15_EL0 =57077 /* 57077 */,
+ REG_AMEVTYPER16_EL0 =57078 /* 57078 */,
+ REG_AMEVTYPER17_EL0 =57079 /* 57079 */,
+ REG_AMEVTYPER18_EL0 =57080 /* 57080 */,
+ REG_AMEVTYPER19_EL0 =57081 /* 57081 */,
+ REG_AMEVTYPER110_EL0 =57082 /* 57082 */,
+ REG_AMEVTYPER111_EL0 =57083 /* 57083 */,
+ REG_AMEVTYPER112_EL0 =57084 /* 57084 */,
+ REG_AMEVTYPER113_EL0 =57085 /* 57085 */,
+ REG_AMEVTYPER114_EL0 =57086 /* 57086 */,
+ REG_AMEVTYPER115_EL0 =57087 /* 57087 */,
+ REG_REDIR_CNTFRQ_EL0 =57088 /* 57088 */, // S3_3_c14_c0_0 at min EL1: REDIR_CNTFRQ_EL0
+ REG_CNTFRQ_EL0 =57088 /* 57088 */,
+ REG_REDIR_LCL_CNTPCT_EL0 =57089 /* 57089 */, // S3_3_c14_c0_1 at min EL1: REDIR_LCL_CNTPCT_EL0
+ REG_CNTPCT_EL0 =57089 /* 57089 */,
+ REG_REDIR_LCL_CNTVCT_EL0 =57090 /* 57090 */, // S3_3_c14_c0_2 at min EL1: REDIR_LCL_CNTVCT_EL0
+ REG_REDIR_LCL_CNTPCTSS_EL0 =57093 /* 57093 */, // S3_3_c14_c0_5 at min EL1: REDIR_LCL_CNTPCTSS_EL0
+ REG_REDIR_LCL_CNTVCTSS_EL0 =57094 /* 57094 */, // S3_3_c14_c0_6 at min EL1: REDIR_LCL_CNTVCTSS_EL0
+ REG_REDIR_CNTP_TVAL_EL0 =57104 /* 57104 */, // S3_3_c14_c2_0 at min EL1: REDIR_CNTP_TVAL_EL0
+ REG_CNTP_TVAL_EL0 =57104 /* 57104 */,
+ REG_REDIR_CNTP_CTL_EL0 =57105 /* 57105 */, // S3_3_c14_c2_1 at min EL1: REDIR_CNTP_CTL_EL0
+ REG_CNTP_CTL_EL0 =57105 /* 57105 */,
+ REG_REDIR_CNTP_CVAL_EL0 =57106 /* 57106 */, // S3_3_c14_c2_2 at min EL1: REDIR_CNTP_CVAL_EL0
+ REG_CNTP_CVAL_EL0 =57106 /* 57106 */,
+ REG_REDIR_CNTV_TVAL_EL0 =57112 /* 57112 */, // S3_3_c14_c3_0 at min EL1: REDIR_CNTV_TVAL_EL0
+ REG_CNTV_TVAL_EL0 =57112 /* 57112 */,
+ REG_REDIR_CNTV_CTL_EL0 =57113 /* 57113 */, // S3_3_c14_c3_1 at min EL1: REDIR_CNTV_CTL_EL0
+ REG_CNTV_CTL_EL0 =57113 /* 57113 */,
+ REG_REDIR_CNTV_CVAL_EL0 =57114 /* 57114 */, // S3_3_c14_c3_2 at min EL1: REDIR_CNTV_CVAL_EL0
+ REG_CNTV_CVAL_EL0 =57114 /* 57114 */,
+ REG_PMEVCNTR0_EL0 =57152 /* 57152 */,
+ REG_PMEVCNTR1_EL0 =57153 /* 57153 */,
+ REG_PMEVCNTR2_EL0 =57154 /* 57154 */,
+ REG_PMEVCNTR3_EL0 =57155 /* 57155 */,
+ REG_PMEVCNTR4_EL0 =57156 /* 57156 */,
+ REG_PMEVCNTR5_EL0 =57157 /* 57157 */,
+ REG_PMEVCNTR6_EL0 =57158 /* 57158 */,
+ REG_PMEVCNTR7_EL0 =57159 /* 57159 */,
+ REG_PMEVCNTR8_EL0 =57160 /* 57160 */,
+ REG_PMEVCNTR9_EL0 =57161 /* 57161 */,
+ REG_PMEVCNTR10_EL0 =57162 /* 57162 */,
+ REG_PMEVCNTR11_EL0 =57163 /* 57163 */,
+ REG_PMEVCNTR12_EL0 =57164 /* 57164 */,
+ REG_PMEVCNTR13_EL0 =57165 /* 57165 */,
+ REG_PMEVCNTR14_EL0 =57166 /* 57166 */,
+ REG_PMEVCNTR15_EL0 =57167 /* 57167 */,
+ REG_PMEVCNTR16_EL0 =57168 /* 57168 */,
+ REG_PMEVCNTR17_EL0 =57169 /* 57169 */,
+ REG_PMEVCNTR18_EL0 =57170 /* 57170 */,
+ REG_PMEVCNTR19_EL0 =57171 /* 57171 */,
+ REG_PMEVCNTR20_EL0 =57172 /* 57172 */,
+ REG_PMEVCNTR21_EL0 =57173 /* 57173 */,
+ REG_PMEVCNTR22_EL0 =57174 /* 57174 */,
+ REG_PMEVCNTR23_EL0 =57175 /* 57175 */,
+ REG_PMEVCNTR24_EL0 =57176 /* 57176 */,
+ REG_PMEVCNTR25_EL0 =57177 /* 57177 */,
+ REG_PMEVCNTR26_EL0 =57178 /* 57178 */,
+ REG_PMEVCNTR27_EL0 =57179 /* 57179 */,
+ REG_PMEVCNTR28_EL0 =57180 /* 57180 */,
+ REG_PMEVCNTR29_EL0 =57181 /* 57181 */,
+ REG_PMEVCNTR30_EL0 =57182 /* 57182 */,
+ REG_PMEVTYPER0_EL0 =57184 /* 57184 */,
+ REG_PMEVTYPER1_EL0 =57185 /* 57185 */,
+ REG_PMEVTYPER2_EL0 =57186 /* 57186 */,
+ REG_PMEVTYPER3_EL0 =57187 /* 57187 */,
+ REG_PMEVTYPER4_EL0 =57188 /* 57188 */,
+ REG_PMEVTYPER5_EL0 =57189 /* 57189 */,
+ REG_PMEVTYPER6_EL0 =57190 /* 57190 */,
+ REG_PMEVTYPER7_EL0 =57191 /* 57191 */,
+ REG_PMEVTYPER8_EL0 =57192 /* 57192 */,
+ REG_PMEVTYPER9_EL0 =57193 /* 57193 */,
+ REG_PMEVTYPER10_EL0 =57194 /* 57194 */,
+ REG_PMEVTYPER11_EL0 =57195 /* 57195 */,
+ REG_PMEVTYPER12_EL0 =57196 /* 57196 */,
+ REG_PMEVTYPER13_EL0 =57197 /* 57197 */,
+ REG_PMEVTYPER14_EL0 =57198 /* 57198 */,
+ REG_PMEVTYPER15_EL0 =57199 /* 57199 */,
+ REG_PMEVTYPER16_EL0 =57200 /* 57200 */,
+ REG_PMEVTYPER17_EL0 =57201 /* 57201 */,
+ REG_PMEVTYPER18_EL0 =57202 /* 57202 */,
+ REG_PMEVTYPER19_EL0 =57203 /* 57203 */,
+ REG_PMEVTYPER20_EL0 =57204 /* 57204 */,
+ REG_PMEVTYPER21_EL0 =57205 /* 57205 */,
+ REG_PMEVTYPER22_EL0 =57206 /* 57206 */,
+ REG_PMEVTYPER23_EL0 =57207 /* 57207 */,
+ REG_PMEVTYPER24_EL0 =57208 /* 57208 */,
+ REG_PMEVTYPER25_EL0 =57209 /* 57209 */,
+ REG_PMEVTYPER26_EL0 =57210 /* 57210 */,
+ REG_PMEVTYPER27_EL0 =57211 /* 57211 */,
+ REG_PMEVTYPER28_EL0 =57212 /* 57212 */,
+ REG_PMEVTYPER29_EL0 =57213 /* 57213 */,
+ REG_PMEVTYPER30_EL0 =57214 /* 57214 */,
+ REG_PMCCFILTR_EL0 =57215 /* 57215 */,
+ REG_LSU_ERR_STS =57216 /* 57216 */, // S3_3_c15_c0_0 at min EL1: LSU_ERR_STS
+ REG_AFLATCTL1_EL1 =57220 /* 57220 */, // S3_3_c15_c0_4 at min EL1: AFLATCTL1_EL1
+ REG_AFLATVALBIN0_EL1 =57221 /* 57221 */, // S3_3_c15_c0_5 at min EL1: AFLATVALBIN0_EL1
+ REG_AFLATINFLO_EL1 =57222 /* 57222 */, // S3_3_c15_c0_6 at min EL1: AFLATINFLO_EL1
+ REG_LSU_ERR_CTL =57224 /* 57224 */, // S3_3_c15_c1_0 at min EL1: LSU_ERR_CTL
+ REG_AFLATCTL2_EL1 =57228 /* 57228 */, // S3_3_c15_c1_4 at min EL1: AFLATCTL2_EL1
+ REG_AFLATVALBIN1_EL1 =57229 /* 57229 */, // S3_3_c15_c1_5 at min EL1: AFLATVALBIN1_EL1
+ REG_AFLATINFHI_EL1 =57230 /* 57230 */, // S3_3_c15_c1_6 at min EL1: AFLATINFHI_EL1
+ REG_AFLATCTL3_EL1 =57236 /* 57236 */, // S3_3_c15_c2_4 at min EL1: AFLATCTL3_EL1
+ REG_AFLATVALBIN2_EL1 =57237 /* 57237 */, // S3_3_c15_c2_5 at min EL1: AFLATVALBIN2_EL1
+ REG_AFLATCTL4_EL1 =57244 /* 57244 */, // S3_3_c15_c3_4 at min EL1: AFLATCTL4_EL1
+ REG_AFLATVALBIN3_EL1 =57245 /* 57245 */, // S3_3_c15_c3_5 at min EL1: AFLATVALBIN3_EL1
+ REG_LLC_FILL_CTL =57248 /* 57248 */, // S3_3_c15_c4_0 at min EL1: LLC_FILL_CTL
+ REG_AFLATCTL5_LO_EL1 =57252 /* 57252 */, // S3_3_c15_c4_4 at min EL1: AFLATCTL5_LO_EL1
+ REG_AFLATVALBIN4_EL1 =57253 /* 57253 */, // S3_3_c15_c4_5 at min EL1: AFLATVALBIN4_EL1
+ REG_AFLATCTL5_HI_EL1 =57254 /* 57254 */, // S3_3_c15_c4_6 at min EL1: AFLATCTL5_HI_EL1
+ REG_LLC_FILL_DAT =57256 /* 57256 */, // S3_3_c15_c5_0 at min EL1: LLC_FILL_DAT
+ REG_AFLATVALBIN5_EL1 =57261 /* 57261 */, // S3_3_c15_c5_5 at min EL1: AFLATVALBIN5_EL1
+ REG_AFLATVALBIN6_EL1 =57269 /* 57269 */, // S3_3_c15_c6_5 at min EL1: AFLATVALBIN6_EL1
+ REG_LLC_RAM_CONFIG =57272 /* 57272 */, // S3_3_c15_c7_0 at min EL1: LLC_RAM_CONFIG
+ REG_AFLATVALBIN7_EL1 =57277 /* 57277 */, // S3_3_c15_c7_5 at min EL1: AFLATVALBIN7_EL1
+ REG_LLC_ERR_STS =57280 /* 57280 */, // S3_3_c15_c8_0 at min EL1: LLC_ERR_STS
+ REG_CMAINT_BCAST_LIST_0 =57281 /* 57281 */, // S3_3_c15_c8_1 at min EL1: CMAINT_BCAST_LIST_0
+ REG_CMAINT_BCAST_LIST_1 =57282 /* 57282 */, // S3_3_c15_c8_2 at min EL1: CMAINT_BCAST_LIST_1
+ REG_CMAINT_BCAST_CTL =57283 /* 57283 */, // S3_3_c15_c8_3 at min EL1: CMAINT_BCAST_CTL
+ REG_LLC_ERR_ADR =57288 /* 57288 */, // S3_3_c15_c9_0 at min EL1: LLC_ERR_ADR
+ REG_LLC_ERR_CTL =57289 /* 57289 */, // S3_3_c15_c9_1 at min EL1: LLC_ERR_CTL
+ REG_LLC_ERR_INJ =57290 /* 57290 */, // S3_3_c15_c9_2 at min EL1: LLC_ERR_INJ
+ REG_LLC_ERR_INF =57296 /* 57296 */, // S3_3_c15_c10_0 at min EL1: LLC_ERR_INF
+ REG_USERTAGSEL_EL1 =57297 /* 57297 */, // S3_3_c15_c10_1 at min EL1: USERTAGSEL_EL1
+ REG_UUSERTAG_EL0 =57298 /* 57298 */, // S3_3_c15_c10_2 at min EL1: UUSERTAG_EL0
+ REG_KUSERTAG_EL1 =57299 /* 57299 */, // S3_3_c15_c10_3 at min EL1: KUSERTAG_EL1
+ REG_HUSERTAG_EL2 =57300 /* 57300 */, // S3_3_c15_c10_4 at min EL2: HUSERTAG_EL2
+ REG_LLC_TRACE_CTL0 =57304 /* 57304 */, // S3_3_c15_c11_0 at min EL1: LLC_TRACE_CTL0
+ REG_LLC_TRACE_CTL1 =57312 /* 57312 */, // S3_3_c15_c12_0 at min EL1: LLC_TRACE_CTL1
+ REG_LLC_UP_REQ_VC =57320 /* 57320 */, // S3_3_c15_c13_0 at min EL1: LLC_UP_REQ_VC
+ REG_LLC_UP_REQ_VC_THRESH =57321 /* 57321 */, // S3_3_c15_c13_1 at min EL1: LLC_UP_REQ_VC_THRESH
+ REG_LLC_UP_REQ_VC_2 =57322 /* 57322 */, // S3_3_c15_c13_2 at min EL1: LLC_UP_REQ_VC_2
+ REG_LLC_UP_REQ_VC_THRESH_2 =57323 /* 57323 */, // S3_3_c15_c13_3 at min EL1: LLC_UP_REQ_VC_THRESH_2
+ REG_LLC_DRAM_HASH0 =57324 /* 57324 */, // S3_3_c15_c13_4 at min EL1: LLC_DRAM_HASH0
+ REG_LLC_DRAM_HASH1 =57325 /* 57325 */, // S3_3_c15_c13_5 at min EL1: LLC_DRAM_HASH1
+ REG_LLC_DRAM_HASH2 =57326 /* 57326 */, // S3_3_c15_c13_6 at min EL1: LLC_DRAM_HASH2
+ REG_LLC_DRAM_HASH3 =57327 /* 57327 */, // S3_3_c15_c13_7 at min EL1: LLC_DRAM_HASH3
+ REG_LLC_TRACE_CTL2 =57328 /* 57328 */, // S3_3_c15_c14_0 at min EL1: LLC_TRACE_CTL2
+ REG_LLC_DRAM_HASH4 =57329 /* 57329 */, // S3_3_c15_c14_1 at min EL1: LLC_DRAM_HASH4
+ REG_LLC_UP_REQ_VC_3 =57330 /* 57330 */, // S3_3_c15_c14_2 at min EL1: LLC_UP_REQ_VC_3
+ REG_LLC_UP_REQ_VC_THRESH_3 =57331 /* 57331 */, // S3_3_c15_c14_3 at min EL1: LLC_UP_REQ_VC_THRESH_3
+ REG_LLC_UP_REQ_VC_4 =57332 /* 57332 */, // S3_3_c15_c14_4 at min EL1: LLC_UP_REQ_VC_4
+ REG_LLC_UP_REQ_VC_THRESH_4 =57333 /* 57333 */, // S3_3_c15_c14_5 at min EL1: LLC_UP_REQ_VC_THRESH_4
+ REG_LLC_HASH0 =57336 /* 57336 */, // S3_3_c15_c15_0 at min EL1: LLC_HASH0
+ REG_LLC_HASH1 =57337 /* 57337 */, // S3_3_c15_c15_1 at min EL1: LLC_HASH1
+ REG_LLC_HASH2 =57338 /* 57338 */, // S3_3_c15_c15_2 at min EL1: LLC_HASH2
+ REG_LLC_HASH3 =57339 /* 57339 */, // S3_3_c15_c15_3 at min EL1: LLC_HASH3
+ REG_LLC_WRR =57340 /* 57340 */, // S3_3_c15_c15_4 at min EL1: LLC_WRR
+ REG_LLC_DRAM_HASH5 =57341 /* 57341 */, // S3_3_c15_c15_5 at min EL1: LLC_DRAM_HASH5
+ REG_LLC_DRAM_HASH6 =57342 /* 57342 */, // S3_3_c15_c15_6 at min EL1: LLC_DRAM_HASH6
+ REG_VPIDR_EL2 =57344 /* 57344 */, // S3_4_c0_c0_0 at min EL2: VPIDR_EL2
+ REG_VMPIDR_EL2 =57349 /* 57349 */, // S3_4_c0_c0_5 at min EL2: VMPIDR_EL2
+ REG_SCTLR_EL2 =57472 /* 57472 */, // S3_4_c1_c0_0 at min EL2: SCTLR_EL2
+ REG_ACTLR_EL2 =57473 /* 57473 */, // S3_4_c1_c0_1 at min EL2: ACTLR_EL2
+ REG_HCR_EL2 =57480 /* 57480 */, // S3_4_c1_c1_0 at min EL2: HCR_EL2
+ REG_MDCR_EL2 =57481 /* 57481 */, // S3_4_c1_c1_1 at min EL2: MDCR_EL2
+ REG_CPTR_EL2 =57482 /* 57482 */, // S3_4_c1_c1_2 at min EL2: CPTR_EL2
+ REG_HSTR_EL2 =57483 /* 57483 */, // S3_4_c1_c1_3 at min EL2: HSTR_EL2
+ REG_HFGRTR_EL2 =57484 /* 57484 */, // S3_4_c1_c1_4 at min EL2: HFGRTR_EL2
+ REG_HFGWTR_EL2 =57485 /* 57485 */, // S3_4_c1_c1_5 at min EL2: HFGWTR_EL2
+ REG_HFGITR_EL2 =57486 /* 57486 */, // S3_4_c1_c1_6 at min EL2: HFGITR_EL2
+ REG_HACR_EL2 =57487 /* 57487 */, // S3_4_c1_c1_7 at min EL2: HACR_EL2
+ REG_TRFCR_EL2 =57489 /* 57489 */,
+ REG_HCRX_EL2 =57490 /* 57490 */, // S3_4_c1_c2_2 at min EL2: HCRX_EL2
+ REG_SMPRIMAP_EL2 =57493 /* 57493 */, // S3_4_c1_c2_5 at min EL2: SMPRIMAP_EL2
+ REG_SMCR_EL2 =57494 /* 57494 */, // S3_4_c1_c2_6 at min EL2: SMCR_EL2
+ REG_SDER32_EL2 =57497 /* 57497 */,
+ REG_TTBR0_EL2 =57600 /* 57600 */, // S3_4_c2_c0_0 at min EL2: TTBR0_EL2
+ REG_TTBR1_EL2 =57601 /* 57601 */, // S3_4_c2_c0_1 at min EL2: TTBR1_EL2
+ REG_TCR_EL2 =57602 /* 57602 */, // S3_4_c2_c0_2 at min EL2: TCR_EL2
+ REG_VTTBR_EL2 =57608 /* 57608 */, // S3_4_c2_c1_0 at min EL2: VTTBR_EL2
+ REG_VTCR_EL2 =57610 /* 57610 */, // S3_4_c2_c1_2 at min EL2: VTCR_EL2
+ REG_VNCR_EL2 =57616 /* 57616 */, // S3_4_c2_c2_0 at min EL2: VNCR_EL2
+ REG_VSTTBR_EL2 =57648 /* 57648 */,
+ REG_VSTCR_EL2 =57650 /* 57650 */,
+ REG_DACR32_EL2 =57728 /* 57728 */, // S3_4_c3_c0_0 at min EL2: DACR32_EL2
+ REG_HDFGRTR_EL2 =57740 /* 57740 */, // S3_4_c3_c1_4 at min EL2: HDFGRTR_EL2
+ REG_HDFGWTR_EL2 =57741 /* 57741 */, // S3_4_c3_c1_5 at min EL2: HDFGWTR_EL2
+ REG_SPSR_NV_EL21 =57856 /* 57856 */, // S3_4_c4_c0_0 at min EL1: SPSR_NV_EL21
+ REG_SPSR_EL2 =57856 /* 57856 */,
+ REG_ELR_NV_EL21 =57857 /* 57857 */, // S3_4_c4_c0_1 at min EL1: ELR_NV_EL21
+ REG_ELR_EL2 =57857 /* 57857 */,
+ REG_SP_EL1 =57864 /* 57864 */, // S3_4_c4_c1_0 at min EL1: SP_EL1
+ REG_SPSR_IRQ =57880 /* 57880 */, // S3_4_c4_c3_0 at min EL1: SPSR_irq
+ REG_SPSR_ABT =57881 /* 57881 */, // S3_4_c4_c3_1 at min EL1: SPSR_abt
+ REG_SPSR_UND =57882 /* 57882 */, // S3_4_c4_c3_2 at min EL1: SPSR_und
+ REG_SPSR_FIQ =57883 /* 57883 */, // S3_4_c4_c3_3 at min EL1: SPSR_fiq
+ REG_IFSR32_EL2 =57985 /* 57985 */, // S3_4_c5_c0_1 at min EL2: IFSR32_EL2
+ REG_AFSR0_EL2 =57992 /* 57992 */, // S3_4_c5_c1_0 at min EL2: AFSR0_EL2
+ REG_AFSR1_EL2 =57993 /* 57993 */, // S3_4_c5_c1_1 at min EL2: AFSR1_EL2
+ REG_ESR_NV_EL21 =58000 /* 58000 */, // S3_4_c5_c2_0 at min EL1: ESR_NV_EL21
+ REG_ESR_EL2 =58000 /* 58000 */,
+ REG_VSESR_EL2 =58003 /* 58003 */, // S3_4_c5_c2_3 at min EL2: VSESR_EL2
+ REG_FPEXC32_EL2 =58008 /* 58008 */, // S3_4_c5_c3_0 at min EL2: FPEXC32_EL2
+ REG_TFSR_EL2 =58032 /* 58032 */,
+ REG_FAR_NV_EL21 =58112 /* 58112 */, // S3_4_c6_c0_0 at min EL1: FAR_NV_EL21
+ REG_FAR_EL2 =58112 /* 58112 */,
+ REG_HPFAR_EL2 =58116 /* 58116 */, // S3_4_c6_c0_4 at min EL2: HPFAR_EL2
+ REG_PMSCR_EL2 =58568 /* 58568 */,
+ REG_MAIR_EL2 =58640 /* 58640 */, // S3_4_c10_c2_0 at min EL2: MAIR_EL2
+ REG_AMAIR_EL2 =58648 /* 58648 */, // S3_4_c10_c3_0 at min EL2: AMAIR_EL2
+ REG_MPAMHCR_EL2 =58656 /* 58656 */,
+ REG_MPAMVPMV_EL2 =58657 /* 58657 */,
+ REG_MPAM2_EL2 =58664 /* 58664 */,
+ REG_MPAMVPM0_EL2 =58672 /* 58672 */,
+ REG_MPAMVPM1_EL2 =58673 /* 58673 */,
+ REG_MPAMVPM2_EL2 =58674 /* 58674 */,
+ REG_MPAMVPM3_EL2 =58675 /* 58675 */,
+ REG_MPAMVPM4_EL2 =58676 /* 58676 */,
+ REG_MPAMVPM5_EL2 =58677 /* 58677 */,
+ REG_MPAMVPM6_EL2 =58678 /* 58678 */,
+ REG_MPAMVPM7_EL2 =58679 /* 58679 */,
+ REG_VBAR_EL2 =58880 /* 58880 */, // S3_4_c12_c0_0 at min EL2: VBAR_EL2
+ REG_RVBAR_EL2 =58881 /* 58881 */, // S3_4_c12_c0_1 at min EL2: RVBAR_EL2
+ REG_RMR_EL2 =58882 /* 58882 */, // S3_4_c12_c0_2 at min EL2: RMR_EL2
+ REG_VDISR_EL2 =58889 /* 58889 */, // S3_4_c12_c1_1 at min EL2: VDISR_EL2
+ REG_ICH_AP0R0_EL2 =58944 /* 58944 */, // S3_4_c12_c8_0 at min EL2: ICH_AP0R0_EL2
+ REG_ICH_AP0R1_EL2 =58945 /* 58945 */,
+ REG_ICH_AP0R2_EL2 =58946 /* 58946 */,
+ REG_ICH_AP0R3_EL2 =58947 /* 58947 */,
+ REG_ICH_AP1R0_EL2 =58952 /* 58952 */, // S3_4_c12_c9_0 at min EL2: ICH_AP1R0_EL2
+ REG_ICH_AP1R1_EL2 =58953 /* 58953 */,
+ REG_ICH_AP1R2_EL2 =58954 /* 58954 */,
+ REG_ICH_AP1R3_EL2 =58955 /* 58955 */,
+ REG_ICH_VSEIR_EL2 =58956 /* 58956 */,
+ REG_ICC_SRE_EL2 =58957 /* 58957 */, // S3_4_c12_c9_5 at min EL2: ICC_SRE_EL2
+ REG_ICH_HCR_EL2 =58968 /* 58968 */, // S3_4_c12_c11_0 at min EL2: ICH_HCR_EL2
+ REG_ICH_VTR_EL2 =58969 /* 58969 */, // S3_4_c12_c11_1 at min EL2: ICH_VTR_EL2
+ REG_ICH_MISR_EL2 =58970 /* 58970 */, // S3_4_c12_c11_2 at min EL2: ICH_MISR_EL2
+ REG_ICH_EISR_EL2 =58971 /* 58971 */, // S3_4_c12_c11_3 at min EL2: ICH_EISR_EL2
+ REG_ICH_ELRSR_EL2 =58973 /* 58973 */, // S3_4_c12_c11_5 at min EL2: ICH_ELRSR_EL2
+ REG_ICH_VMCR_EL2 =58975 /* 58975 */, // S3_4_c12_c11_7 at min EL2: ICH_VMCR_EL2
+ REG_ICH_LR0_EL2 =58976 /* 58976 */, // S3_4_c12_c12_0 at min EL2: ICH_LR0_EL2
+ REG_ICH_LR1_EL2 =58977 /* 58977 */, // S3_4_c12_c12_1 at min EL2: ICH_LR1_EL2
+ REG_ICH_LR2_EL2 =58978 /* 58978 */, // S3_4_c12_c12_2 at min EL2: ICH_LR2_EL2
+ REG_ICH_LR3_EL2 =58979 /* 58979 */, // S3_4_c12_c12_3 at min EL2: ICH_LR3_EL2
+ REG_ICH_LR4_EL2 =58980 /* 58980 */, // S3_4_c12_c12_4 at min EL2: ICH_LR4_EL2
+ REG_ICH_LR5_EL2 =58981 /* 58981 */, // S3_4_c12_c12_5 at min EL2: ICH_LR5_EL2
+ REG_ICH_LR6_EL2 =58982 /* 58982 */, // S3_4_c12_c12_6 at min EL2: ICH_LR6_EL2
+ REG_ICH_LR7_EL2 =58983 /* 58983 */, // S3_4_c12_c12_7 at min EL2: ICH_LR7_EL2
+ REG_ICH_LR8_EL2 =58984 /* 58984 */,
+ REG_ICH_LR9_EL2 =58985 /* 58985 */,
+ REG_ICH_LR10_EL2 =58986 /* 58986 */,
+ REG_ICH_LR11_EL2 =58987 /* 58987 */,
+ REG_ICH_LR12_EL2 =58988 /* 58988 */,
+ REG_ICH_LR13_EL2 =58989 /* 58989 */,
+ REG_ICH_LR14_EL2 =58990 /* 58990 */,
+ REG_ICH_LR15_EL2 =58991 /* 58991 */,
+ REG_CONTEXTIDR_EL2 =59009 /* 59009 */, // S3_4_c13_c0_1 at min EL2: CONTEXTIDR_EL2
+ REG_TPIDR_EL2 =59010 /* 59010 */, // S3_4_c13_c0_2 at min EL2: TPIDR_EL2
+ REG_SCXTNUM_EL2 =59015 /* 59015 */, // S3_4_c13_c0_7 at min EL2: SCXTNUM_EL2
+ REG_CNTVOFF_EL2 =59139 /* 59139 */, // S3_4_c14_c0_3 at min EL2: CNTVOFF_EL2
+ REG_REDIR_CNTHCTL_EL2 =59144 /* 59144 */, // S3_4_c14_c1_0 at min EL2: REDIR_CNTHCTL_EL2
+ REG_CNTHCTL_EL2 =59144 /* 59144 */,
+ REG_REDIR_CNTHP_TVAL_EL2 =59152 /* 59152 */, // S3_4_c14_c2_0 at min EL2: REDIR_CNTHP_TVAL_EL2
+ REG_CNTHP_TVAL_EL2 =59152 /* 59152 */,
+ REG_REDIR_CNTHP_CTL_EL2 =59153 /* 59153 */, // S3_4_c14_c2_1 at min EL2: REDIR_CNTHP_CTL_EL2
+ REG_CNTHP_CTL_EL2 =59153 /* 59153 */,
+ REG_REDIR_CNTHP_CVAL_EL2 =59154 /* 59154 */, // S3_4_c14_c2_2 at min EL2: REDIR_CNTHP_CVAL_EL2
+ REG_CNTHP_CVAL_EL2 =59154 /* 59154 */,
+ REG_REDIR_CNTHV_TVAL_EL2 =59160 /* 59160 */, // S3_4_c14_c3_0 at min EL2: REDIR_CNTHV_TVAL_EL2
+ REG_CNTHV_TVAL_EL2 =59160 /* 59160 */,
+ REG_REDIR_CNTHV_CTL_EL2 =59161 /* 59161 */, // S3_4_c14_c3_1 at min EL2: REDIR_CNTHV_CTL_EL2
+ REG_CNTHV_CTL_EL2 =59161 /* 59161 */,
+ REG_REDIR_CNTHV_CVAL_EL2 =59162 /* 59162 */, // S3_4_c14_c3_2 at min EL2: REDIR_CNTHV_CVAL_EL2
+ REG_CNTHV_CVAL_EL2 =59162 /* 59162 */,
+ REG_CNTHVS_TVAL_EL2 =59168 /* 59168 */,
+ REG_CNTHVS_CTL_EL2 =59169 /* 59169 */,
+ REG_CNTHVS_CVAL_EL2 =59170 /* 59170 */,
+ REG_CNTHPS_TVAL_EL2 =59176 /* 59176 */,
+ REG_CNTHPS_CTL_EL2 =59177 /* 59177 */,
+ REG_CNTHPS_CVAL_EL2 =59178 /* 59178 */,
+ REG_FED_ERR_STS =59264 /* 59264 */, // S3_4_c15_c0_0 at min EL1: FED_ERR_STS
+ REG_FED_ERR_CTL =59265 /* 59265 */, // S3_4_c15_c0_1 at min EL1: FED_ERR_CTL
+ REG_APCTL_EL21 =59268 /* 59268 */, // S3_4_c15_c0_4 at min EL1: APCTL_EL21
+ REG_KERNKEYLO_EL21 =59272 /* 59272 */, // S3_4_c15_c1_0 at min EL1: KERNKEYLo_EL21
+ REG_KERNKEYHI_EL21 =59273 /* 59273 */, // S3_4_c15_c1_1 at min EL1: KERNKEYHi_EL21
+ REG_VMSA_LOCK_EL1 =59274 /* 59274 */, // S3_4_c15_c1_2 at min EL1: VMSA_LOCK_EL1
+ REG_AMX_STATE_T_EL1 =59275 /* 59275 */, // S3_4_c15_c1_3 at min EL1: AMX_STATE_T_EL1
+ REG_AMX_CONFIG_EL21 =59276 /* 59276 */, // S3_4_c15_c1_4 at min EL1: AMX_CONFIG_EL21
+ REG_VMSA_LOCK_EL2 =59277 /* 59277 */, // S3_4_c15_c1_5 at min EL2: VMSA_LOCK_EL2
+ REG_CTRR_B_UPR_EL21 =59278 /* 59278 */, // S3_4_c15_c1_6 at min EL1: CTRR_B_UPR_EL21
+ REG_CTRR_B_LWR_EL21 =59279 /* 59279 */, // S3_4_c15_c1_7 at min EL1: CTRR_B_LWR_EL21
+ REG_SP_SETUP_GL21 =59280 /* 59280 */, // S3_4_c15_c2_0 at min EL1: SP_SETUP_GL21
+ REG_SP_SETUP_GL2 =59281 /* 59281 */, // S3_4_c15_c2_1 at min EL2: SP_SETUP_GL2
+ REG_CTRR_B_CTL_EL21 =59282 /* 59282 */, // S3_4_c15_c2_2 at min EL1: CTRR_B_CTL_EL21
+ REG_CTRR_A_LWR_EL21 =59283 /* 59283 */, // S3_4_c15_c2_3 at min EL1: CTRR_A_LWR_EL21
+ REG_CTRR_A_UPR_EL21 =59284 /* 59284 */, // S3_4_c15_c2_4 at min EL1: CTRR_A_UPR_EL21
+ REG_CTRR_A_CTL_EL21 =59285 /* 59285 */, // S3_4_c15_c2_5 at min EL1: CTRR_A_CTL_EL21
+ REG_VMSA_LOCK_EL12 =59286 /* 59286 */, // S3_4_c15_c2_6 at min EL2: VMSA_LOCK_EL12
+ REG_AGTCNTV_CTL_EL02 =59287 /* 59287 */, // S3_4_c15_c2_7 at min EL1: AGTCNTV_CTL_EL02
+ REG_AMX_STATE_EL1 =59288 /* 59288 */, // S3_4_c15_c3_0 at min EL1: AMX_STATE_EL1
+ REG_AMX_STATUS_EL1 =59294 /* 59294 */, // S3_4_c15_c3_6 at min EL1: AMX_STATUS_EL1
+ REG_AGTCNTP_CVAL_EL02 =59297 /* 59297 */, // S3_4_c15_c4_1 at min EL1: AGTCNTP_CVAL_EL02
+ REG_REDIR_ACNTP_TVAL_EL02 =59298 /* 59298 */, // S3_4_c15_c4_2 at min EL1: REDIR_ACNTP_TVAL_EL02
+ REG_AGTCNTP_CTL_EL02 =59299 /* 59299 */, // S3_4_c15_c4_3 at min EL1: AGTCNTP_CTL_EL02
+ REG_AGTCNTV_CVAL_EL02 =59300 /* 59300 */, // S3_4_c15_c4_4 at min EL1: AGTCNTV_CVAL_EL02
+ REG_AGTCNTV_TVAL_EL02 =59301 /* 59301 */, // S3_4_c15_c4_5 at min EL1: AGTCNTV_TVAL_EL02
+ REG_AMX_CONFIG_EL12 =59302 /* 59302 */, // S3_4_c15_c4_6 at min EL2: AMX_CONFIG_EL12
+ REG_AMX_CONFIG_EL2 =59303 /* 59303 */, // S3_4_c15_c4_7 at min EL2: AMX_CONFIG_EL2
+ REG_SPRR_HUPERM_EL0 =59305 /* 59305 */, // S3_4_c15_c5_1 at min EL1: SPRR_HUPERM_EL0
+ REG_SPRR_VUPERM_EL0 =59306 /* 59306 */, // S3_4_c15_c5_2 at min EL1: SPRR_VUPERM_EL0
+ REG_CTRR_A_CTL_EL2 =59314 /* 59314 */, // S3_4_c15_c6_2 at min EL2: CTRR_A_CTL_EL2
+ REG_CTRR_B_CTL_EL2 =59315 /* 59315 */, // S3_4_c15_c6_3 at min EL2: CTRR_B_CTL_EL2
+ REG_CTRR_A_LWR_EL2 =59316 /* 59316 */, // S3_4_c15_c6_4 at min EL2: CTRR_A_LWR_EL2
+ REG_CTRR_A_UPR_EL2 =59317 /* 59317 */, // S3_4_c15_c6_5 at min EL2: CTRR_A_UPR_EL2
+ REG_CTRR_B_LWR_EL2 =59318 /* 59318 */, // S3_4_c15_c6_6 at min EL2: CTRR_B_LWR_EL2
+ REG_CTRR_B_UPR_EL2 =59319 /* 59319 */, // S3_4_c15_c6_7 at min EL2: CTRR_B_UPR_EL2
+ REG_SPRR_HUMPRR_EL2 =59320 /* 59320 */, // S3_4_c15_c7_0 at min EL2: SPRR_HUMPRR_EL2
+ REG_SPRR_HUPERM_SH01_EL2 =59321 /* 59321 */, // S3_4_c15_c7_1 at min EL2: SPRR_HUPERM_SH01_EL2
+ REG_SPRR_HUPERM_SH02_EL2 =59322 /* 59322 */, // S3_4_c15_c7_2 at min EL2: SPRR_HUPERM_SH02_EL2
+ REG_SPRR_HUPERM_SH03_EL2 =59323 /* 59323 */, // S3_4_c15_c7_3 at min EL2: SPRR_HUPERM_SH03_EL2
+ REG_SPRR_HUPERM_SH04_EL2 =59324 /* 59324 */, // S3_4_c15_c7_4 at min EL2: SPRR_HUPERM_SH04_EL2
+ REG_SPRR_HUPERM_SH05_EL2 =59325 /* 59325 */, // S3_4_c15_c7_5 at min EL2: SPRR_HUPERM_SH05_EL2
+ REG_SPRR_HUPERM_SH06_EL2 =59326 /* 59326 */, // S3_4_c15_c7_6 at min EL2: SPRR_HUPERM_SH06_EL2
+ REG_SPRR_HUPERM_SH07_EL2 =59327 /* 59327 */, // S3_4_c15_c7_7 at min EL2: SPRR_HUPERM_SH07_EL2
+ REG_SPRR_VUMPRR_EL1 =59328 /* 59328 */, // S3_4_c15_c8_0 at min EL1: SPRR_VUMPRR_EL1
+ REG_SPRR_VUPERM_SH01_EL1 =59329 /* 59329 */, // S3_4_c15_c8_1 at min EL1: SPRR_VUPERM_SH01_EL1
+ REG_SPRR_VUPERM_SH02_EL1 =59330 /* 59330 */, // S3_4_c15_c8_2 at min EL1: SPRR_VUPERM_SH02_EL1
+ REG_SPRR_VUPERM_SH03_EL1 =59331 /* 59331 */, // S3_4_c15_c8_3 at min EL1: SPRR_VUPERM_SH03_EL1
+ REG_SPRR_VUPERM_SH04_EL1 =59332 /* 59332 */, // S3_4_c15_c8_4 at min EL1: SPRR_VUPERM_SH04_EL1
+ REG_SPRR_VUPERM_SH05_EL1 =59333 /* 59333 */, // S3_4_c15_c8_5 at min EL1: SPRR_VUPERM_SH05_EL1
+ REG_SPRR_VUPERM_SH06_EL1 =59334 /* 59334 */, // S3_4_c15_c8_6 at min EL1: SPRR_VUPERM_SH06_EL1
+ REG_SPRR_VUPERM_SH07_EL1 =59335 /* 59335 */, // S3_4_c15_c8_7 at min EL1: SPRR_VUPERM_SH07_EL1
+ REG_CTRR_A_LWR_EL12 =59336 /* 59336 */, // S3_4_c15_c9_0 at min EL2: CTRR_A_LWR_EL12
+ REG_CTRR_A_UPR_EL12 =59337 /* 59337 */, // S3_4_c15_c9_1 at min EL2: CTRR_A_UPR_EL12
+ REG_CTRR_B_LWR_EL12 =59338 /* 59338 */, // S3_4_c15_c9_2 at min EL2: CTRR_B_LWR_EL12
+ REG_CTRR_B_UPR_EL12 =59339 /* 59339 */, // S3_4_c15_c9_3 at min EL2: CTRR_B_UPR_EL12
+ REG_CTRR_A_CTL_EL12 =59340 /* 59340 */, // S3_4_c15_c9_4 at min EL2: CTRR_A_CTL_EL12
+ REG_CTRR_B_CTL_EL12 =59341 /* 59341 */, // S3_4_c15_c9_5 at min EL2: CTRR_B_CTL_EL12
+ REG_REDIR_ACNTKCTL_EL1 =59342 /* 59342 */, // S3_4_c15_c9_6 at min EL1: REDIR_ACNTKCTL_EL1
+ REG_AGTCNTKCTL_EL12 =59343 /* 59343 */, // S3_4_c15_c9_7 at min EL2: AGTCNTKCTL_EL12
+ REG_PREDAKEYLO_EL1 =59344 /* 59344 */, // S3_4_c15_c10_0 at min EL1: PREDAKEYLo_EL1
+ REG_PREDAKEYHI_EL1 =59345 /* 59345 */, // S3_4_c15_c10_1 at min EL1: PREDAKEYHi_EL1
+ REG_PREDBKEYLO_EL1 =59346 /* 59346 */, // S3_4_c15_c10_2 at min EL1: PREDBKEYLo_EL1
+ REG_PREDBKEYHI_EL1 =59347 /* 59347 */, // S3_4_c15_c10_3 at min EL1: PREDBKEYHi_EL1
+ REG_SIQ_CFG_EL1 =59348 /* 59348 */, // S3_4_c15_c10_4 at min EL1: SIQ_CFG_EL1
+ REG_REDIR_LCL_ACNTPCTSS_EL0 =59349 /* 59349 */, // S3_4_c15_c10_5 at min EL1: REDIR_LCL_ACNTPCTSS_EL0
+ REG_REDIR_LCL_ACNTVCTSS_EL0 =59350 /* 59350 */, // S3_4_c15_c10_6 at min EL1: REDIR_LCL_ACNTVCTSS_EL0
+ REG_AVNCR_EL2 =59351 /* 59351 */, // S3_4_c15_c10_7 at min EL2: AVNCR_EL2
+ REG_ACC_CTRR_A_LWR_EL2 =59352 /* 59352 */, // S3_4_c15_c11_0 at min EL2: ACC_CTRR_A_LWR_EL2
+ REG_ACC_CTRR_A_UPR_EL2 =59353 /* 59353 */, // S3_4_c15_c11_1 at min EL2: ACC_CTRR_A_UPR_EL2
+ REG_ACC_CTRR_B_LWR_EL2 =59354 /* 59354 */, // S3_4_c15_c11_2 at min EL2: ACC_CTRR_B_LWR_EL2
+ REG_ACC_CTRR_B_UPR_EL2 =59355 /* 59355 */, // S3_4_c15_c11_3 at min EL2: ACC_CTRR_B_UPR_EL2
+ REG_ACC_CTRR_A_CTL_EL2 =59356 /* 59356 */, // S3_4_c15_c11_4 at min EL2: ACC_CTRR_A_CTL_EL2
+ REG_ACC_CTRR_B_CTL_EL2 =59357 /* 59357 */, // S3_4_c15_c11_5 at min EL2: ACC_CTRR_B_CTL_EL2
+ REG_REDIR_LCL_ACNTPCT_EL0 =59358 /* 59358 */, // S3_4_c15_c11_6 at min EL1: REDIR_LCL_ACNTPCT_EL0
+ REG_REDIR_LCL_ACNTVCT_EL0 =59359 /* 59359 */, // S3_4_c15_c11_7 at min EL1: REDIR_LCL_ACNTVCT_EL0
+ REG_ACFG_EL1 =59360 /* 59360 */, // S3_4_c15_c12_0 at min EL1: ACFG_EL1
+ REG_AHCR_EL2 =59361 /* 59361 */, // S3_4_c15_c12_1 at min EL2: AHCR_EL2
+ REG_APL_INTSTATUS_EL21 =59362 /* 59362 */, // S3_4_c15_c12_2 at min EL1: APL_INTSTATUS_EL21
+ REG_APL_INTSTATUS_EL2 =59363 /* 59363 */, // S3_4_c15_c12_3 at min EL2: APL_INTSTATUS_EL2
+ REG_REDIR_ACNTHCTL_EL2 =59366 /* 59366 */, // S3_4_c15_c12_6 at min EL2: REDIR_ACNTHCTL_EL2
+ REG_JAPIAKEYLO_NV_EL21 =59368 /* 59368 */, // S3_4_c15_c13_0 at min EL1: JAPIAKeyLo_NV_EL21
+ REG_JAPIAKEYHI_NV_EL21 =59369 /* 59369 */, // S3_4_c15_c13_1 at min EL1: JAPIAKeyHi_NV_EL21
+ REG_JAPIBKEYLO_NV_EL21 =59370 /* 59370 */, // S3_4_c15_c13_2 at min EL1: JAPIBKeyLo_NV_EL21
+ REG_JAPIBKEYHI_NV_EL21 =59371 /* 59371 */, // S3_4_c15_c13_3 at min EL1: JAPIBKeyHi_NV_EL21
+ REG_JAPIAKEYLO_EL21 =59372 /* 59372 */, // S3_4_c15_c13_4 at min EL1: JAPIAKeyLo_EL21
+ REG_JAPIAKEYHI_EL21 =59373 /* 59373 */, // S3_4_c15_c13_5 at min EL1: JAPIAKeyHi_EL21
+ REG_JAPIBKEYLO_EL21 =59374 /* 59374 */, // S3_4_c15_c13_6 at min EL1: JAPIBKeyLo_EL21
+ REG_JAPIBKEYHI_EL21 =59375 /* 59375 */, // S3_4_c15_c13_7 at min EL1: JAPIBKeyHi_EL21
+ REG_JAPIAKEYLO_EL12 =59376 /* 59376 */, // S3_4_c15_c14_0 at min EL2: JAPIAKeyLo_EL12
+ REG_JAPIAKEYHI_EL12 =59377 /* 59377 */, // S3_4_c15_c14_1 at min EL2: JAPIAKeyHi_EL12
+ REG_JAPIBKEYLO_EL12 =59378 /* 59378 */, // S3_4_c15_c14_2 at min EL2: JAPIBKeyLo_EL12
+ REG_JAPIBKEYHI_EL12 =59379 /* 59379 */, // S3_4_c15_c14_3 at min EL2: JAPIBKeyHi_EL12
+ REG_AGTCNTRDIR_EL2 =59381 /* 59381 */, // S3_4_c15_c14_5 at min EL2: AGTCNTRDIR_EL2
+ REG_AGTCNTRDIR_EL12 =59382 /* 59382 */, // S3_4_c15_c14_6 at min EL2: AGTCNTRDIR_EL12
+ REG_JRANGE_EL2 =59384 /* 59384 */, // S3_4_c15_c15_0 at min EL2: JRANGE_EL2
+ REG_JRANGE_EL21 =59385 /* 59385 */, // S3_4_c15_c15_1 at min EL1: JRANGE_EL21
+ REG_JRANGE_EL12 =59386 /* 59386 */, // S3_4_c15_c15_2 at min EL2: JRANGE_EL12
+ REG_JCTL_EL2 =59387 /* 59387 */, // S3_4_c15_c15_3 at min EL2: JCTL_EL2
+ REG_JCTL_EL21 =59388 /* 59388 */, // S3_4_c15_c15_4 at min EL1: JCTL_EL21
+ REG_JCTL_EL12 =59389 /* 59389 */, // S3_4_c15_c15_5 at min EL2: JCTL_EL12
+ REG_JCTL_EL0 =59390 /* 59390 */, // S3_4_c15_c15_6 at min EL1: JCTL_EL0
+ REG_AMDSCR_EL1 =59391 /* 59391 */, // S3_4_c15_c15_7 at min EL1: AMDSCR_EL1
+ REG_SCTLR_EL12 =59520 /* 59520 */, // S3_5_c1_c0_0 at min EL2: SCTLR_EL12
+ REG_ACTLR_EL12 =59521 /* 59521 */, // S3_5_c1_c0_1 at min EL2: ACTLR_EL12
+ REG_CPACR_EL12 =59522 /* 59522 */, // S3_5_c1_c0_2 at min EL2: CPACR_EL12
+ REG_TRFCR_EL12 =59537 /* 59537 */,
+ REG_SMCR_EL12 =59542 /* 59542 */, // S3_5_c1_c2_6 at min EL2: SMCR_EL12
+ REG_TTBR0_EL12 =59648 /* 59648 */, // S3_5_c2_c0_0 at min EL2: TTBR0_EL12
+ REG_TTBR1_EL12 =59649 /* 59649 */, // S3_5_c2_c0_1 at min EL2: TTBR1_EL12
+ REG_TCR_EL12 =59650 /* 59650 */, // S3_5_c2_c0_2 at min EL2: TCR_EL12
+ REG_SPSR_EL12 =59904 /* 59904 */, // S3_5_c4_c0_0 at min EL2: SPSR_EL12
+ REG_ELR_EL12 =59905 /* 59905 */, // S3_5_c4_c0_1 at min EL2: ELR_EL12
+ REG_AFSR0_EL12 =60040 /* 60040 */, // S3_5_c5_c1_0 at min EL2: AFSR0_EL12
+ REG_AFSR1_EL12 =60041 /* 60041 */, // S3_5_c5_c1_1 at min EL2: AFSR1_EL12
+ REG_ESR_EL12 =60048 /* 60048 */, // S3_5_c5_c2_0 at min EL2: ESR_EL12
+ REG_TFSR_EL12 =60080 /* 60080 */,
+ REG_FAR_EL12 =60160 /* 60160 */, // S3_5_c6_c0_0 at min EL2: FAR_EL12
+ REG_PMSCR_EL12 =60616 /* 60616 */,
+ REG_MAIR_EL12 =60688 /* 60688 */, // S3_5_c10_c2_0 at min EL2: MAIR_EL12
+ REG_AMAIR_EL12 =60696 /* 60696 */, // S3_5_c10_c3_0 at min EL2: AMAIR_EL12
+ REG_MPAM1_EL12 =60712 /* 60712 */,
+ REG_VBAR_EL12 =60928 /* 60928 */, // S3_5_c12_c0_0 at min EL2: VBAR_EL12
+ REG_CONTEXTIDR_EL12 =61057 /* 61057 */, // S3_5_c13_c0_1 at min EL2: CONTEXTIDR_EL12
+ REG_SCXTNUM_EL12 =61063 /* 61063 */, // S3_5_c13_c0_7 at min EL2: SCXTNUM_EL12
+ REG_CNTKCTL_EL12 =61192 /* 61192 */, // S3_5_c14_c1_0 at min EL2: CNTKCTL_EL12
+ REG_CNTP_TVAL_EL02 =61200 /* 61200 */, // S3_5_c14_c2_0 at min EL1: CNTP_TVAL_EL02
+ REG_CNTP_CTL_EL02 =61201 /* 61201 */, // S3_5_c14_c2_1 at min EL1: CNTP_CTL_EL02
+ REG_CNTP_CVAL_EL02 =61202 /* 61202 */, // S3_5_c14_c2_2 at min EL1: CNTP_CVAL_EL02
+ REG_CNTV_TVAL_EL02 =61208 /* 61208 */, // S3_5_c14_c3_0 at min EL1: CNTV_TVAL_EL02
+ REG_CNTV_CTL_EL02 =61209 /* 61209 */, // S3_5_c14_c3_1 at min EL1: CNTV_CTL_EL02
+ REG_CNTV_CVAL_EL02 =61210 /* 61210 */, // S3_5_c14_c3_2 at min EL1: CNTV_CVAL_EL02
+ REG_IPI_RR_LOCAL_EL1 =61312 /* 61312 */, // S3_5_c15_c0_0 at min EL1: IPI_RR_LOCAL_EL1
+ REG_IPI_RR_GLOBAL_EL1 =61313 /* 61313 */, // S3_5_c15_c0_1 at min EL1: IPI_RR_GLOBAL_EL1
+ REG_AF_ERR_CFG0 =61314 /* 61314 */, // S3_5_c15_c0_2 at min EL1: AF_ERR_CFG0
+ REG_AP_ERR_CFG0 =61315 /* 61315 */, // S3_5_c15_c0_3 at min EL1: AP_ERR_CFG0
+ REG_AF_ERR_SRC_IDS =61316 /* 61316 */, // S3_5_c15_c0_4 at min EL1: AF_ERR_SRC_IDS
+ REG_DPC_ERR_STS =61317 /* 61317 */, // S3_5_c15_c0_5 at min EL1: DPC_ERR_STS
+ REG_DPC_ERR_CTL =61318 /* 61318 */, // S3_5_c15_c0_6 at min EL1: DPC_ERR_CTL
+ REG_PROD_TRC_CORE_CFG_EL21 =61319 /* 61319 */, // S3_5_c15_c0_7 at min EL1: PROD_TRC_CORE_CFG_EL21
+ REG_TRACE_CORE_CFG =61320 /* 61320 */, // S3_5_c15_c1_0 at min EL1: TRACE_CORE_CFG
+ REG_IPI_SR =61321 /* 61321 */, // S3_5_c15_c1_1 at min EL1: IPI_SR
+ REG_APL_LRTMR_EL2 =61322 /* 61322 */, // S3_5_c15_c1_2 at min EL2: APL_LRTMR_EL2
+ REG_APL_INTENABLE_EL2 =61323 /* 61323 */, // S3_5_c15_c1_3 at min EL2: APL_INTENABLE_EL2
+ REG_KTRACE_MESSAGE =61324 /* 61324 */, // S3_5_c15_c1_4 at min EL1: KTRACE_MESSAGE
+ REG_TRACE_CORE_CFG_EXT =61325 /* 61325 */, // S3_5_c15_c1_5 at min EL1: TRACE_CORE_CFG_EXT
+ REG_PROD_TRC_CORE_CFG_EL2 =61326 /* 61326 */, // S3_5_c15_c1_6 at min EL2: PROD_TRC_CORE_CFG_EL2
+ REG_HID_PROD_TRC_CORE_CFG_EL1 =61327 /* 61327 */, // S3_5_c15_c1_7 at min EL1: HID_PROD_TRC_CORE_CFG_EL1
+ REG_DBG_WRAP_GLB =61328 /* 61328 */, // S3_5_c15_c2_0 at min EL1: DBG_WRAP_GLB
+ REG_TRACE_STREAM_BASE =61329 /* 61329 */, // S3_5_c15_c2_1 at min EL1: TRACE_STREAM_BASE
+ REG_TRACE_STREAM_FILL =61330 /* 61330 */, // S3_5_c15_c2_2 at min EL1: TRACE_STREAM_FILL
+ REG_TRACE_STREAM_BASE1 =61331 /* 61331 */, // S3_5_c15_c2_3 at min EL1: TRACE_STREAM_BASE1
+ REG_TRACE_STREAM_FILL1 =61332 /* 61332 */, // S3_5_c15_c2_4 at min EL1: TRACE_STREAM_FILL1
+ REG_TRACE_STREAM_IRQ =61333 /* 61333 */, // S3_5_c15_c2_5 at min EL1: TRACE_STREAM_IRQ
+ REG_WATCHDOGDIAG0 =61334 /* 61334 */, // S3_5_c15_c2_6 at min EL1: WatchDogDiag0
+ REG_WATCHDOGDIAG1 =61335 /* 61335 */, // S3_5_c15_c2_7 at min EL1: WatchDogDiag1
+ REG_TRACE_AUX_CTL =61336 /* 61336 */, // S3_5_c15_c3_0 at min EL1: TRACE_AUX_CTL
+ REG_IPI_CR =61337 /* 61337 */, // S3_5_c15_c3_1 at min EL1: IPI_CR
+ REG_UTRIG_EVENT =61338 /* 61338 */, // S3_5_c15_c3_2 at min EL1: UTRIG_EVENT
+ REG_HID_PROD_TRC_MASK_EL1 =61339 /* 61339 */, // S3_5_c15_c3_3 at min EL1: HID_PROD_TRC_MASK_EL1
+ REG_TRACE_CTL =61340 /* 61340 */, // S3_5_c15_c3_4 at min EL1: TRACE_CTL
+ REG_TRACE_DAT =61341 /* 61341 */, // S3_5_c15_c3_5 at min EL1: TRACE_DAT
+ REG_PROD_TRC_STRM_BASE0_GL2 =61342 /* 61342 */, // S3_5_c15_c3_6 at min EL2: PROD_TRC_STRM_BASE0_GL2
+ REG_PROD_TRC_STRM_BASE1_GL2 =61343 /* 61343 */, // S3_5_c15_c3_7 at min EL2: PROD_TRC_STRM_BASE1_GL2
+ REG_CPU_CFG =61344 /* 61344 */, // S3_5_c15_c4_0 at min EL1: CPU_CFG
+ REG_PBLK_STS =61345 /* 61345 */, // S3_5_c15_c4_1 at min EL1: PBLK_STS
+ REG_PROD_TRC_CTL_EL21 =61347 /* 61347 */, // S3_5_c15_c4_3 at min EL1: PROD_TRC_CTL_EL21
+ REG_PROD_TRC_STRM_BASE0_GL21 =61348 /* 61348 */, // S3_5_c15_c4_4 at min EL1: PROD_TRC_STRM_BASE0_GL21
+ REG_PROD_TRC_STRM_BASE1_GL21 =61349 /* 61349 */, // S3_5_c15_c4_5 at min EL1: PROD_TRC_STRM_BASE1_GL21
+ REG_PROD_TRC_STRM_FIQ_EL21 =61350 /* 61350 */, // S3_5_c15_c4_6 at min EL1: PROD_TRC_STRM_FIQ_EL21
+ REG_CPU_OVRD =61352 /* 61352 */, // S3_5_c15_c5_0 at min EL1: CPU_OVRD
+ REG_PBLK_EXE_ST =61354 /* 61354 */, // S3_5_c15_c5_2 at min EL1: PBLK_EXE_ST
+ REG_PROD_TRC_CORE_GL_CTL_GL21 =61357 /* 61357 */, // S3_5_c15_c5_5 at min EL1: PROD_TRC_CORE_GL_CTL_GL21
+ REG_PROD_TRC_CORE_GL_CTL_GL2 =61358 /* 61358 */, // S3_5_c15_c5_6 at min EL2: PROD_TRC_CORE_GL_CTL_GL2
+ REG_ACC_OVRD =61360 /* 61360 */, // S3_5_c15_c6_0 at min EL1: ACC_OVRD
+ REG_ACC_OVRD1 =61361 /* 61361 */, // S3_5_c15_c6_1 at min EL1: ACC_OVRD1
+ REG_CPM_PWRDN_CTL =61362 /* 61362 */, // S3_5_c15_c6_2 at min EL1: CPM_PWRDN_CTL
+ REG_PROD_TRC_BUF_RESTORE0_GL21 =61364 /* 61364 */, // S3_5_c15_c6_4 at min EL1: PROD_TRC_BUF_RESTORE0_GL21
+ REG_PROD_TRC_BUF_RESTORE1_GL21 =61365 /* 61365 */, // S3_5_c15_c6_5 at min EL1: PROD_TRC_BUF_RESTORE1_GL21
+ REG_PROD_TRC_EN_GL21 =61366 /* 61366 */, // S3_5_c15_c6_6 at min EL1: PROD_TRC_EN_GL21
+ REG_PRE_LLCFLUSH_TMR =61368 /* 61368 */, // S3_5_c15_c7_0 at min EL1: PRE_LLCFLUSH_TMR
+ REG_BIUINTFCTL_CFG =61372 /* 61372 */, // S3_5_c15_c7_4 at min EL1: BIUINTFCTL_CFG
+ REG_BIUINTFWRR_CFG =61373 /* 61373 */, // S3_5_c15_c7_5 at min EL1: BIUINTFWRR_CFG
+ REG_PRE_TD_TMR =61376 /* 61376 */, // S3_5_c15_c8_0 at min EL1: PRE_TD_TMR
+ REG_ACC_SLP_WAKE_UP_TMR =61377 /* 61377 */, // S3_5_c15_c8_1 at min EL1: ACC_SLP_WAKE_UP_TMR
+ REG_PBLK_PSW_DLY =61384 /* 61384 */, // S3_5_c15_c9_0 at min EL1: PBLK_PSW_DLY
+ REG_CPU_STS =61392 /* 61392 */, // S3_5_c15_c10_0 at min EL1: CPU_STS
+ REG_HIST_TRIG =61393 /* 61393 */, // S3_5_c15_c10_1 at min EL1: HIST_TRIG
+ REG_PROD_TRC_BUF_RESTORE0_GL2 =61396 /* 61396 */, // S3_5_c15_c10_4 at min EL2: PROD_TRC_BUF_RESTORE0_GL2
+ REG_PROD_TRC_BUF_RESTORE1_GL2 =61397 /* 61397 */, // S3_5_c15_c10_5 at min EL2: PROD_TRC_BUF_RESTORE1_GL2
+ REG_PROD_TRC_STRM_FILL0_EL1 =61398 /* 61398 */, // S3_5_c15_c10_6 at min EL1: PROD_TRC_STRM_FILL0_EL1
+ REG_PROD_TRC_STRM_FILL1_EL1 =61399 /* 61399 */, // S3_5_c15_c10_7 at min EL1: PROD_TRC_STRM_FILL1_EL1
+ REG_ARRAY_INDEX =61400 /* 61400 */, // S3_5_c15_c11_0 at min EL1: ARRAY_INDEX
+ REG_PROD_TRC_CTL_EL2 =61401 /* 61401 */, // S3_5_c15_c11_1 at min EL2: PROD_TRC_CTL_EL2
+ REG_PROD_TRC_EN_GL2 =61402 /* 61402 */, // S3_5_c15_c11_2 at min EL2: PROD_TRC_EN_GL2
+ REG_PROD_TRC_STRM_FIQ_EL2 =61403 /* 61403 */, // S3_5_c15_c11_3 at min EL2: PROD_TRC_STRM_FIQ_EL2
+ REG_PROD_TRC_CPMU_DUMP_TRIG_EL1=61404 /* 61404 */, // S3_5_c15_c11_4 at min EL1: PROD_TRC_CPMU_DUMP_TRIG_EL1
+ REG_PROD_LOSS_COUNT_EL1 =61405 /* 61405 */, // S3_5_c15_c11_5 at min EL1: PROD_LOSS_COUNT_EL1
+ REG_SW_TRACE_DATA_EL0 =61406 /* 61406 */, // S3_5_c15_c11_6 at min EL1: SW_TRACE_DATA_EL0
+ REG_IL1_DATA0 =61408 /* 61408 */, // S3_5_c15_c12_0 at min EL1: IL1_DATA0
+ REG_IL1_DATA1 =61409 /* 61409 */, // S3_5_c15_c12_1 at min EL1: IL1_DATA1
+ REG_DL1_DATA0 =61410 /* 61410 */, // S3_5_c15_c12_2 at min EL1: DL1_DATA0
+ REG_DL1_DATA1 =61411 /* 61411 */, // S3_5_c15_c12_3 at min EL1: DL1_DATA1
+ REG_MMUDATA0 =61412 /* 61412 */, // S3_5_c15_c12_4 at min EL1: MMUDATA0
+ REG_MMUDATA1 =61413 /* 61413 */, // S3_5_c15_c12_5 at min EL1: MMUDATA1
+ REG_DL1_DATA2 =61414 /* 61414 */, // S3_5_c15_c12_6 at min EL1: DL1_DATA2
+ REG_IL1_DATA2 =61415 /* 61415 */, // S3_5_c15_c12_7 at min EL1: IL1_DATA2
+ REG_LLC_DATA0 =61420 /* 61420 */, // S3_5_c15_c13_4 at min EL1: LLC_DATA0
+ REG_LLC_DATA1 =61421 /* 61421 */, // S3_5_c15_c13_5 at min EL1: LLC_DATA1
+ REG_SCTLR_EL3 =61568 /* 61568 */, // S3_6_c1_c0_0 at min EL3: SCTLR_EL3
+ REG_ACTLR_EL3 =61569 /* 61569 */, // S3_6_c1_c0_1 at min EL3: ACTLR_EL3
+ REG_SCR_EL3 =61576 /* 61576 */, // S3_6_c1_c1_0 at min EL3: SCR_EL3
+ REG_SDER32_EL3 =61577 /* 61577 */, // S3_6_c1_c1_1 at min EL3: SDER32_EL3
+ REG_CPTR_EL3 =61578 /* 61578 */, // S3_6_c1_c1_2 at min EL3: CPTR_EL3
+ REG_MDCR_EL3 =61593 /* 61593 */, // S3_6_c1_c3_1 at min EL3: MDCR_EL3
+ REG_TTBR0_EL3 =61696 /* 61696 */, // S3_6_c2_c0_0 at min EL3: TTBR0_EL3
+ REG_TCR_EL3 =61698 /* 61698 */, // S3_6_c2_c0_2 at min EL3: TCR_EL3
+ REG_SPSR_EL3 =61952 /* 61952 */, // S3_6_c4_c0_0 at min EL3: SPSR_EL3
+ REG_ELR_EL3 =61953 /* 61953 */, // S3_6_c4_c0_1 at min EL3: ELR_EL3
+ REG_SP_EL2 =61960 /* 61960 */, // S3_6_c4_c1_0 at min EL2: SP_EL2
+ REG_AFSR0_EL3 =62088 /* 62088 */, // S3_6_c5_c1_0 at min EL3: AFSR0_EL3
+ REG_AFSR1_EL3 =62089 /* 62089 */, // S3_6_c5_c1_1 at min EL3: AFSR1_EL3
+ REG_ESR_EL3 =62096 /* 62096 */, // S3_6_c5_c2_0 at min EL3: ESR_EL3
+ REG_TFSR_EL3 =62128 /* 62128 */,
+ REG_FAR_EL3 =62208 /* 62208 */, // S3_6_c6_c0_0 at min EL3: FAR_EL3
+ REG_MAIR_EL3 =62736 /* 62736 */, // S3_6_c10_c2_0 at min EL3: MAIR_EL3
+ REG_AMAIR_EL3 =62744 /* 62744 */, // S3_6_c10_c3_0 at min EL3: AMAIR_EL3
+ REG_MPAM3_EL3 =62760 /* 62760 */,
+ REG_VBAR_EL3 =62976 /* 62976 */, // S3_6_c12_c0_0 at min EL3: VBAR_EL3
+ REG_RVBAR_EL3 =62977 /* 62977 */, // S3_6_c12_c0_1 at min EL3: RVBAR_EL3
+ REG_RMR_EL3 =62978 /* 62978 */, // S3_6_c12_c0_2 at min EL3: RMR_EL3
+ REG_ICC_CTLR_EL3 =63076 /* 63076 */,
+ REG_ICC_SRE_EL3 =63077 /* 63077 */,
+ REG_ICC_IGRPEN1_EL3 =63079 /* 63079 */,
+ REG_TPIDR_EL3 =63106 /* 63106 */, // S3_6_c13_c0_2 at min EL3: TPIDR_EL3
+ REG_SCXTNUM_EL3 =63111 /* 63111 */,
+ REG_MMU_ERR_STS =63360 /* 63360 */, // S3_6_c15_c0_0 at min EL1: MMU_ERR_STS
+ REG_AFSR1_GL21 =63361 /* 63361 */, // S3_6_c15_c0_1 at min EL1: AFSR1_GL21
+ REG_AFSR1_GL2 =63362 /* 63362 */, // S3_6_c15_c0_2 at min EL2: AFSR1_GL2
+ REG_AFSR1_GL12 =63363 /* 63363 */, // S3_6_c15_c0_3 at min EL2: AFSR1_GL12
+ REG_BP_OBJC_ADR_EL1 =63364 /* 63364 */, // S3_6_c15_c0_4 at min EL1: BP_OBJC_ADR_EL1
+ REG_BP_OBJC_CTL_EL1 =63365 /* 63365 */, // S3_6_c15_c0_5 at min EL1: BP_OBJC_CTL_EL1
+ REG_SP_GL11_GL21 =63366 /* 63366 */, // S3_6_c15_c0_6 at min EL1: SP_GL11_GL21
+ REG_MMU_SESR_EL2 =63367 /* 63367 */, // S3_6_c15_c0_7 at min EL2: MMU_SESR_EL2
+ REG_SPRR_CONFIG_EL21 =63368 /* 63368 */, // S3_6_c15_c1_0 at min EL1: SPRR_CONFIG_EL21
+ REG_HPFAR_GL2 =63369 /* 63369 */, // S3_6_c15_c1_1 at min EL2: HPFAR_GL2
+ REG_GXF_CONFIG_EL21 =63370 /* 63370 */, // S3_6_c15_c1_2 at min EL1: GXF_CONFIG_EL21
+ REG_SPRR_AMRANGE_EL1 =63371 /* 63371 */, // S3_6_c15_c1_3 at min EL1: SPRR_AMRANGE_EL1
+ REG_GXF_CONFIG_EL2 =63372 /* 63372 */, // S3_6_c15_c1_4 at min EL2: GXF_CONFIG_EL2
+ REG_SPRR_UPERM_EL02 =63373 /* 63373 */, // S3_6_c15_c1_5 at min EL1: SPRR_UPERM_EL02
+ REG_SPRR_PPERM_EL21 =63374 /* 63374 */, // S3_6_c15_c1_6 at min EL1: SPRR_PPERM_EL21
+ REG_SPRR_PPERM_EL2 =63375 /* 63375 */, // S3_6_c15_c1_7 at min EL2: SPRR_PPERM_EL2
+ REG_APGAKEYLO_EL12 =63377 /* 63377 */, // S3_6_c15_c2_1 at min EL2: APGAKeyLo_EL12
+ REG_APGAKEYHI_EL12 =63378 /* 63378 */, // S3_6_c15_c2_2 at min EL2: APGAKeyHi_EL12
+ REG_KERNKEYLO_EL12 =63379 /* 63379 */, // S3_6_c15_c2_3 at min EL2: KERNKEYLo_EL12
+ REG_KERNKEYHI_EL12 =63380 /* 63380 */, // S3_6_c15_c2_4 at min EL2: KERNKEYHi_EL12
+ REG_AFPCR_EL0 =63381 /* 63381 */, // S3_6_c15_c2_5 at min EL1: AFPCR_EL0
+ REG_SP_GL22 =63382 /* 63382 */, // S3_6_c15_c2_6 at min EL2: SP_GL22
+ REG_AMXIDR_EL1 =63383 /* 63383 */, // S3_6_c15_c2_7 at min EL1: AMXIDR_EL1
+ REG_SPRR_UMPRR_EL1 =63384 /* 63384 */, // S3_6_c15_c3_0 at min EL1: SPRR_UMPRR_EL1
+ REG_SPRR_PMPRR_EL21 =63385 /* 63385 */, // S3_6_c15_c3_1 at min EL1: SPRR_PMPRR_EL21
+ REG_SPRR_PMPRR_EL2 =63386 /* 63386 */, // S3_6_c15_c3_2 at min EL2: SPRR_PMPRR_EL2
+ REG_SPRR_UPERM_SH01_EL1 =63387 /* 63387 */, // S3_6_c15_c3_3 at min EL1: SPRR_UPERM_SH01_EL1
+ REG_SPRR_UPERM_SH02_EL1 =63388 /* 63388 */, // S3_6_c15_c3_4 at min EL1: SPRR_UPERM_SH02_EL1
+ REG_SPRR_UPERM_SH03_EL1 =63389 /* 63389 */, // S3_6_c15_c3_5 at min EL1: SPRR_UPERM_SH03_EL1
+ REG_SPRR_UPERM_SH04_EL1 =63390 /* 63390 */, // S3_6_c15_c3_6 at min EL1: SPRR_UPERM_SH04_EL1
+ REG_SPRR_UPERM_SH05_EL1 =63391 /* 63391 */, // S3_6_c15_c3_7 at min EL1: SPRR_UPERM_SH05_EL1
+ REG_SPRR_UPERM_SH06_EL1 =63392 /* 63392 */, // S3_6_c15_c4_0 at min EL1: SPRR_UPERM_SH06_EL1
+ REG_SPRR_UPERM_SH07_EL1 =63393 /* 63393 */, // S3_6_c15_c4_1 at min EL1: SPRR_UPERM_SH07_EL1
+ REG_SPRR_PPERM_SH01_EL21 =63394 /* 63394 */, // S3_6_c15_c4_2 at min EL1: SPRR_PPERM_SH01_EL21
+ REG_SPRR_PPERM_SH02_EL21 =63395 /* 63395 */, // S3_6_c15_c4_3 at min EL1: SPRR_PPERM_SH02_EL21
+ REG_SPRR_PPERM_SH03_EL21 =63396 /* 63396 */, // S3_6_c15_c4_4 at min EL1: SPRR_PPERM_SH03_EL21
+ REG_SPRR_PPERM_SH04_EL21 =63397 /* 63397 */, // S3_6_c15_c4_5 at min EL1: SPRR_PPERM_SH04_EL21
+ REG_SPRR_PPERM_SH05_EL21 =63398 /* 63398 */, // S3_6_c15_c4_6 at min EL1: SPRR_PPERM_SH05_EL21
+ REG_SPRR_PPERM_SH06_EL21 =63399 /* 63399 */, // S3_6_c15_c4_7 at min EL1: SPRR_PPERM_SH06_EL21
+ REG_SPRR_PPERM_SH07_EL21 =63400 /* 63400 */, // S3_6_c15_c5_0 at min EL1: SPRR_PPERM_SH07_EL21
+ REG_SPRR_PPERM_SH01_EL2 =63401 /* 63401 */, // S3_6_c15_c5_1 at min EL2: SPRR_PPERM_SH01_EL2
+ REG_SPRR_PPERM_SH02_EL2 =63402 /* 63402 */, // S3_6_c15_c5_2 at min EL2: SPRR_PPERM_SH02_EL2
+ REG_SPRR_PPERM_SH03_EL2 =63403 /* 63403 */, // S3_6_c15_c5_3 at min EL2: SPRR_PPERM_SH03_EL2
+ REG_SPRR_PPERM_SH04_EL2 =63404 /* 63404 */, // S3_6_c15_c5_4 at min EL2: SPRR_PPERM_SH04_EL2
+ REG_SPRR_PPERM_SH05_EL2 =63405 /* 63405 */, // S3_6_c15_c5_5 at min EL2: SPRR_PPERM_SH05_EL2
+ REG_SPRR_PPERM_SH06_EL2 =63406 /* 63406 */, // S3_6_c15_c5_6 at min EL2: SPRR_PPERM_SH06_EL2
+ REG_SPRR_PPERM_SH07_EL2 =63407 /* 63407 */, // S3_6_c15_c5_7 at min EL2: SPRR_PPERM_SH07_EL2
+ REG_SPRR_PMPRR_EL12 =63408 /* 63408 */, // S3_6_c15_c6_0 at min EL2: SPRR_PMPRR_EL12
+ REG_SPRR_PPERM_SH01_EL12 =63409 /* 63409 */, // S3_6_c15_c6_1 at min EL2: SPRR_PPERM_SH01_EL12
+ REG_SPRR_PPERM_SH02_EL12 =63410 /* 63410 */, // S3_6_c15_c6_2 at min EL2: SPRR_PPERM_SH02_EL12
+ REG_SPRR_PPERM_SH03_EL12 =63411 /* 63411 */, // S3_6_c15_c6_3 at min EL2: SPRR_PPERM_SH03_EL12
+ REG_SPRR_PPERM_SH04_EL12 =63412 /* 63412 */, // S3_6_c15_c6_4 at min EL2: SPRR_PPERM_SH04_EL12
+ REG_SPRR_PPERM_SH05_EL12 =63413 /* 63413 */, // S3_6_c15_c6_5 at min EL2: SPRR_PPERM_SH05_EL12
+ REG_SPRR_PPERM_SH06_EL12 =63414 /* 63414 */, // S3_6_c15_c6_6 at min EL2: SPRR_PPERM_SH06_EL12
+ REG_SPRR_PPERM_SH07_EL12 =63415 /* 63415 */, // S3_6_c15_c6_7 at min EL2: SPRR_PPERM_SH07_EL12
+ REG_APIAKEYLO_EL12 =63416 /* 63416 */, // S3_6_c15_c7_0 at min EL2: APIAKeyLo_EL12
+ REG_APIAKEYHI_EL12 =63417 /* 63417 */, // S3_6_c15_c7_1 at min EL2: APIAKeyHi_EL12
+ REG_APIBKEYLO_EL12 =63418 /* 63418 */, // S3_6_c15_c7_2 at min EL2: APIBKeyLo_EL12
+ REG_APIBKEYHI_EL12 =63419 /* 63419 */, // S3_6_c15_c7_3 at min EL2: APIBKeyHi_EL12
+ REG_APDAKEYLO_EL12 =63420 /* 63420 */, // S3_6_c15_c7_4 at min EL2: APDAKeyLo_EL12
+ REG_APDAKEYHI_EL12 =63421 /* 63421 */, // S3_6_c15_c7_5 at min EL2: APDAKeyHi_EL12
+ REG_APDBKEYLO_EL12 =63422 /* 63422 */, // S3_6_c15_c7_6 at min EL2: APDBKeyLo_EL12
+ REG_APDBKEYHI_EL12 =63423 /* 63423 */, // S3_6_c15_c7_7 at min EL2: APDBKeyHi_EL12
+ REG_CURRENTG =63424 /* 63424 */, // S3_6_c15_c8_0 at min EL1: CurrentG
+ REG_GXF_ENTRY_EL21 =63425 /* 63425 */, // S3_6_c15_c8_1 at min EL1: GXF_ENTRY_EL21
+ REG_GXF_PABENTRY_EL21 =63426 /* 63426 */, // S3_6_c15_c8_2 at min EL1: GXF_PABENTRY_EL21
+ REG_ASPSR_EL21 =63427 /* 63427 */, // S3_6_c15_c8_3 at min EL1: ASPSR_EL21
+ REG_ADSPSR_EL0 =63428 /* 63428 */, // S3_6_c15_c8_4 at min EL1: ADSPSR_EL0
+ REG_PMCR1_GL2 =63429 /* 63429 */, // S3_6_c15_c8_5 at min EL2: PMCR1_GL2
+ REG_ASPSR_NV_EL21 =63430 /* 63430 */, // S3_6_c15_c8_6 at min EL1: ASPSR_NV_EL21
+ REG_PMCR1_GL21 =63431 /* 63431 */, // S3_6_c15_c8_7 at min EL1: PMCR1_GL21
+ REG_VBAR_GL12 =63434 /* 63434 */, // S3_6_c15_c9_2 at min EL2: VBAR_GL12
+ REG_SPSR_GL12 =63435 /* 63435 */, // S3_6_c15_c9_3 at min EL2: SPSR_GL12
+ REG_ASPSR_GL12 =63436 /* 63436 */, // S3_6_c15_c9_4 at min EL2: ASPSR_GL12
+ REG_ESR_GL12 =63437 /* 63437 */, // S3_6_c15_c9_5 at min EL2: ESR_GL12
+ REG_ELR_GL12 =63438 /* 63438 */, // S3_6_c15_c9_6 at min EL2: ELR_GL12
+ REG_FAR_GL12 =63439 /* 63439 */, // S3_6_c15_c9_7 at min EL2: FAR_GL12
+ REG_SP_GL1 =63440 /* 63440 */, // S3_6_c15_c10_0 at min EL1: SP_GL1
+ REG_TPIDR_GL1 =63441 /* 63441 */, // S3_6_c15_c10_1 at min EL1: TPIDR_GL1
+ REG_VBAR_GL21 =63442 /* 63442 */, // S3_6_c15_c10_2 at min EL1: VBAR_GL21
+ REG_SPSR_GL21 =63443 /* 63443 */, // S3_6_c15_c10_3 at min EL1: SPSR_GL21
+ REG_ASPSR_GL21 =63444 /* 63444 */, // S3_6_c15_c10_4 at min EL1: ASPSR_GL21
+ REG_ESR_GL21 =63445 /* 63445 */, // S3_6_c15_c10_5 at min EL1: ESR_GL21
+ REG_ELR_GL21 =63446 /* 63446 */, // S3_6_c15_c10_6 at min EL1: ELR_GL21
+ REG_FAR_GL21 =63447 /* 63447 */, // S3_6_c15_c10_7 at min EL1: FAR_GL21
+ REG_SP_GL2 =63448 /* 63448 */, // S3_6_c15_c11_0 at min EL2: SP_GL2
+ REG_TPIDR_GL2 =63449 /* 63449 */, // S3_6_c15_c11_1 at min EL2: TPIDR_GL2
+ REG_VBAR_GL2 =63450 /* 63450 */, // S3_6_c15_c11_2 at min EL2: VBAR_GL2
+ REG_SPSR_GL2 =63451 /* 63451 */, // S3_6_c15_c11_3 at min EL2: SPSR_GL2
+ REG_ASPSR_GL2 =63452 /* 63452 */, // S3_6_c15_c11_4 at min EL2: ASPSR_GL2
+ REG_ESR_GL2 =63453 /* 63453 */, // S3_6_c15_c11_5 at min EL2: ESR_GL2
+ REG_ELR_GL2 =63454 /* 63454 */, // S3_6_c15_c11_6 at min EL2: ELR_GL2
+ REG_FAR_GL2 =63455 /* 63455 */, // S3_6_c15_c11_7 at min EL2: FAR_GL2
+ REG_GXF_ENTRY_EL2 =63456 /* 63456 */, // S3_6_c15_c12_0 at min EL2: GXF_ENTRY_EL2
+ REG_GXF_PABENTRY_EL2 =63457 /* 63457 */, // S3_6_c15_c12_1 at min EL2: GXF_PABENTRY_EL2
+ REG_APCTL_EL2 =63458 /* 63458 */, // S3_6_c15_c12_2 at min EL2: APCTL_EL2
+ REG_APSTS_EL2 =63459 /* 63459 */, // S3_6_c15_c12_3 at min EL2: APSTS_EL2
+ REG_APSTS_NV1_EL1 =63460 /* 63460 */, // S3_6_c15_c12_4 at min EL1: APSTS_NV1_EL1
+ REG_KERNKEYLO_NV_EL21 =63461 /* 63461 */, // S3_6_c15_c12_5 at min EL1: KERNKEYLo_NV_EL21
+ REG_KERNKEYHI_NV_EL21 =63462 /* 63462 */, // S3_6_c15_c12_6 at min EL1: KERNKEYHi_NV_EL21
+ REG_ASPSR_EL12 =63463 /* 63463 */, // S3_6_c15_c12_7 at min EL2: ASPSR_EL12
+ REG_APIAKEYLO_NV_EL21 =63464 /* 63464 */, // S3_6_c15_c13_0 at min EL1: APIAKeyLo_NV_EL21
+ REG_APIAKEYHI_NV_EL21 =63465 /* 63465 */, // S3_6_c15_c13_1 at min EL1: APIAKeyHi_NV_EL21
+ REG_APIBKEYLO_NV_EL21 =63466 /* 63466 */, // S3_6_c15_c13_2 at min EL1: APIBKeyLo_NV_EL21
+ REG_APIBKEYHI_NV_EL21 =63467 /* 63467 */, // S3_6_c15_c13_3 at min EL1: APIBKeyHi_NV_EL21
+ REG_APDAKEYLO_NV_EL21 =63468 /* 63468 */, // S3_6_c15_c13_4 at min EL1: APDAKeyLo_NV_EL21
+ REG_APDAKEYHI_NV_EL21 =63469 /* 63469 */, // S3_6_c15_c13_5 at min EL1: APDAKeyHi_NV_EL21
+ REG_APDBKEYLO_NV_EL21 =63470 /* 63470 */, // S3_6_c15_c13_6 at min EL1: APDBKeyLo_NV_EL21
+ REG_APDBKEYHI_NV_EL21 =63471 /* 63471 */, // S3_6_c15_c13_7 at min EL1: APDBKeyHi_NV_EL21
+ REG_APGAKEYLO_NV_EL21 =63472 /* 63472 */, // S3_6_c15_c14_0 at min EL1: APGAKeyLo_NV_EL21
+ REG_APGAKEYHI_NV_EL21 =63473 /* 63473 */, // S3_6_c15_c14_1 at min EL1: APGAKeyHi_NV_EL21
+ REG_SPRR_CONFIG_EL2 =63474 /* 63474 */, // S3_6_c15_c14_2 at min EL2: SPRR_CONFIG_EL2
+ REG_SPRR_AMRANGE_EL2 =63475 /* 63475 */, // S3_6_c15_c14_3 at min EL2: SPRR_AMRANGE_EL2
+ REG_VMKEYLO_EL2 =63476 /* 63476 */, // S3_6_c15_c14_4 at min EL2: VMKEYLo_EL2
+ REG_VMKEYHI_EL2 =63477 /* 63477 */, // S3_6_c15_c14_5 at min EL2: VMKEYHi_EL2
+ REG_MMU_SFAR_EL2 =63478 /* 63478 */, // S3_6_c15_c14_6 at min EL2: MMU_SFAR_EL2
+ REG_APSTS_EL12 =63479 /* 63479 */, // S3_6_c15_c14_7 at min EL2: APSTS_EL12
+ REG_APCTL_EL12 =63480 /* 63480 */, // S3_6_c15_c15_0 at min EL2: APCTL_EL12
+ REG_GXF_CONFIG_EL12 =63481 /* 63481 */, // S3_6_c15_c15_1 at min EL2: GXF_CONFIG_EL12
+ REG_GXF_ENTRY_EL12 =63482 /* 63482 */, // S3_6_c15_c15_2 at min EL2: GXF_ENTRY_EL12
+ REG_GXF_PABENTRY_EL12 =63483 /* 63483 */, // S3_6_c15_c15_3 at min EL2: GXF_PABENTRY_EL12
+ REG_SPRR_CONFIG_EL12 =63484 /* 63484 */, // S3_6_c15_c15_4 at min EL2: SPRR_CONFIG_EL12
+ REG_SPRR_AMRANGE_EL12 =63485 /* 63485 */, // S3_6_c15_c15_5 at min EL2: SPRR_AMRANGE_EL12
+ REG_MMU_SESR_CTL_EL2 =63486 /* 63486 */, // S3_6_c15_c15_6 at min EL2: MMU_SESR_CTL_EL2
+ REG_SPRR_PPERM_EL12 =63487 /* 63487 */, // S3_6_c15_c15_7 at min EL2: SPRR_PPERM_EL12
+ REG_CNTPS_TVAL_EL1 =65296 /* 65296 */, // S3_7_c14_c2_0 at min EL1: CNTPS_TVAL_EL1
+ REG_CNTPS_CTL_EL1 =65297 /* 65297 */, // S3_7_c14_c2_1 at min EL1: CNTPS_CTL_EL1
+ REG_CNTPS_CVAL_EL1 =65298 /* 65298 */, // S3_7_c14_c2_2 at min EL1: CNTPS_CVAL_EL1
+ REG_PSTATE_SPSEL =65299 /* 65299 */, // (op0,op1,crn,crm,op2)=(0,0,4,9,5) doesn't map to [SYSREG_NONE+1, SYSREG_END)
+ REG_PWRDNSAVE0 =65408 /* 65408 */, // S3_7_c15_c0_0 at min EL1: PWRDNSAVE0
+ REG_NRG_ACC_CTL =65409 /* 65409 */, // S3_7_c15_c0_1 at min EL1: NRG_ACC_CTL
+ REG_AON_CNT0 =65410 /* 65410 */, // S3_7_c15_c0_2 at min EL1: AON_CNT0
+ REG_CPU_CNT0 =65411 /* 65411 */, // S3_7_c15_c0_3 at min EL1: CPU_CNT0
+ REG_UPMCR0_EL1 =65412 /* 65412 */, // S3_7_c15_c0_4 at min EL1: UPMCR0_EL1
+ REG_UPMC8 =65413 /* 65413 */, // S3_7_c15_c0_5 at min EL1: UPMC8
+ REG_AON_CNT8 =65414 /* 65414 */, // S3_7_c15_c0_6 at min EL1: AON_CNT8
+ REG_PWRDNSAVE1 =65416 /* 65416 */, // S3_7_c15_c1_0 at min EL1: PWRDNSAVE1
+ REG_CORE_NRG_ACC_DAT =65417 /* 65417 */, // S3_7_c15_c1_1 at min EL1: CORE_NRG_ACC_DAT
+ REG_AON_CNT_CTL0 =65418 /* 65418 */, // S3_7_c15_c1_2 at min EL1: AON_CNT_CTL0
+ REG_CPU_CNT_CTL0 =65419 /* 65419 */, // S3_7_c15_c1_3 at min EL1: CPU_CNT_CTL0
+ REG_UPMESR0_EL1 =65420 /* 65420 */, // S3_7_c15_c1_4 at min EL1: UPMESR0_EL1
+ REG_UPMC9 =65421 /* 65421 */, // S3_7_c15_c1_5 at min EL1: UPMC9
+ REG_AON_CNT_CTL8 =65422 /* 65422 */, // S3_7_c15_c1_6 at min EL1: AON_CNT_CTL8
+ REG_ACC_PWR_DN_SAVE =65424 /* 65424 */, // S3_7_c15_c2_0 at min EL1: ACC_PWR_DN_SAVE
+ REG_CPM_NRG_ACC_DAT =65425 /* 65425 */, // S3_7_c15_c2_1 at min EL1: CPM_NRG_ACC_DAT
+ REG_AON_CNT1 =65426 /* 65426 */, // S3_7_c15_c2_2 at min EL1: AON_CNT1
+ REG_CPU_CNT1 =65427 /* 65427 */, // S3_7_c15_c2_3 at min EL1: CPU_CNT1
+ REG_UPMSWCTRL_EL1 =65428 /* 65428 */, // S3_7_c15_c2_4 at min EL1: UPMSWCTRL_EL1
+ REG_UPMC10 =65429 /* 65429 */, // S3_7_c15_c2_5 at min EL1: UPMC10
+ REG_AON_CNT9 =65430 /* 65430 */, // S3_7_c15_c2_6 at min EL1: AON_CNT9
+ REG_CORE_SRM_NRG_ACC_DAT =65433 /* 65433 */, // S3_7_c15_c3_1 at min EL1: CORE_SRM_NRG_ACC_DAT
+ REG_AON_CNT_CTL1 =65434 /* 65434 */, // S3_7_c15_c3_2 at min EL1: AON_CNT_CTL1
+ REG_CPU_CNT_CTL1 =65435 /* 65435 */, // S3_7_c15_c3_3 at min EL1: CPU_CNT_CTL1
+ REG_UPMECM0_EL1 =65436 /* 65436 */, // S3_7_c15_c3_4 at min EL1: UPMECM0_EL1
+ REG_UPMC11 =65437 /* 65437 */, // S3_7_c15_c3_5 at min EL1: UPMC11
+ REG_AON_CNT_CTL9 =65438 /* 65438 */, // S3_7_c15_c3_6 at min EL1: AON_CNT_CTL9
+ REG_AON_CNT_CTL =65440 /* 65440 */, // S3_7_c15_c4_0 at min EL1: AON_CNT_CTL
+ REG_CPM_SRM_NRG_ACC_DAT =65441 /* 65441 */, // S3_7_c15_c4_1 at min EL1: CPM_SRM_NRG_ACC_DAT
+ REG_AON_CNT2 =65442 /* 65442 */, // S3_7_c15_c4_2 at min EL1: AON_CNT2
+ REG_CPU_CNT2 =65443 /* 65443 */, // S3_7_c15_c4_3 at min EL1: CPU_CNT2
+ REG_UPMECM1_EL1 =65444 /* 65444 */, // S3_7_c15_c4_4 at min EL1: UPMECM1_EL1
+ REG_UPMC12 =65445 /* 65445 */, // S3_7_c15_c4_5 at min EL1: UPMC12
+ REG_AON_CNT10 =65446 /* 65446 */, // S3_7_c15_c4_6 at min EL1: AON_CNT10
+ REG_CPU_CNT_CTL =65448 /* 65448 */, // S3_7_c15_c5_0 at min EL1: CPU_CNT_CTL
+ REG_AON_CNT_CTL2 =65450 /* 65450 */, // S3_7_c15_c5_2 at min EL1: AON_CNT_CTL2
+ REG_CPU_CNT_CTL2 =65451 /* 65451 */, // S3_7_c15_c5_3 at min EL1: CPU_CNT_CTL2
+ REG_UPMPCM_EL1 =65452 /* 65452 */, // S3_7_c15_c5_4 at min EL1: UPMPCM_EL1
+ REG_UPMC13 =65453 /* 65453 */, // S3_7_c15_c5_5 at min EL1: UPMC13
+ REG_AON_CNT_CTL10 =65454 /* 65454 */, // S3_7_c15_c5_6 at min EL1: AON_CNT_CTL10
+ REG_AON_CNT3 =65458 /* 65458 */, // S3_7_c15_c6_2 at min EL1: AON_CNT3
+ REG_CPU_CNT3 =65459 /* 65459 */, // S3_7_c15_c6_3 at min EL1: CPU_CNT3
+ REG_UPMSR_EL1 =65460 /* 65460 */, // S3_7_c15_c6_4 at min EL1: UPMSR_EL1
+ REG_UPMC14 =65461 /* 65461 */, // S3_7_c15_c6_5 at min EL1: UPMC14
+ REG_AON_CNT11 =65462 /* 65462 */, // S3_7_c15_c6_6 at min EL1: AON_CNT11
+ REG_AON_CNT_CTL3 =65466 /* 65466 */, // S3_7_c15_c7_2 at min EL1: AON_CNT_CTL3
+ REG_CPU_CNT_CTL3 =65467 /* 65467 */, // S3_7_c15_c7_3 at min EL1: CPU_CNT_CTL3
+ REG_UPMC0 =65468 /* 65468 */, // S3_7_c15_c7_4 at min EL1: UPMC0
+ REG_UPMC15 =65469 /* 65469 */, // S3_7_c15_c7_5 at min EL1: UPMC15
+ REG_AON_CNT_CTL11 =65470 /* 65470 */, // S3_7_c15_c7_6 at min EL1: AON_CNT_CTL11
+ REG_AON_CNT4 =65474 /* 65474 */, // S3_7_c15_c8_2 at min EL1: AON_CNT4
+ REG_CPU_CNT4 =65475 /* 65475 */, // S3_7_c15_c8_3 at min EL1: CPU_CNT4
+ REG_UPMC1 =65476 /* 65476 */, // S3_7_c15_c8_4 at min EL1: UPMC1
+ REG_UPMECM2_EL1 =65477 /* 65477 */, // S3_7_c15_c8_5 at min EL1: UPMECM2_EL1
+ REG_AON_CNT_CTL4 =65482 /* 65482 */, // S3_7_c15_c9_2 at min EL1: AON_CNT_CTL4
+ REG_CPU_CNT_CTL4 =65483 /* 65483 */, // S3_7_c15_c9_3 at min EL1: CPU_CNT_CTL4
+ REG_UPMC2 =65484 /* 65484 */, // S3_7_c15_c9_4 at min EL1: UPMC2
+ REG_UPMECM3_EL1 =65485 /* 65485 */, // S3_7_c15_c9_5 at min EL1: UPMECM3_EL1
+ REG_AON_CNT5 =65490 /* 65490 */, // S3_7_c15_c10_2 at min EL1: AON_CNT5
+ REG_CPU_CNT5 =65491 /* 65491 */, // S3_7_c15_c10_3 at min EL1: CPU_CNT5
+ REG_UPMC3 =65492 /* 65492 */, // S3_7_c15_c10_4 at min EL1: UPMC3
+ REG_UPMCR1_EL1 =65493 /* 65493 */, // S3_7_c15_c10_5 at min EL1: UPMCR1_EL1
+ REG_AON_CNT_CTL5 =65498 /* 65498 */, // S3_7_c15_c11_2 at min EL1: AON_CNT_CTL5
+ REG_CPU_CNT_CTL5 =65499 /* 65499 */, // S3_7_c15_c11_3 at min EL1: CPU_CNT_CTL5
+ REG_UPMC4 =65500 /* 65500 */, // S3_7_c15_c11_4 at min EL1: UPMC4
+ REG_UPMESR1_EL1 =65501 /* 65501 */, // S3_7_c15_c11_5 at min EL1: UPMESR1_EL1
+ REG_AON_CNT6 =65506 /* 65506 */, // S3_7_c15_c12_2 at min EL1: AON_CNT6
+ REG_CPU_CNT6 =65507 /* 65507 */, // S3_7_c15_c12_3 at min EL1: CPU_CNT6
+ REG_UPMC5 =65508 /* 65508 */, // S3_7_c15_c12_4 at min EL1: UPMC5
+ REG_AON_CNT_CTL6 =65514 /* 65514 */, // S3_7_c15_c13_2 at min EL1: AON_CNT_CTL6
+ REG_CPU_CNT_CTL6 =65515 /* 65515 */, // S3_7_c15_c13_3 at min EL1: CPU_CNT_CTL6
+ REG_UPMC6 =65516 /* 65516 */, // S3_7_c15_c13_4 at min EL1: UPMC6
+ REG_AON_CNT7 =65522 /* 65522 */, // S3_7_c15_c14_2 at min EL1: AON_CNT7
+ REG_CPU_CNT7 =65523 /* 65523 */, // S3_7_c15_c14_3 at min EL1: CPU_CNT7
+ REG_UPMC7 =65524 /* 65524 */, // S3_7_c15_c14_4 at min EL1: UPMC7
+ REG_AON_CNT_CTL7 =65530 /* 65530 */, // S3_7_c15_c15_2 at min EL1: AON_CNT_CTL7
+ REG_CPU_CNT_CTL7 =65531 /* 65531 */, // S3_7_c15_c15_3 at min EL1: CPU_CNT_CTL7
+ SYSREG_END=65532
+};
+#ifdef __cplusplus
+extern "C" {
+#endif
+bool has_system_register_name(enum SystemReg);
+#ifdef __cplusplus
+}
+#endif
diff --git a/arch/arm64/il.cpp b/arch/arm64/il.cpp
index 977b57d5..9d99a7ff 100644
--- a/arch/arm64/il.cpp
+++ b/arch/arm64/il.cpp
@@ -5,7 +5,7 @@
#include "il.h"
#include "neon_intrinsics.h"
-#include "sysregs.h"
+#include "sysregs_gen.h"
using namespace BinaryNinja;
@@ -1184,6 +1184,16 @@ bool GetLowLevelILForInstruction(
switch (instr.operation)
{
case ARM64_ADD:
+ switch (instr.encoding)
+ {
+ case ENC_ADD_Z_P_ZZ_:
+ case ENC_ADD_Z_ZI_:
+ case ENC_ADD_Z_ZZ_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
case ARM64_ADDS:
il.AddInstruction(
ILSETREG_O(operand1, il.Add(REGSZ_O(operand1), ILREG_O(operand2),
@@ -1197,26 +1207,100 @@ bool GetLowLevelILForInstruction(
break;
case ARM64_AND:
case ARM64_ANDS:
+ switch (instr.encoding)
+ {
+ case ENC_AND_P_P_PP_Z:
+ case ENC_AND_Z_P_ZZ_:
+ case ENC_AND_Z_ZI_:
+ case ENC_AND_Z_ZZ_:
+ case ENC_ANDS_P_P_PP_Z:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(
ILSETREG_O(operand1, il.And(REGSZ_O(operand1), ILREG_O(operand2),
ReadILOperand(il, operand3, REGSZ_O(operand1)), SETFLAGS)));
break;
case ARM64_ADR:
+ switch (instr.encoding)
+ {
+ case ENC_ADR_Z_AZ_SD_SAME_SCALED:
+ case ENC_ADR_Z_AZ_D_S32_SCALED:
+ case ENC_ADR_Z_AZ_D_U32_SCALED:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
case ARM64_ADRP:
il.AddInstruction(ILSETREG_O(operand1, il.ConstPointer(REGSZ_O(operand1), IMM_O(operand2))));
break;
case ARM64_ASR:
+ switch (instr.encoding)
+ {
+ case ENC_ASR_Z_P_ZI_:
+ case ENC_ASR_Z_P_ZW_:
+ case ENC_ASR_Z_P_ZZ_:
+ case ENC_ASR_Z_ZI_:
+ case ENC_ASR_Z_ZW_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(ILSETREG_O(operand1, il.ArithShiftRight(REGSZ_O(operand2), ILREG_O(operand2),
ReadILOperand(il, operand3, REGSZ_O(operand2)))));
break;
case ARM64_AESD:
+ switch (instr.encoding)
+ {
+ case ENC_AESD_Z_ZZ_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(il.Intrinsic({RegisterOrFlag::Register(REG_O(operand1))}, ARM64_INTRIN_AESD,
{ILREG_O(operand1), ILREG_O(operand2)}));
break;
case ARM64_AESE:
+ switch (instr.encoding)
+ {
+ case ENC_AESE_Z_ZZ_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(il.Intrinsic({RegisterOrFlag::Register(REG_O(operand1))}, ARM64_INTRIN_AESE,
{ILREG_O(operand1), ILREG_O(operand2)}));
break;
+ case ARM64_AESIMC:
+ switch (instr.encoding)
+ {
+ case ENC_AESIMC_Z_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
+ il.AddInstruction(il.Intrinsic({RegisterOrFlag::Register(REG_O(operand1))}, ARM64_INTRIN_AESIMC,
+ {ILREG_O(operand1), ILREG_O(operand2)}));
+ break;
+ case ARM64_AESMC:
+ switch (instr.encoding)
+ {
+ case ENC_AESMC_Z_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
+ il.AddInstruction(il.Intrinsic({RegisterOrFlag::Register(REG_O(operand1))}, ARM64_INTRIN_AESMC,
+ {ILREG_O(operand1), ILREG_O(operand2)}));
+ break;
case ARM64_BTI:
il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_HINT_BTI, {}));
break;
@@ -1317,7 +1401,16 @@ bool GetLowLevelILForInstruction(
return false;
case ARM64_BIC:
case ARM64_BICS:
- switch (instr.encoding) {
+ switch (instr.encoding)
+ {
+ case ENC_BIC_AND_Z_ZI_:
+ case ENC_BIC_P_P_PP_Z:
+ case ENC_BIC_Z_P_ZZ_:
+ case ENC_BIC_Z_ZZ_:
+ case ENC_BICS_P_P_PP_Z:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
case ENC_BIC_ASIMDIMM_L_HL:
case ENC_BIC_ASIMDIMM_L_SL:
il.AddInstruction(ILSETREG_O(operand1,
@@ -1512,8 +1605,9 @@ bool GetLowLevelILForInstruction(
{RegisterOrFlag::Register(REG_O(operand1))}, ARM64_INTRIN_CLZ, {ILREG_O(operand2)}));
break;
case ARM64_DC:
- il.AddInstruction(
- il.Intrinsic({}, ARM64_INTRIN_DC, {ILREG_O(operand2)})); /* operand1 is <dc_op> */
+ // il.AddInstruction(
+ // il.Intrinsic({}, ARM64_INTRIN_DC, {ILREG_O(operand2)})); /* operand1 is <dc_op> */
+ il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_DC, {il.Const(4, operand1.immediate), ReadILOperand(il, operand2, 8)}));
break;
case ARM64_DMB:
il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_DMB, {}));
@@ -1522,11 +1616,30 @@ bool GetLowLevelILForInstruction(
il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_DSB, {}));
break;
case ARM64_EON:
+ switch (instr.encoding)
+ {
+ case ENC_EON_EOR_Z_ZI_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(ILSETREG_O(
operand1, il.Xor(REGSZ_O(operand1), ILREG_O(operand2),
il.Not(REGSZ_O(operand1), ReadILOperand(il, operand3, REGSZ_O(operand1))))));
break;
case ARM64_EOR:
+ switch (instr.encoding)
+ {
+ case ENC_EOR_P_P_PP_Z:
+ case ENC_EOR_Z_P_ZZ_:
+ case ENC_EOR_Z_ZI_:
+ case ENC_EOR_Z_ZZ_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(ILSETREG_O(operand1, il.Xor(REGSZ_O(operand1), ILREG_O(operand2),
ReadILOperand(il, operand3, REGSZ_O(operand1)))));
break;
@@ -1601,8 +1714,8 @@ bool GetLowLevelILForInstruction(
for (int i = 0; i < dst_n; ++i)
il.AddInstruction(ILSETREG(
dsts[i], il.FloatAdd(rsize, ILREG(srcs1[i]), ILREG(srcs2[i]))));
+ break;
}
- break;
default:
ABORT_LIFT;
}
@@ -1649,7 +1762,6 @@ bool GetLowLevelILForInstruction(
break;
}
case ENC_FADDP_Z_P_ZZ_:
- il.AddInstruction(il.Unimplemented());
default:
ABORT_LIFT;
}
@@ -1781,8 +1893,9 @@ bool GetLowLevelILForInstruction(
dsts[i], il.FloatDiv(rsize, ILREG(srcs1[i]), ILREG(srcs2[i]))));
break;
}
+ case ENC_FDIV_Z_P_ZZ_:
default:
- il.AddInstruction(il.Unimplemented());
+ ABORT_LIFT;
}
break;
case ARM64_FMOV:
@@ -1855,7 +1968,7 @@ bool GetLowLevelILForInstruction(
break;
}
default:
- il.AddInstruction(il.Unimplemented());
+ ABORT_LIFT;
}
break;
case ARM64_FMUL:
@@ -1906,7 +2019,7 @@ bool GetLowLevelILForInstruction(
break;
}
default:
- il.AddInstruction(il.Unimplemented());
+ ABORT_LIFT;
}
break;
case ARM64_FNEG:
@@ -1936,7 +2049,7 @@ bool GetLowLevelILForInstruction(
break;
}
default:
- il.AddInstruction(il.Unimplemented());
+ ABORT_LIFT;
}
break;
case ARM64_FNMUL:
@@ -1979,6 +2092,16 @@ bool GetLowLevelILForInstruction(
case ARM64_LDRAB:
SetPacAttr = true;
case ARM64_LDR:
+ switch (instr.encoding)
+ {
+ case ENC_LDR_P_BI_:
+ case ENC_LDR_Z_BI_:
+ case ENC_LDR_ZA_RI_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
case ARM64_LDUR:
LoadStoreOperand(il, true, instr.operands[0], instr.operands[1], 0);
if (SetPacAttr)
@@ -2131,8 +2254,39 @@ bool GetLowLevelILForInstruction(
ILSETREG_O(operand1, il.LogicalShiftRight(REGSZ_O(operand2), ILREG_O(operand2),
ReadILOperand(il, operand3, REGSZ_O(operand2)))));
break;
- case ARM64_DUP:
case ARM64_MOV:
+ switch (instr.encoding)
+ {
+ case ENC_MOV_AND_P_P_PP_Z:
+ case ENC_MOV_CPY_Z_O_I_:
+ case ENC_MOV_CPY_Z_P_I_:
+ case ENC_MOV_CPY_Z_P_R_:
+ case ENC_MOV_CPY_Z_P_V_:
+ case ENC_MOV_DUP_Z_I_:
+ case ENC_MOV_DUP_Z_R_:
+ case ENC_MOV_DUP_Z_ZI_:
+ case ENC_MOV_DUP_Z_ZI_2:
+ case ENC_MOV_DUPM_Z_I_:
+ case ENC_MOV_MOVA_Z_P_RZA_B:
+ case ENC_MOV_MOVA_Z_P_RZA_H:
+ case ENC_MOV_MOVA_Z_P_RZA_W:
+ case ENC_MOV_MOVA_Z_P_RZA_D:
+ case ENC_MOV_MOVA_Z_P_RZA_Q:
+ case ENC_MOV_MOVA_ZA_P_RZ_B:
+ case ENC_MOV_MOVA_ZA_P_RZ_H:
+ case ENC_MOV_MOVA_ZA_P_RZ_W:
+ case ENC_MOV_MOVA_ZA_P_RZ_D:
+ case ENC_MOV_MOVA_ZA_P_RZ_Q:
+ case ENC_MOV_ORR_P_P_PP_Z:
+ case ENC_MOV_ORR_Z_ZZ_:
+ case ENC_MOV_SEL_P_P_PP_:
+ case ENC_MOV_SEL_Z_P_ZZ_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
+ case ARM64_DUP:
case ARM64_MOVN:
case ARM64_UMOV:
case ARM64_INS:
@@ -2217,6 +2371,10 @@ bool GetLowLevelILForInstruction(
}
break;
}
+ case ENC_DUP_P_P_PI_:
+ case ENC_DUP_Z_I_:
+ case ENC_DUP_Z_R_:
+ case ENC_DUP_Z_ZI_:
default:
// case ENC_MOVS_ORRS_P_P_PP_Z:
// il.AddInstruction(il.Unimplemented());
@@ -2254,12 +2412,20 @@ bool GetLowLevelILForInstruction(
case ARM64_MUL:
switch (instr.encoding)
{
- case ENC_MUL_ASIMDSAME_ONLY:
- case ENC_MUL_ASIMDELEM_R:
- break;
- default:
- il.AddInstruction(
- ILSETREG_O(operand1, il.Mult(REGSZ_O(operand1), ILREG_O(operand2), ILREG_O(operand3))));
+ case ENC_MUL_Z_P_ZZ_:
+ case ENC_MUL_Z_ZI_:
+ case ENC_MUL_Z_ZZ_:
+ case ENC_MUL_Z_ZZI_H:
+ case ENC_MUL_Z_ZZI_S:
+ case ENC_MUL_Z_ZZI_D:
+ case ENC_MUL_ASIMDSAME_ONLY:
+ case ENC_MUL_ASIMDELEM_R:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default:
+ il.AddInstruction(
+ ILSETREG_O(operand1, il.Mult(REGSZ_O(operand1), ILREG_O(operand2), ILREG_O(operand3))));
}
break;
case ARM64_MADD:
@@ -2268,20 +2434,19 @@ bool GetLowLevelILForInstruction(
break;
case ARM64_MRS:
{
- ExprId reg = ILREG_O(operand2);
- const char* name = get_system_register_name((SystemReg)operand2.sysreg);
+ uint32_t reg = operand2.sysreg;
+ const char* name = get_system_register_name((SystemReg)(reg));
if (strlen(name) == 0)
{
- LogWarn("Unknown system register %d @ 0x%" PRIx64
- ": S%d_%d_c%d_c%d_%d, using generic system register instead\n",
- operand2.sysreg, addr, operand2.implspec[0], operand2.implspec[1], operand2.implspec[2],
- operand2.implspec[3], operand2.implspec[4]);
- reg = il.Register(8, FAKEREG_SYSREG_UNKNOWN);
+ LogDebug("MSR Unknown system register %d @ 0x%" PRIx64
+ ": S%d_%d_c%d_c%d_%d",
+ operand2.sysreg, addr, operand2.implspec[0], operand2.implspec[1], operand2.implspec[2],
+ operand2.implspec[3], operand2.implspec[4]);
}
il.AddInstruction(
- il.Intrinsic({RegisterOrFlag::Register(REG_O(operand1))}, ARM64_INTRIN_MRS, {reg}));
+ il.Intrinsic({RegisterOrFlag::Register(REG_O(operand1))}, ARM64_INTRIN_MRS, {il.Const(4, reg)}));
break;
}
case ARM64_MSUB:
@@ -2297,26 +2462,23 @@ bool GetLowLevelILForInstruction(
case ARM64_MSR:
{
uint32_t dst = operand1.sysreg;
- const char* name = get_system_register_name((SystemReg)dst);
+ const char* name = get_system_register_name((SystemReg)(dst));
if (strlen(name) == 0)
{
- LogWarn("Unknown system register %d @ 0x%" PRIx64
- ": S%d_%d_c%d_c%d_%d, using generic system register instead\n",
- dst, addr, operand1.implspec[0], operand1.implspec[1], operand1.implspec[2],
+ LogDebug("MSR Unknown system register %d @ 0x%" PRIx64
+ ": S%d_%d_c%d_c%d_%d",
+ operand1.sysreg, addr, operand1.implspec[0], operand1.implspec[1], operand1.implspec[2],
operand1.implspec[3], operand1.implspec[4]);
- dst = FAKEREG_SYSREG_UNKNOWN;
}
switch (operand2.operandClass)
{
case IMM32:
- il.AddInstruction(il.Intrinsic(
- {RegisterOrFlag::Register(dst)}, ARM64_INTRIN_MSR, {il.Const(4, IMM_O(operand2))}));
+ il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_MSR, {il.Const(4, dst), il.Const(4, IMM_O(operand2))}));
break;
case REG:
- il.AddInstruction(
- il.Intrinsic({RegisterOrFlag::Register(dst)}, ARM64_INTRIN_MSR, {ILREG_O(operand2)}));
+ il.AddInstruction( il.Intrinsic({}, ARM64_INTRIN_MSR, {il.Const(4, dst), ILREG_O(operand2)}));
break;
default:
LogError("unknown MSR operand class: %x\n", operand2.operandClass);
@@ -2325,6 +2487,16 @@ bool GetLowLevelILForInstruction(
break;
}
case ARM64_NEG:
+ switch (instr.encoding)
+ {
+ case ENC_NEG_ASISDMISC_R:
+ case ENC_NEG_ASIMDMISC_R:
+ case ENC_NEG_Z_P_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
case ARM64_NEGS:
il.AddInstruction(ILSETREG_O(
operand1, il.Neg(REGSZ_O(operand1), ReadILOperand(il, instr.operands[1], REGSZ_O(operand1)),
@@ -2452,6 +2624,15 @@ bool GetLowLevelILForInstruction(
il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_PRFM, {ReadILOperand(il, operand2, 8)}));
break;
case ARM64_ORN:
+ switch (instr.encoding)
+ {
+ case ENC_ORN_ORR_Z_ZI_:
+ case ENC_ORN_P_P_PP_Z:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(ILSETREG_O(
operand1, il.Or(REGSZ_O(operand1), ILREG_O(operand2),
il.Not(REGSZ_O(operand1), ReadILOperand(il, operand3, REGSZ_O(operand1))))));
@@ -2480,9 +2661,12 @@ bool GetLowLevelILForInstruction(
case ENC_ORR_ASIMDSAME_ONLY:
// Let the neon intrinsic lifter take over.
break;
+ case ENC_ORR_P_P_PP_Z:
+ case ENC_ORR_Z_P_ZZ_:
+ case ENC_ORR_Z_ZI_:
+ case ENC_ORR_Z_ZZ_:
default:
- il.AddInstruction(il.Unimplemented());
- break;
+ ABORT_LIFT;
}
break;
case ARM64_PSB:
@@ -2676,7 +2860,7 @@ bool GetLowLevelILForInstruction(
case ENC_UCVTF_Z_P_Z_X2D:
case ENC_UCVTF_Z_P_Z_X2FP16:
case ENC_UCVTF_Z_P_Z_X2S:
- break;
+ ABORT_LIFT;
default:
break;
}
@@ -2814,6 +2998,16 @@ bool GetLowLevelILForInstruction(
LoadStoreOperandPair(il, false, instr.operands[0], instr.operands[1], instr.operands[2]);
break;
case ARM64_STR:
+ switch (instr.encoding)
+ {
+ case ENC_STR_P_BI_:
+ case ENC_STR_Z_BI_:
+ case ENC_STR_ZA_RI_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
case ARM64_STLR:
case ARM64_STUR:
case ARM64_STLUR:
@@ -2832,6 +3026,16 @@ bool GetLowLevelILForInstruction(
LoadStoreOperandSize(il, false, false, 2, instr.operands[0], instr.operands[1]);
break;
case ARM64_SUB:
+ switch (instr.encoding)
+ {
+ case ENC_SUB_Z_P_ZZ_:
+ case ENC_SUB_Z_ZI_:
+ case ENC_SUB_Z_ZZ_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
case ARM64_SUBS:
il.AddInstruction(ILSETREG_O(
operand1, il.Sub(REGSZ_O(operand1), ILREG_O(operand2),
@@ -2890,14 +3094,38 @@ bool GetLowLevelILForInstruction(
il.AddInstruction(il.Store(2, ILREG_O(operand3), il.LowPart(2, ILREG_O(operand1))));
break;
case ARM64_SXTB:
+ switch (instr.encoding)
+ {
+ case ENC_SXTB_Z_P_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(
ILSETREG_O(operand1, ExtractRegister(il, operand2, 0, 1, true, REGSZ_O(operand1))));
break;
case ARM64_SXTH:
+ switch (instr.encoding)
+ {
+ case ENC_SXTH_Z_P_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(
ILSETREG_O(operand1, ExtractRegister(il, operand2, 0, 2, true, REGSZ_O(operand1))));
break;
case ARM64_SXTW:
+ switch (instr.encoding)
+ {
+ case ENC_SXTW_Z_P_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(
ILSETREG_O(operand1, ExtractRegister(il, operand2, 0, 4, true, REGSZ_O(operand1))));
break;
@@ -2917,6 +3145,15 @@ bool GetLowLevelILForInstruction(
il.AddInstruction(il.And(REGSZ_O(operand1), ILREG_O(operand1),
ReadILOperand(il, operand2, REGSZ_O(operand1)), SETFLAGS));
break;
+ case ARM64_TLBI:
+ if (operand2.operandClass == REG)
+ il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_TLBI_REG, {il.Const(4, operand1.immediate), ReadILOperand(il, operand2, 8)}));
+ else
+ il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_TLBI, {il.Const(4, operand1.immediate)}));
+ break;
+ case ARM64_AT:
+ il.AddInstruction(il.Intrinsic({}, ARM64_INTRIN_AT, {il.Const(4, operand1.immediate), ReadILOperand(il, operand2, 8)}));
+ break;
case ARM64_UMADDL:
il.AddInstruction(ILSETREG_O(operand1,
il.Add(REGSZ_O(operand1), ILREG_O(operand4),
@@ -3072,6 +3309,14 @@ bool GetLowLevelILForInstruction(
il.Const(1, 64)))));
break;
case ARM64_UDIV:
+ switch (instr.encoding)
+ {
+ case ENC_UDIV_Z_P_ZZ_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(ILSETREG_O(
operand1, il.DivUnsigned(REGSZ_O(operand2), ILREG_O(operand2), ILREG_O(operand3))));
break;
@@ -3104,10 +3349,26 @@ bool GetLowLevelILForInstruction(
break;
}
case ARM64_UXTB:
+ switch (instr.encoding)
+ {
+ case ENC_UXTB_Z_P_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(
ILSETREG_O(operand1, ExtractRegister(il, operand2, 0, 1, false, REGSZ_O(operand1))));
break;
case ARM64_UXTH:
+ switch (instr.encoding)
+ {
+ case ENC_UXTH_Z_P_Z_:
+ if (!preferIntrinsics())
+ il.AddInstruction(il.Unimplemented());
+ return true;
+ default: break;
+ }
il.AddInstruction(
ILSETREG_O(operand1, ExtractRegister(il, operand2, 0, 2, false, REGSZ_O(operand1))));
break;
diff --git a/arch/arm64/il.h b/arch/arm64/il.h
index e345e395..6be7cfe7 100644
--- a/arch/arm64/il.h
+++ b/arch/arm64/il.h
@@ -1,6 +1,7 @@
#pragma once
#include "binaryninjaapi.h"
+#include "sysregs_enum.h"
#include "disassembler/arm64dis.h"
#include "disassembler/encodings_dec.h"
#include "disassembler/encodings_fmt.h"
@@ -77,6 +78,8 @@ enum Arm64Intrinsic : uint32_t
ARM64_INTRIN_RBIT,
ARM64_INTRIN_AESD,
ARM64_INTRIN_AESE,
+ ARM64_INTRIN_AESIMC,
+ ARM64_INTRIN_AESMC,
ARM64_INTRIN_LDXR,
ARM64_INTRIN_LDXRB,
ARM64_INTRIN_LDXRH,
@@ -89,6 +92,9 @@ enum Arm64Intrinsic : uint32_t
ARM64_INTRIN_STLXR,
ARM64_INTRIN_STLXRB,
ARM64_INTRIN_STLXRH,
+ ARM64_INTRIN_TLBI,
+ ARM64_INTRIN_TLBI_REG,
+ ARM64_INTRIN_AT,
ARM64_INTRIN_NORMAL_END, /* needed so intrinsics can be extended by other lists, like neon
intrinsics */
ARM64_INTRIN_INVALID = 0xFFFFFFFF,
diff --git a/arch/arm64/neon_intrinsics.cpp b/arch/arm64/neon_intrinsics.cpp
index 9557fd27..02e13047 100644
--- a/arch/arm64/neon_intrinsics.cpp
+++ b/arch/arm64/neon_intrinsics.cpp
@@ -1,6 +1,253 @@
#include "neon_intrinsics.h"
#include "il_macros.h"
+
+Ref<Enumeration> get_tlbi_op_enum()
+{
+ EnumerationBuilder builder;
+ builder.AddMemberWithValue("invalid", TLBI_INVALID);
+ builder.AddMemberWithValue("vmalle1os", TLBI_VMALLE1OS);
+ builder.AddMemberWithValue("vae1os", TLBI_VAE1OS);
+ builder.AddMemberWithValue("aside1os", TLBI_ASIDE1OS);
+ builder.AddMemberWithValue("vaae1os", TLBI_VAAE1OS);
+ builder.AddMemberWithValue("vale1os", TLBI_VALE1OS);
+ builder.AddMemberWithValue("vaale1os", TLBI_VAALE1OS);
+ builder.AddMemberWithValue("rvae1is", TLBI_RVAE1IS);
+ builder.AddMemberWithValue("rvaae1is", TLBI_RVAAE1IS);
+ builder.AddMemberWithValue("rvale1is", TLBI_RVALE1IS);
+ builder.AddMemberWithValue("rvaale1is", TLBI_RVAALE1IS);
+ builder.AddMemberWithValue("vmalle1is", TLBI_VMALLE1IS);
+ builder.AddMemberWithValue("vae1is", TLBI_VAE1IS);
+ builder.AddMemberWithValue("aside1is", TLBI_ASIDE1IS);
+ builder.AddMemberWithValue("vaae1is", TLBI_VAAE1IS);
+ builder.AddMemberWithValue("vale1is", TLBI_VALE1IS);
+ builder.AddMemberWithValue("vaale1is", TLBI_VAALE1IS);
+ builder.AddMemberWithValue("rvae1os", TLBI_RVAE1OS);
+ builder.AddMemberWithValue("rvaae1os", TLBI_RVAAE1OS);
+ builder.AddMemberWithValue("rvale1os", TLBI_RVALE1OS);
+ builder.AddMemberWithValue("rvaale1os", TLBI_RVAALE1OS);
+ builder.AddMemberWithValue("rvae1", TLBI_RVAE1);
+ builder.AddMemberWithValue("rvaae1", TLBI_RVAAE1);
+ builder.AddMemberWithValue("rvale1", TLBI_RVALE1);
+ builder.AddMemberWithValue("rvaale1", TLBI_RVAALE1);
+ builder.AddMemberWithValue("vmalle1", TLBI_VMALLE1);
+ builder.AddMemberWithValue("vae1", TLBI_VAE1);
+ builder.AddMemberWithValue("aside1", TLBI_ASIDE1);
+ builder.AddMemberWithValue("vaae1", TLBI_VAAE1);
+ builder.AddMemberWithValue("vale1", TLBI_VALE1);
+ builder.AddMemberWithValue("vaale1", TLBI_VAALE1);
+ builder.AddMemberWithValue("vmalle1osnxs", TLBI_VMALLE1OSNXS);
+ builder.AddMemberWithValue("vae1osnxs", TLBI_VAE1OSNXS);
+ builder.AddMemberWithValue("aside1osnxs", TLBI_ASIDE1OSNXS);
+ builder.AddMemberWithValue("vaae1osnxs", TLBI_VAAE1OSNXS);
+ builder.AddMemberWithValue("vale1osnxs", TLBI_VALE1OSNXS);
+ builder.AddMemberWithValue("vaale1osnxs", TLBI_VAALE1OSNXS);
+ builder.AddMemberWithValue("rvae1isnxs", TLBI_RVAE1ISNXS);
+ builder.AddMemberWithValue("rvaae1isnxs", TLBI_RVAAE1ISNXS);
+ builder.AddMemberWithValue("rvale1isnxs", TLBI_RVALE1ISNXS);
+ builder.AddMemberWithValue("rvaale1isnxs", TLBI_RVAALE1ISNXS);
+ builder.AddMemberWithValue("vmalle1isnxs", TLBI_VMALLE1ISNXS);
+ builder.AddMemberWithValue("vae1isnxs", TLBI_VAE1ISNXS);
+ builder.AddMemberWithValue("aside1isnxs", TLBI_ASIDE1ISNXS);
+ builder.AddMemberWithValue("vaae1isnxs", TLBI_VAAE1ISNXS);
+ builder.AddMemberWithValue("vale1isnxs", TLBI_VALE1ISNXS);
+ builder.AddMemberWithValue("vaale1isnxs", TLBI_VAALE1ISNXS);
+ builder.AddMemberWithValue("rvae1osnxs", TLBI_RVAE1OSNXS);
+ builder.AddMemberWithValue("rvaae1osnxs", TLBI_RVAAE1OSNXS);
+ builder.AddMemberWithValue("rvale1osnxs", TLBI_RVALE1OSNXS);
+ builder.AddMemberWithValue("rvaale1osnxs", TLBI_RVAALE1OSNXS);
+ builder.AddMemberWithValue("rvae1nxs", TLBI_RVAE1NXS);
+ builder.AddMemberWithValue("rvaae1nxs", TLBI_RVAAE1NXS);
+ builder.AddMemberWithValue("rvale1nxs", TLBI_RVALE1NXS);
+ builder.AddMemberWithValue("rvaale1nxs", TLBI_RVAALE1NXS);
+ builder.AddMemberWithValue("vmalle1nxs", TLBI_VMALLE1NXS);
+ builder.AddMemberWithValue("vae1nxs", TLBI_VAE1NXS);
+ builder.AddMemberWithValue("aside1nxs", TLBI_ASIDE1NXS);
+ builder.AddMemberWithValue("vaae1nxs", TLBI_VAAE1NXS);
+ builder.AddMemberWithValue("vale1nxs", TLBI_VALE1NXS);
+ builder.AddMemberWithValue("vaale1nxs", TLBI_VAALE1NXS);
+ builder.AddMemberWithValue("ipas2e1is", TLBI_IPAS2E1IS);
+ builder.AddMemberWithValue("ripas2e1is", TLBI_RIPAS2E1IS);
+ builder.AddMemberWithValue("ipas2le1is", TLBI_IPAS2LE1IS);
+ builder.AddMemberWithValue("ripas2le1is", TLBI_RIPAS2LE1IS);
+ builder.AddMemberWithValue("alle2os", TLBI_ALLE2OS);
+ builder.AddMemberWithValue("vae2os", TLBI_VAE2OS);
+ builder.AddMemberWithValue("alle1os", TLBI_ALLE1OS);
+ builder.AddMemberWithValue("vale2os", TLBI_VALE2OS);
+ builder.AddMemberWithValue("vmalls12e1os", TLBI_VMALLS12E1OS);
+ builder.AddMemberWithValue("rvae2is", TLBI_RVAE2IS);
+ builder.AddMemberWithValue("vmallws2e1is", TLBI_VMALLWS2E1IS);
+ builder.AddMemberWithValue("rvale2is", TLBI_RVALE2IS);
+ builder.AddMemberWithValue("alle2is", TLBI_ALLE2IS);
+ builder.AddMemberWithValue("vae2is", TLBI_VAE2IS);
+ builder.AddMemberWithValue("alle1is", TLBI_ALLE1IS);
+ builder.AddMemberWithValue("vale2is", TLBI_VALE2IS);
+ builder.AddMemberWithValue("vmalls12e1is", TLBI_VMALLS12E1IS);
+ builder.AddMemberWithValue("ipas2e1os", TLBI_IPAS2E1OS);
+ builder.AddMemberWithValue("ipas2e1", TLBI_IPAS2E1);
+ builder.AddMemberWithValue("ripas2e1", TLBI_RIPAS2E1);
+ builder.AddMemberWithValue("ripas2e1os", TLBI_RIPAS2E1OS);
+ builder.AddMemberWithValue("ipas2le1os", TLBI_IPAS2LE1OS);
+ builder.AddMemberWithValue("ipas2le1", TLBI_IPAS2LE1);
+ builder.AddMemberWithValue("ripas2le1", TLBI_RIPAS2LE1);
+ builder.AddMemberWithValue("ripas2le1os", TLBI_RIPAS2LE1OS);
+ builder.AddMemberWithValue("rvae2os", TLBI_RVAE2OS);
+ builder.AddMemberWithValue("vmallws2e1os", TLBI_VMALLWS2E1OS);
+ builder.AddMemberWithValue("rvale2os", TLBI_RVALE2OS);
+ builder.AddMemberWithValue("rvae2", TLBI_RVAE2);
+ builder.AddMemberWithValue("vmallws2e1", TLBI_VMALLWS2E1);
+ builder.AddMemberWithValue("rvale2", TLBI_RVALE2);
+ builder.AddMemberWithValue("alle2", TLBI_ALLE2);
+ builder.AddMemberWithValue("vae2", TLBI_VAE2);
+ builder.AddMemberWithValue("alle1", TLBI_ALLE1);
+ builder.AddMemberWithValue("vale2", TLBI_VALE2);
+ builder.AddMemberWithValue("vmalls12e1", TLBI_VMALLS12E1);
+ builder.AddMemberWithValue("ipas2e1isnxs", TLBI_IPAS2E1ISNXS);
+ builder.AddMemberWithValue("ripas2e1isnxs", TLBI_RIPAS2E1ISNXS);
+ builder.AddMemberWithValue("ipas2le1isnxs", TLBI_IPAS2LE1ISNXS);
+ builder.AddMemberWithValue("ripas2le1isnxs", TLBI_RIPAS2LE1ISNXS);
+ builder.AddMemberWithValue("alle2osnxs", TLBI_ALLE2OSNXS);
+ builder.AddMemberWithValue("vae2osnxs", TLBI_VAE2OSNXS);
+ builder.AddMemberWithValue("alle1osnxs", TLBI_ALLE1OSNXS);
+ builder.AddMemberWithValue("vale2osnxs", TLBI_VALE2OSNXS);
+ builder.AddMemberWithValue("vmalls12e1osnxs", TLBI_VMALLS12E1OSNXS);
+ builder.AddMemberWithValue("rvae2isnxs", TLBI_RVAE2ISNXS);
+ builder.AddMemberWithValue("vmallws2e1isnxs", TLBI_VMALLWS2E1ISNXS);
+ builder.AddMemberWithValue("rvale2isnxs", TLBI_RVALE2ISNXS);
+ builder.AddMemberWithValue("alle2isnxs", TLBI_ALLE2ISNXS);
+ builder.AddMemberWithValue("vae2isnxs", TLBI_VAE2ISNXS);
+ builder.AddMemberWithValue("alle1isnxs", TLBI_ALLE1ISNXS);
+ builder.AddMemberWithValue("vale2isnxs", TLBI_VALE2ISNXS);
+ builder.AddMemberWithValue("vmalls12e1isnxs", TLBI_VMALLS12E1ISNXS);
+ builder.AddMemberWithValue("ipas2e1osnxs", TLBI_IPAS2E1OSNXS);
+ builder.AddMemberWithValue("ipas2e1nxs", TLBI_IPAS2E1NXS);
+ builder.AddMemberWithValue("ripas2e1nxs", TLBI_RIPAS2E1NXS);
+ builder.AddMemberWithValue("ripas2e1osnxs", TLBI_RIPAS2E1OSNXS);
+ builder.AddMemberWithValue("ipas2le1osnxs", TLBI_IPAS2LE1OSNXS);
+ builder.AddMemberWithValue("ipas2le1nxs", TLBI_IPAS2LE1NXS);
+ builder.AddMemberWithValue("ripas2le1nxs", TLBI_RIPAS2LE1NXS);
+ builder.AddMemberWithValue("ripas2le1osnxs", TLBI_RIPAS2LE1OSNXS);
+ builder.AddMemberWithValue("rvae2osnxs", TLBI_RVAE2OSNXS);
+ builder.AddMemberWithValue("vmallws2e1osnxs", TLBI_VMALLWS2E1OSNXS);
+ builder.AddMemberWithValue("rvale2osnxs", TLBI_RVALE2OSNXS);
+ builder.AddMemberWithValue("rvae2nxs", TLBI_RVAE2NXS);
+ builder.AddMemberWithValue("vmallws2e1nxs", TLBI_VMALLWS2E1NXS);
+ builder.AddMemberWithValue("rvale2nxs", TLBI_RVALE2NXS);
+ builder.AddMemberWithValue("alle2nxs", TLBI_ALLE2NXS);
+ builder.AddMemberWithValue("vae2nxs", TLBI_VAE2NXS);
+ builder.AddMemberWithValue("alle1nxs", TLBI_ALLE1NXS);
+ builder.AddMemberWithValue("vale2nxs", TLBI_VALE2NXS);
+ builder.AddMemberWithValue("vmalls12e1nxs", TLBI_VMALLS12E1NXS);
+ builder.AddMemberWithValue("alle3os", TLBI_ALLE3OS);
+ builder.AddMemberWithValue("vae3os", TLBI_VAE3OS);
+ builder.AddMemberWithValue("paallos", TLBI_PAALLOS);
+ builder.AddMemberWithValue("vale3os", TLBI_VALE3OS);
+ builder.AddMemberWithValue("rvae3is", TLBI_RVAE3IS);
+ builder.AddMemberWithValue("rvale3is", TLBI_RVALE3IS);
+ builder.AddMemberWithValue("alle3is", TLBI_ALLE3IS);
+ builder.AddMemberWithValue("vae3is", TLBI_VAE3IS);
+ builder.AddMemberWithValue("vale3is", TLBI_VALE3IS);
+ builder.AddMemberWithValue("rpaos", TLBI_RPAOS);
+ builder.AddMemberWithValue("rpalos", TLBI_RPALOS);
+ builder.AddMemberWithValue("rvae3os", TLBI_RVAE3OS);
+ builder.AddMemberWithValue("rvale3os", TLBI_RVALE3OS);
+ builder.AddMemberWithValue("rvae3", TLBI_RVAE3);
+ builder.AddMemberWithValue("rvale3", TLBI_RVALE3);
+ builder.AddMemberWithValue("alle3", TLBI_ALLE3);
+ builder.AddMemberWithValue("vae3", TLBI_VAE3);
+ builder.AddMemberWithValue("paall", TLBI_PAALL);
+ builder.AddMemberWithValue("vale3", TLBI_VALE3);
+ builder.AddMemberWithValue("alle3osnxs", TLBI_ALLE3OSNXS);
+ builder.AddMemberWithValue("vae3osnxs", TLBI_VAE3OSNXS);
+ builder.AddMemberWithValue("vale3osnxs", TLBI_VALE3OSNXS);
+ builder.AddMemberWithValue("rvae3isnxs", TLBI_RVAE3ISNXS);
+ builder.AddMemberWithValue("rvale3isnxs", TLBI_RVALE3ISNXS);
+ builder.AddMemberWithValue("alle3isnxs", TLBI_ALLE3ISNXS);
+ builder.AddMemberWithValue("vae3isnxs", TLBI_VAE3ISNXS);
+ builder.AddMemberWithValue("vale3isnxs", TLBI_VALE3ISNXS);
+ builder.AddMemberWithValue("rvae3osnxs", TLBI_RVAE3OSNXS);
+ builder.AddMemberWithValue("rvale3osnxs", TLBI_RVALE3OSNXS);
+ builder.AddMemberWithValue("rvae3nxs", TLBI_RVAE3NXS);
+ builder.AddMemberWithValue("rvale3nxs", TLBI_RVALE3NXS);
+ builder.AddMemberWithValue("alle3nxs", TLBI_ALLE3NXS);
+ builder.AddMemberWithValue("vae3nxs", TLBI_VAE3NXS);
+ builder.AddMemberWithValue("vale3nxs", TLBI_VALE3NXS);
+
+ Ref<Enumeration> _enum = builder.Finalize();
+ return _enum;
+}
+
+Ref<Enumeration> get_at_op_enum()
+{
+ EnumerationBuilder builder;
+ builder.AddMemberWithValue("invalid", AT_OP_INVALID);
+ builder.AddMemberWithValue("s1e1r", AT_OP_S1E1R);
+ builder.AddMemberWithValue("s1e1w", AT_OP_S1E1W);
+ builder.AddMemberWithValue("s1e0r", AT_OP_S1E0R);
+ builder.AddMemberWithValue("s1e0w", AT_OP_S1E0W);
+ builder.AddMemberWithValue("s1e1rp", AT_OP_S1E1RP);
+ builder.AddMemberWithValue("s1e1wp", AT_OP_S1E1WP);
+ builder.AddMemberWithValue("s1e1a", AT_OP_S1E1A);
+ builder.AddMemberWithValue("s1e2r", AT_OP_S1E2R);
+ builder.AddMemberWithValue("s1e2w", AT_OP_S1E2W);
+ builder.AddMemberWithValue("s12e1r", AT_OP_S12E1R);
+ builder.AddMemberWithValue("s12e1w", AT_OP_S12E1W);
+ builder.AddMemberWithValue("s12e0r", AT_OP_S12E0R);
+ builder.AddMemberWithValue("s12e0w", AT_OP_S12E0W);
+ builder.AddMemberWithValue("s1e2a", AT_OP_S1E2A);
+ builder.AddMemberWithValue("s1e3r", AT_OP_S1E3R);
+ builder.AddMemberWithValue("s1e3w", AT_OP_S1E3W);
+ builder.AddMemberWithValue("s1e3a", AT_OP_S1E3A);
+ Ref<Enumeration> _enum = builder.Finalize();
+ return _enum;
+}
+
+Ref<Enumeration> get_dc_op_enum()
+{
+ EnumerationBuilder builder;
+ builder.AddMemberWithValue("invalid", DC_OP_INVALID);
+ builder.AddMemberWithValue("IVAC", DC_OP_IVAC);
+ builder.AddMemberWithValue("ISW", DC_OP_ISW);
+ builder.AddMemberWithValue("IGVAC", DC_OP_IGVAC);
+ builder.AddMemberWithValue("IGSW", DC_OP_IGSW);
+ builder.AddMemberWithValue("IGDVAC", DC_OP_IGDVAC);
+ builder.AddMemberWithValue("IGDSW", DC_OP_IGDSW);
+ builder.AddMemberWithValue("CSW", DC_OP_CSW);
+ builder.AddMemberWithValue("CGSW", DC_OP_CGSW);
+ builder.AddMemberWithValue("CGDSW", DC_OP_CGDSW);
+ builder.AddMemberWithValue("CISW", DC_OP_CISW);
+ builder.AddMemberWithValue("CIGSW", DC_OP_CIGSW);
+ builder.AddMemberWithValue("CIGDSW", DC_OP_CIGDSW);
+ builder.AddMemberWithValue("CIVAPS", DC_OP_CIVAPS);
+ builder.AddMemberWithValue("CIGDVAPS", DC_OP_CIGDVAPS);
+ builder.AddMemberWithValue("ZVA", DC_OP_ZVA);
+ builder.AddMemberWithValue("GVA", DC_OP_GVA);
+ builder.AddMemberWithValue("GZVA", DC_OP_GZVA);
+ builder.AddMemberWithValue("CVAC", DC_OP_CVAC);
+ builder.AddMemberWithValue("CGVAC", DC_OP_CGVAC);
+ builder.AddMemberWithValue("CGDVAC", DC_OP_CGDVAC);
+ builder.AddMemberWithValue("CVAOC", DC_OP_CVAOC);
+ builder.AddMemberWithValue("CVAU", DC_OP_CVAU);
+ builder.AddMemberWithValue("CGDVAOC", DC_OP_CGDVAOC);
+ builder.AddMemberWithValue("CVAP", DC_OP_CVAP);
+ builder.AddMemberWithValue("CGVAP", DC_OP_CGVAP);
+ builder.AddMemberWithValue("CGDVAP", DC_OP_CGDVAP);
+ builder.AddMemberWithValue("CVADP", DC_OP_CVADP);
+ builder.AddMemberWithValue("CGVADP", DC_OP_CGVADP);
+ builder.AddMemberWithValue("CGDVADP", DC_OP_CGDVADP);
+ builder.AddMemberWithValue("CIVAC", DC_OP_CIVAC);
+ builder.AddMemberWithValue("CIGVAC", DC_OP_CIGVAC);
+ builder.AddMemberWithValue("CIGDVAC", DC_OP_CIGDVAC);
+ builder.AddMemberWithValue("CIVAOC", DC_OP_CIVAOC);
+ builder.AddMemberWithValue("CIGDVAOC", DC_OP_CIGDVAOC);
+ builder.AddMemberWithValue("CIPAE", DC_OP_CIPAE);
+ builder.AddMemberWithValue("CIGDPAE", DC_OP_CIGDPAE);
+ builder.AddMemberWithValue("CIPAPA", DC_OP_CIPAPA);
+ builder.AddMemberWithValue("CIGDPAPA", DC_OP_CIGDPAPA);
+ Ref<Enumeration> _enum = builder.Finalize();
+ return _enum;
+}
+
string NeonGetIntrinsicName(uint32_t intrinsic)
{
switch (intrinsic)
diff --git a/arch/arm64/neon_intrinsics.h b/arch/arm64/neon_intrinsics.h
index 087b8664..9cade45f 100644
--- a/arch/arm64/neon_intrinsics.h
+++ b/arch/arm64/neon_intrinsics.h
@@ -3991,3 +3991,6 @@ vector<NameAndType> NeonGetIntrinsicInputs(uint32_t intrinsic);
vector<Confidence<Ref<Type>>> NeonGetIntrinsicOutputs(uint32_t intrinsic);
bool NeonGetLowLevelILForInstruction(
Architecture* arch, uint64_t addr, LowLevelILFunction& il, Instruction& instr, size_t addrSize);
+Ref<Enumeration> get_tlbi_op_enum();
+Ref<Enumeration> get_at_op_enum();
+Ref<Enumeration> get_dc_op_enum();
diff --git a/arch/arm64/sysregs_enum.cpp b/arch/arm64/sysregs_enum.cpp
new file mode 100644
index 00000000..b06e168d
--- /dev/null
+++ b/arch/arm64/sysregs_enum.cpp
@@ -0,0 +1,3002 @@
+#include "sysregs_enum.h"
+
+using namespace BinaryNinja;
+using namespace std;
+
+Ref<Enumeration> get_system_register_enum()
+{
+ EnumerationBuilder builder;
+ builder.AddMemberWithValue(get_system_register_name(REG_EDSCR), REG_EDSCR);
+ builder.AddMemberWithValue(get_system_register_name(REG_EDPRSR), REG_EDPRSR);
+ builder.AddMemberWithValue(get_system_register_name(REG_UAOIMM), REG_UAOIMM);
+ builder.AddMemberWithValue(get_system_register_name(REG_PANIMM), REG_PANIMM);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSELIMM), REG_SPSELIMM);
+ builder.AddMemberWithValue(get_system_register_name(REG_DITIMM), REG_DITIMM);
+ builder.AddMemberWithValue(get_system_register_name(REG_SVCRIMM), REG_SVCRIMM);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICIALLUIS), REG_ICIALLUIS);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICIALLU), REG_ICIALLU);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCIVAC), REG_DCIVAC);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCISW), REG_DCISW);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E1R), REG_ATS1E1R);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E1W), REG_ATS1E1W);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E0R), REG_ATS1E0R);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E0W), REG_ATS1E0W);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCCSW), REG_DCCSW);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCCISW), REG_DCCISW);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVMALLE1IS), REG_TLBIVMALLE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAE1IS), REG_TLBIVAE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIASIDE1IS), REG_TLBIASIDE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAAE1IS), REG_TLBIVAAE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVALE1IS), REG_TLBIVALE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAALE1IS), REG_TLBIVAALE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVMALLE1), REG_TLBIVMALLE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAE1), REG_TLBIVAE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIASIDE1), REG_TLBIASIDE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAAE1), REG_TLBIVAAE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVALE1), REG_TLBIVALE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAALE1), REG_TLBIVAALE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCZVA), REG_DCZVA);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICIVAU), REG_ICIVAU);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCCVAC), REG_DCCVAC);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCCVAU), REG_DCCVAU);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCCIVAC), REG_DCCIVAC);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E2R), REG_ATS1E2R);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E2W), REG_ATS1E2W);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS12E1R), REG_ATS12E1R);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS12E1W), REG_ATS12E1W);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS12E0R), REG_ATS12E0R);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS12E0W), REG_ATS12E0W);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIIPAS2E1IS), REG_TLBIIPAS2E1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIIPAS2LE1IS), REG_TLBIIPAS2LE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIALLE2IS), REG_TLBIALLE2IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAE2IS), REG_TLBIVAE2IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIALLE1IS), REG_TLBIALLE1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVALE2IS), REG_TLBIVALE2IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVMALLS12E1IS), REG_TLBIVMALLS12E1IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIIPAS2E1), REG_TLBIIPAS2E1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIIPAS2LE1), REG_TLBIIPAS2LE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIALLE2), REG_TLBIALLE2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAE2), REG_TLBIVAE2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIALLE1), REG_TLBIALLE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVALE2), REG_TLBIVALE2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVMALLS12E1), REG_TLBIVMALLS12E1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E3R), REG_ATS1E3R);
+ builder.AddMemberWithValue(get_system_register_name(REG_ATS1E3W), REG_ATS1E3W);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIALLE3IS), REG_TLBIALLE3IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAE3IS), REG_TLBIVAE3IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVALE3IS), REG_TLBIVALE3IS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIALLE3), REG_TLBIALLE3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVAE3), REG_TLBIVAE3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TLBIVALE3), REG_TLBIVALE3);
+ builder.AddMemberWithValue(get_system_register_name(REG_OSDTRRX_EL1), REG_OSDTRRX_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR0_EL1), REG_DBGBVR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR0_EL1), REG_DBGBCR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR0_EL1), REG_DBGWVR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR0_EL1), REG_DBGWCR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR1_EL1), REG_DBGBVR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR1_EL1), REG_DBGBCR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR1_EL1), REG_DBGWVR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR1_EL1), REG_DBGWCR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDCCINT_EL1), REG_MDCCINT_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDSCR_EL1), REG_MDSCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR2_EL1), REG_DBGBVR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR2_EL1), REG_DBGBCR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR2_EL1), REG_DBGWVR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR2_EL1), REG_DBGWCR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_OSDTRTX_EL1), REG_OSDTRTX_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR3_EL1), REG_DBGBVR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR3_EL1), REG_DBGBCR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR3_EL1), REG_DBGWVR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR3_EL1), REG_DBGWCR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR4_EL1), REG_DBGBVR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR4_EL1), REG_DBGBCR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR4_EL1), REG_DBGWVR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR4_EL1), REG_DBGWCR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR5_EL1), REG_DBGBVR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR5_EL1), REG_DBGBCR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR5_EL1), REG_DBGWVR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR5_EL1), REG_DBGWCR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWFAR), REG_DBGWFAR);
+ builder.AddMemberWithValue(get_system_register_name(REG_OSECCR_EL1), REG_OSECCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR6_EL1), REG_DBGBVR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR6_EL1), REG_DBGBCR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR6_EL1), REG_DBGWVR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR6_EL1), REG_DBGWCR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR7_EL1), REG_DBGBVR7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR7_EL1), REG_DBGBCR7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR7_EL1), REG_DBGWVR7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR7_EL1), REG_DBGWCR7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR8_EL1), REG_DBGBVR8_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR8_EL1), REG_DBGBCR8_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR8_EL1), REG_DBGWVR8_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR8_EL1), REG_DBGWCR8_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR9_EL1), REG_DBGBVR9_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR9_EL1), REG_DBGBCR9_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR9_EL1), REG_DBGWVR9_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR9_EL1), REG_DBGWCR9_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR10_EL1), REG_DBGBVR10_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR10_EL1), REG_DBGBCR10_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR10_EL1), REG_DBGWVR10_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR10_EL1), REG_DBGWCR10_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR11_EL1), REG_DBGBVR11_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR11_EL1), REG_DBGBCR11_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR11_EL1), REG_DBGWVR11_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR11_EL1), REG_DBGWCR11_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR12_EL1), REG_DBGBVR12_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR12_EL1), REG_DBGBCR12_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR12_EL1), REG_DBGWVR12_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR12_EL1), REG_DBGWCR12_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR13_EL1), REG_DBGBVR13_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR13_EL1), REG_DBGBCR13_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR13_EL1), REG_DBGWVR13_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR13_EL1), REG_DBGWCR13_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR14_EL1), REG_DBGBVR14_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR14_EL1), REG_DBGBCR14_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR14_EL1), REG_DBGWVR14_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR14_EL1), REG_DBGWCR14_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBVR15_EL1), REG_DBGBVR15_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGBCR15_EL1), REG_DBGBCR15_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWVR15_EL1), REG_DBGWVR15_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGWCR15_EL1), REG_DBGWCR15_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDRAR_EL1), REG_MDRAR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_OSLAR_EL1), REG_OSLAR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_OSLSR_EL1), REG_OSLSR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_OSDLR_EL1), REG_OSDLR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGPRCR_EL1), REG_DBGPRCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CLAIMSET_EL1), REG_CLAIMSET_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CLAIMCLR_EL1), REG_CLAIMCLR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AUTHSTAT_EL1), REG_AUTHSTAT_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCTRACEIDR), REG_TRCTRACEIDR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVICTLR), REG_TRCVICTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSEQEVR0), REG_TRCSEQEVR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTRLDVR0), REG_TRCCNTRLDVR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC0), REG_TRCIMSPEC0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCPRGCTLR), REG_TRCPRGCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCQCTLR), REG_TRCQCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVIIECTLR), REG_TRCVIIECTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSEQEVR1), REG_TRCSEQEVR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTRLDVR1), REG_TRCCNTRLDVR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC1), REG_TRCIMSPEC1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCPROCSELR), REG_TRCPROCSELR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVISSCTLR), REG_TRCVISSCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSEQEVR2), REG_TRCSEQEVR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTRLDVR2), REG_TRCCNTRLDVR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC2), REG_TRCIMSPEC2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVIPCSSCTLR), REG_TRCVIPCSSCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTRLDVR3), REG_TRCCNTRLDVR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC3), REG_TRCIMSPEC3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCONFIGR), REG_TRCCONFIGR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTCTLR0), REG_TRCCNTCTLR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC4), REG_TRCIMSPEC4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTCTLR1), REG_TRCCNTCTLR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC5), REG_TRCIMSPEC5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCAUXCTLR), REG_TRCAUXCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSEQRSTEVR), REG_TRCSEQRSTEVR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTCTLR2), REG_TRCCNTCTLR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC6), REG_TRCIMSPEC6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSEQSTR), REG_TRCSEQSTR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTCTLR3), REG_TRCCNTCTLR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCIMSPEC7), REG_TRCIMSPEC7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCEVENTCTL0R), REG_TRCEVENTCTL0R);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVDCTLR), REG_TRCVDCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCEXTINSELR), REG_TRCEXTINSELR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTVR0), REG_TRCCNTVR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCEVENTCTL1R), REG_TRCEVENTCTL1R);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVDSACCTLR), REG_TRCVDSACCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCEXTINSELR1), REG_TRCEXTINSELR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTVR1), REG_TRCCNTVR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSR), REG_TRCRSR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVDARCCTLR), REG_TRCVDARCCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCEXTINSELR2), REG_TRCEXTINSELR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTVR2), REG_TRCCNTVR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSTALLCTLR), REG_TRCSTALLCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCEXTINSELR3), REG_TRCEXTINSELR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCNTVR3), REG_TRCCNTVR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCTSCTLR), REG_TRCTSCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSYNCPR), REG_TRCSYNCPR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCCCTLR), REG_TRCCCCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCBBCTLR), REG_TRCBBCTLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR16), REG_TRCRSCTLR16);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR0), REG_TRCSSCCR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR0), REG_TRCSSPCICR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCOSLAR), REG_TRCOSLAR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR17), REG_TRCRSCTLR17);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR1), REG_TRCSSCCR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR1), REG_TRCSSPCICR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR2), REG_TRCRSCTLR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR18), REG_TRCRSCTLR18);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR2), REG_TRCSSCCR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR2), REG_TRCSSPCICR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR3), REG_TRCRSCTLR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR19), REG_TRCRSCTLR19);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR3), REG_TRCSSCCR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR3), REG_TRCSSPCICR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR4), REG_TRCRSCTLR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR20), REG_TRCRSCTLR20);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR4), REG_TRCSSCCR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR4), REG_TRCSSPCICR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCPDCR), REG_TRCPDCR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR5), REG_TRCRSCTLR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR21), REG_TRCRSCTLR21);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR5), REG_TRCSSCCR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR5), REG_TRCSSPCICR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR6), REG_TRCRSCTLR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR22), REG_TRCRSCTLR22);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR6), REG_TRCSSCCR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR6), REG_TRCSSPCICR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR7), REG_TRCRSCTLR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR23), REG_TRCRSCTLR23);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCCR7), REG_TRCSSCCR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSPCICR7), REG_TRCSSPCICR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR8), REG_TRCRSCTLR8);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR24), REG_TRCRSCTLR24);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR0), REG_TRCSSCSR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR9), REG_TRCRSCTLR9);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR25), REG_TRCRSCTLR25);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR1), REG_TRCSSCSR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR10), REG_TRCRSCTLR10);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR26), REG_TRCRSCTLR26);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR2), REG_TRCSSCSR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR11), REG_TRCRSCTLR11);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR27), REG_TRCRSCTLR27);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR3), REG_TRCSSCSR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR12), REG_TRCRSCTLR12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR28), REG_TRCRSCTLR28);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR4), REG_TRCSSCSR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR13), REG_TRCRSCTLR13);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR29), REG_TRCRSCTLR29);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR5), REG_TRCSSCSR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR14), REG_TRCRSCTLR14);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR30), REG_TRCRSCTLR30);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR6), REG_TRCSSCSR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR15), REG_TRCRSCTLR15);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCRSCTLR31), REG_TRCRSCTLR31);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCSSCSR7), REG_TRCSSCSR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR0), REG_TRCACVR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR8), REG_TRCACVR8);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR0), REG_TRCACATR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR8), REG_TRCACATR8);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR0), REG_TRCDVCVR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR4), REG_TRCDVCVR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR0), REG_TRCDVCMR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR4), REG_TRCDVCMR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR1), REG_TRCACVR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR9), REG_TRCACVR9);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR1), REG_TRCACATR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR9), REG_TRCACATR9);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR2), REG_TRCACVR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR10), REG_TRCACVR10);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR2), REG_TRCACATR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR10), REG_TRCACATR10);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR1), REG_TRCDVCVR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR5), REG_TRCDVCVR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR1), REG_TRCDVCMR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR5), REG_TRCDVCMR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR3), REG_TRCACVR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR11), REG_TRCACVR11);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR3), REG_TRCACATR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR11), REG_TRCACATR11);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR4), REG_TRCACVR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR12), REG_TRCACVR12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR4), REG_TRCACATR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR12), REG_TRCACATR12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR2), REG_TRCDVCVR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR6), REG_TRCDVCVR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR2), REG_TRCDVCMR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR6), REG_TRCDVCMR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR5), REG_TRCACVR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR13), REG_TRCACVR13);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR5), REG_TRCACATR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR13), REG_TRCACATR13);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR6), REG_TRCACVR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR14), REG_TRCACVR14);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR6), REG_TRCACATR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR14), REG_TRCACATR14);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR3), REG_TRCDVCVR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCVR7), REG_TRCDVCVR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR3), REG_TRCDVCMR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCDVCMR7), REG_TRCDVCMR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR7), REG_TRCACVR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACVR15), REG_TRCACVR15);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR7), REG_TRCACATR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCACATR15), REG_TRCACATR15);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR0), REG_TRCCIDCVR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR0), REG_TRCVMIDCVR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCCTLR0), REG_TRCCIDCCTLR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCCTLR1), REG_TRCCIDCCTLR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR1), REG_TRCCIDCVR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR1), REG_TRCVMIDCVR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCCTLR0), REG_TRCVMIDCCTLR0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCCTLR1), REG_TRCVMIDCCTLR1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR2), REG_TRCCIDCVR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR2), REG_TRCVMIDCVR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR3), REG_TRCCIDCVR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR3), REG_TRCVMIDCVR3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR4), REG_TRCCIDCVR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR4), REG_TRCVMIDCVR4);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR5), REG_TRCCIDCVR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR5), REG_TRCVMIDCVR5);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR6), REG_TRCCIDCVR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR6), REG_TRCVMIDCVR6);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCIDCVR7), REG_TRCCIDCVR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCVMIDCVR7), REG_TRCVMIDCVR7);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCITCTRL), REG_TRCITCTRL);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCLAIMSET), REG_TRCCLAIMSET);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCCLAIMCLR), REG_TRCCLAIMCLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRCLAR), REG_TRCLAR);
+ builder.AddMemberWithValue(get_system_register_name(REG_TEECR32_EL1), REG_TEECR32_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TEEHBR32_EL1), REG_TEEHBR32_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDCCSR_EL0), REG_MDCCSR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDDTR_EL0), REG_MDDTR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDDTRTX_EL0), REG_MDDTRTX_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBGVCR32_EL2), REG_DBGVCR32_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MIDR_EL1), REG_MIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPIDR_EL1), REG_MPIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REVIDR_EL1), REG_REVIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_PFR0_EL1), REG_ID_PFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_PFR1_EL1), REG_ID_PFR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_DFR0_EL1), REG_ID_DFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AFR0_EL1), REG_ID_AFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_MMFR0_EL1), REG_ID_MMFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_MMFR1_EL1), REG_ID_MMFR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_MMFR2_EL1), REG_ID_MMFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_MMFR3_EL1), REG_ID_MMFR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_ISAR0_EL1), REG_ID_ISAR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_ISAR1_EL1), REG_ID_ISAR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_ISAR2_EL1), REG_ID_ISAR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_ISAR3_EL1), REG_ID_ISAR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_ISAR4_EL1), REG_ID_ISAR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_ISAR5_EL1), REG_ID_ISAR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_MMFR4_EL1), REG_ID_MMFR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_ISAR6_EL1), REG_ID_ISAR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MVFR0_EL1), REG_MVFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MVFR1_EL1), REG_MVFR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MVFR2_EL1), REG_MVFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA32RES3_EL1), REG_ID_AA32RES3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_PFR2_EL1), REG_ID_PFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA32RES5_EL1), REG_ID_AA32RES5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA32RES6_EL1), REG_ID_AA32RES6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA32RES7_EL1), REG_ID_AA32RES7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64PFR0_EL1), REG_ID_AA64PFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64PFR1_EL1), REG_ID_AA64PFR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64PFR2_EL1), REG_ID_AA64PFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64PFR3_EL1), REG_ID_AA64PFR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ZFR0_EL1), REG_ID_AA64ZFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64SMFR0_EL1), REG_ID_AA64SMFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ZFR2_EL1), REG_ID_AA64ZFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ZFR3_EL1), REG_ID_AA64ZFR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64DFR0_EL1), REG_ID_AA64DFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64DFR1_EL1), REG_ID_AA64DFR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64DFR2_EL1), REG_ID_AA64DFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64DFR3_EL1), REG_ID_AA64DFR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64AFR0_EL1), REG_ID_AA64AFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64AFR1_EL1), REG_ID_AA64AFR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64AFR2_EL1), REG_ID_AA64AFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64AFR3_EL1), REG_ID_AA64AFR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR0_EL1), REG_ID_AA64ISAR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR1_EL1), REG_ID_AA64ISAR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR2_EL1), REG_ID_AA64ISAR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR3_EL1), REG_ID_AA64ISAR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR4_EL1), REG_ID_AA64ISAR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR5_EL1), REG_ID_AA64ISAR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR6_EL1), REG_ID_AA64ISAR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64ISAR7_EL1), REG_ID_AA64ISAR7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR0_EL1), REG_ID_AA64MMFR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR1_EL1), REG_ID_AA64MMFR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR2_EL1), REG_ID_AA64MMFR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR3_EL1), REG_ID_AA64MMFR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR4_EL1), REG_ID_AA64MMFR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR5_EL1), REG_ID_AA64MMFR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR6_EL1), REG_ID_AA64MMFR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ID_AA64MMFR7_EL1), REG_ID_AA64MMFR7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCTLR_EL21), REG_SCTLR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACTLR_EL21), REG_ACTLR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPTR_EL21), REG_CPTR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_RGSR_EL1), REG_RGSR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_GCR_EL1), REG_GCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRFCR_EL1), REG_TRFCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SMPRI_EL1), REG_SMPRI_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SMCR_EL21), REG_SMCR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_TTBR0_EL21), REG_TTBR0_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_TTBR1_EL21), REG_TTBR1_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_TCR_EL21), REG_TCR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIAKEYLO_EL21), REG_APIAKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIAKEYHI_EL21), REG_APIAKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIBKEYLO_EL21), REG_APIBKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIBKEYHI_EL21), REG_APIBKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDAKEYLO_EL21), REG_APDAKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDAKEYHI_EL21), REG_APDAKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDBKEYLO_EL21), REG_APDBKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDBKEYHI_EL21), REG_APDBKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APGAKEYLO_EL21), REG_APGAKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APGAKEYHI_EL21), REG_APGAKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_EL21), REG_SPSR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ELR_EL21), REG_ELR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_EL0), REG_SP_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSEL), REG_SPSEL);
+ builder.AddMemberWithValue(get_system_register_name(REG_NESTEDCURRENTEL), REG_NESTEDCURRENTEL);
+ builder.AddMemberWithValue(get_system_register_name(REG_PAN), REG_PAN);
+ builder.AddMemberWithValue(get_system_register_name(REG_UAO), REG_UAO);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_PMR_EL1), REG_ICV_PMR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR0_EL21), REG_AFSR0_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR1_EL21), REG_AFSR1_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ESR_EL21), REG_ESR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERRIDR_EL1), REG_ERRIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERRSELR_EL1), REG_ERRSELR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXCTLR_EL1), REG_ERXCTLR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXSTATUS_EL1), REG_ERXSTATUS_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXADDR_EL1), REG_ERXADDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXPFGCTL_EL1), REG_ERXPFGCTL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXPFGCDN_EL1), REG_ERXPFGCDN_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXMISC0_EL1), REG_ERXMISC0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXMISC1_EL1), REG_ERXMISC1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXMISC2_EL1), REG_ERXMISC2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXMISC3_EL1), REG_ERXMISC3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ERXTS_EL1), REG_ERXTS_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TFSR_EL1), REG_TFSR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TFSRE0_EL1), REG_TFSRE0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_FAR_EL21), REG_FAR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PAR_EL1), REG_PAR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSCR_EL1), REG_PMSCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSICR_EL1), REG_PMSICR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSIRR_EL1), REG_PMSIRR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSFCR_EL1), REG_PMSFCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSEVFR_EL1), REG_PMSEVFR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSLATFR_EL1), REG_PMSLATFR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSIDR_EL1), REG_PMSIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMBLIMITR_EL1), REG_PMBLIMITR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMBPTR_EL1), REG_PMBPTR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMBSR_EL1), REG_PMBSR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMBIDR_EL1), REG_PMBIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRBLIMITR_EL1), REG_TRBLIMITR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRBPTR_EL1), REG_TRBPTR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRBBASER_EL1), REG_TRBBASER_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRBSR_EL1), REG_TRBSR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRBMAR_EL1), REG_TRBMAR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRBTRG_EL1), REG_TRBTRG_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMINTENSET_EL1), REG_PMINTENSET_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMINTENCLR_EL1), REG_PMINTENCLR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMMIR_EL1), REG_PMMIR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MAIR_EL21), REG_MAIR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMAIR_EL21), REG_AMAIR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_LORSA_EL1), REG_LORSA_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LOREA_EL1), REG_LOREA_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LORN_EL1), REG_LORN_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LORC_EL1), REG_LORC_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LORID_EL1), REG_LORID_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAM1_EL1), REG_MPAM1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAM0_EL1), REG_MPAM0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_LWR_EL21), REG_CTRR_C_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_UPR_EL21), REG_CTRR_C_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_LWR_EL21), REG_CTRR_D_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_UPR_EL21), REG_CTRR_D_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_LWR_EL12), REG_CTRR_C_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_UPR_EL12), REG_CTRR_C_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_LWR_EL12), REG_CTRR_D_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_UPR_EL12), REG_CTRR_D_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_LWR_EL2), REG_CTRR_C_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_UPR_EL2), REG_CTRR_C_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_LWR_EL2), REG_CTRR_D_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_UPR_EL2), REG_CTRR_D_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_CTL_EL21), REG_CTRR_C_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_CTL_EL21), REG_CTRR_D_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_CTL_EL12), REG_CTRR_C_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_CTL_EL12), REG_CTRR_D_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_C_CTL_EL2), REG_CTRR_C_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_D_CTL_EL2), REG_CTRR_D_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_LWR_EL21), REG_CTXR_A_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_UPR_EL21), REG_CTXR_A_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_LWR_EL21), REG_CTXR_B_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_UPR_EL21), REG_CTXR_B_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_LWR_EL21), REG_CTXR_C_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_UPR_EL21), REG_CTXR_C_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_LWR_EL21), REG_CTXR_D_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_UPR_EL21), REG_CTXR_D_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_LWR_EL12), REG_CTXR_A_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_UPR_EL12), REG_CTXR_A_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_LWR_EL12), REG_CTXR_B_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_UPR_EL12), REG_CTXR_B_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_LWR_EL12), REG_CTXR_C_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_UPR_EL12), REG_CTXR_C_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_LWR_EL12), REG_CTXR_D_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_UPR_EL12), REG_CTXR_D_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_LWR_EL2), REG_CTXR_A_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_UPR_EL2), REG_CTXR_A_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_LWR_EL2), REG_CTXR_B_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_UPR_EL2), REG_CTXR_B_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_LWR_EL2), REG_CTXR_C_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_UPR_EL2), REG_CTXR_C_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_LWR_EL2), REG_CTXR_D_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_UPR_EL2), REG_CTXR_D_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_CTL_EL21), REG_CTXR_A_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_CTL_EL21), REG_CTXR_B_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_CTL_EL21), REG_CTXR_C_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_CTL_EL21), REG_CTXR_D_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_CTL_EL12), REG_CTXR_A_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_CTL_EL12), REG_CTXR_B_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_CTL_EL12), REG_CTXR_C_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_CTL_EL12), REG_CTXR_D_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_A_CTL_EL2), REG_CTXR_A_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_B_CTL_EL2), REG_CTXR_B_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_C_CTL_EL2), REG_CTXR_C_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTXR_D_CTL_EL2), REG_CTXR_D_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_C_LWR_EL2), REG_ACC_CTRR_C_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_C_UPR_EL2), REG_ACC_CTRR_C_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_D_LWR_EL2), REG_ACC_CTRR_D_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_D_UPR_EL2), REG_ACC_CTRR_D_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_A_LWR_EL2), REG_ACC_CTXR_A_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_A_UPR_EL2), REG_ACC_CTXR_A_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_B_LWR_EL2), REG_ACC_CTXR_B_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_B_UPR_EL2), REG_ACC_CTXR_B_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_C_LWR_EL2), REG_ACC_CTXR_C_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_C_UPR_EL2), REG_ACC_CTXR_C_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_D_LWR_EL2), REG_ACC_CTXR_D_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_D_UPR_EL2), REG_ACC_CTXR_D_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_C_CTL_EL2), REG_ACC_CTRR_C_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_D_CTL_EL2), REG_ACC_CTRR_D_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_A_CTL_EL2), REG_ACC_CTXR_A_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_B_CTL_EL2), REG_ACC_CTXR_B_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_C_CTL_EL2), REG_ACC_CTXR_C_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTXR_D_CTL_EL2), REG_ACC_CTXR_D_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VBAR_EL21), REG_VBAR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_RVBAR_EL1), REG_RVBAR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_RMR_EL1), REG_RMR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ISR_EL1), REG_ISR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DISR_EL1), REG_DISR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_IAR0_EL1), REG_ICV_IAR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_EOIR0_EL1), REG_ICV_EOIR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_HPPIR0_EL1), REG_ICV_HPPIR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_BPR0_EL1), REG_ICV_BPR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP0R0_EL1), REG_ICC_AP0R0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP0R1_EL1), REG_ICC_AP0R1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP0R2_EL1), REG_ICC_AP0R2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP0R3_EL1), REG_ICC_AP0R3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP1R0_EL1), REG_ICC_AP1R0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP1R1_EL1), REG_ICC_AP1R1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP1R2_EL1), REG_ICC_AP1R2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_AP1R3_EL1), REG_ICC_AP1R3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_DIR_EL1), REG_ICV_DIR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_RPR_EL1), REG_ICV_RPR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_SGI1R_EL1), REG_ICC_SGI1R_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_ASGI1R_EL1), REG_ICC_ASGI1R_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_SGI0R_EL1), REG_ICC_SGI0R_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_IAR1_EL1), REG_ICV_IAR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_EOIR1_EL1), REG_ICV_EOIR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_HPPIR1_EL1), REG_ICV_HPPIR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_BPR1_EL1), REG_ICV_BPR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_CTLR_EL1), REG_ICV_CTLR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_SRE_EL1), REG_ICC_SRE_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_IGRPEN0_EL1), REG_ICV_IGRPEN0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICV_IGRPEN1_EL1), REG_ICV_IGRPEN1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_SEIEN_EL1), REG_ICC_SEIEN_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CONTEXTIDR_EL21), REG_CONTEXTIDR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDR_EL1), REG_TPIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCXTNUM_EL21), REG_SCXTNUM_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTKCTL_EL1), REG_REDIR_CNTKCTL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID0), REG_HID0);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID25), REG_HID25);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID26), REG_HID26);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID27), REG_HID27);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID28), REG_HID28);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID29), REG_HID29);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID34), REG_HID34);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID1), REG_HID1);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID21), REG_HID21);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIUVCSCUPCMDCRD), REG_BIUVCSCUPCMDCRD);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIUVCSCUPDATCRD), REG_BIUVCSCUPDATCRD);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID2), REG_HID2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID30), REG_HID30);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID31), REG_HID31);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID32), REG_HID32);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID33), REG_HID33);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID3), REG_HID3);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIUVCSCUPCMDCRDC2), REG_BIUVCSCUPCMDCRDC2);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIUVCSCUPDATCRDC2), REG_BIUVCSCUPDATCRDC2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID4), REG_HID4);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID5), REG_HID5);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID6), REG_HID6);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID7), REG_HID7);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID8), REG_HID8);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID9), REG_HID9);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID10), REG_HID10);
+ builder.AddMemberWithValue(get_system_register_name(REG_BLOCK_CMAINT_CFG), REG_BLOCK_CMAINT_CFG);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID11), REG_HID11);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID18), REG_HID18);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID36), REG_HID36);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID37), REG_HID37);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID12), REG_HID12);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID15), REG_HID15);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID19), REG_HID19);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIU_TLIMIT), REG_BIU_TLIMIT);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID13), REG_HID13);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID_RCTX_G0CTL), REG_HID_RCTX_G0CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID_RCTX_G1CTL), REG_HID_RCTX_G1CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID14), REG_HID14);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID16), REG_HID16);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_WRR2), REG_LLC_WRR2);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIU_AFI_CFG), REG_BIU_AFI_CFG);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID17), REG_HID17);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID24), REG_HID24);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID35), REG_HID35);
+ builder.AddMemberWithValue(get_system_register_name(REG_CCSIDRPL1_I_EL1), REG_CCSIDRPL1_I_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CLIDR_EL1), REG_CLIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SMIDR_EL1), REG_SMIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AIDR_EL1), REG_AIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR0_EL1), REG_PMCR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_APPL_CONTEXTPTR), REG_APPL_CONTEXTPTR);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_CTL_EL21), REG_LD_LATPROF_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTL01_EL1), REG_AON_CPU_MSTALL_CTL01_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PM_MEMFLT_CTL23_EL1), REG_PM_MEMFLT_CTL23_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTV_CTL_EL0), REG_REDIR_ACNTV_CTL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_ACNTVCTSS_NOREDIR_EL0), REG_LCL_ACNTVCTSS_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR1_EL21), REG_PMCR1_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_CTR_EL1), REG_LD_LATPROF_CTR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTL23_EL1), REG_AON_CPU_MSTALL_CTL23_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PM_MEMFLT_CTL45_EL1), REG_PM_MEMFLT_CTL45_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTRDIR_EL21), REG_AGTCNTRDIR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTKCTL_NOREDIR_EL1), REG_AGTCNTKCTL_NOREDIR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR2_EL1), REG_PMCR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_STS_EL1), REG_LD_LATPROF_STS_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTL45_EL1), REG_AON_CPU_MSTALL_CTL45_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTHP_CVAL_EL2), REG_REDIR_ACNTHP_CVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_CNTVCT_NOREDIR_EL0), REG_LCL_CNTVCT_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTP_CVAL_NOREDIR_EL0), REG_AGTCNTP_CVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR3_EL1), REG_PMCR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_INF_EL1), REG_LD_LATPROF_INF_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTL67_EL1), REG_AON_CPU_MSTALL_CTL67_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTHP_TVAL_EL2), REG_REDIR_ACNTHP_TVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_CNTPCTSS_NOREDIR_EL0), REG_LCL_CNTPCTSS_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTP_TVAL_NOREDIR_EL0), REG_AGTCNTP_TVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR4_EL1), REG_PMCR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_CTL_EL2), REG_LD_LATPROF_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MEMFLT_CTL01_EL1), REG_AON_CPU_MEMFLT_CTL01_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTHP_CTL_EL2), REG_REDIR_ACNTHP_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_CNTVCTSS_NOREDIR_EL0), REG_LCL_CNTVCTSS_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTP_CTL_NOREDIR_EL0), REG_AGTCNTP_CTL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMESR0_EL1), REG_PMESR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_CMD_EL1), REG_LD_LATPROF_CMD_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MEMFLT_CTL23_EL1), REG_AON_CPU_MEMFLT_CTL23_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTHV_CVAL_EL2), REG_REDIR_ACNTHV_CVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTV_CVAL_NOREDIR_EL0), REG_AGTCNTV_CVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMESR1_EL1), REG_PMESR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR1_EL2), REG_PMCR1_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MEMFLT_CTL45_EL1), REG_AON_CPU_MEMFLT_CTL45_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTHV_TVAL_EL2), REG_REDIR_ACNTHV_TVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTKCTL_NOREDIR_EL1), REG_CNTKCTL_NOREDIR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTV_TVAL_NOREDIR_EL0), REG_AGTCNTV_TVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_OPMAT0_EL1), REG_OPMAT0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR1_EL12), REG_PMCR1_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MEMFLT_CTL67_EL1), REG_AON_CPU_MEMFLT_CTL67_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTHV_CTL_EL2), REG_REDIR_ACNTHV_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTP_CVAL_NOREDIR_EL0), REG_CNTP_CVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTV_CTL_NOREDIR_EL0), REG_AGTCNTV_CTL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_OPMAT1_EL1), REG_OPMAT1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR1_GL12), REG_PMCR1_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR0_EL1), REG_AON_CPU_MSTALL_CTR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTFRQ_EL0), REG_REDIR_ACNTFRQ_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTP_TVAL_NOREDIR_EL0), REG_CNTP_TVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_CNTPCT_NOREDIR_EL0), REG_LCL_CNTPCT_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_OPMSK0_EL1), REG_OPMSK0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_CTL_EL12), REG_LD_LATPROF_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR1_EL1), REG_AON_CPU_MSTALL_CTR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTVOFF_EL2), REG_AGTCNTVOFF_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTP_CTL_NOREDIR_EL0), REG_CNTP_CTL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTV_CTL_NOREDIR_EL0), REG_CNTV_CTL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_OPMSK1_EL1), REG_OPMSK1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LD_LATPROF_INF_EL2), REG_LD_LATPROF_INF_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR2_EL1), REG_AON_CPU_MSTALL_CTR2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTP_CVAL_EL0), REG_REDIR_ACNTP_CVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTV_CVAL_NOREDIR_EL0), REG_CNTV_CVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_ACNTPCT_NOREDIR_EL0), REG_LCL_ACNTPCT_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR3_EL1), REG_AON_CPU_MSTALL_CTR3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTP_TVAL_EL0), REG_REDIR_ACNTP_TVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTV_TVAL_NOREDIR_EL0), REG_CNTV_TVAL_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMSA_HV_LOCK_EL2), REG_VMSA_HV_LOCK_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSWCTRL_EL1), REG_PMSWCTRL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR5_EL0), REG_PMCR5_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR4_EL1), REG_AON_CPU_MSTALL_CTR4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCOMPARE0_EL1), REG_PMCOMPARE0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCOMPARE1_EL1), REG_PMCOMPARE1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMSA_NV_LOCK_EL2), REG_VMSA_NV_LOCK_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSR_EL1), REG_PMSR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR5_EL1), REG_AON_CPU_MSTALL_CTR5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTP_CTL_EL0), REG_REDIR_ACNTP_CTL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCOMPARE5_EL1), REG_PMCOMPARE5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCOMPARE6_EL1), REG_PMCOMPARE6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCOMPARE7_EL1), REG_PMCOMPARE7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR_BVRNG4_EL1), REG_PMCR_BVRNG4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PM_PMI_PC), REG_PM_PMI_PC);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR6_EL1), REG_AON_CPU_MSTALL_CTR6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTV_CVAL_EL0), REG_REDIR_ACNTV_CVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_ACNTVCT_NOREDIR_EL0), REG_LCL_ACNTVCT_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR_BVRNG5_EL1), REG_PMCR_BVRNG5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CPU_MSTALL_CTR7_EL1), REG_AON_CPU_MSTALL_CTR7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTV_TVAL_EL0), REG_REDIR_ACNTV_TVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LCL_ACNTPCTSS_NOREDIR_EL0), REG_LCL_ACNTPCTSS_NOREDIR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CSSELR_EL1), REG_CSSELR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC0), REG_PMC0);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER0), REG_UPMCFILTER0);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER1), REG_UPMCFILTER1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER2), REG_UPMCFILTER2);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER3), REG_UPMCFILTER3);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER4), REG_UPMCFILTER4);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER5), REG_UPMCFILTER5);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER6), REG_UPMCFILTER6);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC1), REG_PMC1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCFILTER7), REG_UPMCFILTER7);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC2), REG_PMC2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC3), REG_PMC3);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC4), REG_PMC4);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC5), REG_PMC5);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC6), REG_PMC6);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC7), REG_PMC7);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC8), REG_PMC8);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMC9), REG_PMC9);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMTRHLD6_EL1), REG_PMTRHLD6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMTRHLD4_EL1), REG_PMTRHLD4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMTRHLD2_EL1), REG_PMTRHLD2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMMMAP_EL1), REG_PMMMAP_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTR_EL0), REG_CTR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_DCZID_EL0), REG_DCZID_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_NZCV), REG_NZCV);
+ builder.AddMemberWithValue(get_system_register_name(REG_DAIF), REG_DAIF);
+ builder.AddMemberWithValue(get_system_register_name(REG_SVCR), REG_SVCR);
+ builder.AddMemberWithValue(get_system_register_name(REG_DIT), REG_DIT);
+ builder.AddMemberWithValue(get_system_register_name(REG_SSBS), REG_SSBS);
+ builder.AddMemberWithValue(get_system_register_name(REG_TCO), REG_TCO);
+ builder.AddMemberWithValue(get_system_register_name(REG_FPCR), REG_FPCR);
+ builder.AddMemberWithValue(get_system_register_name(REG_FPSR), REG_FPSR);
+ builder.AddMemberWithValue(get_system_register_name(REG_DSPSR_EL0), REG_DSPSR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_DLR_EL0), REG_DLR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR_EL0), REG_PMCR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCNTENSET_EL0), REG_PMCNTENSET_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCNTENCLR_EL0), REG_PMCNTENCLR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMOVSCLR_EL0), REG_PMOVSCLR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSWINC_EL0), REG_PMSWINC_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSELR_EL0), REG_PMSELR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCCNTR_EL0), REG_PMCCNTR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMXEVTYPER_EL0), REG_PMXEVTYPER_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMXEVCNTR_EL0), REG_PMXEVCNTR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_DAIFCLR), REG_DAIFCLR);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMUSERENR_EL0), REG_PMUSERENR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMOVSSET_EL0), REG_PMOVSSET_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDR_EL0), REG_TPIDR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDRRO_EL0), REG_TPIDRRO_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDR2_EL0), REG_TPIDR2_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCXTNUM_EL0), REG_SCXTNUM_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMCR_EL0), REG_AMCR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMUSERENR_EL0), REG_AMUSERENR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMCNTENCLR0_EL0), REG_AMCNTENCLR0_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMCNTENSET0_EL0), REG_AMCNTENSET0_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMCNTENCLR1_EL0), REG_AMCNTENCLR1_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMCNTENSET1_EL0), REG_AMCNTENSET1_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR00_EL0), REG_AMEVCNTR00_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR01_EL0), REG_AMEVCNTR01_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR02_EL0), REG_AMEVCNTR02_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR03_EL0), REG_AMEVCNTR03_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR10_EL0), REG_AMEVCNTR10_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR11_EL0), REG_AMEVCNTR11_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR12_EL0), REG_AMEVCNTR12_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR13_EL0), REG_AMEVCNTR13_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR14_EL0), REG_AMEVCNTR14_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR15_EL0), REG_AMEVCNTR15_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR16_EL0), REG_AMEVCNTR16_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR17_EL0), REG_AMEVCNTR17_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR18_EL0), REG_AMEVCNTR18_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR19_EL0), REG_AMEVCNTR19_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR110_EL0), REG_AMEVCNTR110_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR111_EL0), REG_AMEVCNTR111_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR112_EL0), REG_AMEVCNTR112_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR113_EL0), REG_AMEVCNTR113_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR114_EL0), REG_AMEVCNTR114_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVCNTR115_EL0), REG_AMEVCNTR115_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER10_EL0), REG_AMEVTYPER10_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER11_EL0), REG_AMEVTYPER11_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER12_EL0), REG_AMEVTYPER12_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER13_EL0), REG_AMEVTYPER13_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER14_EL0), REG_AMEVTYPER14_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER15_EL0), REG_AMEVTYPER15_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER16_EL0), REG_AMEVTYPER16_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER17_EL0), REG_AMEVTYPER17_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER18_EL0), REG_AMEVTYPER18_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER19_EL0), REG_AMEVTYPER19_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER110_EL0), REG_AMEVTYPER110_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER111_EL0), REG_AMEVTYPER111_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER112_EL0), REG_AMEVTYPER112_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER113_EL0), REG_AMEVTYPER113_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER114_EL0), REG_AMEVTYPER114_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMEVTYPER115_EL0), REG_AMEVTYPER115_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTFRQ_EL0), REG_REDIR_CNTFRQ_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_CNTPCT_EL0), REG_REDIR_LCL_CNTPCT_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_CNTVCT_EL0), REG_REDIR_LCL_CNTVCT_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_CNTPCTSS_EL0), REG_REDIR_LCL_CNTPCTSS_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_CNTVCTSS_EL0), REG_REDIR_LCL_CNTVCTSS_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTP_TVAL_EL0), REG_REDIR_CNTP_TVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTP_CTL_EL0), REG_REDIR_CNTP_CTL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTP_CVAL_EL0), REG_REDIR_CNTP_CVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTV_TVAL_EL0), REG_REDIR_CNTV_TVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTV_CTL_EL0), REG_REDIR_CNTV_CTL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTV_CVAL_EL0), REG_REDIR_CNTV_CVAL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR0_EL0), REG_PMEVCNTR0_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR1_EL0), REG_PMEVCNTR1_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR2_EL0), REG_PMEVCNTR2_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR3_EL0), REG_PMEVCNTR3_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR4_EL0), REG_PMEVCNTR4_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR5_EL0), REG_PMEVCNTR5_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR6_EL0), REG_PMEVCNTR6_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR7_EL0), REG_PMEVCNTR7_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR8_EL0), REG_PMEVCNTR8_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR9_EL0), REG_PMEVCNTR9_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR10_EL0), REG_PMEVCNTR10_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR11_EL0), REG_PMEVCNTR11_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR12_EL0), REG_PMEVCNTR12_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR13_EL0), REG_PMEVCNTR13_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR14_EL0), REG_PMEVCNTR14_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR15_EL0), REG_PMEVCNTR15_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR16_EL0), REG_PMEVCNTR16_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR17_EL0), REG_PMEVCNTR17_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR18_EL0), REG_PMEVCNTR18_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR19_EL0), REG_PMEVCNTR19_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR20_EL0), REG_PMEVCNTR20_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR21_EL0), REG_PMEVCNTR21_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR22_EL0), REG_PMEVCNTR22_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR23_EL0), REG_PMEVCNTR23_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR24_EL0), REG_PMEVCNTR24_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR25_EL0), REG_PMEVCNTR25_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR26_EL0), REG_PMEVCNTR26_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR27_EL0), REG_PMEVCNTR27_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR28_EL0), REG_PMEVCNTR28_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR29_EL0), REG_PMEVCNTR29_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVCNTR30_EL0), REG_PMEVCNTR30_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER0_EL0), REG_PMEVTYPER0_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER1_EL0), REG_PMEVTYPER1_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER2_EL0), REG_PMEVTYPER2_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER3_EL0), REG_PMEVTYPER3_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER4_EL0), REG_PMEVTYPER4_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER5_EL0), REG_PMEVTYPER5_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER6_EL0), REG_PMEVTYPER6_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER7_EL0), REG_PMEVTYPER7_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER8_EL0), REG_PMEVTYPER8_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER9_EL0), REG_PMEVTYPER9_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER10_EL0), REG_PMEVTYPER10_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER11_EL0), REG_PMEVTYPER11_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER12_EL0), REG_PMEVTYPER12_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER13_EL0), REG_PMEVTYPER13_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER14_EL0), REG_PMEVTYPER14_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER15_EL0), REG_PMEVTYPER15_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER16_EL0), REG_PMEVTYPER16_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER17_EL0), REG_PMEVTYPER17_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER18_EL0), REG_PMEVTYPER18_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER19_EL0), REG_PMEVTYPER19_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER20_EL0), REG_PMEVTYPER20_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER21_EL0), REG_PMEVTYPER21_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER22_EL0), REG_PMEVTYPER22_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER23_EL0), REG_PMEVTYPER23_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER24_EL0), REG_PMEVTYPER24_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER25_EL0), REG_PMEVTYPER25_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER26_EL0), REG_PMEVTYPER26_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER27_EL0), REG_PMEVTYPER27_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER28_EL0), REG_PMEVTYPER28_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER29_EL0), REG_PMEVTYPER29_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMEVTYPER30_EL0), REG_PMEVTYPER30_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCCFILTR_EL0), REG_PMCCFILTR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LSU_ERR_STS), REG_LSU_ERR_STS);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATCTL1_EL1), REG_AFLATCTL1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN0_EL1), REG_AFLATVALBIN0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATINFLO_EL1), REG_AFLATINFLO_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LSU_ERR_CTL), REG_LSU_ERR_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATCTL2_EL1), REG_AFLATCTL2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN1_EL1), REG_AFLATVALBIN1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATINFHI_EL1), REG_AFLATINFHI_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATCTL3_EL1), REG_AFLATCTL3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN2_EL1), REG_AFLATVALBIN2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATCTL4_EL1), REG_AFLATCTL4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN3_EL1), REG_AFLATVALBIN3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_FILL_CTL), REG_LLC_FILL_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATCTL5_LO_EL1), REG_AFLATCTL5_LO_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN4_EL1), REG_AFLATVALBIN4_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATCTL5_HI_EL1), REG_AFLATCTL5_HI_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_FILL_DAT), REG_LLC_FILL_DAT);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN5_EL1), REG_AFLATVALBIN5_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN6_EL1), REG_AFLATVALBIN6_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_RAM_CONFIG), REG_LLC_RAM_CONFIG);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFLATVALBIN7_EL1), REG_AFLATVALBIN7_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_ERR_STS), REG_LLC_ERR_STS);
+ builder.AddMemberWithValue(get_system_register_name(REG_CMAINT_BCAST_LIST_0), REG_CMAINT_BCAST_LIST_0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CMAINT_BCAST_LIST_1), REG_CMAINT_BCAST_LIST_1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CMAINT_BCAST_CTL), REG_CMAINT_BCAST_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_ERR_ADR), REG_LLC_ERR_ADR);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_ERR_CTL), REG_LLC_ERR_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_ERR_INJ), REG_LLC_ERR_INJ);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_ERR_INF), REG_LLC_ERR_INF);
+ builder.AddMemberWithValue(get_system_register_name(REG_USERTAGSEL_EL1), REG_USERTAGSEL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UUSERTAG_EL0), REG_UUSERTAG_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_KUSERTAG_EL1), REG_KUSERTAG_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_HUSERTAG_EL2), REG_HUSERTAG_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_TRACE_CTL0), REG_LLC_TRACE_CTL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_TRACE_CTL1), REG_LLC_TRACE_CTL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC), REG_LLC_UP_REQ_VC);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC_THRESH), REG_LLC_UP_REQ_VC_THRESH);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC_2), REG_LLC_UP_REQ_VC_2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC_THRESH_2), REG_LLC_UP_REQ_VC_THRESH_2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DRAM_HASH0), REG_LLC_DRAM_HASH0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DRAM_HASH1), REG_LLC_DRAM_HASH1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DRAM_HASH2), REG_LLC_DRAM_HASH2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DRAM_HASH3), REG_LLC_DRAM_HASH3);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_TRACE_CTL2), REG_LLC_TRACE_CTL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DRAM_HASH4), REG_LLC_DRAM_HASH4);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC_3), REG_LLC_UP_REQ_VC_3);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC_THRESH_3), REG_LLC_UP_REQ_VC_THRESH_3);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC_4), REG_LLC_UP_REQ_VC_4);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_UP_REQ_VC_THRESH_4), REG_LLC_UP_REQ_VC_THRESH_4);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_HASH0), REG_LLC_HASH0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_HASH1), REG_LLC_HASH1);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_HASH2), REG_LLC_HASH2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_HASH3), REG_LLC_HASH3);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_WRR), REG_LLC_WRR);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DRAM_HASH5), REG_LLC_DRAM_HASH5);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DRAM_HASH6), REG_LLC_DRAM_HASH6);
+ builder.AddMemberWithValue(get_system_register_name(REG_VPIDR_EL2), REG_VPIDR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMPIDR_EL2), REG_VMPIDR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCTLR_EL2), REG_SCTLR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACTLR_EL2), REG_ACTLR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HCR_EL2), REG_HCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDCR_EL2), REG_MDCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPTR_EL2), REG_CPTR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HSTR_EL2), REG_HSTR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HFGRTR_EL2), REG_HFGRTR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HFGWTR_EL2), REG_HFGWTR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HFGITR_EL2), REG_HFGITR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HACR_EL2), REG_HACR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRFCR_EL2), REG_TRFCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HCRX_EL2), REG_HCRX_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SMPRIMAP_EL2), REG_SMPRIMAP_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SMCR_EL2), REG_SMCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SDER32_EL2), REG_SDER32_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TTBR0_EL2), REG_TTBR0_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TTBR1_EL2), REG_TTBR1_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TCR_EL2), REG_TCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VTTBR_EL2), REG_VTTBR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VTCR_EL2), REG_VTCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VNCR_EL2), REG_VNCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VSTTBR_EL2), REG_VSTTBR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VSTCR_EL2), REG_VSTCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_DACR32_EL2), REG_DACR32_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HDFGRTR_EL2), REG_HDFGRTR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HDFGWTR_EL2), REG_HDFGWTR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_NV_EL21), REG_SPSR_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ELR_NV_EL21), REG_ELR_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_EL1), REG_SP_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_IRQ), REG_SPSR_IRQ);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_ABT), REG_SPSR_ABT);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_UND), REG_SPSR_UND);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_FIQ), REG_SPSR_FIQ);
+ builder.AddMemberWithValue(get_system_register_name(REG_IFSR32_EL2), REG_IFSR32_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR0_EL2), REG_AFSR0_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR1_EL2), REG_AFSR1_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ESR_NV_EL21), REG_ESR_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_VSESR_EL2), REG_VSESR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_FPEXC32_EL2), REG_FPEXC32_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TFSR_EL2), REG_TFSR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_FAR_NV_EL21), REG_FAR_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_HPFAR_EL2), REG_HPFAR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSCR_EL2), REG_PMSCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MAIR_EL2), REG_MAIR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMAIR_EL2), REG_AMAIR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMHCR_EL2), REG_MPAMHCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPMV_EL2), REG_MPAMVPMV_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAM2_EL2), REG_MPAM2_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM0_EL2), REG_MPAMVPM0_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM1_EL2), REG_MPAMVPM1_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM2_EL2), REG_MPAMVPM2_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM3_EL2), REG_MPAMVPM3_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM4_EL2), REG_MPAMVPM4_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM5_EL2), REG_MPAMVPM5_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM6_EL2), REG_MPAMVPM6_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAMVPM7_EL2), REG_MPAMVPM7_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VBAR_EL2), REG_VBAR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_RVBAR_EL2), REG_RVBAR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_RMR_EL2), REG_RMR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VDISR_EL2), REG_VDISR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP0R0_EL2), REG_ICH_AP0R0_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP0R1_EL2), REG_ICH_AP0R1_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP0R2_EL2), REG_ICH_AP0R2_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP0R3_EL2), REG_ICH_AP0R3_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP1R0_EL2), REG_ICH_AP1R0_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP1R1_EL2), REG_ICH_AP1R1_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP1R2_EL2), REG_ICH_AP1R2_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_AP1R3_EL2), REG_ICH_AP1R3_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_VSEIR_EL2), REG_ICH_VSEIR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_SRE_EL2), REG_ICC_SRE_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_HCR_EL2), REG_ICH_HCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_VTR_EL2), REG_ICH_VTR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_MISR_EL2), REG_ICH_MISR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_EISR_EL2), REG_ICH_EISR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_ELRSR_EL2), REG_ICH_ELRSR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_VMCR_EL2), REG_ICH_VMCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR0_EL2), REG_ICH_LR0_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR1_EL2), REG_ICH_LR1_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR2_EL2), REG_ICH_LR2_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR3_EL2), REG_ICH_LR3_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR4_EL2), REG_ICH_LR4_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR5_EL2), REG_ICH_LR5_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR6_EL2), REG_ICH_LR6_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR7_EL2), REG_ICH_LR7_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR8_EL2), REG_ICH_LR8_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR9_EL2), REG_ICH_LR9_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR10_EL2), REG_ICH_LR10_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR11_EL2), REG_ICH_LR11_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR12_EL2), REG_ICH_LR12_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR13_EL2), REG_ICH_LR13_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR14_EL2), REG_ICH_LR14_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICH_LR15_EL2), REG_ICH_LR15_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CONTEXTIDR_EL2), REG_CONTEXTIDR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDR_EL2), REG_TPIDR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCXTNUM_EL2), REG_SCXTNUM_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTVOFF_EL2), REG_CNTVOFF_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTHCTL_EL2), REG_REDIR_CNTHCTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTHP_TVAL_EL2), REG_REDIR_CNTHP_TVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTHP_CTL_EL2), REG_REDIR_CNTHP_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTHP_CVAL_EL2), REG_REDIR_CNTHP_CVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTHV_TVAL_EL2), REG_REDIR_CNTHV_TVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTHV_CTL_EL2), REG_REDIR_CNTHV_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_CNTHV_CVAL_EL2), REG_REDIR_CNTHV_CVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTHVS_TVAL_EL2), REG_CNTHVS_TVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTHVS_CTL_EL2), REG_CNTHVS_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTHVS_CVAL_EL2), REG_CNTHVS_CVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTHPS_TVAL_EL2), REG_CNTHPS_TVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTHPS_CTL_EL2), REG_CNTHPS_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTHPS_CVAL_EL2), REG_CNTHPS_CVAL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_FED_ERR_STS), REG_FED_ERR_STS);
+ builder.AddMemberWithValue(get_system_register_name(REG_FED_ERR_CTL), REG_FED_ERR_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_APCTL_EL21), REG_APCTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_KERNKEYLO_EL21), REG_KERNKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_KERNKEYHI_EL21), REG_KERNKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMSA_LOCK_EL1), REG_VMSA_LOCK_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMX_STATE_T_EL1), REG_AMX_STATE_T_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMX_CONFIG_EL21), REG_AMX_CONFIG_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMSA_LOCK_EL2), REG_VMSA_LOCK_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_UPR_EL21), REG_CTRR_B_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_LWR_EL21), REG_CTRR_B_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_SETUP_GL21), REG_SP_SETUP_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_SETUP_GL2), REG_SP_SETUP_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_CTL_EL21), REG_CTRR_B_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_LWR_EL21), REG_CTRR_A_LWR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_UPR_EL21), REG_CTRR_A_UPR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_CTL_EL21), REG_CTRR_A_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMSA_LOCK_EL12), REG_VMSA_LOCK_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTV_CTL_EL02), REG_AGTCNTV_CTL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMX_STATE_EL1), REG_AMX_STATE_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMX_STATUS_EL1), REG_AMX_STATUS_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTP_CVAL_EL02), REG_AGTCNTP_CVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTP_TVAL_EL02), REG_REDIR_ACNTP_TVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTP_CTL_EL02), REG_AGTCNTP_CTL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTV_CVAL_EL02), REG_AGTCNTV_CVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTV_TVAL_EL02), REG_AGTCNTV_TVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMX_CONFIG_EL12), REG_AMX_CONFIG_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMX_CONFIG_EL2), REG_AMX_CONFIG_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_EL0), REG_SPRR_HUPERM_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_EL0), REG_SPRR_VUPERM_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_CTL_EL2), REG_CTRR_A_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_CTL_EL2), REG_CTRR_B_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_LWR_EL2), REG_CTRR_A_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_UPR_EL2), REG_CTRR_A_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_LWR_EL2), REG_CTRR_B_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_UPR_EL2), REG_CTRR_B_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUMPRR_EL2), REG_SPRR_HUMPRR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_SH01_EL2), REG_SPRR_HUPERM_SH01_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_SH02_EL2), REG_SPRR_HUPERM_SH02_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_SH03_EL2), REG_SPRR_HUPERM_SH03_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_SH04_EL2), REG_SPRR_HUPERM_SH04_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_SH05_EL2), REG_SPRR_HUPERM_SH05_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_SH06_EL2), REG_SPRR_HUPERM_SH06_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_HUPERM_SH07_EL2), REG_SPRR_HUPERM_SH07_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUMPRR_EL1), REG_SPRR_VUMPRR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_SH01_EL1), REG_SPRR_VUPERM_SH01_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_SH02_EL1), REG_SPRR_VUPERM_SH02_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_SH03_EL1), REG_SPRR_VUPERM_SH03_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_SH04_EL1), REG_SPRR_VUPERM_SH04_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_SH05_EL1), REG_SPRR_VUPERM_SH05_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_SH06_EL1), REG_SPRR_VUPERM_SH06_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_VUPERM_SH07_EL1), REG_SPRR_VUPERM_SH07_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_LWR_EL12), REG_CTRR_A_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_UPR_EL12), REG_CTRR_A_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_LWR_EL12), REG_CTRR_B_LWR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_UPR_EL12), REG_CTRR_B_UPR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_A_CTL_EL12), REG_CTRR_A_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CTRR_B_CTL_EL12), REG_CTRR_B_CTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTKCTL_EL1), REG_REDIR_ACNTKCTL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTKCTL_EL12), REG_AGTCNTKCTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_PREDAKEYLO_EL1), REG_PREDAKEYLO_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PREDAKEYHI_EL1), REG_PREDAKEYHI_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PREDBKEYLO_EL1), REG_PREDBKEYLO_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PREDBKEYHI_EL1), REG_PREDBKEYHI_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SIQ_CFG_EL1), REG_SIQ_CFG_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_ACNTPCTSS_EL0), REG_REDIR_LCL_ACNTPCTSS_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_ACNTVCTSS_EL0), REG_REDIR_LCL_ACNTVCTSS_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AVNCR_EL2), REG_AVNCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_A_LWR_EL2), REG_ACC_CTRR_A_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_A_UPR_EL2), REG_ACC_CTRR_A_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_B_LWR_EL2), REG_ACC_CTRR_B_LWR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_B_UPR_EL2), REG_ACC_CTRR_B_UPR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_A_CTL_EL2), REG_ACC_CTRR_A_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_CTRR_B_CTL_EL2), REG_ACC_CTRR_B_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_ACNTPCT_EL0), REG_REDIR_LCL_ACNTPCT_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_LCL_ACNTVCT_EL0), REG_REDIR_LCL_ACNTVCT_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACFG_EL1), REG_ACFG_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AHCR_EL2), REG_AHCR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_APL_INTSTATUS_EL21), REG_APL_INTSTATUS_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APL_INTSTATUS_EL2), REG_APL_INTSTATUS_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_REDIR_ACNTHCTL_EL2), REG_REDIR_ACNTHCTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIAKEYLO_NV_EL21), REG_JAPIAKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIAKEYHI_NV_EL21), REG_JAPIAKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIBKEYLO_NV_EL21), REG_JAPIBKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIBKEYHI_NV_EL21), REG_JAPIBKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIAKEYLO_EL21), REG_JAPIAKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIAKEYHI_EL21), REG_JAPIAKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIBKEYLO_EL21), REG_JAPIBKEYLO_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIBKEYHI_EL21), REG_JAPIBKEYHI_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIAKEYLO_EL12), REG_JAPIAKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIAKEYHI_EL12), REG_JAPIAKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIBKEYLO_EL12), REG_JAPIBKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_JAPIBKEYHI_EL12), REG_JAPIBKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTRDIR_EL2), REG_AGTCNTRDIR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AGTCNTRDIR_EL12), REG_AGTCNTRDIR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_JRANGE_EL2), REG_JRANGE_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_JRANGE_EL21), REG_JRANGE_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JRANGE_EL12), REG_JRANGE_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_JCTL_EL2), REG_JCTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_JCTL_EL21), REG_JCTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_JCTL_EL12), REG_JCTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_JCTL_EL0), REG_JCTL_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMDSCR_EL1), REG_AMDSCR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCTLR_EL12), REG_SCTLR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACTLR_EL12), REG_ACTLR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPACR_EL12), REG_CPACR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRFCR_EL12), REG_TRFCR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SMCR_EL12), REG_SMCR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TTBR0_EL12), REG_TTBR0_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TTBR1_EL12), REG_TTBR1_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TCR_EL12), REG_TCR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_EL12), REG_SPSR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_ELR_EL12), REG_ELR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR0_EL12), REG_AFSR0_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR1_EL12), REG_AFSR1_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_ESR_EL12), REG_ESR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_TFSR_EL12), REG_TFSR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_FAR_EL12), REG_FAR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMSCR_EL12), REG_PMSCR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_MAIR_EL12), REG_MAIR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMAIR_EL12), REG_AMAIR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAM1_EL12), REG_MPAM1_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_VBAR_EL12), REG_VBAR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CONTEXTIDR_EL12), REG_CONTEXTIDR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCXTNUM_EL12), REG_SCXTNUM_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTKCTL_EL12), REG_CNTKCTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTP_TVAL_EL02), REG_CNTP_TVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTP_CTL_EL02), REG_CNTP_CTL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTP_CVAL_EL02), REG_CNTP_CVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTV_TVAL_EL02), REG_CNTV_TVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTV_CTL_EL02), REG_CNTV_CTL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTV_CVAL_EL02), REG_CNTV_CVAL_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_IPI_RR_LOCAL_EL1), REG_IPI_RR_LOCAL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_IPI_RR_GLOBAL_EL1), REG_IPI_RR_GLOBAL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AF_ERR_CFG0), REG_AF_ERR_CFG0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AP_ERR_CFG0), REG_AP_ERR_CFG0);
+ builder.AddMemberWithValue(get_system_register_name(REG_AF_ERR_SRC_IDS), REG_AF_ERR_SRC_IDS);
+ builder.AddMemberWithValue(get_system_register_name(REG_DPC_ERR_STS), REG_DPC_ERR_STS);
+ builder.AddMemberWithValue(get_system_register_name(REG_DPC_ERR_CTL), REG_DPC_ERR_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_CORE_CFG_EL21), REG_PROD_TRC_CORE_CFG_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_CORE_CFG), REG_TRACE_CORE_CFG);
+ builder.AddMemberWithValue(get_system_register_name(REG_IPI_SR), REG_IPI_SR);
+ builder.AddMemberWithValue(get_system_register_name(REG_APL_LRTMR_EL2), REG_APL_LRTMR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_APL_INTENABLE_EL2), REG_APL_INTENABLE_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_KTRACE_MESSAGE), REG_KTRACE_MESSAGE);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_CORE_CFG_EXT), REG_TRACE_CORE_CFG_EXT);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_CORE_CFG_EL2), REG_PROD_TRC_CORE_CFG_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID_PROD_TRC_CORE_CFG_EL1), REG_HID_PROD_TRC_CORE_CFG_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DBG_WRAP_GLB), REG_DBG_WRAP_GLB);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_STREAM_BASE), REG_TRACE_STREAM_BASE);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_STREAM_FILL), REG_TRACE_STREAM_FILL);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_STREAM_BASE1), REG_TRACE_STREAM_BASE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_STREAM_FILL1), REG_TRACE_STREAM_FILL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_STREAM_IRQ), REG_TRACE_STREAM_IRQ);
+ builder.AddMemberWithValue(get_system_register_name(REG_WATCHDOGDIAG0), REG_WATCHDOGDIAG0);
+ builder.AddMemberWithValue(get_system_register_name(REG_WATCHDOGDIAG1), REG_WATCHDOGDIAG1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_AUX_CTL), REG_TRACE_AUX_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_IPI_CR), REG_IPI_CR);
+ builder.AddMemberWithValue(get_system_register_name(REG_UTRIG_EVENT), REG_UTRIG_EVENT);
+ builder.AddMemberWithValue(get_system_register_name(REG_HID_PROD_TRC_MASK_EL1), REG_HID_PROD_TRC_MASK_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_CTL), REG_TRACE_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_TRACE_DAT), REG_TRACE_DAT);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_BASE0_GL2), REG_PROD_TRC_STRM_BASE0_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_BASE1_GL2), REG_PROD_TRC_STRM_BASE1_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CFG), REG_CPU_CFG);
+ builder.AddMemberWithValue(get_system_register_name(REG_PBLK_STS), REG_PBLK_STS);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_CTL_EL21), REG_PROD_TRC_CTL_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_BASE0_GL21), REG_PROD_TRC_STRM_BASE0_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_BASE1_GL21), REG_PROD_TRC_STRM_BASE1_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_FIQ_EL21), REG_PROD_TRC_STRM_FIQ_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_OVRD), REG_CPU_OVRD);
+ builder.AddMemberWithValue(get_system_register_name(REG_PBLK_EXE_ST), REG_PBLK_EXE_ST);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_CORE_GL_CTL_GL21), REG_PROD_TRC_CORE_GL_CTL_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_CORE_GL_CTL_GL2), REG_PROD_TRC_CORE_GL_CTL_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_OVRD), REG_ACC_OVRD);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_OVRD1), REG_ACC_OVRD1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPM_PWRDN_CTL), REG_CPM_PWRDN_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_BUF_RESTORE0_GL21), REG_PROD_TRC_BUF_RESTORE0_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_BUF_RESTORE1_GL21), REG_PROD_TRC_BUF_RESTORE1_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_EN_GL21), REG_PROD_TRC_EN_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PRE_LLCFLUSH_TMR), REG_PRE_LLCFLUSH_TMR);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIUINTFCTL_CFG), REG_BIUINTFCTL_CFG);
+ builder.AddMemberWithValue(get_system_register_name(REG_BIUINTFWRR_CFG), REG_BIUINTFWRR_CFG);
+ builder.AddMemberWithValue(get_system_register_name(REG_PRE_TD_TMR), REG_PRE_TD_TMR);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_SLP_WAKE_UP_TMR), REG_ACC_SLP_WAKE_UP_TMR);
+ builder.AddMemberWithValue(get_system_register_name(REG_PBLK_PSW_DLY), REG_PBLK_PSW_DLY);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_STS), REG_CPU_STS);
+ builder.AddMemberWithValue(get_system_register_name(REG_HIST_TRIG), REG_HIST_TRIG);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_BUF_RESTORE0_GL2), REG_PROD_TRC_BUF_RESTORE0_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_BUF_RESTORE1_GL2), REG_PROD_TRC_BUF_RESTORE1_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_FILL0_EL1), REG_PROD_TRC_STRM_FILL0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_FILL1_EL1), REG_PROD_TRC_STRM_FILL1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_ARRAY_INDEX), REG_ARRAY_INDEX);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_CTL_EL2), REG_PROD_TRC_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_EN_GL2), REG_PROD_TRC_EN_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_STRM_FIQ_EL2), REG_PROD_TRC_STRM_FIQ_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_TRC_CPMU_DUMP_TRIG_EL1), REG_PROD_TRC_CPMU_DUMP_TRIG_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PROD_LOSS_COUNT_EL1), REG_PROD_LOSS_COUNT_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SW_TRACE_DATA_EL0), REG_SW_TRACE_DATA_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_IL1_DATA0), REG_IL1_DATA0);
+ builder.AddMemberWithValue(get_system_register_name(REG_IL1_DATA1), REG_IL1_DATA1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DL1_DATA0), REG_DL1_DATA0);
+ builder.AddMemberWithValue(get_system_register_name(REG_DL1_DATA1), REG_DL1_DATA1);
+ builder.AddMemberWithValue(get_system_register_name(REG_MMUDATA0), REG_MMUDATA0);
+ builder.AddMemberWithValue(get_system_register_name(REG_MMUDATA1), REG_MMUDATA1);
+ builder.AddMemberWithValue(get_system_register_name(REG_DL1_DATA2), REG_DL1_DATA2);
+ builder.AddMemberWithValue(get_system_register_name(REG_IL1_DATA2), REG_IL1_DATA2);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DATA0), REG_LLC_DATA0);
+ builder.AddMemberWithValue(get_system_register_name(REG_LLC_DATA1), REG_LLC_DATA1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCTLR_EL3), REG_SCTLR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACTLR_EL3), REG_ACTLR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCR_EL3), REG_SCR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_SDER32_EL3), REG_SDER32_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPTR_EL3), REG_CPTR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_MDCR_EL3), REG_MDCR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TTBR0_EL3), REG_TTBR0_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TCR_EL3), REG_TCR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_EL3), REG_SPSR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_ELR_EL3), REG_ELR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_EL2), REG_SP_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR0_EL3), REG_AFSR0_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR1_EL3), REG_AFSR1_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_ESR_EL3), REG_ESR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TFSR_EL3), REG_TFSR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_FAR_EL3), REG_FAR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_MAIR_EL3), REG_MAIR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMAIR_EL3), REG_AMAIR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_MPAM3_EL3), REG_MPAM3_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_VBAR_EL3), REG_VBAR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_RVBAR_EL3), REG_RVBAR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_RMR_EL3), REG_RMR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_CTLR_EL3), REG_ICC_CTLR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_SRE_EL3), REG_ICC_SRE_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_ICC_IGRPEN1_EL3), REG_ICC_IGRPEN1_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDR_EL3), REG_TPIDR_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_SCXTNUM_EL3), REG_SCXTNUM_EL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_MMU_ERR_STS), REG_MMU_ERR_STS);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR1_GL21), REG_AFSR1_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR1_GL2), REG_AFSR1_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFSR1_GL12), REG_AFSR1_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_BP_OBJC_ADR_EL1), REG_BP_OBJC_ADR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_BP_OBJC_CTL_EL1), REG_BP_OBJC_CTL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_GL11_GL21), REG_SP_GL11_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_MMU_SESR_EL2), REG_MMU_SESR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_CONFIG_EL21), REG_SPRR_CONFIG_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_HPFAR_GL2), REG_HPFAR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_CONFIG_EL21), REG_GXF_CONFIG_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_AMRANGE_EL1), REG_SPRR_AMRANGE_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_CONFIG_EL2), REG_GXF_CONFIG_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_EL02), REG_SPRR_UPERM_EL02);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_EL21), REG_SPRR_PPERM_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_EL2), REG_SPRR_PPERM_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_APGAKEYLO_EL12), REG_APGAKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APGAKEYHI_EL12), REG_APGAKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_KERNKEYLO_EL12), REG_KERNKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_KERNKEYHI_EL12), REG_KERNKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AFPCR_EL0), REG_AFPCR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_GL22), REG_SP_GL22);
+ builder.AddMemberWithValue(get_system_register_name(REG_AMXIDR_EL1), REG_AMXIDR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UMPRR_EL1), REG_SPRR_UMPRR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PMPRR_EL21), REG_SPRR_PMPRR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PMPRR_EL2), REG_SPRR_PMPRR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_SH01_EL1), REG_SPRR_UPERM_SH01_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_SH02_EL1), REG_SPRR_UPERM_SH02_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_SH03_EL1), REG_SPRR_UPERM_SH03_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_SH04_EL1), REG_SPRR_UPERM_SH04_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_SH05_EL1), REG_SPRR_UPERM_SH05_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_SH06_EL1), REG_SPRR_UPERM_SH06_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_UPERM_SH07_EL1), REG_SPRR_UPERM_SH07_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH01_EL21), REG_SPRR_PPERM_SH01_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH02_EL21), REG_SPRR_PPERM_SH02_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH03_EL21), REG_SPRR_PPERM_SH03_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH04_EL21), REG_SPRR_PPERM_SH04_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH05_EL21), REG_SPRR_PPERM_SH05_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH06_EL21), REG_SPRR_PPERM_SH06_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH07_EL21), REG_SPRR_PPERM_SH07_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH01_EL2), REG_SPRR_PPERM_SH01_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH02_EL2), REG_SPRR_PPERM_SH02_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH03_EL2), REG_SPRR_PPERM_SH03_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH04_EL2), REG_SPRR_PPERM_SH04_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH05_EL2), REG_SPRR_PPERM_SH05_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH06_EL2), REG_SPRR_PPERM_SH06_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH07_EL2), REG_SPRR_PPERM_SH07_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PMPRR_EL12), REG_SPRR_PMPRR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH01_EL12), REG_SPRR_PPERM_SH01_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH02_EL12), REG_SPRR_PPERM_SH02_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH03_EL12), REG_SPRR_PPERM_SH03_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH04_EL12), REG_SPRR_PPERM_SH04_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH05_EL12), REG_SPRR_PPERM_SH05_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH06_EL12), REG_SPRR_PPERM_SH06_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_SH07_EL12), REG_SPRR_PPERM_SH07_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIAKEYLO_EL12), REG_APIAKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIAKEYHI_EL12), REG_APIAKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIBKEYLO_EL12), REG_APIBKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIBKEYHI_EL12), REG_APIBKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDAKEYLO_EL12), REG_APDAKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDAKEYHI_EL12), REG_APDAKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDBKEYLO_EL12), REG_APDBKEYLO_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDBKEYHI_EL12), REG_APDBKEYHI_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CURRENTG), REG_CURRENTG);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_ENTRY_EL21), REG_GXF_ENTRY_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_PABENTRY_EL21), REG_GXF_PABENTRY_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ASPSR_EL21), REG_ASPSR_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ADSPSR_EL0), REG_ADSPSR_EL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR1_GL2), REG_PMCR1_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ASPSR_NV_EL21), REG_ASPSR_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_PMCR1_GL21), REG_PMCR1_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_VBAR_GL12), REG_VBAR_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_GL12), REG_SPSR_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_ASPSR_GL12), REG_ASPSR_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_ESR_GL12), REG_ESR_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_ELR_GL12), REG_ELR_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_FAR_GL12), REG_FAR_GL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_GL1), REG_SP_GL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDR_GL1), REG_TPIDR_GL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_VBAR_GL21), REG_VBAR_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_GL21), REG_SPSR_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ASPSR_GL21), REG_ASPSR_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ESR_GL21), REG_ESR_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ELR_GL21), REG_ELR_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_FAR_GL21), REG_FAR_GL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SP_GL2), REG_SP_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_TPIDR_GL2), REG_TPIDR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VBAR_GL2), REG_VBAR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPSR_GL2), REG_SPSR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ASPSR_GL2), REG_ASPSR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ESR_GL2), REG_ESR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_ELR_GL2), REG_ELR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_FAR_GL2), REG_FAR_GL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_ENTRY_EL2), REG_GXF_ENTRY_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_PABENTRY_EL2), REG_GXF_PABENTRY_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_APCTL_EL2), REG_APCTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_APSTS_EL2), REG_APSTS_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_APSTS_NV1_EL1), REG_APSTS_NV1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_KERNKEYLO_NV_EL21), REG_KERNKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_KERNKEYHI_NV_EL21), REG_KERNKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_ASPSR_EL12), REG_ASPSR_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIAKEYLO_NV_EL21), REG_APIAKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIAKEYHI_NV_EL21), REG_APIAKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIBKEYLO_NV_EL21), REG_APIBKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APIBKEYHI_NV_EL21), REG_APIBKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDAKEYLO_NV_EL21), REG_APDAKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDAKEYHI_NV_EL21), REG_APDAKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDBKEYLO_NV_EL21), REG_APDBKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APDBKEYHI_NV_EL21), REG_APDBKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APGAKEYLO_NV_EL21), REG_APGAKEYLO_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_APGAKEYHI_NV_EL21), REG_APGAKEYHI_NV_EL21);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_CONFIG_EL2), REG_SPRR_CONFIG_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_AMRANGE_EL2), REG_SPRR_AMRANGE_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMKEYLO_EL2), REG_VMKEYLO_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_VMKEYHI_EL2), REG_VMKEYHI_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_MMU_SFAR_EL2), REG_MMU_SFAR_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_APSTS_EL12), REG_APSTS_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_APCTL_EL12), REG_APCTL_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_CONFIG_EL12), REG_GXF_CONFIG_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_ENTRY_EL12), REG_GXF_ENTRY_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_GXF_PABENTRY_EL12), REG_GXF_PABENTRY_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_CONFIG_EL12), REG_SPRR_CONFIG_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_AMRANGE_EL12), REG_SPRR_AMRANGE_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_MMU_SESR_CTL_EL2), REG_MMU_SESR_CTL_EL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_SPRR_PPERM_EL12), REG_SPRR_PPERM_EL12);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTPS_TVAL_EL1), REG_CNTPS_TVAL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTPS_CTL_EL1), REG_CNTPS_CTL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CNTPS_CVAL_EL1), REG_CNTPS_CVAL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_PSTATE_SPSEL), REG_PSTATE_SPSEL);
+ builder.AddMemberWithValue(get_system_register_name(REG_PWRDNSAVE0), REG_PWRDNSAVE0);
+ builder.AddMemberWithValue(get_system_register_name(REG_NRG_ACC_CTL), REG_NRG_ACC_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT0), REG_AON_CNT0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT0), REG_CPU_CNT0);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCR0_EL1), REG_UPMCR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC8), REG_UPMC8);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT8), REG_AON_CNT8);
+ builder.AddMemberWithValue(get_system_register_name(REG_PWRDNSAVE1), REG_PWRDNSAVE1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CORE_NRG_ACC_DAT), REG_CORE_NRG_ACC_DAT);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL0), REG_AON_CNT_CTL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL0), REG_CPU_CNT_CTL0);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMESR0_EL1), REG_UPMESR0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC9), REG_UPMC9);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL8), REG_AON_CNT_CTL8);
+ builder.AddMemberWithValue(get_system_register_name(REG_ACC_PWR_DN_SAVE), REG_ACC_PWR_DN_SAVE);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPM_NRG_ACC_DAT), REG_CPM_NRG_ACC_DAT);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT1), REG_AON_CNT1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT1), REG_CPU_CNT1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMSWCTRL_EL1), REG_UPMSWCTRL_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC10), REG_UPMC10);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT9), REG_AON_CNT9);
+ builder.AddMemberWithValue(get_system_register_name(REG_CORE_SRM_NRG_ACC_DAT), REG_CORE_SRM_NRG_ACC_DAT);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL1), REG_AON_CNT_CTL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL1), REG_CPU_CNT_CTL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMECM0_EL1), REG_UPMECM0_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC11), REG_UPMC11);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL9), REG_AON_CNT_CTL9);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL), REG_AON_CNT_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPM_SRM_NRG_ACC_DAT), REG_CPM_SRM_NRG_ACC_DAT);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT2), REG_AON_CNT2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT2), REG_CPU_CNT2);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMECM1_EL1), REG_UPMECM1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC12), REG_UPMC12);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT10), REG_AON_CNT10);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL), REG_CPU_CNT_CTL);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL2), REG_AON_CNT_CTL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL2), REG_CPU_CNT_CTL2);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMPCM_EL1), REG_UPMPCM_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC13), REG_UPMC13);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL10), REG_AON_CNT_CTL10);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT3), REG_AON_CNT3);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT3), REG_CPU_CNT3);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMSR_EL1), REG_UPMSR_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC14), REG_UPMC14);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT11), REG_AON_CNT11);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL3), REG_AON_CNT_CTL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL3), REG_CPU_CNT_CTL3);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC0), REG_UPMC0);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC15), REG_UPMC15);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL11), REG_AON_CNT_CTL11);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT4), REG_AON_CNT4);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT4), REG_CPU_CNT4);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC1), REG_UPMC1);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMECM2_EL1), REG_UPMECM2_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL4), REG_AON_CNT_CTL4);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL4), REG_CPU_CNT_CTL4);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC2), REG_UPMC2);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMECM3_EL1), REG_UPMECM3_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT5), REG_AON_CNT5);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT5), REG_CPU_CNT5);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC3), REG_UPMC3);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMCR1_EL1), REG_UPMCR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL5), REG_AON_CNT_CTL5);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL5), REG_CPU_CNT_CTL5);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC4), REG_UPMC4);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMESR1_EL1), REG_UPMESR1_EL1);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT6), REG_AON_CNT6);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT6), REG_CPU_CNT6);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC5), REG_UPMC5);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL6), REG_AON_CNT_CTL6);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL6), REG_CPU_CNT_CTL6);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC6), REG_UPMC6);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT7), REG_AON_CNT7);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT7), REG_CPU_CNT7);
+ builder.AddMemberWithValue(get_system_register_name(REG_UPMC7), REG_UPMC7);
+ builder.AddMemberWithValue(get_system_register_name(REG_AON_CNT_CTL7), REG_AON_CNT_CTL7);
+ builder.AddMemberWithValue(get_system_register_name(REG_CPU_CNT_CTL7), REG_CPU_CNT_CTL7);
+
+ Ref<Enumeration> _enum = builder.Finalize();
+ return _enum;
+}
+Ref<Type> get_system_register_enum_type(Ref<BinaryView> view)
+{
+ Ref<Enumeration> _enum = get_system_register_enum();
+ Ref<Type> enumType = Type::EnumerationType(view->GetDefaultArchitecture(), _enum, 4, false);
+ return enumType;
+}
+QualifiedName get_system_register_enum_type_name(Ref<BinaryView> view)
+{
+ Ref<Type> enumType = get_system_register_enum_type(view);
+ QualifiedName systemRegName = QualifiedName("SystemReg");
+ string enumId = Type::GenerateAutoTypeId(view->GetDefaultArchitecture()->GetName(), systemRegName);
+ QualifiedName enumTypeName = view->DefineType(enumId, systemRegName, enumType);
+ return enumTypeName;
+}
+
+vector<uint32_t> get_system_registers()
+{
+ vector<uint32_t> system_regs = {};
+
+ system_regs.push_back(SYSREG_NONE);
+
+ system_regs.push_back(REG_EDSCR);
+ system_regs.push_back(REG_EDPRSR);
+ system_regs.push_back(REG_UAOIMM);
+ system_regs.push_back(REG_PANIMM);
+ system_regs.push_back(REG_SPSELIMM);
+ system_regs.push_back(REG_DITIMM);
+ system_regs.push_back(REG_SVCRIMM);
+ system_regs.push_back(REG_ICIALLUIS);
+ system_regs.push_back(REG_ICIALLU);
+ system_regs.push_back(REG_DCIVAC);
+ system_regs.push_back(REG_DCISW);
+ system_regs.push_back(REG_ATS1E1R);
+ system_regs.push_back(REG_ATS1E1W);
+ system_regs.push_back(REG_ATS1E0R);
+ system_regs.push_back(REG_ATS1E0W);
+ system_regs.push_back(REG_DCCSW);
+ system_regs.push_back(REG_DCCISW);
+ system_regs.push_back(REG_TLBIVMALLE1IS);
+ system_regs.push_back(REG_TLBIVAE1IS);
+ system_regs.push_back(REG_TLBIASIDE1IS);
+ system_regs.push_back(REG_TLBIVAAE1IS);
+ system_regs.push_back(REG_TLBIVALE1IS);
+ system_regs.push_back(REG_TLBIVAALE1IS);
+ system_regs.push_back(REG_TLBIVMALLE1);
+ system_regs.push_back(REG_TLBIVAE1);
+ system_regs.push_back(REG_TLBIASIDE1);
+ system_regs.push_back(REG_TLBIVAAE1);
+ system_regs.push_back(REG_TLBIVALE1);
+ system_regs.push_back(REG_TLBIVAALE1);
+ system_regs.push_back(REG_DCZVA);
+ system_regs.push_back(REG_ICIVAU);
+ system_regs.push_back(REG_DCCVAC);
+ system_regs.push_back(REG_DCCVAU);
+ system_regs.push_back(REG_DCCIVAC);
+ system_regs.push_back(REG_ATS1E2R);
+ system_regs.push_back(REG_ATS1E2W);
+ system_regs.push_back(REG_ATS12E1R);
+ system_regs.push_back(REG_ATS12E1W);
+ system_regs.push_back(REG_ATS12E0R);
+ system_regs.push_back(REG_ATS12E0W);
+ system_regs.push_back(REG_TLBIIPAS2E1IS);
+ system_regs.push_back(REG_TLBIIPAS2LE1IS);
+ system_regs.push_back(REG_TLBIALLE2IS);
+ system_regs.push_back(REG_TLBIVAE2IS);
+ system_regs.push_back(REG_TLBIALLE1IS);
+ system_regs.push_back(REG_TLBIVALE2IS);
+ system_regs.push_back(REG_TLBIVMALLS12E1IS);
+ system_regs.push_back(REG_TLBIIPAS2E1);
+ system_regs.push_back(REG_TLBIIPAS2LE1);
+ system_regs.push_back(REG_TLBIALLE2);
+ system_regs.push_back(REG_TLBIVAE2);
+ system_regs.push_back(REG_TLBIALLE1);
+ system_regs.push_back(REG_TLBIVALE2);
+ system_regs.push_back(REG_TLBIVMALLS12E1);
+ system_regs.push_back(REG_ATS1E3R);
+ system_regs.push_back(REG_ATS1E3W);
+ system_regs.push_back(REG_TLBIALLE3IS);
+ system_regs.push_back(REG_TLBIVAE3IS);
+ system_regs.push_back(REG_TLBIVALE3IS);
+ system_regs.push_back(REG_TLBIALLE3);
+ system_regs.push_back(REG_TLBIVAE3);
+ system_regs.push_back(REG_TLBIVALE3);
+ system_regs.push_back(REG_OSDTRRX_EL1);
+ system_regs.push_back(REG_DBGBVR0_EL1);
+ system_regs.push_back(REG_DBGBCR0_EL1);
+ system_regs.push_back(REG_DBGWVR0_EL1);
+ system_regs.push_back(REG_DBGWCR0_EL1);
+ system_regs.push_back(REG_DBGBVR1_EL1);
+ system_regs.push_back(REG_DBGBCR1_EL1);
+ system_regs.push_back(REG_DBGWVR1_EL1);
+ system_regs.push_back(REG_DBGWCR1_EL1);
+ system_regs.push_back(REG_MDCCINT_EL1);
+ system_regs.push_back(REG_MDSCR_EL1);
+ system_regs.push_back(REG_DBGBVR2_EL1);
+ system_regs.push_back(REG_DBGBCR2_EL1);
+ system_regs.push_back(REG_DBGWVR2_EL1);
+ system_regs.push_back(REG_DBGWCR2_EL1);
+ system_regs.push_back(REG_OSDTRTX_EL1);
+ system_regs.push_back(REG_DBGBVR3_EL1);
+ system_regs.push_back(REG_DBGBCR3_EL1);
+ system_regs.push_back(REG_DBGWVR3_EL1);
+ system_regs.push_back(REG_DBGWCR3_EL1);
+ system_regs.push_back(REG_DBGBVR4_EL1);
+ system_regs.push_back(REG_DBGBCR4_EL1);
+ system_regs.push_back(REG_DBGWVR4_EL1);
+ system_regs.push_back(REG_DBGWCR4_EL1);
+ system_regs.push_back(REG_DBGBVR5_EL1);
+ system_regs.push_back(REG_DBGBCR5_EL1);
+ system_regs.push_back(REG_DBGWVR5_EL1);
+ system_regs.push_back(REG_DBGWCR5_EL1);
+ system_regs.push_back(REG_DBGWFAR);
+ system_regs.push_back(REG_OSECCR_EL1);
+ system_regs.push_back(REG_DBGBVR6_EL1);
+ system_regs.push_back(REG_DBGBCR6_EL1);
+ system_regs.push_back(REG_DBGWVR6_EL1);
+ system_regs.push_back(REG_DBGWCR6_EL1);
+ system_regs.push_back(REG_DBGBVR7_EL1);
+ system_regs.push_back(REG_DBGBCR7_EL1);
+ system_regs.push_back(REG_DBGWVR7_EL1);
+ system_regs.push_back(REG_DBGWCR7_EL1);
+ system_regs.push_back(REG_DBGBVR8_EL1);
+ system_regs.push_back(REG_DBGBCR8_EL1);
+ system_regs.push_back(REG_DBGWVR8_EL1);
+ system_regs.push_back(REG_DBGWCR8_EL1);
+ system_regs.push_back(REG_DBGBVR9_EL1);
+ system_regs.push_back(REG_DBGBCR9_EL1);
+ system_regs.push_back(REG_DBGWVR9_EL1);
+ system_regs.push_back(REG_DBGWCR9_EL1);
+ system_regs.push_back(REG_DBGBVR10_EL1);
+ system_regs.push_back(REG_DBGBCR10_EL1);
+ system_regs.push_back(REG_DBGWVR10_EL1);
+ system_regs.push_back(REG_DBGWCR10_EL1);
+ system_regs.push_back(REG_DBGBVR11_EL1);
+ system_regs.push_back(REG_DBGBCR11_EL1);
+ system_regs.push_back(REG_DBGWVR11_EL1);
+ system_regs.push_back(REG_DBGWCR11_EL1);
+ system_regs.push_back(REG_DBGBVR12_EL1);
+ system_regs.push_back(REG_DBGBCR12_EL1);
+ system_regs.push_back(REG_DBGWVR12_EL1);
+ system_regs.push_back(REG_DBGWCR12_EL1);
+ system_regs.push_back(REG_DBGBVR13_EL1);
+ system_regs.push_back(REG_DBGBCR13_EL1);
+ system_regs.push_back(REG_DBGWVR13_EL1);
+ system_regs.push_back(REG_DBGWCR13_EL1);
+ system_regs.push_back(REG_DBGBVR14_EL1);
+ system_regs.push_back(REG_DBGBCR14_EL1);
+ system_regs.push_back(REG_DBGWVR14_EL1);
+ system_regs.push_back(REG_DBGWCR14_EL1);
+ system_regs.push_back(REG_DBGBVR15_EL1);
+ system_regs.push_back(REG_DBGBCR15_EL1);
+ system_regs.push_back(REG_DBGWVR15_EL1);
+ system_regs.push_back(REG_DBGWCR15_EL1);
+ system_regs.push_back(REG_MDRAR_EL1);
+ system_regs.push_back(REG_OSLAR_EL1);
+ system_regs.push_back(REG_OSLSR_EL1);
+ system_regs.push_back(REG_OSDLR_EL1);
+ system_regs.push_back(REG_DBGPRCR_EL1);
+ system_regs.push_back(REG_CLAIMSET_EL1);
+ system_regs.push_back(REG_CLAIMCLR_EL1);
+ system_regs.push_back(REG_AUTHSTAT_EL1);
+ system_regs.push_back(REG_TRCTRACEIDR);
+ system_regs.push_back(REG_TRCVICTLR);
+ system_regs.push_back(REG_TRCSEQEVR0);
+ system_regs.push_back(REG_TRCCNTRLDVR0);
+ system_regs.push_back(REG_TRCIMSPEC0);
+ system_regs.push_back(REG_TRCPRGCTLR);
+ system_regs.push_back(REG_TRCQCTLR);
+ system_regs.push_back(REG_TRCVIIECTLR);
+ system_regs.push_back(REG_TRCSEQEVR1);
+ system_regs.push_back(REG_TRCCNTRLDVR1);
+ system_regs.push_back(REG_TRCIMSPEC1);
+ system_regs.push_back(REG_TRCPROCSELR);
+ system_regs.push_back(REG_TRCVISSCTLR);
+ system_regs.push_back(REG_TRCSEQEVR2);
+ system_regs.push_back(REG_TRCCNTRLDVR2);
+ system_regs.push_back(REG_TRCIMSPEC2);
+ system_regs.push_back(REG_TRCVIPCSSCTLR);
+ system_regs.push_back(REG_TRCCNTRLDVR3);
+ system_regs.push_back(REG_TRCIMSPEC3);
+ system_regs.push_back(REG_TRCCONFIGR);
+ system_regs.push_back(REG_TRCCNTCTLR0);
+ system_regs.push_back(REG_TRCIMSPEC4);
+ system_regs.push_back(REG_TRCCNTCTLR1);
+ system_regs.push_back(REG_TRCIMSPEC5);
+ system_regs.push_back(REG_TRCAUXCTLR);
+ system_regs.push_back(REG_TRCSEQRSTEVR);
+ system_regs.push_back(REG_TRCCNTCTLR2);
+ system_regs.push_back(REG_TRCIMSPEC6);
+ system_regs.push_back(REG_TRCSEQSTR);
+ system_regs.push_back(REG_TRCCNTCTLR3);
+ system_regs.push_back(REG_TRCIMSPEC7);
+ system_regs.push_back(REG_TRCEVENTCTL0R);
+ system_regs.push_back(REG_TRCVDCTLR);
+ system_regs.push_back(REG_TRCEXTINSELR);
+ system_regs.push_back(REG_TRCCNTVR0);
+ system_regs.push_back(REG_TRCEVENTCTL1R);
+ system_regs.push_back(REG_TRCVDSACCTLR);
+ system_regs.push_back(REG_TRCEXTINSELR1);
+ system_regs.push_back(REG_TRCCNTVR1);
+ system_regs.push_back(REG_TRCRSR);
+ system_regs.push_back(REG_TRCVDARCCTLR);
+ system_regs.push_back(REG_TRCEXTINSELR2);
+ system_regs.push_back(REG_TRCCNTVR2);
+ system_regs.push_back(REG_TRCSTALLCTLR);
+ system_regs.push_back(REG_TRCEXTINSELR3);
+ system_regs.push_back(REG_TRCCNTVR3);
+ system_regs.push_back(REG_TRCTSCTLR);
+ system_regs.push_back(REG_TRCSYNCPR);
+ system_regs.push_back(REG_TRCCCCTLR);
+ system_regs.push_back(REG_TRCBBCTLR);
+ system_regs.push_back(REG_TRCRSCTLR16);
+ system_regs.push_back(REG_TRCSSCCR0);
+ system_regs.push_back(REG_TRCSSPCICR0);
+ system_regs.push_back(REG_TRCOSLAR);
+ system_regs.push_back(REG_TRCRSCTLR17);
+ system_regs.push_back(REG_TRCSSCCR1);
+ system_regs.push_back(REG_TRCSSPCICR1);
+ system_regs.push_back(REG_TRCRSCTLR2);
+ system_regs.push_back(REG_TRCRSCTLR18);
+ system_regs.push_back(REG_TRCSSCCR2);
+ system_regs.push_back(REG_TRCSSPCICR2);
+ system_regs.push_back(REG_TRCRSCTLR3);
+ system_regs.push_back(REG_TRCRSCTLR19);
+ system_regs.push_back(REG_TRCSSCCR3);
+ system_regs.push_back(REG_TRCSSPCICR3);
+ system_regs.push_back(REG_TRCRSCTLR4);
+ system_regs.push_back(REG_TRCRSCTLR20);
+ system_regs.push_back(REG_TRCSSCCR4);
+ system_regs.push_back(REG_TRCSSPCICR4);
+ system_regs.push_back(REG_TRCPDCR);
+ system_regs.push_back(REG_TRCRSCTLR5);
+ system_regs.push_back(REG_TRCRSCTLR21);
+ system_regs.push_back(REG_TRCSSCCR5);
+ system_regs.push_back(REG_TRCSSPCICR5);
+ system_regs.push_back(REG_TRCRSCTLR6);
+ system_regs.push_back(REG_TRCRSCTLR22);
+ system_regs.push_back(REG_TRCSSCCR6);
+ system_regs.push_back(REG_TRCSSPCICR6);
+ system_regs.push_back(REG_TRCRSCTLR7);
+ system_regs.push_back(REG_TRCRSCTLR23);
+ system_regs.push_back(REG_TRCSSCCR7);
+ system_regs.push_back(REG_TRCSSPCICR7);
+ system_regs.push_back(REG_TRCRSCTLR8);
+ system_regs.push_back(REG_TRCRSCTLR24);
+ system_regs.push_back(REG_TRCSSCSR0);
+ system_regs.push_back(REG_TRCRSCTLR9);
+ system_regs.push_back(REG_TRCRSCTLR25);
+ system_regs.push_back(REG_TRCSSCSR1);
+ system_regs.push_back(REG_TRCRSCTLR10);
+ system_regs.push_back(REG_TRCRSCTLR26);
+ system_regs.push_back(REG_TRCSSCSR2);
+ system_regs.push_back(REG_TRCRSCTLR11);
+ system_regs.push_back(REG_TRCRSCTLR27);
+ system_regs.push_back(REG_TRCSSCSR3);
+ system_regs.push_back(REG_TRCRSCTLR12);
+ system_regs.push_back(REG_TRCRSCTLR28);
+ system_regs.push_back(REG_TRCSSCSR4);
+ system_regs.push_back(REG_TRCRSCTLR13);
+ system_regs.push_back(REG_TRCRSCTLR29);
+ system_regs.push_back(REG_TRCSSCSR5);
+ system_regs.push_back(REG_TRCRSCTLR14);
+ system_regs.push_back(REG_TRCRSCTLR30);
+ system_regs.push_back(REG_TRCSSCSR6);
+ system_regs.push_back(REG_TRCRSCTLR15);
+ system_regs.push_back(REG_TRCRSCTLR31);
+ system_regs.push_back(REG_TRCSSCSR7);
+ system_regs.push_back(REG_TRCACVR0);
+ system_regs.push_back(REG_TRCACVR8);
+ system_regs.push_back(REG_TRCACATR0);
+ system_regs.push_back(REG_TRCACATR8);
+ system_regs.push_back(REG_TRCDVCVR0);
+ system_regs.push_back(REG_TRCDVCVR4);
+ system_regs.push_back(REG_TRCDVCMR0);
+ system_regs.push_back(REG_TRCDVCMR4);
+ system_regs.push_back(REG_TRCACVR1);
+ system_regs.push_back(REG_TRCACVR9);
+ system_regs.push_back(REG_TRCACATR1);
+ system_regs.push_back(REG_TRCACATR9);
+ system_regs.push_back(REG_TRCACVR2);
+ system_regs.push_back(REG_TRCACVR10);
+ system_regs.push_back(REG_TRCACATR2);
+ system_regs.push_back(REG_TRCACATR10);
+ system_regs.push_back(REG_TRCDVCVR1);
+ system_regs.push_back(REG_TRCDVCVR5);
+ system_regs.push_back(REG_TRCDVCMR1);
+ system_regs.push_back(REG_TRCDVCMR5);
+ system_regs.push_back(REG_TRCACVR3);
+ system_regs.push_back(REG_TRCACVR11);
+ system_regs.push_back(REG_TRCACATR3);
+ system_regs.push_back(REG_TRCACATR11);
+ system_regs.push_back(REG_TRCACVR4);
+ system_regs.push_back(REG_TRCACVR12);
+ system_regs.push_back(REG_TRCACATR4);
+ system_regs.push_back(REG_TRCACATR12);
+ system_regs.push_back(REG_TRCDVCVR2);
+ system_regs.push_back(REG_TRCDVCVR6);
+ system_regs.push_back(REG_TRCDVCMR2);
+ system_regs.push_back(REG_TRCDVCMR6);
+ system_regs.push_back(REG_TRCACVR5);
+ system_regs.push_back(REG_TRCACVR13);
+ system_regs.push_back(REG_TRCACATR5);
+ system_regs.push_back(REG_TRCACATR13);
+ system_regs.push_back(REG_TRCACVR6);
+ system_regs.push_back(REG_TRCACVR14);
+ system_regs.push_back(REG_TRCACATR6);
+ system_regs.push_back(REG_TRCACATR14);
+ system_regs.push_back(REG_TRCDVCVR3);
+ system_regs.push_back(REG_TRCDVCVR7);
+ system_regs.push_back(REG_TRCDVCMR3);
+ system_regs.push_back(REG_TRCDVCMR7);
+ system_regs.push_back(REG_TRCACVR7);
+ system_regs.push_back(REG_TRCACVR15);
+ system_regs.push_back(REG_TRCACATR7);
+ system_regs.push_back(REG_TRCACATR15);
+ system_regs.push_back(REG_TRCCIDCVR0);
+ system_regs.push_back(REG_TRCVMIDCVR0);
+ system_regs.push_back(REG_TRCCIDCCTLR0);
+ system_regs.push_back(REG_TRCCIDCCTLR1);
+ system_regs.push_back(REG_TRCCIDCVR1);
+ system_regs.push_back(REG_TRCVMIDCVR1);
+ system_regs.push_back(REG_TRCVMIDCCTLR0);
+ system_regs.push_back(REG_TRCVMIDCCTLR1);
+ system_regs.push_back(REG_TRCCIDCVR2);
+ system_regs.push_back(REG_TRCVMIDCVR2);
+ system_regs.push_back(REG_TRCCIDCVR3);
+ system_regs.push_back(REG_TRCVMIDCVR3);
+ system_regs.push_back(REG_TRCCIDCVR4);
+ system_regs.push_back(REG_TRCVMIDCVR4);
+ system_regs.push_back(REG_TRCCIDCVR5);
+ system_regs.push_back(REG_TRCVMIDCVR5);
+ system_regs.push_back(REG_TRCCIDCVR6);
+ system_regs.push_back(REG_TRCVMIDCVR6);
+ system_regs.push_back(REG_TRCCIDCVR7);
+ system_regs.push_back(REG_TRCVMIDCVR7);
+ system_regs.push_back(REG_TRCITCTRL);
+ system_regs.push_back(REG_TRCCLAIMSET);
+ system_regs.push_back(REG_TRCCLAIMCLR);
+ system_regs.push_back(REG_TRCLAR);
+ system_regs.push_back(REG_TEECR32_EL1);
+ system_regs.push_back(REG_TEEHBR32_EL1);
+ system_regs.push_back(REG_MDCCSR_EL0);
+ system_regs.push_back(REG_MDDTR_EL0);
+ system_regs.push_back(REG_MDDTRTX_EL0);
+ system_regs.push_back(REG_DBGVCR32_EL2);
+ system_regs.push_back(REG_MIDR_EL1);
+ system_regs.push_back(REG_MPIDR_EL1);
+ system_regs.push_back(REG_REVIDR_EL1);
+ system_regs.push_back(REG_ID_PFR0_EL1);
+ system_regs.push_back(REG_ID_PFR1_EL1);
+ system_regs.push_back(REG_ID_DFR0_EL1);
+ system_regs.push_back(REG_ID_AFR0_EL1);
+ system_regs.push_back(REG_ID_MMFR0_EL1);
+ system_regs.push_back(REG_ID_MMFR1_EL1);
+ system_regs.push_back(REG_ID_MMFR2_EL1);
+ system_regs.push_back(REG_ID_MMFR3_EL1);
+ system_regs.push_back(REG_ID_ISAR0_EL1);
+ system_regs.push_back(REG_ID_ISAR1_EL1);
+ system_regs.push_back(REG_ID_ISAR2_EL1);
+ system_regs.push_back(REG_ID_ISAR3_EL1);
+ system_regs.push_back(REG_ID_ISAR4_EL1);
+ system_regs.push_back(REG_ID_ISAR5_EL1);
+ system_regs.push_back(REG_ID_MMFR4_EL1);
+ system_regs.push_back(REG_ID_ISAR6_EL1);
+ system_regs.push_back(REG_MVFR0_EL1);
+ system_regs.push_back(REG_MVFR1_EL1);
+ system_regs.push_back(REG_MVFR2_EL1);
+ system_regs.push_back(REG_ID_AA32RES3_EL1);
+ system_regs.push_back(REG_ID_PFR2_EL1);
+ system_regs.push_back(REG_ID_AA32RES5_EL1);
+ system_regs.push_back(REG_ID_AA32RES6_EL1);
+ system_regs.push_back(REG_ID_AA32RES7_EL1);
+ system_regs.push_back(REG_ID_AA64PFR0_EL1);
+ system_regs.push_back(REG_ID_AA64PFR1_EL1);
+ system_regs.push_back(REG_ID_AA64PFR2_EL1);
+ system_regs.push_back(REG_ID_AA64PFR3_EL1);
+ system_regs.push_back(REG_ID_AA64ZFR0_EL1);
+ system_regs.push_back(REG_ID_AA64SMFR0_EL1);
+ system_regs.push_back(REG_ID_AA64ZFR2_EL1);
+ system_regs.push_back(REG_ID_AA64ZFR3_EL1);
+ system_regs.push_back(REG_ID_AA64DFR0_EL1);
+ system_regs.push_back(REG_ID_AA64DFR1_EL1);
+ system_regs.push_back(REG_ID_AA64DFR2_EL1);
+ system_regs.push_back(REG_ID_AA64DFR3_EL1);
+ system_regs.push_back(REG_ID_AA64AFR0_EL1);
+ system_regs.push_back(REG_ID_AA64AFR1_EL1);
+ system_regs.push_back(REG_ID_AA64AFR2_EL1);
+ system_regs.push_back(REG_ID_AA64AFR3_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR0_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR1_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR2_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR3_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR4_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR5_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR6_EL1);
+ system_regs.push_back(REG_ID_AA64ISAR7_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR0_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR1_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR2_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR3_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR4_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR5_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR6_EL1);
+ system_regs.push_back(REG_ID_AA64MMFR7_EL1);
+ system_regs.push_back(REG_SCTLR_EL21);
+ system_regs.push_back(REG_ACTLR_EL21);
+ system_regs.push_back(REG_CPTR_EL21);
+ system_regs.push_back(REG_RGSR_EL1);
+ system_regs.push_back(REG_GCR_EL1);
+ system_regs.push_back(REG_TRFCR_EL1);
+ system_regs.push_back(REG_SMPRI_EL1);
+ system_regs.push_back(REG_SMCR_EL21);
+ system_regs.push_back(REG_TTBR0_EL21);
+ system_regs.push_back(REG_TTBR1_EL21);
+ system_regs.push_back(REG_TCR_EL21);
+ system_regs.push_back(REG_APIAKEYLO_EL21);
+ system_regs.push_back(REG_APIAKEYHI_EL21);
+ system_regs.push_back(REG_APIBKEYLO_EL21);
+ system_regs.push_back(REG_APIBKEYHI_EL21);
+ system_regs.push_back(REG_APDAKEYLO_EL21);
+ system_regs.push_back(REG_APDAKEYHI_EL21);
+ system_regs.push_back(REG_APDBKEYLO_EL21);
+ system_regs.push_back(REG_APDBKEYHI_EL21);
+ system_regs.push_back(REG_APGAKEYLO_EL21);
+ system_regs.push_back(REG_APGAKEYHI_EL21);
+ system_regs.push_back(REG_SPSR_EL21);
+ system_regs.push_back(REG_ELR_EL21);
+ system_regs.push_back(REG_SP_EL0);
+ system_regs.push_back(REG_SPSEL);
+ system_regs.push_back(REG_NESTEDCURRENTEL);
+ system_regs.push_back(REG_PAN);
+ system_regs.push_back(REG_UAO);
+ system_regs.push_back(REG_ICV_PMR_EL1);
+ system_regs.push_back(REG_AFSR0_EL21);
+ system_regs.push_back(REG_AFSR1_EL21);
+ system_regs.push_back(REG_ESR_EL21);
+ system_regs.push_back(REG_ERRIDR_EL1);
+ system_regs.push_back(REG_ERRSELR_EL1);
+ system_regs.push_back(REG_ERXCTLR_EL1);
+ system_regs.push_back(REG_ERXSTATUS_EL1);
+ system_regs.push_back(REG_ERXADDR_EL1);
+ system_regs.push_back(REG_ERXPFGCTL_EL1);
+ system_regs.push_back(REG_ERXPFGCDN_EL1);
+ system_regs.push_back(REG_ERXMISC0_EL1);
+ system_regs.push_back(REG_ERXMISC1_EL1);
+ system_regs.push_back(REG_ERXMISC2_EL1);
+ system_regs.push_back(REG_ERXMISC3_EL1);
+ system_regs.push_back(REG_ERXTS_EL1);
+ system_regs.push_back(REG_TFSR_EL1);
+ system_regs.push_back(REG_TFSRE0_EL1);
+ system_regs.push_back(REG_FAR_EL21);
+ system_regs.push_back(REG_PAR_EL1);
+ system_regs.push_back(REG_PMSCR_EL1);
+ system_regs.push_back(REG_PMSICR_EL1);
+ system_regs.push_back(REG_PMSIRR_EL1);
+ system_regs.push_back(REG_PMSFCR_EL1);
+ system_regs.push_back(REG_PMSEVFR_EL1);
+ system_regs.push_back(REG_PMSLATFR_EL1);
+ system_regs.push_back(REG_PMSIDR_EL1);
+ system_regs.push_back(REG_PMBLIMITR_EL1);
+ system_regs.push_back(REG_PMBPTR_EL1);
+ system_regs.push_back(REG_PMBSR_EL1);
+ system_regs.push_back(REG_PMBIDR_EL1);
+ system_regs.push_back(REG_TRBLIMITR_EL1);
+ system_regs.push_back(REG_TRBPTR_EL1);
+ system_regs.push_back(REG_TRBBASER_EL1);
+ system_regs.push_back(REG_TRBSR_EL1);
+ system_regs.push_back(REG_TRBMAR_EL1);
+ system_regs.push_back(REG_TRBTRG_EL1);
+ system_regs.push_back(REG_PMINTENSET_EL1);
+ system_regs.push_back(REG_PMINTENCLR_EL1);
+ system_regs.push_back(REG_PMMIR_EL1);
+ system_regs.push_back(REG_MAIR_EL21);
+ system_regs.push_back(REG_AMAIR_EL21);
+ system_regs.push_back(REG_LORSA_EL1);
+ system_regs.push_back(REG_LOREA_EL1);
+ system_regs.push_back(REG_LORN_EL1);
+ system_regs.push_back(REG_LORC_EL1);
+ system_regs.push_back(REG_LORID_EL1);
+ system_regs.push_back(REG_MPAM1_EL1);
+ system_regs.push_back(REG_MPAM0_EL1);
+ system_regs.push_back(REG_CTRR_C_LWR_EL21);
+ system_regs.push_back(REG_CTRR_C_UPR_EL21);
+ system_regs.push_back(REG_CTRR_D_LWR_EL21);
+ system_regs.push_back(REG_CTRR_D_UPR_EL21);
+ system_regs.push_back(REG_CTRR_C_LWR_EL12);
+ system_regs.push_back(REG_CTRR_C_UPR_EL12);
+ system_regs.push_back(REG_CTRR_D_LWR_EL12);
+ system_regs.push_back(REG_CTRR_D_UPR_EL12);
+ system_regs.push_back(REG_CTRR_C_LWR_EL2);
+ system_regs.push_back(REG_CTRR_C_UPR_EL2);
+ system_regs.push_back(REG_CTRR_D_LWR_EL2);
+ system_regs.push_back(REG_CTRR_D_UPR_EL2);
+ system_regs.push_back(REG_CTRR_C_CTL_EL21);
+ system_regs.push_back(REG_CTRR_D_CTL_EL21);
+ system_regs.push_back(REG_CTRR_C_CTL_EL12);
+ system_regs.push_back(REG_CTRR_D_CTL_EL12);
+ system_regs.push_back(REG_CTRR_C_CTL_EL2);
+ system_regs.push_back(REG_CTRR_D_CTL_EL2);
+ system_regs.push_back(REG_CTXR_A_LWR_EL21);
+ system_regs.push_back(REG_CTXR_A_UPR_EL21);
+ system_regs.push_back(REG_CTXR_B_LWR_EL21);
+ system_regs.push_back(REG_CTXR_B_UPR_EL21);
+ system_regs.push_back(REG_CTXR_C_LWR_EL21);
+ system_regs.push_back(REG_CTXR_C_UPR_EL21);
+ system_regs.push_back(REG_CTXR_D_LWR_EL21);
+ system_regs.push_back(REG_CTXR_D_UPR_EL21);
+ system_regs.push_back(REG_CTXR_A_LWR_EL12);
+ system_regs.push_back(REG_CTXR_A_UPR_EL12);
+ system_regs.push_back(REG_CTXR_B_LWR_EL12);
+ system_regs.push_back(REG_CTXR_B_UPR_EL12);
+ system_regs.push_back(REG_CTXR_C_LWR_EL12);
+ system_regs.push_back(REG_CTXR_C_UPR_EL12);
+ system_regs.push_back(REG_CTXR_D_LWR_EL12);
+ system_regs.push_back(REG_CTXR_D_UPR_EL12);
+ system_regs.push_back(REG_CTXR_A_LWR_EL2);
+ system_regs.push_back(REG_CTXR_A_UPR_EL2);
+ system_regs.push_back(REG_CTXR_B_LWR_EL2);
+ system_regs.push_back(REG_CTXR_B_UPR_EL2);
+ system_regs.push_back(REG_CTXR_C_LWR_EL2);
+ system_regs.push_back(REG_CTXR_C_UPR_EL2);
+ system_regs.push_back(REG_CTXR_D_LWR_EL2);
+ system_regs.push_back(REG_CTXR_D_UPR_EL2);
+ system_regs.push_back(REG_CTXR_A_CTL_EL21);
+ system_regs.push_back(REG_CTXR_B_CTL_EL21);
+ system_regs.push_back(REG_CTXR_C_CTL_EL21);
+ system_regs.push_back(REG_CTXR_D_CTL_EL21);
+ system_regs.push_back(REG_CTXR_A_CTL_EL12);
+ system_regs.push_back(REG_CTXR_B_CTL_EL12);
+ system_regs.push_back(REG_CTXR_C_CTL_EL12);
+ system_regs.push_back(REG_CTXR_D_CTL_EL12);
+ system_regs.push_back(REG_CTXR_A_CTL_EL2);
+ system_regs.push_back(REG_CTXR_B_CTL_EL2);
+ system_regs.push_back(REG_CTXR_C_CTL_EL2);
+ system_regs.push_back(REG_CTXR_D_CTL_EL2);
+ system_regs.push_back(REG_ACC_CTRR_C_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_C_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_D_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_D_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_A_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_A_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_B_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_B_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_C_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_C_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_D_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTXR_D_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_C_CTL_EL2);
+ system_regs.push_back(REG_ACC_CTRR_D_CTL_EL2);
+ system_regs.push_back(REG_ACC_CTXR_A_CTL_EL2);
+ system_regs.push_back(REG_ACC_CTXR_B_CTL_EL2);
+ system_regs.push_back(REG_ACC_CTXR_C_CTL_EL2);
+ system_regs.push_back(REG_ACC_CTXR_D_CTL_EL2);
+ system_regs.push_back(REG_VBAR_EL21);
+ system_regs.push_back(REG_RVBAR_EL1);
+ system_regs.push_back(REG_RMR_EL1);
+ system_regs.push_back(REG_ISR_EL1);
+ system_regs.push_back(REG_DISR_EL1);
+ system_regs.push_back(REG_ICV_IAR0_EL1);
+ system_regs.push_back(REG_ICV_EOIR0_EL1);
+ system_regs.push_back(REG_ICV_HPPIR0_EL1);
+ system_regs.push_back(REG_ICV_BPR0_EL1);
+ system_regs.push_back(REG_ICC_AP0R0_EL1);
+ system_regs.push_back(REG_ICC_AP0R1_EL1);
+ system_regs.push_back(REG_ICC_AP0R2_EL1);
+ system_regs.push_back(REG_ICC_AP0R3_EL1);
+ system_regs.push_back(REG_ICC_AP1R0_EL1);
+ system_regs.push_back(REG_ICC_AP1R1_EL1);
+ system_regs.push_back(REG_ICC_AP1R2_EL1);
+ system_regs.push_back(REG_ICC_AP1R3_EL1);
+ system_regs.push_back(REG_ICV_DIR_EL1);
+ system_regs.push_back(REG_ICV_RPR_EL1);
+ system_regs.push_back(REG_ICC_SGI1R_EL1);
+ system_regs.push_back(REG_ICC_ASGI1R_EL1);
+ system_regs.push_back(REG_ICC_SGI0R_EL1);
+ system_regs.push_back(REG_ICV_IAR1_EL1);
+ system_regs.push_back(REG_ICV_EOIR1_EL1);
+ system_regs.push_back(REG_ICV_HPPIR1_EL1);
+ system_regs.push_back(REG_ICV_BPR1_EL1);
+ system_regs.push_back(REG_ICV_CTLR_EL1);
+ system_regs.push_back(REG_ICC_SRE_EL1);
+ system_regs.push_back(REG_ICV_IGRPEN0_EL1);
+ system_regs.push_back(REG_ICV_IGRPEN1_EL1);
+ system_regs.push_back(REG_ICC_SEIEN_EL1);
+ system_regs.push_back(REG_CONTEXTIDR_EL21);
+ system_regs.push_back(REG_TPIDR_EL1);
+ system_regs.push_back(REG_SCXTNUM_EL21);
+ system_regs.push_back(REG_REDIR_CNTKCTL_EL1);
+ system_regs.push_back(REG_HID0);
+ system_regs.push_back(REG_HID25);
+ system_regs.push_back(REG_HID26);
+ system_regs.push_back(REG_HID27);
+ system_regs.push_back(REG_HID28);
+ system_regs.push_back(REG_HID29);
+ system_regs.push_back(REG_HID34);
+ system_regs.push_back(REG_HID1);
+ system_regs.push_back(REG_HID21);
+ system_regs.push_back(REG_BIUVCSCUPCMDCRD);
+ system_regs.push_back(REG_BIUVCSCUPDATCRD);
+ system_regs.push_back(REG_HID2);
+ system_regs.push_back(REG_HID30);
+ system_regs.push_back(REG_HID31);
+ system_regs.push_back(REG_HID32);
+ system_regs.push_back(REG_HID33);
+ system_regs.push_back(REG_HID3);
+ system_regs.push_back(REG_BIUVCSCUPCMDCRDC2);
+ system_regs.push_back(REG_BIUVCSCUPDATCRDC2);
+ system_regs.push_back(REG_HID4);
+ system_regs.push_back(REG_HID5);
+ system_regs.push_back(REG_HID6);
+ system_regs.push_back(REG_HID7);
+ system_regs.push_back(REG_HID8);
+ system_regs.push_back(REG_HID9);
+ system_regs.push_back(REG_HID10);
+ system_regs.push_back(REG_BLOCK_CMAINT_CFG);
+ system_regs.push_back(REG_HID11);
+ system_regs.push_back(REG_HID18);
+ system_regs.push_back(REG_HID36);
+ system_regs.push_back(REG_HID37);
+ system_regs.push_back(REG_HID12);
+ system_regs.push_back(REG_HID15);
+ system_regs.push_back(REG_HID19);
+ system_regs.push_back(REG_BIU_TLIMIT);
+ system_regs.push_back(REG_HID13);
+ system_regs.push_back(REG_HID_RCTX_G0CTL);
+ system_regs.push_back(REG_HID_RCTX_G1CTL);
+ system_regs.push_back(REG_HID14);
+ system_regs.push_back(REG_HID16);
+ system_regs.push_back(REG_LLC_WRR2);
+ system_regs.push_back(REG_BIU_AFI_CFG);
+ system_regs.push_back(REG_HID17);
+ system_regs.push_back(REG_HID24);
+ system_regs.push_back(REG_HID35);
+ system_regs.push_back(REG_CCSIDRPL1_I_EL1);
+ system_regs.push_back(REG_CLIDR_EL1);
+ system_regs.push_back(REG_SMIDR_EL1);
+ system_regs.push_back(REG_AIDR_EL1);
+ system_regs.push_back(REG_PMCR0_EL1);
+ system_regs.push_back(REG_APPL_CONTEXTPTR);
+ system_regs.push_back(REG_LD_LATPROF_CTL_EL21);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTL01_EL1);
+ system_regs.push_back(REG_PM_MEMFLT_CTL23_EL1);
+ system_regs.push_back(REG_REDIR_ACNTV_CTL_EL0);
+ system_regs.push_back(REG_LCL_ACNTVCTSS_NOREDIR_EL0);
+ system_regs.push_back(REG_PMCR1_EL21);
+ system_regs.push_back(REG_LD_LATPROF_CTR_EL1);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTL23_EL1);
+ system_regs.push_back(REG_PM_MEMFLT_CTL45_EL1);
+ system_regs.push_back(REG_AGTCNTRDIR_EL21);
+ system_regs.push_back(REG_AGTCNTKCTL_NOREDIR_EL1);
+ system_regs.push_back(REG_PMCR2_EL1);
+ system_regs.push_back(REG_LD_LATPROF_STS_EL1);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTL45_EL1);
+ system_regs.push_back(REG_REDIR_ACNTHP_CVAL_EL2);
+ system_regs.push_back(REG_LCL_CNTVCT_NOREDIR_EL0);
+ system_regs.push_back(REG_AGTCNTP_CVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_PMCR3_EL1);
+ system_regs.push_back(REG_LD_LATPROF_INF_EL1);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTL67_EL1);
+ system_regs.push_back(REG_REDIR_ACNTHP_TVAL_EL2);
+ system_regs.push_back(REG_LCL_CNTPCTSS_NOREDIR_EL0);
+ system_regs.push_back(REG_AGTCNTP_TVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_PMCR4_EL1);
+ system_regs.push_back(REG_LD_LATPROF_CTL_EL2);
+ system_regs.push_back(REG_AON_CPU_MEMFLT_CTL01_EL1);
+ system_regs.push_back(REG_REDIR_ACNTHP_CTL_EL2);
+ system_regs.push_back(REG_LCL_CNTVCTSS_NOREDIR_EL0);
+ system_regs.push_back(REG_AGTCNTP_CTL_NOREDIR_EL0);
+ system_regs.push_back(REG_PMESR0_EL1);
+ system_regs.push_back(REG_LD_LATPROF_CMD_EL1);
+ system_regs.push_back(REG_AON_CPU_MEMFLT_CTL23_EL1);
+ system_regs.push_back(REG_REDIR_ACNTHV_CVAL_EL2);
+ system_regs.push_back(REG_AGTCNTV_CVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_PMESR1_EL1);
+ system_regs.push_back(REG_PMCR1_EL2);
+ system_regs.push_back(REG_AON_CPU_MEMFLT_CTL45_EL1);
+ system_regs.push_back(REG_REDIR_ACNTHV_TVAL_EL2);
+ system_regs.push_back(REG_CNTKCTL_NOREDIR_EL1);
+ system_regs.push_back(REG_AGTCNTV_TVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_OPMAT0_EL1);
+ system_regs.push_back(REG_PMCR1_EL12);
+ system_regs.push_back(REG_AON_CPU_MEMFLT_CTL67_EL1);
+ system_regs.push_back(REG_REDIR_ACNTHV_CTL_EL2);
+ system_regs.push_back(REG_CNTP_CVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_AGTCNTV_CTL_NOREDIR_EL0);
+ system_regs.push_back(REG_OPMAT1_EL1);
+ system_regs.push_back(REG_PMCR1_GL12);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR0_EL1);
+ system_regs.push_back(REG_REDIR_ACNTFRQ_EL0);
+ system_regs.push_back(REG_CNTP_TVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_LCL_CNTPCT_NOREDIR_EL0);
+ system_regs.push_back(REG_OPMSK0_EL1);
+ system_regs.push_back(REG_LD_LATPROF_CTL_EL12);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR1_EL1);
+ system_regs.push_back(REG_AGTCNTVOFF_EL2);
+ system_regs.push_back(REG_CNTP_CTL_NOREDIR_EL0);
+ system_regs.push_back(REG_CNTV_CTL_NOREDIR_EL0);
+ system_regs.push_back(REG_OPMSK1_EL1);
+ system_regs.push_back(REG_LD_LATPROF_INF_EL2);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR2_EL1);
+ system_regs.push_back(REG_REDIR_ACNTP_CVAL_EL0);
+ system_regs.push_back(REG_CNTV_CVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_LCL_ACNTPCT_NOREDIR_EL0);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR3_EL1);
+ system_regs.push_back(REG_REDIR_ACNTP_TVAL_EL0);
+ system_regs.push_back(REG_CNTV_TVAL_NOREDIR_EL0);
+ system_regs.push_back(REG_VMSA_HV_LOCK_EL2);
+ system_regs.push_back(REG_PMSWCTRL_EL1);
+ system_regs.push_back(REG_PMCR5_EL0);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR4_EL1);
+ system_regs.push_back(REG_PMCOMPARE0_EL1);
+ system_regs.push_back(REG_PMCOMPARE1_EL1);
+ system_regs.push_back(REG_VMSA_NV_LOCK_EL2);
+ system_regs.push_back(REG_PMSR_EL1);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR5_EL1);
+ system_regs.push_back(REG_REDIR_ACNTP_CTL_EL0);
+ system_regs.push_back(REG_PMCOMPARE5_EL1);
+ system_regs.push_back(REG_PMCOMPARE6_EL1);
+ system_regs.push_back(REG_PMCOMPARE7_EL1);
+ system_regs.push_back(REG_PMCR_BVRNG4_EL1);
+ system_regs.push_back(REG_PM_PMI_PC);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR6_EL1);
+ system_regs.push_back(REG_REDIR_ACNTV_CVAL_EL0);
+ system_regs.push_back(REG_LCL_ACNTVCT_NOREDIR_EL0);
+ system_regs.push_back(REG_PMCR_BVRNG5_EL1);
+ system_regs.push_back(REG_AON_CPU_MSTALL_CTR7_EL1);
+ system_regs.push_back(REG_REDIR_ACNTV_TVAL_EL0);
+ system_regs.push_back(REG_LCL_ACNTPCTSS_NOREDIR_EL0);
+ system_regs.push_back(REG_CSSELR_EL1);
+ system_regs.push_back(REG_PMC0);
+ system_regs.push_back(REG_UPMCFILTER0);
+ system_regs.push_back(REG_UPMCFILTER1);
+ system_regs.push_back(REG_UPMCFILTER2);
+ system_regs.push_back(REG_UPMCFILTER3);
+ system_regs.push_back(REG_UPMCFILTER4);
+ system_regs.push_back(REG_UPMCFILTER5);
+ system_regs.push_back(REG_UPMCFILTER6);
+ system_regs.push_back(REG_PMC1);
+ system_regs.push_back(REG_UPMCFILTER7);
+ system_regs.push_back(REG_PMC2);
+ system_regs.push_back(REG_PMC3);
+ system_regs.push_back(REG_PMC4);
+ system_regs.push_back(REG_PMC5);
+ system_regs.push_back(REG_PMC6);
+ system_regs.push_back(REG_PMC7);
+ system_regs.push_back(REG_PMC8);
+ system_regs.push_back(REG_PMC9);
+ system_regs.push_back(REG_PMTRHLD6_EL1);
+ system_regs.push_back(REG_PMTRHLD4_EL1);
+ system_regs.push_back(REG_PMTRHLD2_EL1);
+ system_regs.push_back(REG_PMMMAP_EL1);
+ system_regs.push_back(REG_CTR_EL0);
+ system_regs.push_back(REG_DCZID_EL0);
+ system_regs.push_back(REG_NZCV);
+ system_regs.push_back(REG_DAIF);
+ system_regs.push_back(REG_SVCR);
+ system_regs.push_back(REG_DIT);
+ system_regs.push_back(REG_SSBS);
+ system_regs.push_back(REG_TCO);
+ system_regs.push_back(REG_FPCR);
+ system_regs.push_back(REG_FPSR);
+ system_regs.push_back(REG_DSPSR_EL0);
+ system_regs.push_back(REG_DLR_EL0);
+ system_regs.push_back(REG_PMCR_EL0);
+ system_regs.push_back(REG_PMCNTENSET_EL0);
+ system_regs.push_back(REG_PMCNTENCLR_EL0);
+ system_regs.push_back(REG_PMOVSCLR_EL0);
+ system_regs.push_back(REG_PMSWINC_EL0);
+ system_regs.push_back(REG_PMSELR_EL0);
+ system_regs.push_back(REG_PMCCNTR_EL0);
+ system_regs.push_back(REG_PMXEVTYPER_EL0);
+ system_regs.push_back(REG_PMXEVCNTR_EL0);
+ system_regs.push_back(REG_DAIFCLR);
+ system_regs.push_back(REG_PMUSERENR_EL0);
+ system_regs.push_back(REG_PMOVSSET_EL0);
+ system_regs.push_back(REG_TPIDR_EL0);
+ system_regs.push_back(REG_TPIDRRO_EL0);
+ system_regs.push_back(REG_TPIDR2_EL0);
+ system_regs.push_back(REG_SCXTNUM_EL0);
+ system_regs.push_back(REG_AMCR_EL0);
+ system_regs.push_back(REG_AMUSERENR_EL0);
+ system_regs.push_back(REG_AMCNTENCLR0_EL0);
+ system_regs.push_back(REG_AMCNTENSET0_EL0);
+ system_regs.push_back(REG_AMCNTENCLR1_EL0);
+ system_regs.push_back(REG_AMCNTENSET1_EL0);
+ system_regs.push_back(REG_AMEVCNTR00_EL0);
+ system_regs.push_back(REG_AMEVCNTR01_EL0);
+ system_regs.push_back(REG_AMEVCNTR02_EL0);
+ system_regs.push_back(REG_AMEVCNTR03_EL0);
+ system_regs.push_back(REG_AMEVCNTR10_EL0);
+ system_regs.push_back(REG_AMEVCNTR11_EL0);
+ system_regs.push_back(REG_AMEVCNTR12_EL0);
+ system_regs.push_back(REG_AMEVCNTR13_EL0);
+ system_regs.push_back(REG_AMEVCNTR14_EL0);
+ system_regs.push_back(REG_AMEVCNTR15_EL0);
+ system_regs.push_back(REG_AMEVCNTR16_EL0);
+ system_regs.push_back(REG_AMEVCNTR17_EL0);
+ system_regs.push_back(REG_AMEVCNTR18_EL0);
+ system_regs.push_back(REG_AMEVCNTR19_EL0);
+ system_regs.push_back(REG_AMEVCNTR110_EL0);
+ system_regs.push_back(REG_AMEVCNTR111_EL0);
+ system_regs.push_back(REG_AMEVCNTR112_EL0);
+ system_regs.push_back(REG_AMEVCNTR113_EL0);
+ system_regs.push_back(REG_AMEVCNTR114_EL0);
+ system_regs.push_back(REG_AMEVCNTR115_EL0);
+ system_regs.push_back(REG_AMEVTYPER10_EL0);
+ system_regs.push_back(REG_AMEVTYPER11_EL0);
+ system_regs.push_back(REG_AMEVTYPER12_EL0);
+ system_regs.push_back(REG_AMEVTYPER13_EL0);
+ system_regs.push_back(REG_AMEVTYPER14_EL0);
+ system_regs.push_back(REG_AMEVTYPER15_EL0);
+ system_regs.push_back(REG_AMEVTYPER16_EL0);
+ system_regs.push_back(REG_AMEVTYPER17_EL0);
+ system_regs.push_back(REG_AMEVTYPER18_EL0);
+ system_regs.push_back(REG_AMEVTYPER19_EL0);
+ system_regs.push_back(REG_AMEVTYPER110_EL0);
+ system_regs.push_back(REG_AMEVTYPER111_EL0);
+ system_regs.push_back(REG_AMEVTYPER112_EL0);
+ system_regs.push_back(REG_AMEVTYPER113_EL0);
+ system_regs.push_back(REG_AMEVTYPER114_EL0);
+ system_regs.push_back(REG_AMEVTYPER115_EL0);
+ system_regs.push_back(REG_REDIR_CNTFRQ_EL0);
+ system_regs.push_back(REG_REDIR_LCL_CNTPCT_EL0);
+ system_regs.push_back(REG_REDIR_LCL_CNTVCT_EL0);
+ system_regs.push_back(REG_REDIR_LCL_CNTPCTSS_EL0);
+ system_regs.push_back(REG_REDIR_LCL_CNTVCTSS_EL0);
+ system_regs.push_back(REG_REDIR_CNTP_TVAL_EL0);
+ system_regs.push_back(REG_REDIR_CNTP_CTL_EL0);
+ system_regs.push_back(REG_REDIR_CNTP_CVAL_EL0);
+ system_regs.push_back(REG_REDIR_CNTV_TVAL_EL0);
+ system_regs.push_back(REG_REDIR_CNTV_CTL_EL0);
+ system_regs.push_back(REG_REDIR_CNTV_CVAL_EL0);
+ system_regs.push_back(REG_PMEVCNTR0_EL0);
+ system_regs.push_back(REG_PMEVCNTR1_EL0);
+ system_regs.push_back(REG_PMEVCNTR2_EL0);
+ system_regs.push_back(REG_PMEVCNTR3_EL0);
+ system_regs.push_back(REG_PMEVCNTR4_EL0);
+ system_regs.push_back(REG_PMEVCNTR5_EL0);
+ system_regs.push_back(REG_PMEVCNTR6_EL0);
+ system_regs.push_back(REG_PMEVCNTR7_EL0);
+ system_regs.push_back(REG_PMEVCNTR8_EL0);
+ system_regs.push_back(REG_PMEVCNTR9_EL0);
+ system_regs.push_back(REG_PMEVCNTR10_EL0);
+ system_regs.push_back(REG_PMEVCNTR11_EL0);
+ system_regs.push_back(REG_PMEVCNTR12_EL0);
+ system_regs.push_back(REG_PMEVCNTR13_EL0);
+ system_regs.push_back(REG_PMEVCNTR14_EL0);
+ system_regs.push_back(REG_PMEVCNTR15_EL0);
+ system_regs.push_back(REG_PMEVCNTR16_EL0);
+ system_regs.push_back(REG_PMEVCNTR17_EL0);
+ system_regs.push_back(REG_PMEVCNTR18_EL0);
+ system_regs.push_back(REG_PMEVCNTR19_EL0);
+ system_regs.push_back(REG_PMEVCNTR20_EL0);
+ system_regs.push_back(REG_PMEVCNTR21_EL0);
+ system_regs.push_back(REG_PMEVCNTR22_EL0);
+ system_regs.push_back(REG_PMEVCNTR23_EL0);
+ system_regs.push_back(REG_PMEVCNTR24_EL0);
+ system_regs.push_back(REG_PMEVCNTR25_EL0);
+ system_regs.push_back(REG_PMEVCNTR26_EL0);
+ system_regs.push_back(REG_PMEVCNTR27_EL0);
+ system_regs.push_back(REG_PMEVCNTR28_EL0);
+ system_regs.push_back(REG_PMEVCNTR29_EL0);
+ system_regs.push_back(REG_PMEVCNTR30_EL0);
+ system_regs.push_back(REG_PMEVTYPER0_EL0);
+ system_regs.push_back(REG_PMEVTYPER1_EL0);
+ system_regs.push_back(REG_PMEVTYPER2_EL0);
+ system_regs.push_back(REG_PMEVTYPER3_EL0);
+ system_regs.push_back(REG_PMEVTYPER4_EL0);
+ system_regs.push_back(REG_PMEVTYPER5_EL0);
+ system_regs.push_back(REG_PMEVTYPER6_EL0);
+ system_regs.push_back(REG_PMEVTYPER7_EL0);
+ system_regs.push_back(REG_PMEVTYPER8_EL0);
+ system_regs.push_back(REG_PMEVTYPER9_EL0);
+ system_regs.push_back(REG_PMEVTYPER10_EL0);
+ system_regs.push_back(REG_PMEVTYPER11_EL0);
+ system_regs.push_back(REG_PMEVTYPER12_EL0);
+ system_regs.push_back(REG_PMEVTYPER13_EL0);
+ system_regs.push_back(REG_PMEVTYPER14_EL0);
+ system_regs.push_back(REG_PMEVTYPER15_EL0);
+ system_regs.push_back(REG_PMEVTYPER16_EL0);
+ system_regs.push_back(REG_PMEVTYPER17_EL0);
+ system_regs.push_back(REG_PMEVTYPER18_EL0);
+ system_regs.push_back(REG_PMEVTYPER19_EL0);
+ system_regs.push_back(REG_PMEVTYPER20_EL0);
+ system_regs.push_back(REG_PMEVTYPER21_EL0);
+ system_regs.push_back(REG_PMEVTYPER22_EL0);
+ system_regs.push_back(REG_PMEVTYPER23_EL0);
+ system_regs.push_back(REG_PMEVTYPER24_EL0);
+ system_regs.push_back(REG_PMEVTYPER25_EL0);
+ system_regs.push_back(REG_PMEVTYPER26_EL0);
+ system_regs.push_back(REG_PMEVTYPER27_EL0);
+ system_regs.push_back(REG_PMEVTYPER28_EL0);
+ system_regs.push_back(REG_PMEVTYPER29_EL0);
+ system_regs.push_back(REG_PMEVTYPER30_EL0);
+ system_regs.push_back(REG_PMCCFILTR_EL0);
+ system_regs.push_back(REG_LSU_ERR_STS);
+ system_regs.push_back(REG_AFLATCTL1_EL1);
+ system_regs.push_back(REG_AFLATVALBIN0_EL1);
+ system_regs.push_back(REG_AFLATINFLO_EL1);
+ system_regs.push_back(REG_LSU_ERR_CTL);
+ system_regs.push_back(REG_AFLATCTL2_EL1);
+ system_regs.push_back(REG_AFLATVALBIN1_EL1);
+ system_regs.push_back(REG_AFLATINFHI_EL1);
+ system_regs.push_back(REG_AFLATCTL3_EL1);
+ system_regs.push_back(REG_AFLATVALBIN2_EL1);
+ system_regs.push_back(REG_AFLATCTL4_EL1);
+ system_regs.push_back(REG_AFLATVALBIN3_EL1);
+ system_regs.push_back(REG_LLC_FILL_CTL);
+ system_regs.push_back(REG_AFLATCTL5_LO_EL1);
+ system_regs.push_back(REG_AFLATVALBIN4_EL1);
+ system_regs.push_back(REG_AFLATCTL5_HI_EL1);
+ system_regs.push_back(REG_LLC_FILL_DAT);
+ system_regs.push_back(REG_AFLATVALBIN5_EL1);
+ system_regs.push_back(REG_AFLATVALBIN6_EL1);
+ system_regs.push_back(REG_LLC_RAM_CONFIG);
+ system_regs.push_back(REG_AFLATVALBIN7_EL1);
+ system_regs.push_back(REG_LLC_ERR_STS);
+ system_regs.push_back(REG_CMAINT_BCAST_LIST_0);
+ system_regs.push_back(REG_CMAINT_BCAST_LIST_1);
+ system_regs.push_back(REG_CMAINT_BCAST_CTL);
+ system_regs.push_back(REG_LLC_ERR_ADR);
+ system_regs.push_back(REG_LLC_ERR_CTL);
+ system_regs.push_back(REG_LLC_ERR_INJ);
+ system_regs.push_back(REG_LLC_ERR_INF);
+ system_regs.push_back(REG_USERTAGSEL_EL1);
+ system_regs.push_back(REG_UUSERTAG_EL0);
+ system_regs.push_back(REG_KUSERTAG_EL1);
+ system_regs.push_back(REG_HUSERTAG_EL2);
+ system_regs.push_back(REG_LLC_TRACE_CTL0);
+ system_regs.push_back(REG_LLC_TRACE_CTL1);
+ system_regs.push_back(REG_LLC_UP_REQ_VC);
+ system_regs.push_back(REG_LLC_UP_REQ_VC_THRESH);
+ system_regs.push_back(REG_LLC_UP_REQ_VC_2);
+ system_regs.push_back(REG_LLC_UP_REQ_VC_THRESH_2);
+ system_regs.push_back(REG_LLC_DRAM_HASH0);
+ system_regs.push_back(REG_LLC_DRAM_HASH1);
+ system_regs.push_back(REG_LLC_DRAM_HASH2);
+ system_regs.push_back(REG_LLC_DRAM_HASH3);
+ system_regs.push_back(REG_LLC_TRACE_CTL2);
+ system_regs.push_back(REG_LLC_DRAM_HASH4);
+ system_regs.push_back(REG_LLC_UP_REQ_VC_3);
+ system_regs.push_back(REG_LLC_UP_REQ_VC_THRESH_3);
+ system_regs.push_back(REG_LLC_UP_REQ_VC_4);
+ system_regs.push_back(REG_LLC_UP_REQ_VC_THRESH_4);
+ system_regs.push_back(REG_LLC_HASH0);
+ system_regs.push_back(REG_LLC_HASH1);
+ system_regs.push_back(REG_LLC_HASH2);
+ system_regs.push_back(REG_LLC_HASH3);
+ system_regs.push_back(REG_LLC_WRR);
+ system_regs.push_back(REG_LLC_DRAM_HASH5);
+ system_regs.push_back(REG_LLC_DRAM_HASH6);
+ system_regs.push_back(REG_VPIDR_EL2);
+ system_regs.push_back(REG_VMPIDR_EL2);
+ system_regs.push_back(REG_SCTLR_EL2);
+ system_regs.push_back(REG_ACTLR_EL2);
+ system_regs.push_back(REG_HCR_EL2);
+ system_regs.push_back(REG_MDCR_EL2);
+ system_regs.push_back(REG_CPTR_EL2);
+ system_regs.push_back(REG_HSTR_EL2);
+ system_regs.push_back(REG_HFGRTR_EL2);
+ system_regs.push_back(REG_HFGWTR_EL2);
+ system_regs.push_back(REG_HFGITR_EL2);
+ system_regs.push_back(REG_HACR_EL2);
+ system_regs.push_back(REG_TRFCR_EL2);
+ system_regs.push_back(REG_HCRX_EL2);
+ system_regs.push_back(REG_SMPRIMAP_EL2);
+ system_regs.push_back(REG_SMCR_EL2);
+ system_regs.push_back(REG_SDER32_EL2);
+ system_regs.push_back(REG_TTBR0_EL2);
+ system_regs.push_back(REG_TTBR1_EL2);
+ system_regs.push_back(REG_TCR_EL2);
+ system_regs.push_back(REG_VTTBR_EL2);
+ system_regs.push_back(REG_VTCR_EL2);
+ system_regs.push_back(REG_VNCR_EL2);
+ system_regs.push_back(REG_VSTTBR_EL2);
+ system_regs.push_back(REG_VSTCR_EL2);
+ system_regs.push_back(REG_DACR32_EL2);
+ system_regs.push_back(REG_HDFGRTR_EL2);
+ system_regs.push_back(REG_HDFGWTR_EL2);
+ system_regs.push_back(REG_SPSR_NV_EL21);
+ system_regs.push_back(REG_ELR_NV_EL21);
+ system_regs.push_back(REG_SP_EL1);
+ system_regs.push_back(REG_SPSR_IRQ);
+ system_regs.push_back(REG_SPSR_ABT);
+ system_regs.push_back(REG_SPSR_UND);
+ system_regs.push_back(REG_SPSR_FIQ);
+ system_regs.push_back(REG_IFSR32_EL2);
+ system_regs.push_back(REG_AFSR0_EL2);
+ system_regs.push_back(REG_AFSR1_EL2);
+ system_regs.push_back(REG_ESR_NV_EL21);
+ system_regs.push_back(REG_VSESR_EL2);
+ system_regs.push_back(REG_FPEXC32_EL2);
+ system_regs.push_back(REG_TFSR_EL2);
+ system_regs.push_back(REG_FAR_NV_EL21);
+ system_regs.push_back(REG_HPFAR_EL2);
+ system_regs.push_back(REG_PMSCR_EL2);
+ system_regs.push_back(REG_MAIR_EL2);
+ system_regs.push_back(REG_AMAIR_EL2);
+ system_regs.push_back(REG_MPAMHCR_EL2);
+ system_regs.push_back(REG_MPAMVPMV_EL2);
+ system_regs.push_back(REG_MPAM2_EL2);
+ system_regs.push_back(REG_MPAMVPM0_EL2);
+ system_regs.push_back(REG_MPAMVPM1_EL2);
+ system_regs.push_back(REG_MPAMVPM2_EL2);
+ system_regs.push_back(REG_MPAMVPM3_EL2);
+ system_regs.push_back(REG_MPAMVPM4_EL2);
+ system_regs.push_back(REG_MPAMVPM5_EL2);
+ system_regs.push_back(REG_MPAMVPM6_EL2);
+ system_regs.push_back(REG_MPAMVPM7_EL2);
+ system_regs.push_back(REG_VBAR_EL2);
+ system_regs.push_back(REG_RVBAR_EL2);
+ system_regs.push_back(REG_RMR_EL2);
+ system_regs.push_back(REG_VDISR_EL2);
+ system_regs.push_back(REG_ICH_AP0R0_EL2);
+ system_regs.push_back(REG_ICH_AP0R1_EL2);
+ system_regs.push_back(REG_ICH_AP0R2_EL2);
+ system_regs.push_back(REG_ICH_AP0R3_EL2);
+ system_regs.push_back(REG_ICH_AP1R0_EL2);
+ system_regs.push_back(REG_ICH_AP1R1_EL2);
+ system_regs.push_back(REG_ICH_AP1R2_EL2);
+ system_regs.push_back(REG_ICH_AP1R3_EL2);
+ system_regs.push_back(REG_ICH_VSEIR_EL2);
+ system_regs.push_back(REG_ICC_SRE_EL2);
+ system_regs.push_back(REG_ICH_HCR_EL2);
+ system_regs.push_back(REG_ICH_VTR_EL2);
+ system_regs.push_back(REG_ICH_MISR_EL2);
+ system_regs.push_back(REG_ICH_EISR_EL2);
+ system_regs.push_back(REG_ICH_ELRSR_EL2);
+ system_regs.push_back(REG_ICH_VMCR_EL2);
+ system_regs.push_back(REG_ICH_LR0_EL2);
+ system_regs.push_back(REG_ICH_LR1_EL2);
+ system_regs.push_back(REG_ICH_LR2_EL2);
+ system_regs.push_back(REG_ICH_LR3_EL2);
+ system_regs.push_back(REG_ICH_LR4_EL2);
+ system_regs.push_back(REG_ICH_LR5_EL2);
+ system_regs.push_back(REG_ICH_LR6_EL2);
+ system_regs.push_back(REG_ICH_LR7_EL2);
+ system_regs.push_back(REG_ICH_LR8_EL2);
+ system_regs.push_back(REG_ICH_LR9_EL2);
+ system_regs.push_back(REG_ICH_LR10_EL2);
+ system_regs.push_back(REG_ICH_LR11_EL2);
+ system_regs.push_back(REG_ICH_LR12_EL2);
+ system_regs.push_back(REG_ICH_LR13_EL2);
+ system_regs.push_back(REG_ICH_LR14_EL2);
+ system_regs.push_back(REG_ICH_LR15_EL2);
+ system_regs.push_back(REG_CONTEXTIDR_EL2);
+ system_regs.push_back(REG_TPIDR_EL2);
+ system_regs.push_back(REG_SCXTNUM_EL2);
+ system_regs.push_back(REG_CNTVOFF_EL2);
+ system_regs.push_back(REG_REDIR_CNTHCTL_EL2);
+ system_regs.push_back(REG_REDIR_CNTHP_TVAL_EL2);
+ system_regs.push_back(REG_REDIR_CNTHP_CTL_EL2);
+ system_regs.push_back(REG_REDIR_CNTHP_CVAL_EL2);
+ system_regs.push_back(REG_REDIR_CNTHV_TVAL_EL2);
+ system_regs.push_back(REG_REDIR_CNTHV_CTL_EL2);
+ system_regs.push_back(REG_REDIR_CNTHV_CVAL_EL2);
+ system_regs.push_back(REG_CNTHVS_TVAL_EL2);
+ system_regs.push_back(REG_CNTHVS_CTL_EL2);
+ system_regs.push_back(REG_CNTHVS_CVAL_EL2);
+ system_regs.push_back(REG_CNTHPS_TVAL_EL2);
+ system_regs.push_back(REG_CNTHPS_CTL_EL2);
+ system_regs.push_back(REG_CNTHPS_CVAL_EL2);
+ system_regs.push_back(REG_FED_ERR_STS);
+ system_regs.push_back(REG_FED_ERR_CTL);
+ system_regs.push_back(REG_APCTL_EL21);
+ system_regs.push_back(REG_KERNKEYLO_EL21);
+ system_regs.push_back(REG_KERNKEYHI_EL21);
+ system_regs.push_back(REG_VMSA_LOCK_EL1);
+ system_regs.push_back(REG_AMX_STATE_T_EL1);
+ system_regs.push_back(REG_AMX_CONFIG_EL21);
+ system_regs.push_back(REG_VMSA_LOCK_EL2);
+ system_regs.push_back(REG_CTRR_B_UPR_EL21);
+ system_regs.push_back(REG_CTRR_B_LWR_EL21);
+ system_regs.push_back(REG_SP_SETUP_GL21);
+ system_regs.push_back(REG_SP_SETUP_GL2);
+ system_regs.push_back(REG_CTRR_B_CTL_EL21);
+ system_regs.push_back(REG_CTRR_A_LWR_EL21);
+ system_regs.push_back(REG_CTRR_A_UPR_EL21);
+ system_regs.push_back(REG_CTRR_A_CTL_EL21);
+ system_regs.push_back(REG_VMSA_LOCK_EL12);
+ system_regs.push_back(REG_AGTCNTV_CTL_EL02);
+ system_regs.push_back(REG_AMX_STATE_EL1);
+ system_regs.push_back(REG_AMX_STATUS_EL1);
+ system_regs.push_back(REG_AGTCNTP_CVAL_EL02);
+ system_regs.push_back(REG_REDIR_ACNTP_TVAL_EL02);
+ system_regs.push_back(REG_AGTCNTP_CTL_EL02);
+ system_regs.push_back(REG_AGTCNTV_CVAL_EL02);
+ system_regs.push_back(REG_AGTCNTV_TVAL_EL02);
+ system_regs.push_back(REG_AMX_CONFIG_EL12);
+ system_regs.push_back(REG_AMX_CONFIG_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_EL0);
+ system_regs.push_back(REG_SPRR_VUPERM_EL0);
+ system_regs.push_back(REG_CTRR_A_CTL_EL2);
+ system_regs.push_back(REG_CTRR_B_CTL_EL2);
+ system_regs.push_back(REG_CTRR_A_LWR_EL2);
+ system_regs.push_back(REG_CTRR_A_UPR_EL2);
+ system_regs.push_back(REG_CTRR_B_LWR_EL2);
+ system_regs.push_back(REG_CTRR_B_UPR_EL2);
+ system_regs.push_back(REG_SPRR_HUMPRR_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_SH01_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_SH02_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_SH03_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_SH04_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_SH05_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_SH06_EL2);
+ system_regs.push_back(REG_SPRR_HUPERM_SH07_EL2);
+ system_regs.push_back(REG_SPRR_VUMPRR_EL1);
+ system_regs.push_back(REG_SPRR_VUPERM_SH01_EL1);
+ system_regs.push_back(REG_SPRR_VUPERM_SH02_EL1);
+ system_regs.push_back(REG_SPRR_VUPERM_SH03_EL1);
+ system_regs.push_back(REG_SPRR_VUPERM_SH04_EL1);
+ system_regs.push_back(REG_SPRR_VUPERM_SH05_EL1);
+ system_regs.push_back(REG_SPRR_VUPERM_SH06_EL1);
+ system_regs.push_back(REG_SPRR_VUPERM_SH07_EL1);
+ system_regs.push_back(REG_CTRR_A_LWR_EL12);
+ system_regs.push_back(REG_CTRR_A_UPR_EL12);
+ system_regs.push_back(REG_CTRR_B_LWR_EL12);
+ system_regs.push_back(REG_CTRR_B_UPR_EL12);
+ system_regs.push_back(REG_CTRR_A_CTL_EL12);
+ system_regs.push_back(REG_CTRR_B_CTL_EL12);
+ system_regs.push_back(REG_REDIR_ACNTKCTL_EL1);
+ system_regs.push_back(REG_AGTCNTKCTL_EL12);
+ system_regs.push_back(REG_PREDAKEYLO_EL1);
+ system_regs.push_back(REG_PREDAKEYHI_EL1);
+ system_regs.push_back(REG_PREDBKEYLO_EL1);
+ system_regs.push_back(REG_PREDBKEYHI_EL1);
+ system_regs.push_back(REG_SIQ_CFG_EL1);
+ system_regs.push_back(REG_REDIR_LCL_ACNTPCTSS_EL0);
+ system_regs.push_back(REG_REDIR_LCL_ACNTVCTSS_EL0);
+ system_regs.push_back(REG_AVNCR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_A_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_A_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_B_LWR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_B_UPR_EL2);
+ system_regs.push_back(REG_ACC_CTRR_A_CTL_EL2);
+ system_regs.push_back(REG_ACC_CTRR_B_CTL_EL2);
+ system_regs.push_back(REG_REDIR_LCL_ACNTPCT_EL0);
+ system_regs.push_back(REG_REDIR_LCL_ACNTVCT_EL0);
+ system_regs.push_back(REG_ACFG_EL1);
+ system_regs.push_back(REG_AHCR_EL2);
+ system_regs.push_back(REG_APL_INTSTATUS_EL21);
+ system_regs.push_back(REG_APL_INTSTATUS_EL2);
+ system_regs.push_back(REG_REDIR_ACNTHCTL_EL2);
+ system_regs.push_back(REG_JAPIAKEYLO_NV_EL21);
+ system_regs.push_back(REG_JAPIAKEYHI_NV_EL21);
+ system_regs.push_back(REG_JAPIBKEYLO_NV_EL21);
+ system_regs.push_back(REG_JAPIBKEYHI_NV_EL21);
+ system_regs.push_back(REG_JAPIAKEYLO_EL21);
+ system_regs.push_back(REG_JAPIAKEYHI_EL21);
+ system_regs.push_back(REG_JAPIBKEYLO_EL21);
+ system_regs.push_back(REG_JAPIBKEYHI_EL21);
+ system_regs.push_back(REG_JAPIAKEYLO_EL12);
+ system_regs.push_back(REG_JAPIAKEYHI_EL12);
+ system_regs.push_back(REG_JAPIBKEYLO_EL12);
+ system_regs.push_back(REG_JAPIBKEYHI_EL12);
+ system_regs.push_back(REG_AGTCNTRDIR_EL2);
+ system_regs.push_back(REG_AGTCNTRDIR_EL12);
+ system_regs.push_back(REG_JRANGE_EL2);
+ system_regs.push_back(REG_JRANGE_EL21);
+ system_regs.push_back(REG_JRANGE_EL12);
+ system_regs.push_back(REG_JCTL_EL2);
+ system_regs.push_back(REG_JCTL_EL21);
+ system_regs.push_back(REG_JCTL_EL12);
+ system_regs.push_back(REG_JCTL_EL0);
+ system_regs.push_back(REG_AMDSCR_EL1);
+ system_regs.push_back(REG_SCTLR_EL12);
+ system_regs.push_back(REG_ACTLR_EL12);
+ system_regs.push_back(REG_CPACR_EL12);
+ system_regs.push_back(REG_TRFCR_EL12);
+ system_regs.push_back(REG_SMCR_EL12);
+ system_regs.push_back(REG_TTBR0_EL12);
+ system_regs.push_back(REG_TTBR1_EL12);
+ system_regs.push_back(REG_TCR_EL12);
+ system_regs.push_back(REG_SPSR_EL12);
+ system_regs.push_back(REG_ELR_EL12);
+ system_regs.push_back(REG_AFSR0_EL12);
+ system_regs.push_back(REG_AFSR1_EL12);
+ system_regs.push_back(REG_ESR_EL12);
+ system_regs.push_back(REG_TFSR_EL12);
+ system_regs.push_back(REG_FAR_EL12);
+ system_regs.push_back(REG_PMSCR_EL12);
+ system_regs.push_back(REG_MAIR_EL12);
+ system_regs.push_back(REG_AMAIR_EL12);
+ system_regs.push_back(REG_MPAM1_EL12);
+ system_regs.push_back(REG_VBAR_EL12);
+ system_regs.push_back(REG_CONTEXTIDR_EL12);
+ system_regs.push_back(REG_SCXTNUM_EL12);
+ system_regs.push_back(REG_CNTKCTL_EL12);
+ system_regs.push_back(REG_CNTP_TVAL_EL02);
+ system_regs.push_back(REG_CNTP_CTL_EL02);
+ system_regs.push_back(REG_CNTP_CVAL_EL02);
+ system_regs.push_back(REG_CNTV_TVAL_EL02);
+ system_regs.push_back(REG_CNTV_CTL_EL02);
+ system_regs.push_back(REG_CNTV_CVAL_EL02);
+ system_regs.push_back(REG_IPI_RR_LOCAL_EL1);
+ system_regs.push_back(REG_IPI_RR_GLOBAL_EL1);
+ system_regs.push_back(REG_AF_ERR_CFG0);
+ system_regs.push_back(REG_AP_ERR_CFG0);
+ system_regs.push_back(REG_AF_ERR_SRC_IDS);
+ system_regs.push_back(REG_DPC_ERR_STS);
+ system_regs.push_back(REG_DPC_ERR_CTL);
+ system_regs.push_back(REG_PROD_TRC_CORE_CFG_EL21);
+ system_regs.push_back(REG_TRACE_CORE_CFG);
+ system_regs.push_back(REG_IPI_SR);
+ system_regs.push_back(REG_APL_LRTMR_EL2);
+ system_regs.push_back(REG_APL_INTENABLE_EL2);
+ system_regs.push_back(REG_KTRACE_MESSAGE);
+ system_regs.push_back(REG_TRACE_CORE_CFG_EXT);
+ system_regs.push_back(REG_PROD_TRC_CORE_CFG_EL2);
+ system_regs.push_back(REG_HID_PROD_TRC_CORE_CFG_EL1);
+ system_regs.push_back(REG_DBG_WRAP_GLB);
+ system_regs.push_back(REG_TRACE_STREAM_BASE);
+ system_regs.push_back(REG_TRACE_STREAM_FILL);
+ system_regs.push_back(REG_TRACE_STREAM_BASE1);
+ system_regs.push_back(REG_TRACE_STREAM_FILL1);
+ system_regs.push_back(REG_TRACE_STREAM_IRQ);
+ system_regs.push_back(REG_WATCHDOGDIAG0);
+ system_regs.push_back(REG_WATCHDOGDIAG1);
+ system_regs.push_back(REG_TRACE_AUX_CTL);
+ system_regs.push_back(REG_IPI_CR);
+ system_regs.push_back(REG_UTRIG_EVENT);
+ system_regs.push_back(REG_HID_PROD_TRC_MASK_EL1);
+ system_regs.push_back(REG_TRACE_CTL);
+ system_regs.push_back(REG_TRACE_DAT);
+ system_regs.push_back(REG_PROD_TRC_STRM_BASE0_GL2);
+ system_regs.push_back(REG_PROD_TRC_STRM_BASE1_GL2);
+ system_regs.push_back(REG_CPU_CFG);
+ system_regs.push_back(REG_PBLK_STS);
+ system_regs.push_back(REG_PROD_TRC_CTL_EL21);
+ system_regs.push_back(REG_PROD_TRC_STRM_BASE0_GL21);
+ system_regs.push_back(REG_PROD_TRC_STRM_BASE1_GL21);
+ system_regs.push_back(REG_PROD_TRC_STRM_FIQ_EL21);
+ system_regs.push_back(REG_CPU_OVRD);
+ system_regs.push_back(REG_PBLK_EXE_ST);
+ system_regs.push_back(REG_PROD_TRC_CORE_GL_CTL_GL21);
+ system_regs.push_back(REG_PROD_TRC_CORE_GL_CTL_GL2);
+ system_regs.push_back(REG_ACC_OVRD);
+ system_regs.push_back(REG_ACC_OVRD1);
+ system_regs.push_back(REG_CPM_PWRDN_CTL);
+ system_regs.push_back(REG_PROD_TRC_BUF_RESTORE0_GL21);
+ system_regs.push_back(REG_PROD_TRC_BUF_RESTORE1_GL21);
+ system_regs.push_back(REG_PROD_TRC_EN_GL21);
+ system_regs.push_back(REG_PRE_LLCFLUSH_TMR);
+ system_regs.push_back(REG_BIUINTFCTL_CFG);
+ system_regs.push_back(REG_BIUINTFWRR_CFG);
+ system_regs.push_back(REG_PRE_TD_TMR);
+ system_regs.push_back(REG_ACC_SLP_WAKE_UP_TMR);
+ system_regs.push_back(REG_PBLK_PSW_DLY);
+ system_regs.push_back(REG_CPU_STS);
+ system_regs.push_back(REG_HIST_TRIG);
+ system_regs.push_back(REG_PROD_TRC_BUF_RESTORE0_GL2);
+ system_regs.push_back(REG_PROD_TRC_BUF_RESTORE1_GL2);
+ system_regs.push_back(REG_PROD_TRC_STRM_FILL0_EL1);
+ system_regs.push_back(REG_PROD_TRC_STRM_FILL1_EL1);
+ system_regs.push_back(REG_ARRAY_INDEX);
+ system_regs.push_back(REG_PROD_TRC_CTL_EL2);
+ system_regs.push_back(REG_PROD_TRC_EN_GL2);
+ system_regs.push_back(REG_PROD_TRC_STRM_FIQ_EL2);
+ system_regs.push_back(REG_PROD_TRC_CPMU_DUMP_TRIG_EL1);
+ system_regs.push_back(REG_PROD_LOSS_COUNT_EL1);
+ system_regs.push_back(REG_SW_TRACE_DATA_EL0);
+ system_regs.push_back(REG_IL1_DATA0);
+ system_regs.push_back(REG_IL1_DATA1);
+ system_regs.push_back(REG_DL1_DATA0);
+ system_regs.push_back(REG_DL1_DATA1);
+ system_regs.push_back(REG_MMUDATA0);
+ system_regs.push_back(REG_MMUDATA1);
+ system_regs.push_back(REG_DL1_DATA2);
+ system_regs.push_back(REG_IL1_DATA2);
+ system_regs.push_back(REG_LLC_DATA0);
+ system_regs.push_back(REG_LLC_DATA1);
+ system_regs.push_back(REG_SCTLR_EL3);
+ system_regs.push_back(REG_ACTLR_EL3);
+ system_regs.push_back(REG_SCR_EL3);
+ system_regs.push_back(REG_SDER32_EL3);
+ system_regs.push_back(REG_CPTR_EL3);
+ system_regs.push_back(REG_MDCR_EL3);
+ system_regs.push_back(REG_TTBR0_EL3);
+ system_regs.push_back(REG_TCR_EL3);
+ system_regs.push_back(REG_SPSR_EL3);
+ system_regs.push_back(REG_ELR_EL3);
+ system_regs.push_back(REG_SP_EL2);
+ system_regs.push_back(REG_AFSR0_EL3);
+ system_regs.push_back(REG_AFSR1_EL3);
+ system_regs.push_back(REG_ESR_EL3);
+ system_regs.push_back(REG_TFSR_EL3);
+ system_regs.push_back(REG_FAR_EL3);
+ system_regs.push_back(REG_MAIR_EL3);
+ system_regs.push_back(REG_AMAIR_EL3);
+ system_regs.push_back(REG_MPAM3_EL3);
+ system_regs.push_back(REG_VBAR_EL3);
+ system_regs.push_back(REG_RVBAR_EL3);
+ system_regs.push_back(REG_RMR_EL3);
+ system_regs.push_back(REG_ICC_CTLR_EL3);
+ system_regs.push_back(REG_ICC_SRE_EL3);
+ system_regs.push_back(REG_ICC_IGRPEN1_EL3);
+ system_regs.push_back(REG_TPIDR_EL3);
+ system_regs.push_back(REG_SCXTNUM_EL3);
+ system_regs.push_back(REG_MMU_ERR_STS);
+ system_regs.push_back(REG_AFSR1_GL21);
+ system_regs.push_back(REG_AFSR1_GL2);
+ system_regs.push_back(REG_AFSR1_GL12);
+ system_regs.push_back(REG_BP_OBJC_ADR_EL1);
+ system_regs.push_back(REG_BP_OBJC_CTL_EL1);
+ system_regs.push_back(REG_SP_GL11_GL21);
+ system_regs.push_back(REG_MMU_SESR_EL2);
+ system_regs.push_back(REG_SPRR_CONFIG_EL21);
+ system_regs.push_back(REG_HPFAR_GL2);
+ system_regs.push_back(REG_GXF_CONFIG_EL21);
+ system_regs.push_back(REG_SPRR_AMRANGE_EL1);
+ system_regs.push_back(REG_GXF_CONFIG_EL2);
+ system_regs.push_back(REG_SPRR_UPERM_EL02);
+ system_regs.push_back(REG_SPRR_PPERM_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_EL2);
+ system_regs.push_back(REG_APGAKEYLO_EL12);
+ system_regs.push_back(REG_APGAKEYHI_EL12);
+ system_regs.push_back(REG_KERNKEYLO_EL12);
+ system_regs.push_back(REG_KERNKEYHI_EL12);
+ system_regs.push_back(REG_AFPCR_EL0);
+ system_regs.push_back(REG_SP_GL22);
+ system_regs.push_back(REG_AMXIDR_EL1);
+ system_regs.push_back(REG_SPRR_UMPRR_EL1);
+ system_regs.push_back(REG_SPRR_PMPRR_EL21);
+ system_regs.push_back(REG_SPRR_PMPRR_EL2);
+ system_regs.push_back(REG_SPRR_UPERM_SH01_EL1);
+ system_regs.push_back(REG_SPRR_UPERM_SH02_EL1);
+ system_regs.push_back(REG_SPRR_UPERM_SH03_EL1);
+ system_regs.push_back(REG_SPRR_UPERM_SH04_EL1);
+ system_regs.push_back(REG_SPRR_UPERM_SH05_EL1);
+ system_regs.push_back(REG_SPRR_UPERM_SH06_EL1);
+ system_regs.push_back(REG_SPRR_UPERM_SH07_EL1);
+ system_regs.push_back(REG_SPRR_PPERM_SH01_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_SH02_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_SH03_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_SH04_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_SH05_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_SH06_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_SH07_EL21);
+ system_regs.push_back(REG_SPRR_PPERM_SH01_EL2);
+ system_regs.push_back(REG_SPRR_PPERM_SH02_EL2);
+ system_regs.push_back(REG_SPRR_PPERM_SH03_EL2);
+ system_regs.push_back(REG_SPRR_PPERM_SH04_EL2);
+ system_regs.push_back(REG_SPRR_PPERM_SH05_EL2);
+ system_regs.push_back(REG_SPRR_PPERM_SH06_EL2);
+ system_regs.push_back(REG_SPRR_PPERM_SH07_EL2);
+ system_regs.push_back(REG_SPRR_PMPRR_EL12);
+ system_regs.push_back(REG_SPRR_PPERM_SH01_EL12);
+ system_regs.push_back(REG_SPRR_PPERM_SH02_EL12);
+ system_regs.push_back(REG_SPRR_PPERM_SH03_EL12);
+ system_regs.push_back(REG_SPRR_PPERM_SH04_EL12);
+ system_regs.push_back(REG_SPRR_PPERM_SH05_EL12);
+ system_regs.push_back(REG_SPRR_PPERM_SH06_EL12);
+ system_regs.push_back(REG_SPRR_PPERM_SH07_EL12);
+ system_regs.push_back(REG_APIAKEYLO_EL12);
+ system_regs.push_back(REG_APIAKEYHI_EL12);
+ system_regs.push_back(REG_APIBKEYLO_EL12);
+ system_regs.push_back(REG_APIBKEYHI_EL12);
+ system_regs.push_back(REG_APDAKEYLO_EL12);
+ system_regs.push_back(REG_APDAKEYHI_EL12);
+ system_regs.push_back(REG_APDBKEYLO_EL12);
+ system_regs.push_back(REG_APDBKEYHI_EL12);
+ system_regs.push_back(REG_CURRENTG);
+ system_regs.push_back(REG_GXF_ENTRY_EL21);
+ system_regs.push_back(REG_GXF_PABENTRY_EL21);
+ system_regs.push_back(REG_ASPSR_EL21);
+ system_regs.push_back(REG_ADSPSR_EL0);
+ system_regs.push_back(REG_PMCR1_GL2);
+ system_regs.push_back(REG_ASPSR_NV_EL21);
+ system_regs.push_back(REG_PMCR1_GL21);
+ system_regs.push_back(REG_VBAR_GL12);
+ system_regs.push_back(REG_SPSR_GL12);
+ system_regs.push_back(REG_ASPSR_GL12);
+ system_regs.push_back(REG_ESR_GL12);
+ system_regs.push_back(REG_ELR_GL12);
+ system_regs.push_back(REG_FAR_GL12);
+ system_regs.push_back(REG_SP_GL1);
+ system_regs.push_back(REG_TPIDR_GL1);
+ system_regs.push_back(REG_VBAR_GL21);
+ system_regs.push_back(REG_SPSR_GL21);
+ system_regs.push_back(REG_ASPSR_GL21);
+ system_regs.push_back(REG_ESR_GL21);
+ system_regs.push_back(REG_ELR_GL21);
+ system_regs.push_back(REG_FAR_GL21);
+ system_regs.push_back(REG_SP_GL2);
+ system_regs.push_back(REG_TPIDR_GL2);
+ system_regs.push_back(REG_VBAR_GL2);
+ system_regs.push_back(REG_SPSR_GL2);
+ system_regs.push_back(REG_ASPSR_GL2);
+ system_regs.push_back(REG_ESR_GL2);
+ system_regs.push_back(REG_ELR_GL2);
+ system_regs.push_back(REG_FAR_GL2);
+ system_regs.push_back(REG_GXF_ENTRY_EL2);
+ system_regs.push_back(REG_GXF_PABENTRY_EL2);
+ system_regs.push_back(REG_APCTL_EL2);
+ system_regs.push_back(REG_APSTS_EL2);
+ system_regs.push_back(REG_APSTS_NV1_EL1);
+ system_regs.push_back(REG_KERNKEYLO_NV_EL21);
+ system_regs.push_back(REG_KERNKEYHI_NV_EL21);
+ system_regs.push_back(REG_ASPSR_EL12);
+ system_regs.push_back(REG_APIAKEYLO_NV_EL21);
+ system_regs.push_back(REG_APIAKEYHI_NV_EL21);
+ system_regs.push_back(REG_APIBKEYLO_NV_EL21);
+ system_regs.push_back(REG_APIBKEYHI_NV_EL21);
+ system_regs.push_back(REG_APDAKEYLO_NV_EL21);
+ system_regs.push_back(REG_APDAKEYHI_NV_EL21);
+ system_regs.push_back(REG_APDBKEYLO_NV_EL21);
+ system_regs.push_back(REG_APDBKEYHI_NV_EL21);
+ system_regs.push_back(REG_APGAKEYLO_NV_EL21);
+ system_regs.push_back(REG_APGAKEYHI_NV_EL21);
+ system_regs.push_back(REG_SPRR_CONFIG_EL2);
+ system_regs.push_back(REG_SPRR_AMRANGE_EL2);
+ system_regs.push_back(REG_VMKEYLO_EL2);
+ system_regs.push_back(REG_VMKEYHI_EL2);
+ system_regs.push_back(REG_MMU_SFAR_EL2);
+ system_regs.push_back(REG_APSTS_EL12);
+ system_regs.push_back(REG_APCTL_EL12);
+ system_regs.push_back(REG_GXF_CONFIG_EL12);
+ system_regs.push_back(REG_GXF_ENTRY_EL12);
+ system_regs.push_back(REG_GXF_PABENTRY_EL12);
+ system_regs.push_back(REG_SPRR_CONFIG_EL12);
+ system_regs.push_back(REG_SPRR_AMRANGE_EL12);
+ system_regs.push_back(REG_MMU_SESR_CTL_EL2);
+ system_regs.push_back(REG_SPRR_PPERM_EL12);
+ system_regs.push_back(REG_CNTPS_TVAL_EL1);
+ system_regs.push_back(REG_CNTPS_CTL_EL1);
+ system_regs.push_back(REG_CNTPS_CVAL_EL1);
+ system_regs.push_back(REG_PSTATE_SPSEL);
+ system_regs.push_back(REG_PWRDNSAVE0);
+ system_regs.push_back(REG_NRG_ACC_CTL);
+ system_regs.push_back(REG_AON_CNT0);
+ system_regs.push_back(REG_CPU_CNT0);
+ system_regs.push_back(REG_UPMCR0_EL1);
+ system_regs.push_back(REG_UPMC8);
+ system_regs.push_back(REG_AON_CNT8);
+ system_regs.push_back(REG_PWRDNSAVE1);
+ system_regs.push_back(REG_CORE_NRG_ACC_DAT);
+ system_regs.push_back(REG_AON_CNT_CTL0);
+ system_regs.push_back(REG_CPU_CNT_CTL0);
+ system_regs.push_back(REG_UPMESR0_EL1);
+ system_regs.push_back(REG_UPMC9);
+ system_regs.push_back(REG_AON_CNT_CTL8);
+ system_regs.push_back(REG_ACC_PWR_DN_SAVE);
+ system_regs.push_back(REG_CPM_NRG_ACC_DAT);
+ system_regs.push_back(REG_AON_CNT1);
+ system_regs.push_back(REG_CPU_CNT1);
+ system_regs.push_back(REG_UPMSWCTRL_EL1);
+ system_regs.push_back(REG_UPMC10);
+ system_regs.push_back(REG_AON_CNT9);
+ system_regs.push_back(REG_CORE_SRM_NRG_ACC_DAT);
+ system_regs.push_back(REG_AON_CNT_CTL1);
+ system_regs.push_back(REG_CPU_CNT_CTL1);
+ system_regs.push_back(REG_UPMECM0_EL1);
+ system_regs.push_back(REG_UPMC11);
+ system_regs.push_back(REG_AON_CNT_CTL9);
+ system_regs.push_back(REG_AON_CNT_CTL);
+ system_regs.push_back(REG_CPM_SRM_NRG_ACC_DAT);
+ system_regs.push_back(REG_AON_CNT2);
+ system_regs.push_back(REG_CPU_CNT2);
+ system_regs.push_back(REG_UPMECM1_EL1);
+ system_regs.push_back(REG_UPMC12);
+ system_regs.push_back(REG_AON_CNT10);
+ system_regs.push_back(REG_CPU_CNT_CTL);
+ system_regs.push_back(REG_AON_CNT_CTL2);
+ system_regs.push_back(REG_CPU_CNT_CTL2);
+ system_regs.push_back(REG_UPMPCM_EL1);
+ system_regs.push_back(REG_UPMC13);
+ system_regs.push_back(REG_AON_CNT_CTL10);
+ system_regs.push_back(REG_AON_CNT3);
+ system_regs.push_back(REG_CPU_CNT3);
+ system_regs.push_back(REG_UPMSR_EL1);
+ system_regs.push_back(REG_UPMC14);
+ system_regs.push_back(REG_AON_CNT11);
+ system_regs.push_back(REG_AON_CNT_CTL3);
+ system_regs.push_back(REG_CPU_CNT_CTL3);
+ system_regs.push_back(REG_UPMC0);
+ system_regs.push_back(REG_UPMC15);
+ system_regs.push_back(REG_AON_CNT_CTL11);
+ system_regs.push_back(REG_AON_CNT4);
+ system_regs.push_back(REG_CPU_CNT4);
+ system_regs.push_back(REG_UPMC1);
+ system_regs.push_back(REG_UPMECM2_EL1);
+ system_regs.push_back(REG_AON_CNT_CTL4);
+ system_regs.push_back(REG_CPU_CNT_CTL4);
+ system_regs.push_back(REG_UPMC2);
+ system_regs.push_back(REG_UPMECM3_EL1);
+ system_regs.push_back(REG_AON_CNT5);
+ system_regs.push_back(REG_CPU_CNT5);
+ system_regs.push_back(REG_UPMC3);
+ system_regs.push_back(REG_UPMCR1_EL1);
+ system_regs.push_back(REG_AON_CNT_CTL5);
+ system_regs.push_back(REG_CPU_CNT_CTL5);
+ system_regs.push_back(REG_UPMC4);
+ system_regs.push_back(REG_UPMESR1_EL1);
+ system_regs.push_back(REG_AON_CNT6);
+ system_regs.push_back(REG_CPU_CNT6);
+ system_regs.push_back(REG_UPMC5);
+ system_regs.push_back(REG_AON_CNT_CTL6);
+ system_regs.push_back(REG_CPU_CNT_CTL6);
+ system_regs.push_back(REG_UPMC6);
+ system_regs.push_back(REG_AON_CNT7);
+ system_regs.push_back(REG_CPU_CNT7);
+ system_regs.push_back(REG_UPMC7);
+ system_regs.push_back(REG_AON_CNT_CTL7);
+ system_regs.push_back(REG_CPU_CNT_CTL7);
+ return system_regs;
+}
+
diff --git a/arch/arm64/sysregs_enum.h b/arch/arm64/sysregs_enum.h
new file mode 100644
index 00000000..a68ba08a
--- /dev/null
+++ b/arch/arm64/sysregs_enum.h
@@ -0,0 +1,14 @@
+#include <stddef.h>
+
+#include "binaryninjaapi.h"
+#include "disassembler/sysregs_gen.h"
+#include "disassembler/sysregs_fmt_gen.h"
+
+using namespace BinaryNinja;
+using namespace std;
+
+Ref<Enumeration> get_system_register_enum();
+Ref<Type> get_system_register_enum_type(Ref<BinaryView> view);
+QualifiedName get_system_register_enum_type_name(Ref<BinaryView> view);
+vector<uint32_t> get_system_registers();
+