diff options
Diffstat (limited to 'src/arch/arm')
-rw-r--r-- | src/arch/arm/ArmSystem.py | 4 | ||||
-rw-r--r-- | src/arch/arm/isa.cc | 74 | ||||
-rw-r--r-- | src/arch/arm/isa.hh | 8 | ||||
-rw-r--r-- | src/arch/arm/isa/formats/aarch64.isa | 9 | ||||
-rw-r--r-- | src/arch/arm/isa/formats/misc.isa | 8 | ||||
-rw-r--r-- | src/arch/arm/isa/insts/misc.isa | 2 | ||||
-rw-r--r-- | src/arch/arm/linux/system.cc | 4 | ||||
-rw-r--r-- | src/arch/arm/miscregs.cc | 1210 | ||||
-rw-r--r-- | src/arch/arm/miscregs.hh | 2 | ||||
-rw-r--r-- | src/arch/arm/table_walker.cc | 5 | ||||
-rw-r--r-- | src/arch/arm/tlb.cc | 9 |
11 files changed, 689 insertions, 646 deletions
diff --git a/src/arch/arm/ArmSystem.py b/src/arch/arm/ArmSystem.py index a803a251b..ec9d8c848 100644 --- a/src/arch/arm/ArmSystem.py +++ b/src/arch/arm/ArmSystem.py @@ -42,8 +42,6 @@ from System import System class ArmMachineType(Enum): map = {'RealView_EB' : 827, 'RealView_PBX' : 1901, - 'VExpress_ELT' : 2272, - 'VExpress_CA9' : 2272, 'VExpress_EMM' : 2272, 'VExpress_EMM64' : 2272} @@ -77,7 +75,7 @@ class LinuxArmSystem(ArmSystem): type = 'LinuxArmSystem' cxx_header = "arch/arm/linux/system.hh" load_addr_mask = 0x0fffffff - machine_type = Param.ArmMachineType('RealView_PBX', + machine_type = Param.ArmMachineType('VExpress_EMM', "Machine id from http://www.arm.linux.org.uk/developer/machines/") atags_addr = Param.Addr("Address where default atags structure should " \ "be written") diff --git a/src/arch/arm/isa.cc b/src/arch/arm/isa.cc index c2250e38a..d97c03db5 100644 --- a/src/arch/arm/isa.cc +++ b/src/arch/arm/isa.cc @@ -1101,33 +1101,10 @@ ISA::setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc) tc->getITBPtr()->invalidateMiscReg(); tc->getDTBPtr()->invalidateMiscReg(); - // Check if all CPUs are booted with caches enabled - // so we can stop enforcing coherency of some kernel - // structures manually. - sys = tc->getSystemPtr(); - for (x = 0; x < sys->numContexts(); x++) { - oc = sys->getThreadContext(x); - // @todo: double check this for security - SCTLR other_sctlr = oc->readMiscRegNoEffect(MISCREG_SCTLR); - if (!other_sctlr.c && oc->status() != ThreadContext::Halted) - return; - } - - for (x = 0; x < sys->numContexts(); x++) { - oc = sys->getThreadContext(x); - oc->getDTBPtr()->allCpusCaching(); - oc->getITBPtr()->allCpusCaching(); - - // If CheckerCPU is connected, need to notify it. - CheckerCPU *checker = oc->getCheckerCpuPtr(); - if (checker) { - checker->getDTBPtr()->allCpusCaching(); - checker->getITBPtr()->allCpusCaching(); - } - } + if (new_sctlr.c) + updateBootUncacheable(sctlr_idx, tc); return; } - case MISCREG_MIDR: case MISCREG_ID_PFR0: case MISCREG_ID_PFR1: @@ -1674,6 +1651,16 @@ ISA::setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc) } } } + case MISCREG_SCTLR_EL1: + { + tc->getITBPtr()->invalidateMiscReg(); + tc->getDTBPtr()->invalidateMiscReg(); + SCTLR new_sctlr = newVal; + setMiscRegNoEffect(misc_reg, newVal); + if (new_sctlr.c) + updateBootUncacheable(misc_reg, tc); + return; + } case MISCREG_CONTEXTIDR: case MISCREG_PRRR: case MISCREG_NMRR: @@ -1682,12 +1669,11 @@ ISA::setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc) case MISCREG_DACR: case MISCREG_VTTBR: case MISCREG_SCR_EL3: - case MISCREG_SCTLR_EL1: - case MISCREG_SCTLR_EL2: - case MISCREG_SCTLR_EL3: case MISCREG_TCR_EL1: case MISCREG_TCR_EL2: case MISCREG_TCR_EL3: + case MISCREG_SCTLR_EL2: + case MISCREG_SCTLR_EL3: case MISCREG_TTBR0_EL1: case MISCREG_TTBR1_EL1: case MISCREG_TTBR0_EL2: @@ -1922,6 +1908,38 @@ ISA::setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc) } void +ISA::updateBootUncacheable(int sctlr_idx, ThreadContext *tc) +{ + System *sys; + ThreadContext *oc; + + // Check if all CPUs are booted with caches enabled + // so we can stop enforcing coherency of some kernel + // structures manually. + sys = tc->getSystemPtr(); + for (int x = 0; x < sys->numContexts(); x++) { + oc = sys->getThreadContext(x); + // @todo: double check this for security + SCTLR other_sctlr = oc->readMiscRegNoEffect(sctlr_idx); + if (!other_sctlr.c && oc->status() != ThreadContext::Halted) + return; + } + + for (int x = 0; x < sys->numContexts(); x++) { + oc = sys->getThreadContext(x); + oc->getDTBPtr()->allCpusCaching(); + oc->getITBPtr()->allCpusCaching(); + + // If CheckerCPU is connected, need to notify it. + CheckerCPU *checker = oc->getCheckerCpuPtr(); + if (checker) { + checker->getDTBPtr()->allCpusCaching(); + checker->getITBPtr()->allCpusCaching(); + } + } +} + +void ISA::tlbiVA(ThreadContext *tc, MiscReg newVal, uint8_t asid, bool secure_lookup, uint8_t target_el) { diff --git a/src/arch/arm/isa.hh b/src/arch/arm/isa.hh index 9f7fa111e..ae5ff2131 100644 --- a/src/arch/arm/isa.hh +++ b/src/arch/arm/isa.hh @@ -429,6 +429,14 @@ namespace ArmISA void startup(ThreadContext *tc) {} + /** Check if all CPUs have their caches enabled and if they do + * disable the bootAddrUncacheability flag because it's no longer + * needed. + * @s_idx the register number of the SCTLR that we are checking + * @tc Threadcontext to use to get access to the system and other cpus + */ + void updateBootUncacheable(int sctlr_idx, ThreadContext *tc); + /// Explicitly import the otherwise hidden startup using SimObject::startup; diff --git a/src/arch/arm/isa/formats/aarch64.isa b/src/arch/arm/isa/formats/aarch64.isa index 04a8ba527..b5a4dfa21 100644 --- a/src/arch/arm/isa/formats/aarch64.isa +++ b/src/arch/arm/isa/formats/aarch64.isa @@ -366,9 +366,12 @@ namespace Aarch64 if (miscReg == MISCREG_DC_ZVA_Xt && !read) return new Dczva(machInst, rt, (IntRegIndex) miscReg, iss); - if (read) - return new Mrs64(machInst, rt, (IntRegIndex) miscReg, iss); - else + if (read) { + StaticInstPtr si = new Mrs64(machInst, rt, (IntRegIndex) miscReg, iss); + if (miscRegInfo[miscReg][MISCREG_UNVERIFIABLE]) + si->setFlag(StaticInst::IsUnverifiable); + return si; + } else return new Msr64(machInst, (IntRegIndex) miscReg, rt, iss); } else if (miscRegInfo[miscReg][MISCREG_WARN_NOT_FAIL]) { std::string full_mnem = csprintf("%s %s", diff --git a/src/arch/arm/isa/formats/misc.isa b/src/arch/arm/isa/formats/misc.isa index 925ed55cd..f81b96f2f 100644 --- a/src/arch/arm/isa/formats/misc.isa +++ b/src/arch/arm/isa/formats/misc.isa @@ -273,8 +273,12 @@ let {{ if (miscRegInfo[miscReg][MISCREG_IMPLEMENTED]) { uint32_t iss = mcrrMrrcIssBuild(isRead, crm, rt, rt2, opc1); - if (isRead) - return new Mrrc15(machInst, miscReg, rt2, rt, iss); + if (isRead) { + StaticInstPtr si = new Mrrc15(machInst, miscReg, rt2, rt, iss); + if (miscRegInfo[miscReg][MISCREG_UNVERIFIABLE]) + si->setFlag(StaticInst::IsUnverifiable); + return si; + } return new Mcrr15(machInst, rt2, rt, miscReg, iss); } else { return new FailUnimplemented(isRead ? "mrrc" : "mcrr", machInst, diff --git a/src/arch/arm/isa/insts/misc.isa b/src/arch/arm/isa/insts/misc.isa index 5403ddc8d..6ecaa78de 100644 --- a/src/arch/arm/isa/insts/misc.isa +++ b/src/arch/arm/isa/insts/misc.isa @@ -219,7 +219,7 @@ let {{ msrBankedRegIop = InstObjParams("msr", "MsrBankedReg", "MsrRegOp", { "code": msrBankedRegCode, "predicate_test": predicateTest }, - ["IsSerializeAfter"]) + ["IsSerializeAfter", "IsNonSpeculative"]) header_output += MsrBankedRegDeclare.subst(msrBankedRegIop) decoder_output += MsrBankedRegConstructor.subst(msrBankedRegIop) exec_output += PredOpExecute.subst(msrBankedRegIop) diff --git a/src/arch/arm/linux/system.cc b/src/arch/arm/linux/system.cc index 216a65899..66278681d 100644 --- a/src/arch/arm/linux/system.cc +++ b/src/arch/arm/linux/system.cc @@ -175,6 +175,10 @@ LinuxArmSystem::initState() "to DTB file: %s\n", params()->dtb_filename); } + Addr ra = _dtb_file->findReleaseAddr(); + if (ra) + bootReleaseAddr = ra & ~ULL(0x7F); + dtb_file->setTextBase(params()->atags_addr + loadAddrOffset); dtb_file->loadSections(physProxy); delete dtb_file; diff --git a/src/arch/arm/miscregs.cc b/src/arch/arm/miscregs.cc index d682dc454..d8c257f08 100644 --- a/src/arch/arm/miscregs.cc +++ b/src/arch/arm/miscregs.cc @@ -126,1227 +126,1227 @@ using namespace std; bitset<NUM_MISCREG_INFOS> miscRegInfo[NUM_MISCREGS] = { // MISCREG_CPSR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_FIQ - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_IRQ - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_SVC - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_MON - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_ABT - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_HYP - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_UND - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_ELR_HYP - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_FPSID - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_FPSCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MVFR1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MVFR0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_FPEXC - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // Helper registers // MISCREG_CPSR_MODE - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_CPSR_Q - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_FPSCR_Q - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_FPSCR_EXC - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_LOCKADDR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_LOCKFLAG - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PRRR_MAIR0 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001101")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), // MISCREG_PRRR_MAIR0_NS - bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), // MISCREG_PRRR_MAIR0_S - bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), // MISCREG_NMRR_MAIR1 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001101")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), // MISCREG_NMRR_MAIR1_NS - bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), // MISCREG_NMRR_MAIR1_S - bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), // MISCREG_PMXEVTYPER_PMCCFILTR - bitset<NUM_MISCREG_INFOS>(string("0000000000000000101")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000001001")), // MISCREG_SCTLR_RST - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SEV_MAILBOX - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // AArch32 CP14 registers // MISCREG_DBGDIDR - bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), // MISCREG_DBGDSCRint - bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), // MISCREG_DBGDCCINT - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGDTRTXint - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGDTRRXint - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWFAR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGVCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGDTRRXext - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGDSCRext - bitset<NUM_MISCREG_INFOS>(string("1111111111111100010")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000100")), // MISCREG_DBGDTRTXext - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGOSECCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBVR0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBVR1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBVR2 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBVR3 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBVR4 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBVR5 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBCR0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBCR1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBCR2 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBCR3 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBCR4 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBCR5 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWVR0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWVR1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWVR2 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWVR3 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWCR0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWCR1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWCR2 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGWCR3 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGDRAR - bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), // MISCREG_DBGBXVR4 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGBXVR5 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGOSLAR - bitset<NUM_MISCREG_INFOS>(string("1010111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("10101111111111000000")), // MISCREG_DBGOSLSR - bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), // MISCREG_DBGOSDLR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGPRCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGDSAR - bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), // MISCREG_DBGCLAIMSET - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGCLAIMCLR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_DBGAUTHSTATUS - bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), // MISCREG_DBGDEVID2 - bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), // MISCREG_DBGDEVID1 - bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), // MISCREG_DBGDEVID0 - bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), // MISCREG_TEECR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_JIDR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_TEEHBR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_JOSCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_JMCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // AArch32 CP15 registers // MISCREG_MIDR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CTR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_TCMTR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_TLBTR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_MPIDR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_REVIDR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000010")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000100")), // MISCREG_ID_PFR0 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_PFR1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_DFR0 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AFR0 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR0 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR2 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR3 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR0 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR2 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR3 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR4 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR5 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CCSIDR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CLIDR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_AIDR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CSSELR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_CSSELR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_CSSELR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_VPIDR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_VMPIDR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_SCTLR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_SCTLR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_SCTLR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_ACTLR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_ACTLR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_ACTLR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_CPACR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_SCR - bitset<NUM_MISCREG_INFOS>(string("1111001100000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), // MISCREG_SDER - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_NSACR - bitset<NUM_MISCREG_INFOS>(string("1111011101000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110111010000000001")), // MISCREG_HSCTLR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HACTLR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HCR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HDCR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HCPTR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HSTR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HACR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000010")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), // MISCREG_TTBR0 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_TTBR0_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_TTBR0_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_TTBR1 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_TTBR1_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_TTBR1_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_TTBCR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_TTBCR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_TTBCR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_HTCR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_VTCR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_DACR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_DACR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_DACR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_DFSR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_DFSR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_DFSR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_IFSR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_IFSR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_IFSR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_ADFSR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001010")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), // MISCREG_ADFSR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010010")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), // MISCREG_ADFSR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010010")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), // MISCREG_AIFSR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001010")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), // MISCREG_AIFSR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010010")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), // MISCREG_AIFSR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010010")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), // MISCREG_HADFSR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HAIFSR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HSR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_DFAR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_DFAR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_DFAR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_IFAR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_IFAR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_IFAR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_HDFAR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HIFAR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HPFAR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_ICIALLUIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_BPIALLIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_PAR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_PAR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_PAR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_ICIALLU - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_ICIMVAU - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_CP15ISB - bitset<NUM_MISCREG_INFOS>(string("1010101010101000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), // MISCREG_BPIALL - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_BPIMVA - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_DCIMVAC - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_DCISW - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_ATS1CPR - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_ATS1CPW - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_ATS1CUR - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_ATS1CUW - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_ATS12NSOPR - bitset<NUM_MISCREG_INFOS>(string("1010101000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), // MISCREG_ATS12NSOPW - bitset<NUM_MISCREG_INFOS>(string("1010101000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), // MISCREG_ATS12NSOUR - bitset<NUM_MISCREG_INFOS>(string("1010101000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), // MISCREG_ATS12NSOUW - bitset<NUM_MISCREG_INFOS>(string("1010101000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), // MISCREG_DCCMVAC - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_DCCSW - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_CP15DSB - bitset<NUM_MISCREG_INFOS>(string("1010101010101000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), // MISCREG_CP15DMB - bitset<NUM_MISCREG_INFOS>(string("1010101010101000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), // MISCREG_DCCMVAU - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_DCCIMVAC - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_DCCISW - bitset<NUM_MISCREG_INFOS>(string("1010101010000000010")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), // MISCREG_ATS1HR - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_ATS1HW - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBIALLIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIMVAIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIASIDIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIMVAAIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIMVALIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000000")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), // MISCREG_TLBIMVAALIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000000")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), // MISCREG_ITLBIALL - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_ITLBIMVA - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_ITLBIASID - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_DTLBIALL - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_DTLBIMVA - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_DTLBIASID - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIALL - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIMVA - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIASID - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIMVAA - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBIMVAL - bitset<NUM_MISCREG_INFOS>(string("1010101010000000000")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), // MISCREG_TLBIMVAAL - bitset<NUM_MISCREG_INFOS>(string("1010101010000000000")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), // MISCREG_TLBIIPAS2IS - bitset<NUM_MISCREG_INFOS>(string("1000100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), // MISCREG_TLBIIPAS2LIS - bitset<NUM_MISCREG_INFOS>(string("1000100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), // MISCREG_TLBIALLHIS - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBIMVAHIS - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBIALLNSNHIS - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBIMVALHIS - bitset<NUM_MISCREG_INFOS>(string("1000100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), // MISCREG_TLBIIPAS2 - bitset<NUM_MISCREG_INFOS>(string("1000100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), // MISCREG_TLBIIPAS2L - bitset<NUM_MISCREG_INFOS>(string("1000100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), // MISCREG_TLBIALLH - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBIMVAH - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBIALLNSNH - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBIMVALH - bitset<NUM_MISCREG_INFOS>(string("1000100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), // MISCREG_PMCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCNTENSET - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCNTENCLR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMOVSR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMSWINC - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMSELR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCEID0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCEID1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCCNTR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMXEVTYPER - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCCFILTR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMXEVCNTR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMUSERENR - bitset<NUM_MISCREG_INFOS>(string("1111111111010100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), // MISCREG_PMINTENSET - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_PMINTENCLR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_PMOVSSET - bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), // MISCREG_L2CTLR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_L2ECTLR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_PRRR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_PRRR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_PRRR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_MAIR0 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_MAIR0_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_MAIR0_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_NMRR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_NMRR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_NMRR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_MAIR1 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_MAIR1_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_MAIR1_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_AMAIR0 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_AMAIR0_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_AMAIR0_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_AMAIR1 - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_AMAIR1_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_AMAIR1_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_HMAIR0 - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HMAIR1 - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_HAMAIR0 - bitset<NUM_MISCREG_INFOS>(string("1100110000000000010")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), // MISCREG_HAMAIR1 - bitset<NUM_MISCREG_INFOS>(string("1100110000000000010")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), // MISCREG_VBAR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_VBAR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_VBAR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_MVBAR - bitset<NUM_MISCREG_INFOS>(string("1111001100000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), // MISCREG_RMR - bitset<NUM_MISCREG_INFOS>(string("1111001100000000000")), + bitset<NUM_MISCREG_INFOS>(string("11110011000000000000")), // MISCREG_ISR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_HVBAR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_FCSEIDR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000010")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), // MISCREG_CONTEXTIDR - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_CONTEXTIDR_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_CONTEXTIDR_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_TPIDRURW - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_TPIDRURW_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011111110001")), + bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), // MISCREG_TPIDRURW_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_TPIDRURO - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_TPIDRURO_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011010110001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110101100001")), // MISCREG_TPIDRURO_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_TPIDRPRW - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_TPIDRPRW_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011000010001")), + bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), // MISCREG_TPIDRPRW_S - bitset<NUM_MISCREG_INFOS>(string("0011001100000010001")), + bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), // MISCREG_HTPIDR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_CNTFRQ - bitset<NUM_MISCREG_INFOS>(string("1111010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("11110101010101000011")), // MISCREG_CNTKCTL - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CNTP_TVAL - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_CNTP_TVAL_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011111110001")), + bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), // MISCREG_CNTP_TVAL_S - bitset<NUM_MISCREG_INFOS>(string("0011001100111110000")), + bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), // MISCREG_CNTP_CTL - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_CNTP_CTL_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011111110001")), + bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), // MISCREG_CNTP_CTL_S - bitset<NUM_MISCREG_INFOS>(string("0011001100111110000")), + bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), // MISCREG_CNTV_TVAL - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTV_CTL - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTHCTL - bitset<NUM_MISCREG_INFOS>(string("0100100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), // MISCREG_CNTHP_TVAL - bitset<NUM_MISCREG_INFOS>(string("0100100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), // MISCREG_CNTHP_CTL - bitset<NUM_MISCREG_INFOS>(string("0100100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), // MISCREG_IL1DATA0 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_IL1DATA1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_IL1DATA2 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_IL1DATA3 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_DL1DATA0 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_DL1DATA1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_DL1DATA2 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_DL1DATA3 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_DL1DATA4 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_RAMINDEX - bitset<NUM_MISCREG_INFOS>(string("1010101010000000000")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), // MISCREG_L2ACTLR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_CBAR - bitset<NUM_MISCREG_INFOS>(string("0101010101000000000")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000000")), // MISCREG_HTTBR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_VTTBR - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_CNTPCT - bitset<NUM_MISCREG_INFOS>(string("0101010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), // MISCREG_CNTVCT - bitset<NUM_MISCREG_INFOS>(string("0101010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), // MISCREG_CNTP_CVAL - bitset<NUM_MISCREG_INFOS>(string("0000000000000001001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), // MISCREG_CNTP_CVAL_NS - bitset<NUM_MISCREG_INFOS>(string("1100110011111110000")), + bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), // MISCREG_CNTP_CVAL_S - bitset<NUM_MISCREG_INFOS>(string("0011001100111110000")), + bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), // MISCREG_CNTV_CVAL - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTVOFF - bitset<NUM_MISCREG_INFOS>(string("1100110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), // MISCREG_CNTHP_CVAL - bitset<NUM_MISCREG_INFOS>(string("0100100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), // MISCREG_CPUMERRSR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000000")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), // MISCREG_L2MERRSR - bitset<NUM_MISCREG_INFOS>(string("1111111111000000010")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), // AArch64 registers (Op0=2) // MISCREG_MDCCINT_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_OSDTRRX_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MDSCR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_OSDTRTX_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_OSECCR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBVR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBVR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBVR2_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBVR3_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBVR4_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBVR5_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBCR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBCR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBCR2_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBCR3_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBCR4_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGBCR5_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWVR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWVR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWVR2_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWVR3_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWCR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWCR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWCR2_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGWCR3_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MDCCSR_EL0 - bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), // MISCREG_MDDTR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MDDTRTX_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MDDTRRX_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGVCR32_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MDRAR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), // MISCREG_OSLAR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1010111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("10101111111111000001")), // MISCREG_OSLSR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), // MISCREG_OSDLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGPRCR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGCLAIMSET_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGCLAIMCLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DBGAUTHSTATUS_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), // MISCREG_TEECR32_EL1 - bitset<NUM_MISCREG_INFOS>(string("0000000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), // MISCREG_TEEHBR32_EL1 - bitset<NUM_MISCREG_INFOS>(string("0000000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), // AArch64 registers (Op0=1,3) // MISCREG_MIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_MPIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_REVIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_PFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_PFR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_DFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR2_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_MMFR3_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR2_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR3_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR4_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_ISAR5_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_MVFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_MVFR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_MVFR2_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64PFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64PFR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64DFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64DFR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64AFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64AFR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64ISAR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64ISAR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64MMFR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ID_AA64MMFR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CCSIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CLIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_AIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CSSELR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CTR_EL0 - bitset<NUM_MISCREG_INFOS>(string("0101010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), // MISCREG_DCZID_EL0 - bitset<NUM_MISCREG_INFOS>(string("0101010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), // MISCREG_VPIDR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_VMPIDR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SCTLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_ACTLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CPACR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_SCTLR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_ACTLR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_HCR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_MDCR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_CPTR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_HSTR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_HACR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SCTLR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_ACTLR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_SCR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_SDER32_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_CPTR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_MDCR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_TTBR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_TTBR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_TCR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_TTBR0_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_TCR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_VTTBR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_VTCR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_TTBR0_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_TCR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_DACR32_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SPSR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_ELR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_SP_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_SPSEL - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CURRENTEL - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_NZCV - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DAIF - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_FPCR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_FPSR - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DSPSR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_DLR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_SPSR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_ELR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SP_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SPSR_IRQ_AA64 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SPSR_ABT_AA64 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SPSR_UND_AA64 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SPSR_FIQ_AA64 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_SPSR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_ELR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_SP_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_AFSR0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_AFSR1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_ESR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_IFSR32_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_AFSR0_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_AFSR1_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_ESR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_FPEXC32_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_AFSR0_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_AFSR1_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_ESR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_FAR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_FAR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_HPFAR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_FAR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_IC_IALLUIS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), // MISCREG_PAR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_IC_IALLU - bitset<NUM_MISCREG_INFOS>(string("1010101010000000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), // MISCREG_DC_IVAC_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), // MISCREG_DC_ISW_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), // MISCREG_AT_S1E1R_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_AT_S1E1W_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_AT_S1E0R_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_AT_S1E0W_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_DC_CSW_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), // MISCREG_DC_CISW_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), // MISCREG_DC_ZVA_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010001000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010100010000101")), // MISCREG_IC_IVAU_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010101000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), // MISCREG_DC_CVAC_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010101000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), // MISCREG_DC_CVAU_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010101000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), // MISCREG_DC_CIVAC_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010101000011")), + bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), // MISCREG_AT_S1E2R_Xt - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_AT_S1E2W_Xt - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_AT_S12E1R_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_AT_S12E1W_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_AT_S12E0R_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_AT_S12E0W_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_AT_S1E3R_Xt - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_AT_S1E3W_Xt - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_TLBI_VMALLE1IS - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VAE1IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_ASIDE1IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VAAE1IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VALE1IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VAALE1IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VMALLE1 - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VAE1_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_ASIDE1_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VAAE1_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VALE1_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_VAALE1_Xt - bitset<NUM_MISCREG_INFOS>(string("1010101010000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), // MISCREG_TLBI_IPAS2E1IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_IPAS2LE1IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_ALLE2IS - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBI_VAE2IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBI_ALLE1IS - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_VALE2IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBI_VMALLS12E1IS - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_IPAS2E1_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_IPAS2LE1_Xt - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_ALLE2 - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBI_VAE2_Xt - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBI_ALLE1 - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_VALE2_Xt - bitset<NUM_MISCREG_INFOS>(string("1000100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), // MISCREG_TLBI_VMALLS12E1 - bitset<NUM_MISCREG_INFOS>(string("1010100000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), // MISCREG_TLBI_ALLE3IS - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_TLBI_VAE3IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_TLBI_VALE3IS_Xt - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_TLBI_ALLE3 - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_TLBI_VAE3_Xt - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_TLBI_VALE3_Xt - bitset<NUM_MISCREG_INFOS>(string("1010000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), // MISCREG_PMINTENSET_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_PMINTENCLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_PMCR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCNTENSET_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCNTENCLR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMOVSCLR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMSWINC_EL0 - bitset<NUM_MISCREG_INFOS>(string("1010101010111100001")), + bitset<NUM_MISCREG_INFOS>(string("10101010101111000001")), // MISCREG_PMSELR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCEID0_EL0 - bitset<NUM_MISCREG_INFOS>(string("0101010101111100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), // MISCREG_PMCEID1_EL0 - bitset<NUM_MISCREG_INFOS>(string("0101010101111100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), // MISCREG_PMCCNTR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMXEVTYPER_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMCCFILTR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMXEVCNTR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMUSERENR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111010100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), // MISCREG_PMOVSSET_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_MAIR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_AMAIR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_MAIR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_AMAIR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_MAIR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_AMAIR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_L2CTLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_L2ECTLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_VBAR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_RVBAR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_ISR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_VBAR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_RVBAR_EL2 - bitset<NUM_MISCREG_INFOS>(string("0101010000000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010100000000000001")), // MISCREG_VBAR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_RVBAR_EL3 - bitset<NUM_MISCREG_INFOS>(string("0101000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010000000000000001")), // MISCREG_RMR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_CONTEXTIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_TPIDR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_TPIDR_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_TPIDRRO_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111010100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), // MISCREG_TPIDR_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_TPIDR_EL3 - bitset<NUM_MISCREG_INFOS>(string("1111000000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), // MISCREG_CNTKCTL_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CNTFRQ_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("11110101010101000001")), // MISCREG_CNTPCT_EL0 - bitset<NUM_MISCREG_INFOS>(string("0101010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), // MISCREG_CNTVCT_EL0 - bitset<NUM_MISCREG_INFOS>(string("0101010101010100001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), // MISCREG_CNTP_TVAL_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_CNTP_CTL_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_CNTP_CVAL_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_CNTV_TVAL_EL0 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTV_CTL_EL0 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTV_CVAL_EL0 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_PMEVCNTR0_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVCNTR1_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVCNTR2_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVCNTR3_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVCNTR4_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVCNTR5_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVTYPER0_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVTYPER1_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVTYPER2_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVTYPER3_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVTYPER4_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_PMEVTYPER5_EL0 - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_CNTVOFF_EL2 - bitset<NUM_MISCREG_INFOS>(string("1111110000000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), // MISCREG_CNTHCTL_EL2 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTHP_TVAL_EL2 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTHP_CTL_EL2 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTHP_CVAL_EL2 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTPS_TVAL_EL1 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTPS_CTL_EL1 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_CNTPS_CVAL_EL1 - bitset<NUM_MISCREG_INFOS>(string("0111100000000000000")), + bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), // MISCREG_IL1DATA0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_IL1DATA1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_IL1DATA2_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_IL1DATA3_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_DL1DATA0_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_DL1DATA1_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_DL1DATA2_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_DL1DATA3_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_DL1DATA4_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_L2ACTLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CPUACTLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CPUECTLR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_CPUMERRSR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000001")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), // MISCREG_L2MERRSR_EL1 - bitset<NUM_MISCREG_INFOS>(string("1111111111000000010")), + bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), // MISCREG_CBAR_EL1 - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // Dummy registers // MISCREG_NOP - bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")), + bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), // MISCREG_RAZ - bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")), + bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), // MISCREG_CP14_UNIMPL - bitset<NUM_MISCREG_INFOS>(string("0000000000000000010")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), // MISCREG_CP15_UNIMPL - bitset<NUM_MISCREG_INFOS>(string("0000000000000000010")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), // MISCREG_A64_UNIMPL - bitset<NUM_MISCREG_INFOS>(string("0000000000000000010")), + bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), // MISCREG_UNKNOWN - bitset<NUM_MISCREG_INFOS>(string("0000000000000000001")) + bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")) }; MiscRegIndex diff --git a/src/arch/arm/miscregs.hh b/src/arch/arm/miscregs.hh index 3852caee8..930902543 100644 --- a/src/arch/arm/miscregs.hh +++ b/src/arch/arm/miscregs.hh @@ -677,6 +677,8 @@ namespace ArmISA enum MiscRegInfo { MISCREG_IMPLEMENTED, + MISCREG_UNVERIFIABLE, // Does the value change on every read (e.g. a + // arch generic counter) MISCREG_WARN_NOT_FAIL, // If MISCREG_IMPLEMENTED is deasserted, it // tells whether the instruction should raise a // warning or fail diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc index ed669919c..adff57fdf 100644 --- a/src/arch/arm/table_walker.cc +++ b/src/arch/arm/table_walker.cc @@ -388,7 +388,6 @@ TableWalker::processWalkWrapper() // if we've still got pending translations schedule more work nextWalk(tc); currState = NULL; - completeDrain(); } Fault @@ -1677,7 +1676,6 @@ TableWalker::doL1DescriptorWrapper() doL1Descriptor(); stateQueues[L1].pop_front(); - completeDrain(); // Check if fault was generated if (currState->fault != NoFault) { currState->transState->finish(currState->fault, currState->req, @@ -1745,7 +1743,6 @@ TableWalker::doL2DescriptorWrapper() stateQueues[L2].pop_front(); - completeDrain(); pending = false; nextWalk(currState->tc); @@ -1844,6 +1841,8 @@ TableWalker::nextWalk(ThreadContext *tc) { if (pendingQueue.size()) schedule(doProcessEvent, clockEdge(Cycles(1))); + else + completeDrain(); } bool diff --git a/src/arch/arm/tlb.cc b/src/arch/arm/tlb.cc index ef0702d44..46f124665 100644 --- a/src/arch/arm/tlb.cc +++ b/src/arch/arm/tlb.cc @@ -1089,7 +1089,14 @@ TLB::translateFs(RequestPtr req, ThreadContext *tc, Mode mode, req->setFlags(Request::UNCACHEABLE); } - req->setPaddr(te->pAddr(vaddr)); + Addr pa = te->pAddr(vaddr); + req->setPaddr(pa); + + if (!bootUncacheability && + ((ArmSystem*)tc->getSystemPtr())->adderBootUncacheable(pa)) { + req->setFlags(Request::UNCACHEABLE); + } + if (isSecure && !te->ns) { req->setFlags(Request::SECURE); } |