miscregs.cc revision 10604
17259Sgblack@eecs.umich.edu/* 212669Schuan.zhu@arm.com * Copyright (c) 2010-2013 ARM Limited 37259Sgblack@eecs.umich.edu * All rights reserved 47259Sgblack@eecs.umich.edu * 57259Sgblack@eecs.umich.edu * The license below extends only to copyright in the software and shall 67259Sgblack@eecs.umich.edu * not be construed as granting a license to any other intellectual 77259Sgblack@eecs.umich.edu * property including but not limited to intellectual property relating 87259Sgblack@eecs.umich.edu * to a hardware implementation of the functionality of the software 97259Sgblack@eecs.umich.edu * licensed hereunder. You may use the software subject to the license 107259Sgblack@eecs.umich.edu * terms below provided that you ensure that this notice is replicated 117259Sgblack@eecs.umich.edu * unmodified and in its entirety in all distributions of the software, 127259Sgblack@eecs.umich.edu * modified or unmodified, in source code or in binary form. 137259Sgblack@eecs.umich.edu * 147259Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 157259Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 167259Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright 177259Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 187259Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 197259Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 207259Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution; 217259Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 227259Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from 237259Sgblack@eecs.umich.edu * this software without specific prior written permission. 247259Sgblack@eecs.umich.edu * 257259Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 267259Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 277259Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 287259Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 297259Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 307259Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 317259Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 327259Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 337259Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 347259Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 357259Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 367259Sgblack@eecs.umich.edu * 377259Sgblack@eecs.umich.edu * Authors: Gabe Black 387405SAli.Saidi@ARM.com * Ali Saidi 3910037SARM gem5 Developers * Giacomo Gabrielli 407259Sgblack@eecs.umich.edu */ 417259Sgblack@eecs.umich.edu 4211793Sbrandon.potter@amd.com#include "arch/arm/isa.hh" 4311793Sbrandon.potter@amd.com#include "arch/arm/miscregs.hh" 4411939Snikos.nikoleris@arm.com#include "base/misc.hh" 4511939Snikos.nikoleris@arm.com#include "cpu/thread_context.hh" 467405SAli.Saidi@ARM.com 4712334Sgabeblack@google.comnamespace ArmISA 4810037SARM gem5 Developers{ 4910828SGiacomo.Gabrielli@arm.com 507259Sgblack@eecs.umich.eduMiscRegIndex 517259Sgblack@eecs.umich.edudecodeCP14Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) 527259Sgblack@eecs.umich.edu{ 537259Sgblack@eecs.umich.edu switch(crn) { 547259Sgblack@eecs.umich.edu case 0: 558868SMatt.Horsnell@arm.com switch (opc1) { 568868SMatt.Horsnell@arm.com case 0: 578868SMatt.Horsnell@arm.com switch (opc2) { 588868SMatt.Horsnell@arm.com case 0: 5910037SARM gem5 Developers switch (crm) { 608868SMatt.Horsnell@arm.com case 0: 6110037SARM gem5 Developers return MISCREG_DBGDIDR; 628868SMatt.Horsnell@arm.com case 1: 6310037SARM gem5 Developers return MISCREG_DBGDSCRint; 6410037SARM gem5 Developers } 6510037SARM gem5 Developers break; 6610037SARM gem5 Developers } 6710037SARM gem5 Developers break; 6810037SARM gem5 Developers case 7: 6910037SARM gem5 Developers switch (opc2) { 708868SMatt.Horsnell@arm.com case 0: 7110037SARM gem5 Developers switch (crm) { 7210037SARM gem5 Developers case 0: 7310037SARM gem5 Developers return MISCREG_JIDR; 7410037SARM gem5 Developers } 7510037SARM gem5 Developers break; 7610037SARM gem5 Developers } 7710037SARM gem5 Developers break; 7810037SARM gem5 Developers } 7910037SARM gem5 Developers break; 8010037SARM gem5 Developers case 1: 8110037SARM gem5 Developers switch (opc1) { 829959Schander.sudanthi@arm.com case 6: 8310037SARM gem5 Developers switch (crm) { 849959Schander.sudanthi@arm.com case 0: 859959Schander.sudanthi@arm.com switch (opc2) { 869959Schander.sudanthi@arm.com case 0: 879959Schander.sudanthi@arm.com return MISCREG_TEEHBR; 889959Schander.sudanthi@arm.com } 899959Schander.sudanthi@arm.com break; 909959Schander.sudanthi@arm.com } 919959Schander.sudanthi@arm.com break; 929959Schander.sudanthi@arm.com case 7: 9310037SARM gem5 Developers switch (crm) { 949959Schander.sudanthi@arm.com case 0: 9510037SARM gem5 Developers switch (opc2) { 9610037SARM gem5 Developers case 0: 9710037SARM gem5 Developers return MISCREG_JOSCR; 9810037SARM gem5 Developers } 9910037SARM gem5 Developers break; 10010037SARM gem5 Developers } 10110037SARM gem5 Developers break; 10210037SARM gem5 Developers } 10310037SARM gem5 Developers break; 10410037SARM gem5 Developers case 2: 10510037SARM gem5 Developers switch (opc1) { 1068868SMatt.Horsnell@arm.com case 7: 10710037SARM gem5 Developers switch (crm) { 10810037SARM gem5 Developers case 0: 10910037SARM gem5 Developers switch (opc2) { 11010037SARM gem5 Developers case 0: 11110037SARM gem5 Developers return MISCREG_JMCR; 11210037SARM gem5 Developers } 11310037SARM gem5 Developers break; 11410037SARM gem5 Developers } 11510037SARM gem5 Developers break; 11610037SARM gem5 Developers } 11710037SARM gem5 Developers break; 11810037SARM gem5 Developers } 11910037SARM gem5 Developers // If we get here then it must be a register that we haven't implemented 12010037SARM gem5 Developers warn("CP14 unimplemented crn[%d], opc1[%d], crm[%d], opc2[%d]", 12110037SARM gem5 Developers crn, opc1, crm, opc2); 1228868SMatt.Horsnell@arm.com return MISCREG_CP14_UNIMPL; 12310037SARM gem5 Developers} 12410037SARM gem5 Developers 12510037SARM gem5 Developersusing namespace std; 12610037SARM gem5 Developers 12710037SARM gem5 Developersbitset<NUM_MISCREG_INFOS> miscRegInfo[NUM_MISCREGS] = { 1288868SMatt.Horsnell@arm.com // MISCREG_CPSR 12910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13010037SARM gem5 Developers // MISCREG_SPSR 1318868SMatt.Horsnell@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1327259Sgblack@eecs.umich.edu // MISCREG_SPSR_FIQ 1337259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1347259Sgblack@eecs.umich.edu // MISCREG_SPSR_IRQ 1357259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1367259Sgblack@eecs.umich.edu // MISCREG_SPSR_SVC 1377259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1387259Sgblack@eecs.umich.edu // MISCREG_SPSR_MON 1397259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1407259Sgblack@eecs.umich.edu // MISCREG_SPSR_ABT 1417259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1427259Sgblack@eecs.umich.edu // MISCREG_SPSR_HYP 1437259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1447259Sgblack@eecs.umich.edu // MISCREG_SPSR_UND 1457351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1467351Sgblack@eecs.umich.edu // MISCREG_ELR_HYP 1477259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1487259Sgblack@eecs.umich.edu // MISCREG_FPSID 14910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15010037SARM gem5 Developers // MISCREG_FPSCR 1517259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1527259Sgblack@eecs.umich.edu // MISCREG_MVFR1 1537259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1547259Sgblack@eecs.umich.edu // MISCREG_MVFR0 1557259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1567259Sgblack@eecs.umich.edu // MISCREG_FPEXC 1577259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1587259Sgblack@eecs.umich.edu 1597259Sgblack@eecs.umich.edu // Helper registers 1607259Sgblack@eecs.umich.edu // MISCREG_CPSR_MODE 1617259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1627259Sgblack@eecs.umich.edu // MISCREG_CPSR_Q 1637259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1647259Sgblack@eecs.umich.edu // MISCREG_FPSCR_Q 1657259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1667259Sgblack@eecs.umich.edu // MISCREG_FPSCR_EXC 1677259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1687259Sgblack@eecs.umich.edu // MISCREG_LOCKADDR 1697259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1707259Sgblack@eecs.umich.edu // MISCREG_LOCKFLAG 1717259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1727259Sgblack@eecs.umich.edu // MISCREG_PRRR_MAIR0 1737259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), 1747259Sgblack@eecs.umich.edu // MISCREG_PRRR_MAIR0_NS 1757259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 1767259Sgblack@eecs.umich.edu // MISCREG_PRRR_MAIR0_S 1777259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 1787259Sgblack@eecs.umich.edu // MISCREG_NMRR_MAIR1 1797259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), 1807259Sgblack@eecs.umich.edu // MISCREG_NMRR_MAIR1_NS 1817259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 1827259Sgblack@eecs.umich.edu // MISCREG_NMRR_MAIR1_S 1837259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 1847259Sgblack@eecs.umich.edu // MISCREG_PMXEVTYPER_PMCCFILTR 1857259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000001001")), 1867259Sgblack@eecs.umich.edu // MISCREG_SCTLR_RST 1877259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1887259Sgblack@eecs.umich.edu // MISCREG_SEV_MAILBOX 1897259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 1907259Sgblack@eecs.umich.edu 1917259Sgblack@eecs.umich.edu // AArch32 CP14 registers 1927259Sgblack@eecs.umich.edu // MISCREG_DBGDIDR 1937259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 1947259Sgblack@eecs.umich.edu // MISCREG_DBGDSCRint 1957259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 1967259Sgblack@eecs.umich.edu // MISCREG_DBGDCCINT 1977259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 1987259Sgblack@eecs.umich.edu // MISCREG_DBGDTRTXint 1997259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2007259Sgblack@eecs.umich.edu // MISCREG_DBGDTRRXint 2017259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2027259Sgblack@eecs.umich.edu // MISCREG_DBGWFAR 2037259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2047259Sgblack@eecs.umich.edu // MISCREG_DBGVCR 2057259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2067259Sgblack@eecs.umich.edu // MISCREG_DBGDTRRXext 2077259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2087259Sgblack@eecs.umich.edu // MISCREG_DBGDSCRext 2097259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000100")), 2107259Sgblack@eecs.umich.edu // MISCREG_DBGDTRTXext 2117259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2127259Sgblack@eecs.umich.edu // MISCREG_DBGOSECCR 2137259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2147259Sgblack@eecs.umich.edu // MISCREG_DBGBVR0 21510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21610037SARM gem5 Developers // MISCREG_DBGBVR1 21710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21810037SARM gem5 Developers // MISCREG_DBGBVR2 21910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22010037SARM gem5 Developers // MISCREG_DBGBVR3 22110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22210037SARM gem5 Developers // MISCREG_DBGBVR4 2237259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2247259Sgblack@eecs.umich.edu // MISCREG_DBGBVR5 2257259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2267351Sgblack@eecs.umich.edu // MISCREG_DBGBCR0 2277351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2287351Sgblack@eecs.umich.edu // MISCREG_DBGBCR1 2297351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2307351Sgblack@eecs.umich.edu // MISCREG_DBGBCR2 2317351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2327351Sgblack@eecs.umich.edu // MISCREG_DBGBCR3 2337351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2347351Sgblack@eecs.umich.edu // MISCREG_DBGBCR4 2357351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2367351Sgblack@eecs.umich.edu // MISCREG_DBGBCR5 2377351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2387351Sgblack@eecs.umich.edu // MISCREG_DBGWVR0 2397351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2407351Sgblack@eecs.umich.edu // MISCREG_DBGWVR1 2417351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2427351Sgblack@eecs.umich.edu // MISCREG_DBGWVR2 2437351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2447351Sgblack@eecs.umich.edu // MISCREG_DBGWVR3 2457351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24610037SARM gem5 Developers // MISCREG_DBGWCR0 24710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24810037SARM gem5 Developers // MISCREG_DBGWCR1 24910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25010037SARM gem5 Developers // MISCREG_DBGWCR2 25110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25210037SARM gem5 Developers // MISCREG_DBGWCR3 25310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25410037SARM gem5 Developers // MISCREG_DBGDRAR 25510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 25610037SARM gem5 Developers // MISCREG_DBGBXVR4 25710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25810037SARM gem5 Developers // MISCREG_DBGBXVR5 25910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 26010037SARM gem5 Developers // MISCREG_DBGOSLAR 26110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101111111111000000")), 26210037SARM gem5 Developers // MISCREG_DBGOSLSR 26310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 26410037SARM gem5 Developers // MISCREG_DBGOSDLR 26510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2667351Sgblack@eecs.umich.edu // MISCREG_DBGPRCR 2677351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2687351Sgblack@eecs.umich.edu // MISCREG_DBGDSAR 2697406SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 2707259Sgblack@eecs.umich.edu // MISCREG_DBGCLAIMSET 2717259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2727351Sgblack@eecs.umich.edu // MISCREG_DBGCLAIMCLR 2737259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2747351Sgblack@eecs.umich.edu // MISCREG_DBGAUTHSTATUS 2757351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 2767351Sgblack@eecs.umich.edu // MISCREG_DBGDEVID2 2777259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 27810037SARM gem5 Developers // MISCREG_DBGDEVID1 27910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 28010037SARM gem5 Developers // MISCREG_DBGDEVID0 28110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 28210037SARM gem5 Developers // MISCREG_TEECR 2837259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 2847259Sgblack@eecs.umich.edu // MISCREG_JIDR 2857351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 2867351Sgblack@eecs.umich.edu // MISCREG_TEEHBR 2877351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 2887351Sgblack@eecs.umich.edu // MISCREG_JOSCR 2897351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 2907259Sgblack@eecs.umich.edu // MISCREG_JMCR 2917259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 2927259Sgblack@eecs.umich.edu 2937259Sgblack@eecs.umich.edu // AArch32 CP15 registers 2947259Sgblack@eecs.umich.edu // MISCREG_MIDR 2957259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 2967259Sgblack@eecs.umich.edu // MISCREG_CTR 2977259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 2987259Sgblack@eecs.umich.edu // MISCREG_TCMTR 2997259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3007259Sgblack@eecs.umich.edu // MISCREG_TLBTR 3017259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3027259Sgblack@eecs.umich.edu // MISCREG_MPIDR 3037259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3047259Sgblack@eecs.umich.edu // MISCREG_REVIDR 30510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000100")), 30610037SARM gem5 Developers // MISCREG_ID_PFR0 30710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30810037SARM gem5 Developers // MISCREG_ID_PFR1 30910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31010037SARM gem5 Developers // MISCREG_ID_DFR0 31110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31210037SARM gem5 Developers // MISCREG_ID_AFR0 31310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3147259Sgblack@eecs.umich.edu // MISCREG_ID_MMFR0 3157259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3167259Sgblack@eecs.umich.edu // MISCREG_ID_MMFR1 3177351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3187351Sgblack@eecs.umich.edu // MISCREG_ID_MMFR2 3197259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3207351Sgblack@eecs.umich.edu // MISCREG_ID_MMFR3 3217259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3227351Sgblack@eecs.umich.edu // MISCREG_ID_ISAR0 3237259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32410037SARM gem5 Developers // MISCREG_ID_ISAR1 32510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32610037SARM gem5 Developers // MISCREG_ID_ISAR2 32710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32810037SARM gem5 Developers // MISCREG_ID_ISAR3 32910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33010037SARM gem5 Developers // MISCREG_ID_ISAR4 33110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33210037SARM gem5 Developers // MISCREG_ID_ISAR5 3337259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3347259Sgblack@eecs.umich.edu // MISCREG_CCSIDR 3357259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3367259Sgblack@eecs.umich.edu // MISCREG_CLIDR 3377259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3387259Sgblack@eecs.umich.edu // MISCREG_AIDR 3397259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 3407259Sgblack@eecs.umich.edu // MISCREG_CSSELR 3417259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 3427259Sgblack@eecs.umich.edu // MISCREG_CSSELR_NS 3437259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 3447259Sgblack@eecs.umich.edu // MISCREG_CSSELR_S 3457259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 3467259Sgblack@eecs.umich.edu // MISCREG_VPIDR 3477259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 3487259Sgblack@eecs.umich.edu // MISCREG_VMPIDR 3497259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 3507259Sgblack@eecs.umich.edu // MISCREG_SCTLR 3517351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 3527351Sgblack@eecs.umich.edu // MISCREG_SCTLR_NS 3537351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 3547351Sgblack@eecs.umich.edu // MISCREG_SCTLR_S 3557351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 3567259Sgblack@eecs.umich.edu // MISCREG_ACTLR 3577259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 3587259Sgblack@eecs.umich.edu // MISCREG_ACTLR_NS 3597259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 3607259Sgblack@eecs.umich.edu // MISCREG_ACTLR_S 3617259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 3627259Sgblack@eecs.umich.edu // MISCREG_CPACR 3637259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 3647259Sgblack@eecs.umich.edu // MISCREG_SCR 3657259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), 3667259Sgblack@eecs.umich.edu // MISCREG_SDER 3677259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 3687259Sgblack@eecs.umich.edu // MISCREG_NSACR 3697259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11110111010000000001")), 3707259Sgblack@eecs.umich.edu // MISCREG_HSCTLR 3717259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 3727259Sgblack@eecs.umich.edu // MISCREG_HACTLR 3737259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 3747259Sgblack@eecs.umich.edu // MISCREG_HCR 3757259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 3767259Sgblack@eecs.umich.edu // MISCREG_HDCR 3777351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 3787351Sgblack@eecs.umich.edu // MISCREG_HCPTR 3797351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 38010037SARM gem5 Developers // MISCREG_HSTR 3817351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 38210037SARM gem5 Developers // MISCREG_HACR 3837351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 38410037SARM gem5 Developers // MISCREG_TTBR0 3857351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 38610037SARM gem5 Developers // MISCREG_TTBR0_NS 3877351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 38810037SARM gem5 Developers // MISCREG_TTBR0_S 3897351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 39010037SARM gem5 Developers // MISCREG_TTBR1 3917351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 39210037SARM gem5 Developers // MISCREG_TTBR1_NS 3937351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 39410037SARM gem5 Developers // MISCREG_TTBR1_S 3957351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 3967351Sgblack@eecs.umich.edu // MISCREG_TTBCR 3977259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 3987259Sgblack@eecs.umich.edu // MISCREG_TTBCR_NS 3997259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 4007259Sgblack@eecs.umich.edu // MISCREG_TTBCR_S 4017259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 40210037SARM gem5 Developers // MISCREG_HTCR 4037259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4047259Sgblack@eecs.umich.edu // MISCREG_VTCR 4057259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4067259Sgblack@eecs.umich.edu // MISCREG_DACR 4077259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 4087259Sgblack@eecs.umich.edu // MISCREG_DACR_NS 4097259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 4107259Sgblack@eecs.umich.edu // MISCREG_DACR_S 4117259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 4127259Sgblack@eecs.umich.edu // MISCREG_DFSR 4137259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 4147259Sgblack@eecs.umich.edu // MISCREG_DFSR_NS 4157259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 4167259Sgblack@eecs.umich.edu // MISCREG_DFSR_S 4177259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 4187259Sgblack@eecs.umich.edu // MISCREG_IFSR 4197259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 4207259Sgblack@eecs.umich.edu // MISCREG_IFSR_NS 4217259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 4227259Sgblack@eecs.umich.edu // MISCREG_IFSR_S 4237259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 4247259Sgblack@eecs.umich.edu // MISCREG_ADFSR 4257259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), 4267259Sgblack@eecs.umich.edu // MISCREG_ADFSR_NS 42710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), 42810037SARM gem5 Developers // MISCREG_ADFSR_S 42910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), 43010037SARM gem5 Developers // MISCREG_AIFSR 43110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), 4327259Sgblack@eecs.umich.edu // MISCREG_AIFSR_NS 4337259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), 4347351Sgblack@eecs.umich.edu // MISCREG_AIFSR_S 4357351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), 4367351Sgblack@eecs.umich.edu // MISCREG_HADFSR 4377351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4387351Sgblack@eecs.umich.edu // MISCREG_HAIFSR 4397351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4407351Sgblack@eecs.umich.edu // MISCREG_HSR 4417351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4427351Sgblack@eecs.umich.edu // MISCREG_DFAR 4437351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 4447351Sgblack@eecs.umich.edu // MISCREG_DFAR_NS 4457351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 4467351Sgblack@eecs.umich.edu // MISCREG_DFAR_S 44712576Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 44812576Sgiacomo.travaglini@arm.com // MISCREG_IFAR 44912576Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 45012576Sgiacomo.travaglini@arm.com // MISCREG_IFAR_NS 4517351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 4527351Sgblack@eecs.umich.edu // MISCREG_IFAR_S 4537351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 4547351Sgblack@eecs.umich.edu // MISCREG_HDFAR 4557351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4567351Sgblack@eecs.umich.edu // MISCREG_HIFAR 4577351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4587351Sgblack@eecs.umich.edu // MISCREG_HPFAR 4597351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 4607351Sgblack@eecs.umich.edu // MISCREG_ICIALLUIS 4617351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 4627351Sgblack@eecs.umich.edu // MISCREG_BPIALLIS 4637351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 4647351Sgblack@eecs.umich.edu // MISCREG_PAR 4657351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 4667351Sgblack@eecs.umich.edu // MISCREG_PAR_NS 4677351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 4687351Sgblack@eecs.umich.edu // MISCREG_PAR_S 4697351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 4707351Sgblack@eecs.umich.edu // MISCREG_ICIALLU 4717351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 4727351Sgblack@eecs.umich.edu // MISCREG_ICIMVAU 4737351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 4747351Sgblack@eecs.umich.edu // MISCREG_CP15ISB 4757351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 4767351Sgblack@eecs.umich.edu // MISCREG_BPIALL 4777351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 4787351Sgblack@eecs.umich.edu // MISCREG_BPIMVA 4797351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 4807351Sgblack@eecs.umich.edu // MISCREG_DCIMVAC 4817351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 4827351Sgblack@eecs.umich.edu // MISCREG_DCISW 48312576Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 48412576Sgiacomo.travaglini@arm.com // MISCREG_ATS1CPR 48512576Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 48612576Sgiacomo.travaglini@arm.com // MISCREG_ATS1CPW 4877351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 4887351Sgblack@eecs.umich.edu // MISCREG_ATS1CUR 4897351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 49010037SARM gem5 Developers // MISCREG_ATS1CUW 49112577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 49212577Sgiacomo.travaglini@arm.com // MISCREG_ATS12NSOPR 49312577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49412577Sgiacomo.travaglini@arm.com // MISCREG_ATS12NSOPW 49512577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49612577Sgiacomo.travaglini@arm.com // MISCREG_ATS12NSOUR 49712577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49812577Sgiacomo.travaglini@arm.com // MISCREG_ATS12NSOUW 49910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 50010037SARM gem5 Developers // MISCREG_DCCMVAC 50110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 50210037SARM gem5 Developers // MISCREG_DCCSW 50310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 50410037SARM gem5 Developers // MISCREG_CP15DSB 50510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 50612576Sgiacomo.travaglini@arm.com // MISCREG_CP15DMB 50712576Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 50810037SARM gem5 Developers // MISCREG_DCCMVAU 50912577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51012577Sgiacomo.travaglini@arm.com // MISCREG_DCCIMVAC 51112577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51212577Sgiacomo.travaglini@arm.com // MISCREG_DCCISW 51312577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51412577Sgiacomo.travaglini@arm.com // MISCREG_ATS1HR 51512577Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 51610037SARM gem5 Developers // MISCREG_ATS1HW 51710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 51810037SARM gem5 Developers // MISCREG_TLBIALLIS 51910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52010037SARM gem5 Developers // MISCREG_TLBIMVAIS 52110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52210037SARM gem5 Developers // MISCREG_TLBIASIDIS 52310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52412576Sgiacomo.travaglini@arm.com // MISCREG_TLBIMVAAIS 52512576Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52610037SARM gem5 Developers // MISCREG_TLBIMVALIS 52710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 5287351Sgblack@eecs.umich.edu // MISCREG_TLBIMVAALIS 5297351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 5307259Sgblack@eecs.umich.edu // MISCREG_ITLBIALL 53112530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53212530Sgiacomo.travaglini@arm.com // MISCREG_ITLBIMVA 53312530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53412530Sgiacomo.travaglini@arm.com // MISCREG_ITLBIASID 53512530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53612530Sgiacomo.travaglini@arm.com // MISCREG_DTLBIALL 53712530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53812530Sgiacomo.travaglini@arm.com // MISCREG_DTLBIMVA 53912530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54012530Sgiacomo.travaglini@arm.com // MISCREG_DTLBIASID 54112530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54212530Sgiacomo.travaglini@arm.com // MISCREG_TLBIALL 54312530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 5447583SAli.Saidi@arm.com // MISCREG_TLBIMVA 5457259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 5467259Sgblack@eecs.umich.edu // MISCREG_TLBIASID 5477583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 5487583SAli.Saidi@arm.com // MISCREG_TLBIMVAA 5497583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 5507583SAli.Saidi@arm.com // MISCREG_TLBIMVAL 5517583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 5527583SAli.Saidi@arm.com // MISCREG_TLBIMVAAL 5537583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 5547583SAli.Saidi@arm.com // MISCREG_TLBIIPAS2IS 5557583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 5567583SAli.Saidi@arm.com // MISCREG_TLBIIPAS2LIS 5577583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 5587583SAli.Saidi@arm.com // MISCREG_TLBIALLHIS 5597583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 5607583SAli.Saidi@arm.com // MISCREG_TLBIMVAHIS 5617583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 5627583SAli.Saidi@arm.com // MISCREG_TLBIALLNSNHIS 5637583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 5647583SAli.Saidi@arm.com // MISCREG_TLBIMVALHIS 5658988SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 5667259Sgblack@eecs.umich.edu // MISCREG_TLBIIPAS2 5677583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 5687583SAli.Saidi@arm.com // MISCREG_TLBIIPAS2L 5697583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 5707583SAli.Saidi@arm.com // MISCREG_TLBIALLH 57110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 57210037SARM gem5 Developers // MISCREG_TLBIMVAH 5737583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 5747583SAli.Saidi@arm.com // MISCREG_TLBIALLNSNH 5757583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 5768988SAli.Saidi@ARM.com // MISCREG_TLBIMVALH 5777259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 5787583SAli.Saidi@arm.com // MISCREG_PMCR 5797583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5807583SAli.Saidi@arm.com // MISCREG_PMCNTENSET 5817583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5827583SAli.Saidi@arm.com // MISCREG_PMCNTENCLR 5837583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5847583SAli.Saidi@arm.com // MISCREG_PMOVSR 58510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58610037SARM gem5 Developers // MISCREG_PMSWINC 5877583SAli.Saidi@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5888988SAli.Saidi@ARM.com // MISCREG_PMSELR 5897259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5908058SAli.Saidi@ARM.com // MISCREG_PMCEID0 5918549Sdaniel.johnson@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5928549Sdaniel.johnson@arm.com // MISCREG_PMCEID1 5938549Sdaniel.johnson@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5948549Sdaniel.johnson@arm.com // MISCREG_PMCCNTR 5958549Sdaniel.johnson@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59610037SARM gem5 Developers // MISCREG_PMXEVTYPER 59710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 5988549Sdaniel.johnson@arm.com // MISCREG_PMCCFILTR 5998988SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 60010037SARM gem5 Developers // MISCREG_PMXEVCNTR 6018549Sdaniel.johnson@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 6027259Sgblack@eecs.umich.edu // MISCREG_PMUSERENR 6037259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 6047351Sgblack@eecs.umich.edu // MISCREG_PMINTENSET 6057351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 6067351Sgblack@eecs.umich.edu // MISCREG_PMINTENCLR 60712530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 60812530Sgiacomo.travaglini@arm.com // MISCREG_PMOVSSET 60912530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 6107351Sgblack@eecs.umich.edu // MISCREG_L2CTLR 61110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 61210037SARM gem5 Developers // MISCREG_L2ECTLR 6137351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 61410037SARM gem5 Developers // MISCREG_PRRR 61510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 6167351Sgblack@eecs.umich.edu // MISCREG_PRRR_NS 61710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 61810037SARM gem5 Developers // MISCREG_PRRR_S 61910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 62010037SARM gem5 Developers // MISCREG_MAIR0 62110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 62210037SARM gem5 Developers // MISCREG_MAIR0_NS 62310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 62410037SARM gem5 Developers // MISCREG_MAIR0_S 62510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 62610037SARM gem5 Developers // MISCREG_NMRR 62710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 62810037SARM gem5 Developers // MISCREG_NMRR_NS 62910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 63010037SARM gem5 Developers // MISCREG_NMRR_S 63110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 63210037SARM gem5 Developers // MISCREG_MAIR1 63310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 63410037SARM gem5 Developers // MISCREG_MAIR1_NS 63510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 6367351Sgblack@eecs.umich.edu // MISCREG_MAIR1_S 6377351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 6387351Sgblack@eecs.umich.edu // MISCREG_AMAIR0 6397259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 6408737Skoansin.tan@gmail.com // MISCREG_AMAIR0_NS 6417259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 6427259Sgblack@eecs.umich.edu // MISCREG_AMAIR0_S 6437259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 6447259Sgblack@eecs.umich.edu // MISCREG_AMAIR1 6457259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 6467259Sgblack@eecs.umich.edu // MISCREG_AMAIR1_NS 6477259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 6487259Sgblack@eecs.umich.edu // MISCREG_AMAIR1_S 6497259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 6507259Sgblack@eecs.umich.edu // MISCREG_HMAIR0 6517259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 6527259Sgblack@eecs.umich.edu // MISCREG_HMAIR1 65312530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 65412530Sgiacomo.travaglini@arm.com // MISCREG_HAMAIR0 6557259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 6567259Sgblack@eecs.umich.edu // MISCREG_HAMAIR1 6577259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 6587259Sgblack@eecs.umich.edu // MISCREG_VBAR 6597351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 6607351Sgblack@eecs.umich.edu // MISCREG_VBAR_NS 6617351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 6627351Sgblack@eecs.umich.edu // MISCREG_VBAR_S 6637351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 6647351Sgblack@eecs.umich.edu // MISCREG_MVBAR 6657351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), 6667351Sgblack@eecs.umich.edu // MISCREG_RMR 6677351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11110011000000000000")), 6687351Sgblack@eecs.umich.edu // MISCREG_ISR 6697351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 6707351Sgblack@eecs.umich.edu // MISCREG_HVBAR 6717351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 67210037SARM gem5 Developers // MISCREG_FCSEIDR 67310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 67410037SARM gem5 Developers // MISCREG_CONTEXTIDR 6757351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 6767351Sgblack@eecs.umich.edu // MISCREG_CONTEXTIDR_NS 6777259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 6787259Sgblack@eecs.umich.edu // MISCREG_CONTEXTIDR_S 6797259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 6807406SAli.Saidi@ARM.com // MISCREG_TPIDRURW 6817351Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 68210037SARM gem5 Developers // MISCREG_TPIDRURW_NS 6837259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 6847259Sgblack@eecs.umich.edu // MISCREG_TPIDRURW_S 6857259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 6867259Sgblack@eecs.umich.edu // MISCREG_TPIDRURO 6877259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 6887259Sgblack@eecs.umich.edu // MISCREG_TPIDRURO_NS 6897259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11001100110101100001")), 6907259Sgblack@eecs.umich.edu // MISCREG_TPIDRURO_S 6917259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 6927259Sgblack@eecs.umich.edu // MISCREG_TPIDRPRW 69310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 69410037SARM gem5 Developers // MISCREG_TPIDRPRW_NS 69510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 69610037SARM gem5 Developers // MISCREG_TPIDRPRW_S 69710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 69810037SARM gem5 Developers // MISCREG_HTPIDR 69910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 70010037SARM gem5 Developers // MISCREG_CNTFRQ 70110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110101010101000011")), 70210037SARM gem5 Developers // MISCREG_CNTKCTL 70310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 70410037SARM gem5 Developers // MISCREG_CNTP_TVAL 70510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 70610037SARM gem5 Developers // MISCREG_CNTP_TVAL_NS 70710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 70810037SARM gem5 Developers // MISCREG_CNTP_TVAL_S 70910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 71010037SARM gem5 Developers // MISCREG_CNTP_CTL 71110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 71210037SARM gem5 Developers // MISCREG_CNTP_CTL_NS 71310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 71410037SARM gem5 Developers // MISCREG_CNTP_CTL_S 71510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 71610037SARM gem5 Developers // MISCREG_CNTV_TVAL 71710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 71810037SARM gem5 Developers // MISCREG_CNTV_CTL 71910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 72010037SARM gem5 Developers // MISCREG_CNTHCTL 72110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72210037SARM gem5 Developers // MISCREG_CNTHP_TVAL 72310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72410037SARM gem5 Developers // MISCREG_CNTHP_CTL 72510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72610037SARM gem5 Developers // MISCREG_IL1DATA0 72710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 72810037SARM gem5 Developers // MISCREG_IL1DATA1 72910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73010037SARM gem5 Developers // MISCREG_IL1DATA2 7317259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 7327259Sgblack@eecs.umich.edu // MISCREG_IL1DATA3 7337259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 7347259Sgblack@eecs.umich.edu // MISCREG_DL1DATA0 73512530Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 7367259Sgblack@eecs.umich.edu // MISCREG_DL1DATA1 7377259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73810037SARM gem5 Developers // MISCREG_DL1DATA2 7397259Sgblack@eecs.umich.edu bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 7407259Sgblack@eecs.umich.edu // MISCREG_DL1DATA3 74110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74210037SARM gem5 Developers // MISCREG_DL1DATA4 74310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74410037SARM gem5 Developers // MISCREG_RAMINDEX 74510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 74610037SARM gem5 Developers // MISCREG_L2ACTLR 74710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74810037SARM gem5 Developers // MISCREG_CBAR 74910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000000")), 75010037SARM gem5 Developers // MISCREG_HTTBR 75110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 75210037SARM gem5 Developers // MISCREG_VTTBR 75310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 75410037SARM gem5 Developers // MISCREG_CNTPCT 75510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 75610037SARM gem5 Developers // MISCREG_CNTVCT 75710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), 75810037SARM gem5 Developers // MISCREG_CNTP_CVAL 75910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 76010037SARM gem5 Developers // MISCREG_CNTP_CVAL_NS 76110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 76210037SARM gem5 Developers // MISCREG_CNTP_CVAL_S 76310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 76410037SARM gem5 Developers // MISCREG_CNTV_CVAL 76510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 76610037SARM gem5 Developers // MISCREG_CNTVOFF 76710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 76810037SARM gem5 Developers // MISCREG_CNTHP_CVAL 76910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 77010037SARM gem5 Developers // MISCREG_CPUMERRSR 77110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 77210037SARM gem5 Developers // MISCREG_L2MERRSR 77310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 77410037SARM gem5 Developers 77510037SARM gem5 Developers // AArch64 registers (Op0=2) 77610037SARM gem5 Developers // MISCREG_MDCCINT_EL1 77710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 77810037SARM gem5 Developers // MISCREG_OSDTRRX_EL1 77910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78010037SARM gem5 Developers // MISCREG_MDSCR_EL1 78110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78210037SARM gem5 Developers // MISCREG_OSDTRTX_EL1 78310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78410037SARM gem5 Developers // MISCREG_OSECCR_EL1 78510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 7868902Sandreas.hansson@arm.com // MISCREG_DBGBVR0_EL1 78710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78811939Snikos.nikoleris@arm.com // MISCREG_DBGBVR1_EL1 78911939Snikos.nikoleris@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79010037SARM gem5 Developers // MISCREG_DBGBVR2_EL1 79110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79211939Snikos.nikoleris@arm.com // MISCREG_DBGBVR3_EL1 79311939Snikos.nikoleris@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79410037SARM gem5 Developers // MISCREG_DBGBVR4_EL1 79510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79610037SARM gem5 Developers // MISCREG_DBGBVR5_EL1 79710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79810037SARM gem5 Developers // MISCREG_DBGBCR0_EL1 79910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80010037SARM gem5 Developers // MISCREG_DBGBCR1_EL1 80110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80210037SARM gem5 Developers // MISCREG_DBGBCR2_EL1 80310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80410037SARM gem5 Developers // MISCREG_DBGBCR3_EL1 80510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80610037SARM gem5 Developers // MISCREG_DBGBCR4_EL1 80710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80810037SARM gem5 Developers // MISCREG_DBGBCR5_EL1 80910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81010037SARM gem5 Developers // MISCREG_DBGWVR0_EL1 81110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81210037SARM gem5 Developers // MISCREG_DBGWVR1_EL1 81310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81410037SARM gem5 Developers // MISCREG_DBGWVR2_EL1 81510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81610037SARM gem5 Developers // MISCREG_DBGWVR3_EL1 81711939Snikos.nikoleris@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81810037SARM gem5 Developers // MISCREG_DBGWCR0_EL1 81910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82010037SARM gem5 Developers // MISCREG_DBGWCR1_EL1 82111939Snikos.nikoleris@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82210037SARM gem5 Developers // MISCREG_DBGWCR2_EL1 82310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82411939Snikos.nikoleris@arm.com // MISCREG_DBGWCR3_EL1 82511939Snikos.nikoleris@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82610037SARM gem5 Developers // MISCREG_MDCCSR_EL0 82710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 82811939Snikos.nikoleris@arm.com // MISCREG_MDDTR_EL0 82911939Snikos.nikoleris@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83010037SARM gem5 Developers // MISCREG_MDDTRTX_EL0 83110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83210037SARM gem5 Developers // MISCREG_MDDTRRX_EL0 83310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83410037SARM gem5 Developers // MISCREG_DBGVCR32_EL2 83510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83610037SARM gem5 Developers // MISCREG_MDRAR_EL1 83710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 83810037SARM gem5 Developers // MISCREG_OSLAR_EL1 83910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101111111111000001")), 84010037SARM gem5 Developers // MISCREG_OSLSR_EL1 84110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 84210037SARM gem5 Developers // MISCREG_OSDLR_EL1 84310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84410037SARM gem5 Developers // MISCREG_DBGPRCR_EL1 84510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84610037SARM gem5 Developers // MISCREG_DBGCLAIMSET_EL1 84710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84810037SARM gem5 Developers // MISCREG_DBGCLAIMCLR_EL1 84910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 85010037SARM gem5 Developers // MISCREG_DBGAUTHSTATUS_EL1 85110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 85210037SARM gem5 Developers // MISCREG_TEECR32_EL1 85311939Snikos.nikoleris@arm.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), 85410037SARM gem5 Developers // MISCREG_TEEHBR32_EL1 85510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), 85610037SARM gem5 Developers 85711939Snikos.nikoleris@arm.com // AArch64 registers (Op0=1,3) 85810037SARM gem5 Developers // MISCREG_MIDR_EL1 85910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86010037SARM gem5 Developers // MISCREG_MPIDR_EL1 86112499Sgiacomo.travaglini@arm.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86210037SARM gem5 Developers // MISCREG_REVIDR_EL1 86311771SCurtis.Dunham@arm.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86412499Sgiacomo.travaglini@arm.com // MISCREG_ID_PFR0_EL1 86510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86610037SARM gem5 Developers // MISCREG_ID_PFR1_EL1 86710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86812499Sgiacomo.travaglini@arm.com // MISCREG_ID_DFR0_EL1 86910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87010421Sandreas.hansson@arm.com // MISCREG_ID_AFR0_EL1 87110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87211771SCurtis.Dunham@arm.com // MISCREG_ID_MMFR0_EL1 87311771SCurtis.Dunham@arm.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87410037SARM gem5 Developers // MISCREG_ID_MMFR1_EL1 87510421Sandreas.hansson@arm.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87610037SARM gem5 Developers // MISCREG_ID_MMFR2_EL1 87710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87810037SARM gem5 Developers // MISCREG_ID_MMFR3_EL1 87910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88010037SARM gem5 Developers // MISCREG_ID_ISAR0_EL1 88110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88210037SARM gem5 Developers // MISCREG_ID_ISAR1_EL1 88310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88410037SARM gem5 Developers // MISCREG_ID_ISAR2_EL1 88510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88610037SARM gem5 Developers // MISCREG_ID_ISAR3_EL1 88710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88810037SARM gem5 Developers // MISCREG_ID_ISAR4_EL1 88910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89010037SARM gem5 Developers // MISCREG_ID_ISAR5_EL1 89110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89210037SARM gem5 Developers // MISCREG_MVFR0_EL1 89310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89410037SARM gem5 Developers // MISCREG_MVFR1_EL1 89510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89610037SARM gem5 Developers // MISCREG_MVFR2_EL1 89710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89810037SARM gem5 Developers // MISCREG_ID_AA64PFR0_EL1 89910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90010037SARM gem5 Developers // MISCREG_ID_AA64PFR1_EL1 90110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90210037SARM gem5 Developers // MISCREG_ID_AA64DFR0_EL1 90310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90410037SARM gem5 Developers // MISCREG_ID_AA64DFR1_EL1 90510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90610037SARM gem5 Developers // MISCREG_ID_AA64AFR0_EL1 90710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90810037SARM gem5 Developers // MISCREG_ID_AA64AFR1_EL1 90910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91010037SARM gem5 Developers // MISCREG_ID_AA64ISAR0_EL1 91110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91210037SARM gem5 Developers // MISCREG_ID_AA64ISAR1_EL1 91310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91410037SARM gem5 Developers // MISCREG_ID_AA64MMFR0_EL1 91510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91610037SARM gem5 Developers // MISCREG_ID_AA64MMFR1_EL1 91710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91810037SARM gem5 Developers // MISCREG_CCSIDR_EL1 91910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92010037SARM gem5 Developers // MISCREG_CLIDR_EL1 92110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92210037SARM gem5 Developers // MISCREG_AIDR_EL1 92310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92410037SARM gem5 Developers // MISCREG_CSSELR_EL1 92510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 92610037SARM gem5 Developers // MISCREG_CTR_EL0 92710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 92810037SARM gem5 Developers // MISCREG_DCZID_EL0 92910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 93010037SARM gem5 Developers // MISCREG_VPIDR_EL2 93110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 93210037SARM gem5 Developers // MISCREG_VMPIDR_EL2 93310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 93410037SARM gem5 Developers // MISCREG_SCTLR_EL1 93510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 93610037SARM gem5 Developers // MISCREG_ACTLR_EL1 93710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 93810037SARM gem5 Developers // MISCREG_CPACR_EL1 93911574SCurtis.Dunham@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 94011574SCurtis.Dunham@arm.com // MISCREG_SCTLR_EL2 94110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94210037SARM gem5 Developers // MISCREG_ACTLR_EL2 94310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94410037SARM gem5 Developers // MISCREG_HCR_EL2 94510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94610037SARM gem5 Developers // MISCREG_MDCR_EL2 94710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94810037SARM gem5 Developers // MISCREG_CPTR_EL2 94910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95010037SARM gem5 Developers // MISCREG_HSTR_EL2 95110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95210037SARM gem5 Developers // MISCREG_HACR_EL2 95310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95410037SARM gem5 Developers // MISCREG_SCTLR_EL3 95510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 95610037SARM gem5 Developers // MISCREG_ACTLR_EL3 95710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 95810037SARM gem5 Developers // MISCREG_SCR_EL3 95910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96010037SARM gem5 Developers // MISCREG_SDER32_EL3 96110828SGiacomo.Gabrielli@arm.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96210828SGiacomo.Gabrielli@arm.com // MISCREG_CPTR_EL3 96310828SGiacomo.Gabrielli@arm.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96410037SARM gem5 Developers // MISCREG_MDCR_EL3 96510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96610037SARM gem5 Developers // MISCREG_TTBR0_EL1 96710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 96812502Snikos.nikoleris@arm.com // MISCREG_TTBR1_EL1 96910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 97010037SARM gem5 Developers // MISCREG_TCR_EL1 97110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 97210037SARM gem5 Developers // MISCREG_TTBR0_EL2 97310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97410037SARM gem5 Developers // MISCREG_TCR_EL2 97510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97610037SARM gem5 Developers // MISCREG_VTTBR_EL2 97710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97810037SARM gem5 Developers // MISCREG_VTCR_EL2 97910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 98010037SARM gem5 Developers // MISCREG_TTBR0_EL3 98110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 98210037SARM gem5 Developers // MISCREG_TCR_EL3 98311574SCurtis.Dunham@arm.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 98411574SCurtis.Dunham@arm.com // MISCREG_DACR32_EL2 98510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 98610037SARM gem5 Developers // MISCREG_SPSR_EL1 98710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 98810037SARM gem5 Developers // MISCREG_ELR_EL1 98910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99010037SARM gem5 Developers // MISCREG_SP_EL0 99110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99210037SARM gem5 Developers // MISCREG_SPSEL 99310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99410037SARM gem5 Developers // MISCREG_CURRENTEL 99510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 99610037SARM gem5 Developers // MISCREG_NZCV 99710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 99810037SARM gem5 Developers // MISCREG_DAIF 99910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100010037SARM gem5 Developers // MISCREG_FPCR 100110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100210037SARM gem5 Developers // MISCREG_FPSR 100310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100410037SARM gem5 Developers // MISCREG_DSPSR_EL0 100510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100610037SARM gem5 Developers // MISCREG_DLR_EL0 100710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100810037SARM gem5 Developers // MISCREG_SPSR_EL2 100910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101010037SARM gem5 Developers // MISCREG_ELR_EL2 101110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101210037SARM gem5 Developers // MISCREG_SP_EL1 101310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101410037SARM gem5 Developers // MISCREG_SPSR_IRQ_AA64 101510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101610037SARM gem5 Developers // MISCREG_SPSR_ABT_AA64 101710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101810037SARM gem5 Developers // MISCREG_SPSR_UND_AA64 101910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 102010037SARM gem5 Developers // MISCREG_SPSR_FIQ_AA64 102110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 102210037SARM gem5 Developers // MISCREG_SPSR_EL3 102310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102410037SARM gem5 Developers // MISCREG_ELR_EL3 102510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102610037SARM gem5 Developers // MISCREG_SP_EL2 102710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102810037SARM gem5 Developers // MISCREG_AFSR0_EL1 102910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103010037SARM gem5 Developers // MISCREG_AFSR1_EL1 103110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103210037SARM gem5 Developers // MISCREG_ESR_EL1 103310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103410037SARM gem5 Developers // MISCREG_IFSR32_EL2 103510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 103610037SARM gem5 Developers // MISCREG_AFSR0_EL2 103710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 103810037SARM gem5 Developers // MISCREG_AFSR1_EL2 103910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104010037SARM gem5 Developers // MISCREG_ESR_EL2 104110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104210037SARM gem5 Developers // MISCREG_FPEXC32_EL2 104310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104410037SARM gem5 Developers // MISCREG_AFSR0_EL3 104510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 104610037SARM gem5 Developers // MISCREG_AFSR1_EL3 104710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 104810037SARM gem5 Developers // MISCREG_ESR_EL3 104910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 105010037SARM gem5 Developers // MISCREG_FAR_EL1 105110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 105210037SARM gem5 Developers // MISCREG_FAR_EL2 105310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 105410037SARM gem5 Developers // MISCREG_HPFAR_EL2 105510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 105610037SARM gem5 Developers // MISCREG_FAR_EL3 105710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 105810037SARM gem5 Developers // MISCREG_IC_IALLUIS 105910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106010037SARM gem5 Developers // MISCREG_PAR_EL1 106110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 106210037SARM gem5 Developers // MISCREG_IC_IALLU 106310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106410037SARM gem5 Developers // MISCREG_DC_IVAC_Xt 106510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106610037SARM gem5 Developers // MISCREG_DC_ISW_Xt 106710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106810037SARM gem5 Developers // MISCREG_AT_S1E1R_Xt 106910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107010037SARM gem5 Developers // MISCREG_AT_S1E1W_Xt 107110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107210037SARM gem5 Developers // MISCREG_AT_S1E0R_Xt 107310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107410037SARM gem5 Developers // MISCREG_AT_S1E0W_Xt 107510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107610037SARM gem5 Developers // MISCREG_DC_CSW_Xt 107710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 107810037SARM gem5 Developers // MISCREG_DC_CISW_Xt 107910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 108010037SARM gem5 Developers // MISCREG_DC_ZVA_Xt 108110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100010000101")), 108210037SARM gem5 Developers // MISCREG_IC_IVAU_Xt 108310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 108410037SARM gem5 Developers // MISCREG_DC_CVAC_Xt 108510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 108610037SARM gem5 Developers // MISCREG_DC_CVAU_Xt 108710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 108810037SARM gem5 Developers // MISCREG_DC_CIVAC_Xt 108910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 109010037SARM gem5 Developers // MISCREG_AT_S1E2R_Xt 109110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 109210037SARM gem5 Developers // MISCREG_AT_S1E2W_Xt 109310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 109410037SARM gem5 Developers // MISCREG_AT_S12E1R_Xt 109510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 109610037SARM gem5 Developers // MISCREG_AT_S12E1W_Xt 109710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 109810037SARM gem5 Developers // MISCREG_AT_S12E0R_Xt 109910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 110010037SARM gem5 Developers // MISCREG_AT_S12E0W_Xt 110110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 110210037SARM gem5 Developers // MISCREG_AT_S1E3R_Xt 110310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 110410037SARM gem5 Developers // MISCREG_AT_S1E3W_Xt 110510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 110610037SARM gem5 Developers // MISCREG_TLBI_VMALLE1IS 110710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 110810037SARM gem5 Developers // MISCREG_TLBI_VAE1IS_Xt 110910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111010037SARM gem5 Developers // MISCREG_TLBI_ASIDE1IS_Xt 111110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111210037SARM gem5 Developers // MISCREG_TLBI_VAAE1IS_Xt 111310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111410037SARM gem5 Developers // MISCREG_TLBI_VALE1IS_Xt 111510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111610037SARM gem5 Developers // MISCREG_TLBI_VAALE1IS_Xt 111710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111810037SARM gem5 Developers // MISCREG_TLBI_VMALLE1 111910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112010037SARM gem5 Developers // MISCREG_TLBI_VAE1_Xt 112110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112210037SARM gem5 Developers // MISCREG_TLBI_ASIDE1_Xt 112310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112410037SARM gem5 Developers // MISCREG_TLBI_VAAE1_Xt 112510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112610037SARM gem5 Developers // MISCREG_TLBI_VALE1_Xt 112710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112810037SARM gem5 Developers // MISCREG_TLBI_VAALE1_Xt 112910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 113010037SARM gem5 Developers // MISCREG_TLBI_IPAS2E1IS_Xt 113110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 113210037SARM gem5 Developers // MISCREG_TLBI_IPAS2LE1IS_Xt 113310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 113410037SARM gem5 Developers // MISCREG_TLBI_ALLE2IS 113510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 113610037SARM gem5 Developers // MISCREG_TLBI_VAE2IS_Xt 113710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 113810037SARM gem5 Developers // MISCREG_TLBI_ALLE1IS 113910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114010037SARM gem5 Developers // MISCREG_TLBI_VALE2IS_Xt 114110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 114210037SARM gem5 Developers // MISCREG_TLBI_VMALLS12E1IS 114310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114410037SARM gem5 Developers // MISCREG_TLBI_IPAS2E1_Xt 114510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114610037SARM gem5 Developers // MISCREG_TLBI_IPAS2LE1_Xt 114710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114810037SARM gem5 Developers // MISCREG_TLBI_ALLE2 114910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115010037SARM gem5 Developers // MISCREG_TLBI_VAE2_Xt 115110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115210037SARM gem5 Developers // MISCREG_TLBI_ALLE1 115310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 115410037SARM gem5 Developers // MISCREG_TLBI_VALE2_Xt 115510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115610037SARM gem5 Developers // MISCREG_TLBI_VMALLS12E1 115710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 115810037SARM gem5 Developers // MISCREG_TLBI_ALLE3IS 115910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116010037SARM gem5 Developers // MISCREG_TLBI_VAE3IS_Xt 116110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116210037SARM gem5 Developers // MISCREG_TLBI_VALE3IS_Xt 116310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116410037SARM gem5 Developers // MISCREG_TLBI_ALLE3 116510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116610037SARM gem5 Developers // MISCREG_TLBI_VAE3_Xt 116710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116810037SARM gem5 Developers // MISCREG_TLBI_VALE3_Xt 116910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 117010037SARM gem5 Developers // MISCREG_PMINTENSET_EL1 117110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 117210037SARM gem5 Developers // MISCREG_PMINTENCLR_EL1 117310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 117410037SARM gem5 Developers // MISCREG_PMCR_EL0 117510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 117610037SARM gem5 Developers // MISCREG_PMCNTENSET_EL0 117710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 117810037SARM gem5 Developers // MISCREG_PMCNTENCLR_EL0 117910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118010037SARM gem5 Developers // MISCREG_PMOVSCLR_EL0 118110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118210037SARM gem5 Developers // MISCREG_PMSWINC_EL0 118310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("10101010101111000001")), 118410037SARM gem5 Developers // MISCREG_PMSELR_EL0 118510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118610037SARM gem5 Developers // MISCREG_PMCEID0_EL0 118710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), 118810037SARM gem5 Developers // MISCREG_PMCEID1_EL0 118910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), 119010037SARM gem5 Developers // MISCREG_PMCCNTR_EL0 119110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119210037SARM gem5 Developers // MISCREG_PMXEVTYPER_EL0 119310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119410037SARM gem5 Developers // MISCREG_PMCCFILTR_EL0 119510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119610037SARM gem5 Developers // MISCREG_PMXEVCNTR_EL0 119710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119810037SARM gem5 Developers // MISCREG_PMUSERENR_EL0 119910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 120010037SARM gem5 Developers // MISCREG_PMOVSSET_EL0 120110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 120210037SARM gem5 Developers // MISCREG_MAIR_EL1 120310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 120410037SARM gem5 Developers // MISCREG_AMAIR_EL1 120510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 120610037SARM gem5 Developers // MISCREG_MAIR_EL2 120710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 120810037SARM gem5 Developers // MISCREG_AMAIR_EL2 120910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 121010037SARM gem5 Developers // MISCREG_MAIR_EL3 121110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 121210037SARM gem5 Developers // MISCREG_AMAIR_EL3 121310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 121410037SARM gem5 Developers // MISCREG_L2CTLR_EL1 121510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 121610037SARM gem5 Developers // MISCREG_L2ECTLR_EL1 121710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 121810037SARM gem5 Developers // MISCREG_VBAR_EL1 121910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 122010037SARM gem5 Developers // MISCREG_RVBAR_EL1 122110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 122210037SARM gem5 Developers // MISCREG_ISR_EL1 122310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 122410037SARM gem5 Developers // MISCREG_VBAR_EL2 122510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 122610037SARM gem5 Developers // MISCREG_RVBAR_EL2 122710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010100000000000001")), 122810037SARM gem5 Developers // MISCREG_VBAR_EL3 122910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 123010037SARM gem5 Developers // MISCREG_RVBAR_EL3 123110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010000000000000001")), 123210037SARM gem5 Developers // MISCREG_RMR_EL3 123310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 123410037SARM gem5 Developers // MISCREG_CONTEXTIDR_EL1 123510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 123610037SARM gem5 Developers // MISCREG_TPIDR_EL1 123710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 123810037SARM gem5 Developers // MISCREG_TPIDR_EL0 123910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 124010037SARM gem5 Developers // MISCREG_TPIDRRO_EL0 124110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 124210037SARM gem5 Developers // MISCREG_TPIDR_EL2 124310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 124410037SARM gem5 Developers // MISCREG_TPIDR_EL3 124510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 124610037SARM gem5 Developers // MISCREG_CNTKCTL_EL1 124710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 124810037SARM gem5 Developers // MISCREG_CNTFRQ_EL0 124910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11110101010101000001")), 125010037SARM gem5 Developers // MISCREG_CNTPCT_EL0 125110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 125210037SARM gem5 Developers // MISCREG_CNTVCT_EL0 125310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), 125410037SARM gem5 Developers // MISCREG_CNTP_TVAL_EL0 125510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 125610037SARM gem5 Developers // MISCREG_CNTP_CTL_EL0 125710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 125810037SARM gem5 Developers // MISCREG_CNTP_CVAL_EL0 125910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126010037SARM gem5 Developers // MISCREG_CNTV_TVAL_EL0 126110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 126210037SARM gem5 Developers // MISCREG_CNTV_CTL_EL0 126310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 126410037SARM gem5 Developers // MISCREG_CNTV_CVAL_EL0 126510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 126610037SARM gem5 Developers // MISCREG_PMEVCNTR0_EL0 126710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126810037SARM gem5 Developers // MISCREG_PMEVCNTR1_EL0 126910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127010037SARM gem5 Developers // MISCREG_PMEVCNTR2_EL0 127110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127210037SARM gem5 Developers // MISCREG_PMEVCNTR3_EL0 127310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127410037SARM gem5 Developers // MISCREG_PMEVCNTR4_EL0 127510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127610037SARM gem5 Developers // MISCREG_PMEVCNTR5_EL0 127710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127810037SARM gem5 Developers // MISCREG_PMEVTYPER0_EL0 127910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128010037SARM gem5 Developers // MISCREG_PMEVTYPER1_EL0 128110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128210037SARM gem5 Developers // MISCREG_PMEVTYPER2_EL0 128310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128410037SARM gem5 Developers // MISCREG_PMEVTYPER3_EL0 128510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128610037SARM gem5 Developers // MISCREG_PMEVTYPER4_EL0 128710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128810037SARM gem5 Developers // MISCREG_PMEVTYPER5_EL0 128910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 129010037SARM gem5 Developers // MISCREG_CNTVOFF_EL2 129110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 129210037SARM gem5 Developers // MISCREG_CNTHCTL_EL2 129310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129410037SARM gem5 Developers // MISCREG_CNTHP_TVAL_EL2 129510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129610037SARM gem5 Developers // MISCREG_CNTHP_CTL_EL2 129710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129810037SARM gem5 Developers // MISCREG_CNTHP_CVAL_EL2 129910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130010037SARM gem5 Developers // MISCREG_CNTPS_TVAL_EL1 130110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130210037SARM gem5 Developers // MISCREG_CNTPS_CTL_EL1 130310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130410037SARM gem5 Developers // MISCREG_CNTPS_CVAL_EL1 130510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130610037SARM gem5 Developers // MISCREG_IL1DATA0_EL1 130710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 130810037SARM gem5 Developers // MISCREG_IL1DATA1_EL1 130910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131010037SARM gem5 Developers // MISCREG_IL1DATA2_EL1 131110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131210037SARM gem5 Developers // MISCREG_IL1DATA3_EL1 131310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131410037SARM gem5 Developers // MISCREG_DL1DATA0_EL1 131510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131610037SARM gem5 Developers // MISCREG_DL1DATA1_EL1 131710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131810037SARM gem5 Developers // MISCREG_DL1DATA2_EL1 131910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132010037SARM gem5 Developers // MISCREG_DL1DATA3_EL1 132110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132210037SARM gem5 Developers // MISCREG_DL1DATA4_EL1 132310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132410037SARM gem5 Developers // MISCREG_L2ACTLR_EL1 132510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132610037SARM gem5 Developers // MISCREG_CPUACTLR_EL1 132710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132810037SARM gem5 Developers // MISCREG_CPUECTLR_EL1 132910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 133010037SARM gem5 Developers // MISCREG_CPUMERRSR_EL1 133110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 133210037SARM gem5 Developers // MISCREG_L2MERRSR_EL1 133310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 133410037SARM gem5 Developers // MISCREG_CBAR_EL1 133510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 133610037SARM gem5 Developers 133710037SARM gem5 Developers // Dummy registers 133810037SARM gem5 Developers // MISCREG_NOP 133910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 134010037SARM gem5 Developers // MISCREG_RAZ 134110037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 134210037SARM gem5 Developers // MISCREG_CP14_UNIMPL 134310037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134410037SARM gem5 Developers // MISCREG_CP15_UNIMPL 134510037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134610037SARM gem5 Developers // MISCREG_A64_UNIMPL 134710037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134810037SARM gem5 Developers // MISCREG_UNKNOWN 134910037SARM gem5 Developers bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")) 135010037SARM gem5 Developers}; 135110037SARM gem5 Developers 135210037SARM gem5 DevelopersMiscRegIndex 135310037SARM gem5 DevelopersdecodeCP15Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) 135410037SARM gem5 Developers{ 135510037SARM gem5 Developers switch (crn) { 135610037SARM gem5 Developers case 0: 135710037SARM gem5 Developers switch (opc1) { 135810037SARM gem5 Developers case 0: 135910037SARM gem5 Developers switch (crm) { 136010037SARM gem5 Developers case 0: 136110037SARM gem5 Developers switch (opc2) { 136210037SARM gem5 Developers case 1: 136310037SARM gem5 Developers return MISCREG_CTR; 136410037SARM gem5 Developers case 2: 136510037SARM gem5 Developers return MISCREG_TCMTR; 136610037SARM gem5 Developers case 3: 136710037SARM gem5 Developers return MISCREG_TLBTR; 136810037SARM gem5 Developers case 5: 136910037SARM gem5 Developers return MISCREG_MPIDR; 137010037SARM gem5 Developers case 6: 137110037SARM gem5 Developers return MISCREG_REVIDR; 137210037SARM gem5 Developers default: 137310037SARM gem5 Developers return MISCREG_MIDR; 137410037SARM gem5 Developers } 137510037SARM gem5 Developers break; 137610037SARM gem5 Developers case 1: 137710037SARM gem5 Developers switch (opc2) { 137810037SARM gem5 Developers case 0: 137910037SARM gem5 Developers return MISCREG_ID_PFR0; 138010037SARM gem5 Developers case 1: 138110037SARM gem5 Developers return MISCREG_ID_PFR1; 138210037SARM gem5 Developers case 2: 138310037SARM gem5 Developers return MISCREG_ID_DFR0; 138410037SARM gem5 Developers case 3: 138510037SARM gem5 Developers return MISCREG_ID_AFR0; 138610037SARM gem5 Developers case 4: 138710037SARM gem5 Developers return MISCREG_ID_MMFR0; 138810037SARM gem5 Developers case 5: 138910037SARM gem5 Developers return MISCREG_ID_MMFR1; 139010037SARM gem5 Developers case 6: 139110037SARM gem5 Developers return MISCREG_ID_MMFR2; 139210037SARM gem5 Developers case 7: 139310037SARM gem5 Developers return MISCREG_ID_MMFR3; 139410037SARM gem5 Developers } 139510037SARM gem5 Developers break; 139610037SARM gem5 Developers case 2: 139710037SARM gem5 Developers switch (opc2) { 139810037SARM gem5 Developers case 0: 139910037SARM gem5 Developers return MISCREG_ID_ISAR0; 140010037SARM gem5 Developers case 1: 140110037SARM gem5 Developers return MISCREG_ID_ISAR1; 140210037SARM gem5 Developers case 2: 140310037SARM gem5 Developers return MISCREG_ID_ISAR2; 140410037SARM gem5 Developers case 3: 140510037SARM gem5 Developers return MISCREG_ID_ISAR3; 140610037SARM gem5 Developers case 4: 140710037SARM gem5 Developers return MISCREG_ID_ISAR4; 140810037SARM gem5 Developers case 5: 140910037SARM gem5 Developers return MISCREG_ID_ISAR5; 141010037SARM gem5 Developers case 6: 141110037SARM gem5 Developers case 7: 141210037SARM gem5 Developers return MISCREG_RAZ; // read as zero 141310037SARM gem5 Developers } 141410037SARM gem5 Developers break; 141510037SARM gem5 Developers default: 141610037SARM gem5 Developers return MISCREG_RAZ; // read as zero 141710037SARM gem5 Developers } 141810037SARM gem5 Developers break; 141910037SARM gem5 Developers case 1: 142010037SARM gem5 Developers if (crm == 0) { 142110037SARM gem5 Developers switch (opc2) { 142210037SARM gem5 Developers case 0: 142310037SARM gem5 Developers return MISCREG_CCSIDR; 142410037SARM gem5 Developers case 1: 142510037SARM gem5 Developers return MISCREG_CLIDR; 142610037SARM gem5 Developers case 7: 142710037SARM gem5 Developers return MISCREG_AIDR; 142810037SARM gem5 Developers } 142910037SARM gem5 Developers } 143010037SARM gem5 Developers break; 143110037SARM gem5 Developers case 2: 143210037SARM gem5 Developers if (crm == 0 && opc2 == 0) { 143310037SARM gem5 Developers return MISCREG_CSSELR; 143410037SARM gem5 Developers } 143510037SARM gem5 Developers break; 143610037SARM gem5 Developers case 4: 143710037SARM gem5 Developers if (crm == 0) { 143810037SARM gem5 Developers if (opc2 == 0) 143910037SARM gem5 Developers return MISCREG_VPIDR; 144010037SARM gem5 Developers else if (opc2 == 5) 144110037SARM gem5 Developers return MISCREG_VMPIDR; 144210037SARM gem5 Developers } 144310037SARM gem5 Developers break; 144410037SARM gem5 Developers } 144510037SARM gem5 Developers break; 144610037SARM gem5 Developers case 1: 144710037SARM gem5 Developers if (opc1 == 0) { 144810037SARM gem5 Developers if (crm == 0) { 144910037SARM gem5 Developers switch (opc2) { 145010037SARM gem5 Developers case 0: 145110037SARM gem5 Developers return MISCREG_SCTLR; 145210037SARM gem5 Developers case 1: 145310037SARM gem5 Developers return MISCREG_ACTLR; 145410037SARM gem5 Developers case 0x2: 145510037SARM gem5 Developers return MISCREG_CPACR; 145610037SARM gem5 Developers } 145710037SARM gem5 Developers } else if (crm == 1) { 145810037SARM gem5 Developers switch (opc2) { 145910037SARM gem5 Developers case 0: 146010037SARM gem5 Developers return MISCREG_SCR; 146110037SARM gem5 Developers case 1: 146210037SARM gem5 Developers return MISCREG_SDER; 146310037SARM gem5 Developers case 2: 146410037SARM gem5 Developers return MISCREG_NSACR; 146510037SARM gem5 Developers } 146610037SARM gem5 Developers } 146710037SARM gem5 Developers } else if (opc1 == 4) { 146810037SARM gem5 Developers if (crm == 0) { 146910037SARM gem5 Developers if (opc2 == 0) 147010037SARM gem5 Developers return MISCREG_HSCTLR; 147110037SARM gem5 Developers else if (opc2 == 1) 147210037SARM gem5 Developers return MISCREG_HACTLR; 147310037SARM gem5 Developers } else if (crm == 1) { 147410037SARM gem5 Developers switch (opc2) { 147510037SARM gem5 Developers case 0: 147610037SARM gem5 Developers return MISCREG_HCR; 147710037SARM gem5 Developers case 1: 147810037SARM gem5 Developers return MISCREG_HDCR; 147910037SARM gem5 Developers case 2: 148010037SARM gem5 Developers return MISCREG_HCPTR; 148110037SARM gem5 Developers case 3: 148210037SARM gem5 Developers return MISCREG_HSTR; 148310037SARM gem5 Developers case 7: 148410037SARM gem5 Developers return MISCREG_HACR; 148510037SARM gem5 Developers } 148610037SARM gem5 Developers } 148710037SARM gem5 Developers } 148810037SARM gem5 Developers break; 148910037SARM gem5 Developers case 2: 149010037SARM gem5 Developers if (opc1 == 0 && crm == 0) { 149110037SARM gem5 Developers switch (opc2) { 149210037SARM gem5 Developers case 0: 149310037SARM gem5 Developers return MISCREG_TTBR0; 149410037SARM gem5 Developers case 1: 149510037SARM gem5 Developers return MISCREG_TTBR1; 149610037SARM gem5 Developers case 2: 149710037SARM gem5 Developers return MISCREG_TTBCR; 149810037SARM gem5 Developers } 149910037SARM gem5 Developers } else if (opc1 == 4) { 150010037SARM gem5 Developers if (crm == 0 && opc2 == 2) 150110037SARM gem5 Developers return MISCREG_HTCR; 150210037SARM gem5 Developers else if (crm == 1 && opc2 == 2) 150310037SARM gem5 Developers return MISCREG_VTCR; 150410037SARM gem5 Developers } 150510037SARM gem5 Developers break; 150610037SARM gem5 Developers case 3: 150710037SARM gem5 Developers if (opc1 == 0 && crm == 0 && opc2 == 0) { 150810037SARM gem5 Developers return MISCREG_DACR; 150910037SARM gem5 Developers } 151010037SARM gem5 Developers break; 151110037SARM gem5 Developers case 5: 151210037SARM gem5 Developers if (opc1 == 0) { 151310037SARM gem5 Developers if (crm == 0) { 151410037SARM gem5 Developers if (opc2 == 0) { 151510037SARM gem5 Developers return MISCREG_DFSR; 151610037SARM gem5 Developers } else if (opc2 == 1) { 151710037SARM gem5 Developers return MISCREG_IFSR; 151810037SARM gem5 Developers } 151910037SARM gem5 Developers } else if (crm == 1) { 152010037SARM gem5 Developers if (opc2 == 0) { 152110037SARM gem5 Developers return MISCREG_ADFSR; 152210037SARM gem5 Developers } else if (opc2 == 1) { 152310037SARM gem5 Developers return MISCREG_AIFSR; 152410037SARM gem5 Developers } 152510037SARM gem5 Developers } 152610037SARM gem5 Developers } else if (opc1 == 4) { 152710037SARM gem5 Developers if (crm == 1) { 152810037SARM gem5 Developers if (opc2 == 0) 152910037SARM gem5 Developers return MISCREG_HADFSR; 153010037SARM gem5 Developers else if (opc2 == 1) 153110037SARM gem5 Developers return MISCREG_HAIFSR; 153210037SARM gem5 Developers } else if (crm == 2 && opc2 == 0) { 153310037SARM gem5 Developers return MISCREG_HSR; 153410037SARM gem5 Developers } 153510037SARM gem5 Developers } 153610037SARM gem5 Developers break; 153710037SARM gem5 Developers case 6: 153810037SARM gem5 Developers if (opc1 == 0 && crm == 0) { 153910037SARM gem5 Developers switch (opc2) { 154010037SARM gem5 Developers case 0: 154110037SARM gem5 Developers return MISCREG_DFAR; 154210037SARM gem5 Developers case 2: 154310037SARM gem5 Developers return MISCREG_IFAR; 154410037SARM gem5 Developers } 154510037SARM gem5 Developers } else if (opc1 == 4 && crm == 0) { 154610037SARM gem5 Developers switch (opc2) { 154710037SARM gem5 Developers case 0: 154810037SARM gem5 Developers return MISCREG_HDFAR; 154910037SARM gem5 Developers case 2: 155010037SARM gem5 Developers return MISCREG_HIFAR; 155110037SARM gem5 Developers case 4: 155210037SARM gem5 Developers return MISCREG_HPFAR; 155310037SARM gem5 Developers } 155410037SARM gem5 Developers } 155510037SARM gem5 Developers break; 155610037SARM gem5 Developers case 7: 155710037SARM gem5 Developers if (opc1 == 0) { 155810037SARM gem5 Developers switch (crm) { 155910037SARM gem5 Developers case 0: 156010037SARM gem5 Developers if (opc2 == 4) { 156110037SARM gem5 Developers return MISCREG_NOP; 156210037SARM gem5 Developers } 156310037SARM gem5 Developers break; 156410037SARM gem5 Developers case 1: 156510037SARM gem5 Developers switch (opc2) { 156610037SARM gem5 Developers case 0: 156710037SARM gem5 Developers return MISCREG_ICIALLUIS; 156810037SARM gem5 Developers case 6: 156910037SARM gem5 Developers return MISCREG_BPIALLIS; 157010037SARM gem5 Developers } 157110037SARM gem5 Developers break; 157210037SARM gem5 Developers case 4: 157310037SARM gem5 Developers if (opc2 == 0) { 157410037SARM gem5 Developers return MISCREG_PAR; 157510037SARM gem5 Developers } 157610037SARM gem5 Developers break; 157710037SARM gem5 Developers case 5: 157810037SARM gem5 Developers switch (opc2) { 157910037SARM gem5 Developers case 0: 158010037SARM gem5 Developers return MISCREG_ICIALLU; 158110037SARM gem5 Developers case 1: 158210037SARM gem5 Developers return MISCREG_ICIMVAU; 158310037SARM gem5 Developers case 4: 158410037SARM gem5 Developers return MISCREG_CP15ISB; 158510037SARM gem5 Developers case 6: 158610037SARM gem5 Developers return MISCREG_BPIALL; 158710037SARM gem5 Developers case 7: 158810037SARM gem5 Developers return MISCREG_BPIMVA; 158910037SARM gem5 Developers } 159010037SARM gem5 Developers break; 159110037SARM gem5 Developers case 6: 159210037SARM gem5 Developers if (opc2 == 1) { 159310037SARM gem5 Developers return MISCREG_DCIMVAC; 159410037SARM gem5 Developers } else if (opc2 == 2) { 159510037SARM gem5 Developers return MISCREG_DCISW; 159610037SARM gem5 Developers } 159710037SARM gem5 Developers break; 159810037SARM gem5 Developers case 8: 159910037SARM gem5 Developers switch (opc2) { 160010037SARM gem5 Developers case 0: 160110037SARM gem5 Developers return MISCREG_ATS1CPR; 160210037SARM gem5 Developers case 1: 160310037SARM gem5 Developers return MISCREG_ATS1CPW; 160410037SARM gem5 Developers case 2: 160510037SARM gem5 Developers return MISCREG_ATS1CUR; 160610037SARM gem5 Developers case 3: 160710037SARM gem5 Developers return MISCREG_ATS1CUW; 160810037SARM gem5 Developers case 4: 160910037SARM gem5 Developers return MISCREG_ATS12NSOPR; 161010037SARM gem5 Developers case 5: 161110037SARM gem5 Developers return MISCREG_ATS12NSOPW; 161210037SARM gem5 Developers case 6: 161310037SARM gem5 Developers return MISCREG_ATS12NSOUR; 161410037SARM gem5 Developers case 7: 161510037SARM gem5 Developers return MISCREG_ATS12NSOUW; 161610037SARM gem5 Developers } 161710037SARM gem5 Developers break; 161810037SARM gem5 Developers case 10: 161910037SARM gem5 Developers switch (opc2) { 162010037SARM gem5 Developers case 1: 162110037SARM gem5 Developers return MISCREG_DCCMVAC; 162210037SARM gem5 Developers case 2: 162310037SARM gem5 Developers return MISCREG_DCCSW; 162410037SARM gem5 Developers case 4: 162510037SARM gem5 Developers return MISCREG_CP15DSB; 162610037SARM gem5 Developers case 5: 162710037SARM gem5 Developers return MISCREG_CP15DMB; 162810037SARM gem5 Developers } 162910037SARM gem5 Developers break; 163010037SARM gem5 Developers case 11: 163110037SARM gem5 Developers if (opc2 == 1) { 163210037SARM gem5 Developers return MISCREG_DCCMVAU; 163310037SARM gem5 Developers } 163410037SARM gem5 Developers break; 163510037SARM gem5 Developers case 13: 163610037SARM gem5 Developers if (opc2 == 1) { 163710037SARM gem5 Developers return MISCREG_NOP; 163810037SARM gem5 Developers } 163910037SARM gem5 Developers break; 164010037SARM gem5 Developers case 14: 164110037SARM gem5 Developers if (opc2 == 1) { 164210037SARM gem5 Developers return MISCREG_DCCIMVAC; 164310037SARM gem5 Developers } else if (opc2 == 2) { 164410037SARM gem5 Developers return MISCREG_DCCISW; 164510037SARM gem5 Developers } 164610037SARM gem5 Developers break; 164710037SARM gem5 Developers } 164810037SARM gem5 Developers } else if (opc1 == 4 && crm == 8) { 164910037SARM gem5 Developers if (opc2 == 0) 165010037SARM gem5 Developers return MISCREG_ATS1HR; 165110037SARM gem5 Developers else if (opc2 == 1) 165210037SARM gem5 Developers return MISCREG_ATS1HW; 165310037SARM gem5 Developers } 165410037SARM gem5 Developers break; 165510037SARM gem5 Developers case 8: 165610037SARM gem5 Developers if (opc1 == 0) { 165710037SARM gem5 Developers switch (crm) { 165810037SARM gem5 Developers case 3: 165910037SARM gem5 Developers switch (opc2) { 166010037SARM gem5 Developers case 0: 166110037SARM gem5 Developers return MISCREG_TLBIALLIS; 166210037SARM gem5 Developers case 1: 166310037SARM gem5 Developers return MISCREG_TLBIMVAIS; 166410037SARM gem5 Developers case 2: 166510037SARM gem5 Developers return MISCREG_TLBIASIDIS; 166610037SARM gem5 Developers case 3: 166710037SARM gem5 Developers return MISCREG_TLBIMVAAIS; 166810037SARM gem5 Developers } 166910037SARM gem5 Developers break; 167010037SARM gem5 Developers case 5: 167110037SARM gem5 Developers switch (opc2) { 167210037SARM gem5 Developers case 0: 167310037SARM gem5 Developers return MISCREG_ITLBIALL; 167410037SARM gem5 Developers case 1: 167510037SARM gem5 Developers return MISCREG_ITLBIMVA; 167610037SARM gem5 Developers case 2: 167710037SARM gem5 Developers return MISCREG_ITLBIASID; 167810037SARM gem5 Developers } 167910037SARM gem5 Developers break; 168010037SARM gem5 Developers case 6: 168110037SARM gem5 Developers switch (opc2) { 168210037SARM gem5 Developers case 0: 168310037SARM gem5 Developers return MISCREG_DTLBIALL; 168410037SARM gem5 Developers case 1: 168510037SARM gem5 Developers return MISCREG_DTLBIMVA; 168610037SARM gem5 Developers case 2: 168710037SARM gem5 Developers return MISCREG_DTLBIASID; 168810037SARM gem5 Developers } 168910037SARM gem5 Developers break; 169010037SARM gem5 Developers case 7: 169110037SARM gem5 Developers switch (opc2) { 169212675Sgiacomo.travaglini@arm.com case 0: 169312675Sgiacomo.travaglini@arm.com return MISCREG_TLBIALL; 169410037SARM gem5 Developers case 1: 169510037SARM gem5 Developers return MISCREG_TLBIMVA; 169610037SARM gem5 Developers case 2: 169710037SARM gem5 Developers return MISCREG_TLBIASID; 169810037SARM gem5 Developers case 3: 169910037SARM gem5 Developers return MISCREG_TLBIMVAA; 170010037SARM gem5 Developers } 170110037SARM gem5 Developers break; 170210037SARM gem5 Developers } 170310037SARM gem5 Developers } else if (opc1 == 4) { 170410037SARM gem5 Developers if (crm == 3) { 170510037SARM gem5 Developers switch (opc2) { 170610037SARM gem5 Developers case 0: 170710037SARM gem5 Developers return MISCREG_TLBIALLHIS; 170810037SARM gem5 Developers case 1: 170910037SARM gem5 Developers return MISCREG_TLBIMVAHIS; 171010037SARM gem5 Developers case 4: 171110037SARM gem5 Developers return MISCREG_TLBIALLNSNHIS; 171210037SARM gem5 Developers } 171310037SARM gem5 Developers } else if (crm == 7) { 171410037SARM gem5 Developers switch (opc2) { 171510037SARM gem5 Developers case 0: 171610037SARM gem5 Developers return MISCREG_TLBIALLH; 171710037SARM gem5 Developers case 1: 171810037SARM gem5 Developers return MISCREG_TLBIMVAH; 171910037SARM gem5 Developers case 4: 172010037SARM gem5 Developers return MISCREG_TLBIALLNSNH; 172110037SARM gem5 Developers } 172210037SARM gem5 Developers } 172310037SARM gem5 Developers } 172410037SARM gem5 Developers break; 172510037SARM gem5 Developers case 9: 172610037SARM gem5 Developers if (opc1 == 0) { 172710037SARM gem5 Developers switch (crm) { 172810037SARM gem5 Developers case 12: 172910037SARM gem5 Developers switch (opc2) { 173010037SARM gem5 Developers case 0: 173110037SARM gem5 Developers return MISCREG_PMCR; 173210037SARM gem5 Developers case 1: 173310037SARM gem5 Developers return MISCREG_PMCNTENSET; 173410037SARM gem5 Developers case 2: 173510037SARM gem5 Developers return MISCREG_PMCNTENCLR; 173610037SARM gem5 Developers case 3: 173710037SARM gem5 Developers return MISCREG_PMOVSR; 173810037SARM gem5 Developers case 4: 173910037SARM gem5 Developers return MISCREG_PMSWINC; 174010037SARM gem5 Developers case 5: 174110037SARM gem5 Developers return MISCREG_PMSELR; 174210037SARM gem5 Developers case 6: 174310037SARM gem5 Developers return MISCREG_PMCEID0; 174410037SARM gem5 Developers case 7: 174510037SARM gem5 Developers return MISCREG_PMCEID1; 174610037SARM gem5 Developers } 174710037SARM gem5 Developers break; 174810037SARM gem5 Developers case 13: 174910037SARM gem5 Developers switch (opc2) { 175010037SARM gem5 Developers case 0: 175110037SARM gem5 Developers return MISCREG_PMCCNTR; 175210037SARM gem5 Developers case 1: 175310037SARM gem5 Developers // Selector is PMSELR.SEL 175410037SARM gem5 Developers return MISCREG_PMXEVTYPER_PMCCFILTR; 175510037SARM gem5 Developers case 2: 175610037SARM gem5 Developers return MISCREG_PMXEVCNTR; 175710037SARM gem5 Developers } 175810037SARM gem5 Developers break; 175910037SARM gem5 Developers case 14: 176010037SARM gem5 Developers switch (opc2) { 176110037SARM gem5 Developers case 0: 176210037SARM gem5 Developers return MISCREG_PMUSERENR; 176310037SARM gem5 Developers case 1: 176410037SARM gem5 Developers return MISCREG_PMINTENSET; 176510037SARM gem5 Developers case 2: 176610037SARM gem5 Developers return MISCREG_PMINTENCLR; 176710037SARM gem5 Developers case 3: 176810037SARM gem5 Developers return MISCREG_PMOVSSET; 176910037SARM gem5 Developers } 177010037SARM gem5 Developers break; 177110037SARM gem5 Developers } 177210037SARM gem5 Developers } else if (opc1 == 1) { 177310037SARM gem5 Developers switch (crm) { 177410037SARM gem5 Developers case 0: 177510037SARM gem5 Developers switch (opc2) { 177610037SARM gem5 Developers case 2: // L2CTLR, L2 Control Register 177710037SARM gem5 Developers return MISCREG_L2CTLR; 177810037SARM gem5 Developers case 3: 177910037SARM gem5 Developers return MISCREG_L2ECTLR; 178010037SARM gem5 Developers } 178110037SARM gem5 Developers break; 178210037SARM gem5 Developers break; 178310037SARM gem5 Developers } 178410037SARM gem5 Developers } 178510037SARM gem5 Developers break; 178610037SARM gem5 Developers case 10: 178710037SARM gem5 Developers if (opc1 == 0) { 178810037SARM gem5 Developers // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown 178910037SARM gem5 Developers if (crm == 2) { // TEX Remap Registers 179010037SARM gem5 Developers if (opc2 == 0) { 179110037SARM gem5 Developers // Selector is TTBCR.EAE 179210037SARM gem5 Developers return MISCREG_PRRR_MAIR0; 179310037SARM gem5 Developers } else if (opc2 == 1) { 179410037SARM gem5 Developers // Selector is TTBCR.EAE 179510037SARM gem5 Developers return MISCREG_NMRR_MAIR1; 179610037SARM gem5 Developers } 179710037SARM gem5 Developers } else if (crm == 3) { 179810037SARM gem5 Developers if (opc2 == 0) { 179910037SARM gem5 Developers return MISCREG_AMAIR0; 180010037SARM gem5 Developers } else if (opc2 == 1) { 180110037SARM gem5 Developers return MISCREG_AMAIR1; 180210037SARM gem5 Developers } 180310037SARM gem5 Developers } 180410037SARM gem5 Developers } else if (opc1 == 4) { 180510037SARM gem5 Developers // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown 180610037SARM gem5 Developers if (crm == 2) { 180710037SARM gem5 Developers if (opc2 == 0) 180810037SARM gem5 Developers return MISCREG_HMAIR0; 180910037SARM gem5 Developers else if (opc2 == 1) 181010037SARM gem5 Developers return MISCREG_HMAIR1; 181110037SARM gem5 Developers } else if (crm == 3) { 181210037SARM gem5 Developers if (opc2 == 0) 181310037SARM gem5 Developers return MISCREG_HAMAIR0; 181410037SARM gem5 Developers else if (opc2 == 1) 181510037SARM gem5 Developers return MISCREG_HAMAIR1; 181610037SARM gem5 Developers } 181710037SARM gem5 Developers } 181810037SARM gem5 Developers break; 181910037SARM gem5 Developers case 11: 182010037SARM gem5 Developers if (opc1 <=7) { 182110037SARM gem5 Developers switch (crm) { 182210037SARM gem5 Developers case 0: 182310037SARM gem5 Developers case 1: 182410037SARM gem5 Developers case 2: 182510037SARM gem5 Developers case 3: 182610037SARM gem5 Developers case 4: 182710037SARM gem5 Developers case 5: 182810037SARM gem5 Developers case 6: 182910037SARM gem5 Developers case 7: 183010037SARM gem5 Developers case 8: 183110037SARM gem5 Developers case 15: 183210037SARM gem5 Developers // Reserved for DMA operations for TCM access 183310037SARM gem5 Developers break; 183410037SARM gem5 Developers } 183510037SARM gem5 Developers } 183610037SARM gem5 Developers break; 183710037SARM gem5 Developers case 12: 183810037SARM gem5 Developers if (opc1 == 0) { 183910037SARM gem5 Developers if (crm == 0) { 184010037SARM gem5 Developers if (opc2 == 0) { 184110037SARM gem5 Developers return MISCREG_VBAR; 184210037SARM gem5 Developers } else if (opc2 == 1) { 184310037SARM gem5 Developers return MISCREG_MVBAR; 184410037SARM gem5 Developers } 184510037SARM gem5 Developers } else if (crm == 1) { 184610037SARM gem5 Developers if (opc2 == 0) { 184710037SARM gem5 Developers return MISCREG_ISR; 184810037SARM gem5 Developers } 184910037SARM gem5 Developers } 185010037SARM gem5 Developers } else if (opc1 == 4) { 185110037SARM gem5 Developers if (crm == 0 && opc2 == 0) 185210037SARM gem5 Developers return MISCREG_HVBAR; 185310037SARM gem5 Developers } 185410037SARM gem5 Developers break; 185510037SARM gem5 Developers case 13: 185610037SARM gem5 Developers if (opc1 == 0) { 185710037SARM gem5 Developers if (crm == 0) { 185810037SARM gem5 Developers switch (opc2) { 185910037SARM gem5 Developers case 0: 186012815Sgiacomo.travaglini@arm.com return MISCREG_FCSEIDR; 186112815Sgiacomo.travaglini@arm.com case 1: 186212815Sgiacomo.travaglini@arm.com return MISCREG_CONTEXTIDR; 186312815Sgiacomo.travaglini@arm.com case 2: 186412815Sgiacomo.travaglini@arm.com return MISCREG_TPIDRURW; 186512815Sgiacomo.travaglini@arm.com case 3: 186612815Sgiacomo.travaglini@arm.com return MISCREG_TPIDRURO; 186712815Sgiacomo.travaglini@arm.com case 4: 186812815Sgiacomo.travaglini@arm.com return MISCREG_TPIDRPRW; 186912815Sgiacomo.travaglini@arm.com } 187012815Sgiacomo.travaglini@arm.com } 187112815Sgiacomo.travaglini@arm.com } else if (opc1 == 4) { 187212815Sgiacomo.travaglini@arm.com if (crm == 0 && opc2 == 2) 187312815Sgiacomo.travaglini@arm.com return MISCREG_HTPIDR; 187412815Sgiacomo.travaglini@arm.com } 187512815Sgiacomo.travaglini@arm.com break; 187612815Sgiacomo.travaglini@arm.com case 14: 187712815Sgiacomo.travaglini@arm.com if (opc1 == 0) { 187812815Sgiacomo.travaglini@arm.com switch (crm) { 187912815Sgiacomo.travaglini@arm.com case 0: 188012815Sgiacomo.travaglini@arm.com if (opc2 == 0) 188112815Sgiacomo.travaglini@arm.com return MISCREG_CNTFRQ; 188212815Sgiacomo.travaglini@arm.com break; 188312815Sgiacomo.travaglini@arm.com case 1: 188412815Sgiacomo.travaglini@arm.com if (opc2 == 0) 188512815Sgiacomo.travaglini@arm.com return MISCREG_CNTKCTL; 188612815Sgiacomo.travaglini@arm.com break; 188712815Sgiacomo.travaglini@arm.com case 2: 188810037SARM gem5 Developers if (opc2 == 0) 188910037SARM gem5 Developers return MISCREG_CNTP_TVAL; 189010037SARM gem5 Developers else if (opc2 == 1) 189110037SARM gem5 Developers return MISCREG_CNTP_CTL; 189210037SARM gem5 Developers break; 189310037SARM gem5 Developers case 3: 189410037SARM gem5 Developers if (opc2 == 0) 189510037SARM gem5 Developers return MISCREG_CNTV_TVAL; 189610037SARM gem5 Developers else if (opc2 == 1) 189710037SARM gem5 Developers return MISCREG_CNTV_CTL; 189810037SARM gem5 Developers break; 189910037SARM gem5 Developers } 190010037SARM gem5 Developers } else if (opc1 == 4) { 190110037SARM gem5 Developers if (crm == 1 && opc2 == 0) { 190210037SARM gem5 Developers return MISCREG_CNTHCTL; 190310037SARM gem5 Developers } else if (crm == 2) { 190410037SARM gem5 Developers if (opc2 == 0) 190510037SARM gem5 Developers return MISCREG_CNTHP_TVAL; 190610037SARM gem5 Developers else if (opc2 == 1) 190710037SARM gem5 Developers return MISCREG_CNTHP_CTL; 190810037SARM gem5 Developers } 190910037SARM gem5 Developers } 191012815Sgiacomo.travaglini@arm.com break; 191112815Sgiacomo.travaglini@arm.com case 15: 191210037SARM gem5 Developers // Implementation defined 191310037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 191410037SARM gem5 Developers } 191510037SARM gem5 Developers // Unrecognized register 191610037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 191710037SARM gem5 Developers} 191810037SARM gem5 Developers 191910037SARM gem5 DevelopersMiscRegIndex 192010037SARM gem5 DevelopersdecodeCP15Reg64(unsigned crm, unsigned opc1) 192110037SARM gem5 Developers{ 192210037SARM gem5 Developers switch (crm) { 192310037SARM gem5 Developers case 2: 192410037SARM gem5 Developers switch (opc1) { 192510037SARM gem5 Developers case 0: 192610037SARM gem5 Developers return MISCREG_TTBR0; 192710037SARM gem5 Developers case 1: 192810037SARM gem5 Developers return MISCREG_TTBR1; 192910037SARM gem5 Developers case 4: 193010037SARM gem5 Developers return MISCREG_HTTBR; 193110037SARM gem5 Developers case 6: 193210037SARM gem5 Developers return MISCREG_VTTBR; 193310037SARM gem5 Developers } 193410037SARM gem5 Developers break; 193510037SARM gem5 Developers case 7: 193610037SARM gem5 Developers if (opc1 == 0) 193710037SARM gem5 Developers return MISCREG_PAR; 193810037SARM gem5 Developers break; 193910037SARM gem5 Developers case 14: 194010037SARM gem5 Developers switch (opc1) { 194110037SARM gem5 Developers case 0: 194210037SARM gem5 Developers return MISCREG_CNTPCT; 194310037SARM gem5 Developers case 1: 194410037SARM gem5 Developers return MISCREG_CNTVCT; 194510037SARM gem5 Developers case 2: 194610037SARM gem5 Developers return MISCREG_CNTP_CVAL; 194710037SARM gem5 Developers case 3: 194810037SARM gem5 Developers return MISCREG_CNTV_CVAL; 194910037SARM gem5 Developers case 4: 195010037SARM gem5 Developers return MISCREG_CNTVOFF; 195110037SARM gem5 Developers case 6: 195210037SARM gem5 Developers return MISCREG_CNTHP_CVAL; 195310037SARM gem5 Developers } 195410037SARM gem5 Developers break; 195510037SARM gem5 Developers case 15: 195610037SARM gem5 Developers if (opc1 == 0) 195710037SARM gem5 Developers return MISCREG_CPUMERRSR; 195810037SARM gem5 Developers else if (opc1 == 1) 195910037SARM gem5 Developers return MISCREG_L2MERRSR; 196010037SARM gem5 Developers break; 196110037SARM gem5 Developers } 196210037SARM gem5 Developers // Unrecognized register 196310037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 196410037SARM gem5 Developers} 196510037SARM gem5 Developers 196610037SARM gem5 Developersbool 196710037SARM gem5 DeveloperscanReadCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 196810037SARM gem5 Developers{ 196910037SARM gem5 Developers bool secure = !scr.ns; 197010037SARM gem5 Developers bool canRead; 197110037SARM gem5 Developers 197210037SARM gem5 Developers switch (cpsr.mode) { 197310037SARM gem5 Developers case MODE_USER: 197410037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_USR_S_RD] : 197510037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_RD]; 197610037SARM gem5 Developers break; 197710037SARM gem5 Developers case MODE_FIQ: 197810037SARM gem5 Developers case MODE_IRQ: 197910037SARM gem5 Developers case MODE_SVC: 198010037SARM gem5 Developers case MODE_ABORT: 198110037SARM gem5 Developers case MODE_UNDEFINED: 198210037SARM gem5 Developers case MODE_SYSTEM: 198310037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_PRI_S_RD] : 198410037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_RD]; 198510037SARM gem5 Developers break; 198610037SARM gem5 Developers case MODE_MON: 198710037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_MON_NS0_RD] : 198810037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_RD]; 198910037SARM gem5 Developers break; 199010037SARM gem5 Developers case MODE_HYP: 199110037SARM gem5 Developers canRead = miscRegInfo[reg][MISCREG_HYP_RD]; 199210037SARM gem5 Developers break; 199310037SARM gem5 Developers default: 199410037SARM gem5 Developers panic("Unrecognized mode setting in CPSR.\n"); 199510037SARM gem5 Developers } 199610037SARM gem5 Developers // can't do permissions checkes on the root of a banked pair of regs 199710037SARM gem5 Developers assert(!miscRegInfo[reg][MISCREG_BANKED]); 199810037SARM gem5 Developers return canRead; 199910037SARM gem5 Developers} 200010037SARM gem5 Developers 200110037SARM gem5 Developersbool 200210037SARM gem5 DeveloperscanWriteCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 200310037SARM gem5 Developers{ 200410037SARM gem5 Developers bool secure = !scr.ns; 200510037SARM gem5 Developers bool canWrite; 200610037SARM gem5 Developers 200710037SARM gem5 Developers switch (cpsr.mode) { 200810037SARM gem5 Developers case MODE_USER: 200910037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_USR_S_WR] : 201010037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_WR]; 201110037SARM gem5 Developers break; 201210037SARM gem5 Developers case MODE_FIQ: 201310037SARM gem5 Developers case MODE_IRQ: 201410037SARM gem5 Developers case MODE_SVC: 201510037SARM gem5 Developers case MODE_ABORT: 201610037SARM gem5 Developers case MODE_UNDEFINED: 201710037SARM gem5 Developers case MODE_SYSTEM: 201810037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_PRI_S_WR] : 201910037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_WR]; 202010037SARM gem5 Developers break; 202110037SARM gem5 Developers case MODE_MON: 202210037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_MON_NS0_WR] : 202310037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_WR]; 202410037SARM gem5 Developers break; 202510037SARM gem5 Developers case MODE_HYP: 202610037SARM gem5 Developers canWrite = miscRegInfo[reg][MISCREG_HYP_WR]; 202710037SARM gem5 Developers break; 202810037SARM gem5 Developers default: 202910037SARM gem5 Developers panic("Unrecognized mode setting in CPSR.\n"); 203010037SARM gem5 Developers } 203110037SARM gem5 Developers // can't do permissions checkes on the root of a banked pair of regs 203210037SARM gem5 Developers assert(!miscRegInfo[reg][MISCREG_BANKED]); 203310604SAndreas.Sandberg@ARM.com return canWrite; 203410037SARM gem5 Developers} 203510037SARM gem5 Developers 203610037SARM gem5 Developersint 203710037SARM gem5 DevelopersflattenMiscRegNsBanked(MiscRegIndex reg, ThreadContext *tc) 203810037SARM gem5 Developers{ 203910037SARM gem5 Developers int reg_as_int = static_cast<int>(reg); 204010037SARM gem5 Developers if (miscRegInfo[reg][MISCREG_BANKED]) { 204110037SARM gem5 Developers SCR scr = tc->readMiscReg(MISCREG_SCR); 204210037SARM gem5 Developers reg_as_int += (ArmSystem::haveSecurity(tc) && !scr.ns) ? 2 : 1; 204310037SARM gem5 Developers } 204410037SARM gem5 Developers return reg_as_int; 204510037SARM gem5 Developers} 204610037SARM gem5 Developers 204710037SARM gem5 Developersint 204810037SARM gem5 DevelopersflattenMiscRegNsBanked(MiscRegIndex reg, ThreadContext *tc, bool ns) 204910037SARM gem5 Developers{ 205010037SARM gem5 Developers int reg_as_int = static_cast<int>(reg); 205110037SARM gem5 Developers if (miscRegInfo[reg][MISCREG_BANKED]) { 205210037SARM gem5 Developers reg_as_int += (ArmSystem::haveSecurity(tc) && !ns) ? 2 : 1; 205310037SARM gem5 Developers } 205410037SARM gem5 Developers return reg_as_int; 205510037SARM gem5 Developers} 205610037SARM gem5 Developers 205710037SARM gem5 Developers 205810037SARM gem5 Developers/** 205910037SARM gem5 Developers * If the reg is a child reg of a banked set, then the parent is the last 206010037SARM gem5 Developers * banked one in the list. This is messy, and the wish is to eventually have 206110037SARM gem5 Developers * the bitmap replaced with a better data structure. the preUnflatten function 206210037SARM gem5 Developers * initializes a lookup table to speed up the search for these banked 206310037SARM gem5 Developers * registers. 206410037SARM gem5 Developers */ 206510037SARM gem5 Developers 206610037SARM gem5 Developersint unflattenResultMiscReg[NUM_MISCREGS]; 206710037SARM gem5 Developers 206810037SARM gem5 Developersvoid 206910037SARM gem5 DeveloperspreUnflattenMiscReg() 207010037SARM gem5 Developers{ 207110037SARM gem5 Developers int reg = -1; 207210037SARM gem5 Developers for (int i = 0 ; i < NUM_MISCREGS; i++){ 207310037SARM gem5 Developers if (miscRegInfo[i][MISCREG_BANKED]) 207410037SARM gem5 Developers reg = i; 207510037SARM gem5 Developers if (miscRegInfo[i][MISCREG_BANKED_CHILD]) 207610037SARM gem5 Developers unflattenResultMiscReg[i] = reg; 207710037SARM gem5 Developers else 207810037SARM gem5 Developers unflattenResultMiscReg[i] = i; 207910037SARM gem5 Developers // if this assert fails, no parent was found, and something is broken 208010037SARM gem5 Developers assert(unflattenResultMiscReg[i] > -1); 208110037SARM gem5 Developers } 208210037SARM gem5 Developers} 208310037SARM gem5 Developers 208410037SARM gem5 Developersint 208510037SARM gem5 DevelopersunflattenMiscReg(int reg) 208610037SARM gem5 Developers{ 208710037SARM gem5 Developers return unflattenResultMiscReg[reg]; 208810037SARM gem5 Developers} 208910037SARM gem5 Developers 209010037SARM gem5 Developersbool 209110037SARM gem5 DeveloperscanReadAArch64SysReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 209210037SARM gem5 Developers{ 209310037SARM gem5 Developers // Check for SP_EL0 access while SPSEL == 0 209410037SARM gem5 Developers if ((reg == MISCREG_SP_EL0) && (tc->readMiscReg(MISCREG_SPSEL) == 0)) 209510037SARM gem5 Developers return false; 209610037SARM gem5 Developers 209710037SARM gem5 Developers // Check for RVBAR access 209810037SARM gem5 Developers if (reg == MISCREG_RVBAR_EL1) { 209910037SARM gem5 Developers ExceptionLevel highest_el = ArmSystem::highestEL(tc); 210010037SARM gem5 Developers if (highest_el == EL2 || highest_el == EL3) 210110037SARM gem5 Developers return false; 210210037SARM gem5 Developers } 210310037SARM gem5 Developers if (reg == MISCREG_RVBAR_EL2) { 210410037SARM gem5 Developers ExceptionLevel highest_el = ArmSystem::highestEL(tc); 210510037SARM gem5 Developers if (highest_el == EL3) 210610037SARM gem5 Developers return false; 210710037SARM gem5 Developers } 210810037SARM gem5 Developers 210910037SARM gem5 Developers bool secure = ArmSystem::haveSecurity(tc) && !scr.ns; 211010037SARM gem5 Developers 211110037SARM gem5 Developers switch (opModeToEL((OperatingMode) (uint8_t) cpsr.mode)) { 211210037SARM gem5 Developers case EL0: 211310037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_USR_S_RD] : 211410037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_RD]; 211512711Sgiacomo.travaglini@arm.com case EL1: 211612711Sgiacomo.travaglini@arm.com return secure ? miscRegInfo[reg][MISCREG_PRI_S_RD] : 211712711Sgiacomo.travaglini@arm.com miscRegInfo[reg][MISCREG_PRI_NS_RD]; 211812711Sgiacomo.travaglini@arm.com // @todo: uncomment this to enable Virtualization 211910037SARM gem5 Developers // case EL2: 212012711Sgiacomo.travaglini@arm.com // return miscRegInfo[reg][MISCREG_HYP_RD]; 212110037SARM gem5 Developers case EL3: 212210037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_MON_NS0_RD] : 212310037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_RD]; 212410037SARM gem5 Developers default: 212510037SARM gem5 Developers panic("Invalid exception level"); 212610037SARM gem5 Developers } 212710037SARM gem5 Developers} 212810037SARM gem5 Developers 212910037SARM gem5 Developersbool 213010037SARM gem5 DeveloperscanWriteAArch64SysReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 213110037SARM gem5 Developers{ 213210037SARM gem5 Developers // Check for SP_EL0 access while SPSEL == 0 213310037SARM gem5 Developers if ((reg == MISCREG_SP_EL0) && (tc->readMiscReg(MISCREG_SPSEL) == 0)) 213410037SARM gem5 Developers return false; 213510037SARM gem5 Developers ExceptionLevel el = opModeToEL((OperatingMode) (uint8_t) cpsr.mode); 213610037SARM gem5 Developers if (reg == MISCREG_DAIF) { 213712815Sgiacomo.travaglini@arm.com SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 213812815Sgiacomo.travaglini@arm.com if (el == EL0 && !sctlr.uma) 213910037SARM gem5 Developers return false; 214010037SARM gem5 Developers } 214110037SARM gem5 Developers if (reg == MISCREG_DC_ZVA_Xt) { 214210037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 214310037SARM gem5 Developers if (el == EL0 && !sctlr.dze) 214410037SARM gem5 Developers return false; 214510037SARM gem5 Developers } 214610037SARM gem5 Developers if (reg == MISCREG_DC_CVAC_Xt || reg == MISCREG_DC_CIVAC_Xt) { 214710037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 214810037SARM gem5 Developers if (el == EL0 && !sctlr.uci) 214910037SARM gem5 Developers return false; 215010037SARM gem5 Developers } 215110037SARM gem5 Developers 215210037SARM gem5 Developers bool secure = ArmSystem::haveSecurity(tc) && !scr.ns; 215312815Sgiacomo.travaglini@arm.com 215412815Sgiacomo.travaglini@arm.com switch (el) { 215512815Sgiacomo.travaglini@arm.com case EL0: 215612815Sgiacomo.travaglini@arm.com return secure ? miscRegInfo[reg][MISCREG_USR_S_WR] : 215712815Sgiacomo.travaglini@arm.com miscRegInfo[reg][MISCREG_USR_NS_WR]; 215812815Sgiacomo.travaglini@arm.com case EL1: 215910037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_PRI_S_WR] : 216010037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_WR]; 216110037SARM gem5 Developers // @todo: uncomment this to enable Virtualization 216210037SARM gem5 Developers // case EL2: 216310037SARM gem5 Developers // return miscRegInfo[reg][MISCREG_HYP_WR]; 216410037SARM gem5 Developers case EL3: 216510037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_MON_NS0_WR] : 216610037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_WR]; 216710037SARM gem5 Developers default: 216810037SARM gem5 Developers panic("Invalid exception level"); 216910037SARM gem5 Developers } 217010037SARM gem5 Developers} 217110037SARM gem5 Developers 217210037SARM gem5 DevelopersMiscRegIndex 217310037SARM gem5 DevelopersdecodeAArch64SysReg(unsigned op0, unsigned op1, 217410037SARM gem5 Developers unsigned crn, unsigned crm, 217510037SARM gem5 Developers unsigned op2) 217610037SARM gem5 Developers{ 217710037SARM gem5 Developers switch (op0) { 217810037SARM gem5 Developers case 1: 217910037SARM gem5 Developers switch (crn) { 218010037SARM gem5 Developers case 7: 218110037SARM gem5 Developers switch (op1) { 218210037SARM gem5 Developers case 0: 218310037SARM gem5 Developers switch (crm) { 218410037SARM gem5 Developers case 1: 218510037SARM gem5 Developers switch (op2) { 218610037SARM gem5 Developers case 0: 218710037SARM gem5 Developers return MISCREG_IC_IALLUIS; 218810037SARM gem5 Developers } 218910037SARM gem5 Developers break; 219010037SARM gem5 Developers case 5: 219110037SARM gem5 Developers switch (op2) { 219210037SARM gem5 Developers case 0: 219310037SARM gem5 Developers return MISCREG_IC_IALLU; 219410037SARM gem5 Developers } 219510037SARM gem5 Developers break; 219610037SARM gem5 Developers case 6: 219710037SARM gem5 Developers switch (op2) { 219810037SARM gem5 Developers case 1: 219910037SARM gem5 Developers return MISCREG_DC_IVAC_Xt; 220010037SARM gem5 Developers case 2: 220110037SARM gem5 Developers return MISCREG_DC_ISW_Xt; 220210037SARM gem5 Developers } 220310037SARM gem5 Developers break; 220410037SARM gem5 Developers case 8: 220510037SARM gem5 Developers switch (op2) { 220610037SARM gem5 Developers case 0: 220710856SCurtis.Dunham@arm.com return MISCREG_AT_S1E1R_Xt; 220810856SCurtis.Dunham@arm.com case 1: 220910037SARM gem5 Developers return MISCREG_AT_S1E1W_Xt; 221010037SARM gem5 Developers case 2: 221110037SARM gem5 Developers return MISCREG_AT_S1E0R_Xt; 221210037SARM gem5 Developers case 3: 221310037SARM gem5 Developers return MISCREG_AT_S1E0W_Xt; 221410037SARM gem5 Developers } 221510037SARM gem5 Developers break; 221610037SARM gem5 Developers case 10: 221710037SARM gem5 Developers switch (op2) { 221810037SARM gem5 Developers case 2: 221910037SARM gem5 Developers return MISCREG_DC_CSW_Xt; 222010037SARM gem5 Developers } 222110037SARM gem5 Developers break; 222210037SARM gem5 Developers case 14: 222310037SARM gem5 Developers switch (op2) { 222410037SARM gem5 Developers case 2: 222510037SARM gem5 Developers return MISCREG_DC_CISW_Xt; 222610037SARM gem5 Developers } 222710037SARM gem5 Developers break; 222810037SARM gem5 Developers } 222910037SARM gem5 Developers break; 223010037SARM gem5 Developers case 3: 223110037SARM gem5 Developers switch (crm) { 223210037SARM gem5 Developers case 4: 223310037SARM gem5 Developers switch (op2) { 223410037SARM gem5 Developers case 1: 223510037SARM gem5 Developers return MISCREG_DC_ZVA_Xt; 223610037SARM gem5 Developers } 223710037SARM gem5 Developers break; 223810037SARM gem5 Developers case 5: 223910037SARM gem5 Developers switch (op2) { 224010037SARM gem5 Developers case 1: 224110037SARM gem5 Developers return MISCREG_IC_IVAU_Xt; 224210037SARM gem5 Developers } 224310037SARM gem5 Developers break; 224410037SARM gem5 Developers case 10: 224510037SARM gem5 Developers switch (op2) { 224610037SARM gem5 Developers case 1: 224710037SARM gem5 Developers return MISCREG_DC_CVAC_Xt; 224810037SARM gem5 Developers } 224910037SARM gem5 Developers break; 225010037SARM gem5 Developers case 11: 225110037SARM gem5 Developers switch (op2) { 225210037SARM gem5 Developers case 1: 225310037SARM gem5 Developers return MISCREG_DC_CVAU_Xt; 225410037SARM gem5 Developers } 225510037SARM gem5 Developers break; 225610037SARM gem5 Developers case 14: 225710037SARM gem5 Developers switch (op2) { 225810037SARM gem5 Developers case 1: 225910037SARM gem5 Developers return MISCREG_DC_CIVAC_Xt; 226010037SARM gem5 Developers } 226110037SARM gem5 Developers break; 226210037SARM gem5 Developers } 226310037SARM gem5 Developers break; 226410037SARM gem5 Developers case 4: 226510037SARM gem5 Developers switch (crm) { 226610037SARM gem5 Developers case 8: 226710037SARM gem5 Developers switch (op2) { 226810037SARM gem5 Developers case 0: 226910037SARM gem5 Developers return MISCREG_AT_S1E2R_Xt; 227010037SARM gem5 Developers case 1: 227110037SARM gem5 Developers return MISCREG_AT_S1E2W_Xt; 227210037SARM gem5 Developers case 4: 227310037SARM gem5 Developers return MISCREG_AT_S12E1R_Xt; 227410037SARM gem5 Developers case 5: 227510037SARM gem5 Developers return MISCREG_AT_S12E1W_Xt; 227610037SARM gem5 Developers case 6: 227710037SARM gem5 Developers return MISCREG_AT_S12E0R_Xt; 227810037SARM gem5 Developers case 7: 227910037SARM gem5 Developers return MISCREG_AT_S12E0W_Xt; 228010037SARM gem5 Developers } 228110037SARM gem5 Developers break; 228210037SARM gem5 Developers } 228310037SARM gem5 Developers break; 228410037SARM gem5 Developers case 6: 228510037SARM gem5 Developers switch (crm) { 228610037SARM gem5 Developers case 8: 228710037SARM gem5 Developers switch (op2) { 228810037SARM gem5 Developers case 0: 228910037SARM gem5 Developers return MISCREG_AT_S1E3R_Xt; 229010037SARM gem5 Developers case 1: 229110037SARM gem5 Developers return MISCREG_AT_S1E3W_Xt; 229210037SARM gem5 Developers } 229310037SARM gem5 Developers break; 229410037SARM gem5 Developers } 229510037SARM gem5 Developers break; 229610037SARM gem5 Developers } 229710037SARM gem5 Developers break; 229810037SARM gem5 Developers case 8: 229910037SARM gem5 Developers switch (op1) { 230010037SARM gem5 Developers case 0: 230110037SARM gem5 Developers switch (crm) { 230210037SARM gem5 Developers case 3: 230310604SAndreas.Sandberg@ARM.com switch (op2) { 230410604SAndreas.Sandberg@ARM.com case 0: 230510604SAndreas.Sandberg@ARM.com return MISCREG_TLBI_VMALLE1IS; 230610604SAndreas.Sandberg@ARM.com case 1: 230710604SAndreas.Sandberg@ARM.com return MISCREG_TLBI_VAE1IS_Xt; 230810037SARM gem5 Developers case 2: 230910037SARM gem5 Developers return MISCREG_TLBI_ASIDE1IS_Xt; 231010037SARM gem5 Developers case 3: 231110037SARM gem5 Developers return MISCREG_TLBI_VAAE1IS_Xt; 231210037SARM gem5 Developers case 5: 231310037SARM gem5 Developers return MISCREG_TLBI_VALE1IS_Xt; 231410037SARM gem5 Developers case 7: 231510037SARM gem5 Developers return MISCREG_TLBI_VAALE1IS_Xt; 231610037SARM gem5 Developers } 231710037SARM gem5 Developers break; 231810037SARM gem5 Developers case 7: 231910037SARM gem5 Developers switch (op2) { 232010037SARM gem5 Developers case 0: 232110037SARM gem5 Developers return MISCREG_TLBI_VMALLE1; 232210037SARM gem5 Developers case 1: 232310037SARM gem5 Developers return MISCREG_TLBI_VAE1_Xt; 232410037SARM gem5 Developers case 2: 232510037SARM gem5 Developers return MISCREG_TLBI_ASIDE1_Xt; 232610037SARM gem5 Developers case 3: 232710037SARM gem5 Developers return MISCREG_TLBI_VAAE1_Xt; 232810037SARM gem5 Developers case 5: 232910037SARM gem5 Developers return MISCREG_TLBI_VALE1_Xt; 233010037SARM gem5 Developers case 7: 233110037SARM gem5 Developers return MISCREG_TLBI_VAALE1_Xt; 233210037SARM gem5 Developers } 233310037SARM gem5 Developers break; 233412816Sgiacomo.travaglini@arm.com } 233512816Sgiacomo.travaglini@arm.com break; 233612816Sgiacomo.travaglini@arm.com case 4: 233712816Sgiacomo.travaglini@arm.com switch (crm) { 233812816Sgiacomo.travaglini@arm.com case 0: 233912816Sgiacomo.travaglini@arm.com switch (op2) { 234012816Sgiacomo.travaglini@arm.com case 1: 234112816Sgiacomo.travaglini@arm.com return MISCREG_TLBI_IPAS2E1IS_Xt; 234212816Sgiacomo.travaglini@arm.com case 5: 234312816Sgiacomo.travaglini@arm.com return MISCREG_TLBI_IPAS2LE1IS_Xt; 234410037SARM gem5 Developers } 234510037SARM gem5 Developers break; 234610037SARM gem5 Developers case 3: 234710037SARM gem5 Developers switch (op2) { 234810037SARM gem5 Developers case 0: 234910037SARM gem5 Developers return MISCREG_TLBI_ALLE2IS; 235010037SARM gem5 Developers case 1: 235110037SARM gem5 Developers return MISCREG_TLBI_VAE2IS_Xt; 235210037SARM gem5 Developers case 4: 235310037SARM gem5 Developers return MISCREG_TLBI_ALLE1IS; 235410037SARM gem5 Developers case 5: 235510037SARM gem5 Developers return MISCREG_TLBI_VALE2IS_Xt; 235610037SARM gem5 Developers case 6: 235710037SARM gem5 Developers return MISCREG_TLBI_VMALLS12E1IS; 235810037SARM gem5 Developers } 235910037SARM gem5 Developers break; 236010037SARM gem5 Developers case 4: 236110037SARM gem5 Developers switch (op2) { 236210037SARM gem5 Developers case 1: 236310037SARM gem5 Developers return MISCREG_TLBI_IPAS2E1_Xt; 236410037SARM gem5 Developers case 5: 236510037SARM gem5 Developers return MISCREG_TLBI_IPAS2LE1_Xt; 236610037SARM gem5 Developers } 236710037SARM gem5 Developers break; 236810037SARM gem5 Developers case 7: 236910037SARM gem5 Developers switch (op2) { 237010037SARM gem5 Developers case 0: 237110037SARM gem5 Developers return MISCREG_TLBI_ALLE2; 237210037SARM gem5 Developers case 1: 237310037SARM gem5 Developers return MISCREG_TLBI_VAE2_Xt; 237410037SARM gem5 Developers case 4: 237510037SARM gem5 Developers return MISCREG_TLBI_ALLE1; 237610037SARM gem5 Developers case 5: 237710037SARM gem5 Developers return MISCREG_TLBI_VALE2_Xt; 237810037SARM gem5 Developers case 6: 237910037SARM gem5 Developers return MISCREG_TLBI_VMALLS12E1; 238010037SARM gem5 Developers } 238110037SARM gem5 Developers break; 238210037SARM gem5 Developers } 238310037SARM gem5 Developers break; 238410037SARM gem5 Developers case 6: 238510037SARM gem5 Developers switch (crm) { 238610037SARM gem5 Developers case 3: 238710037SARM gem5 Developers switch (op2) { 238810037SARM gem5 Developers case 0: 238910037SARM gem5 Developers return MISCREG_TLBI_ALLE3IS; 239010037SARM gem5 Developers case 1: 239110037SARM gem5 Developers return MISCREG_TLBI_VAE3IS_Xt; 239210037SARM gem5 Developers case 5: 239310037SARM gem5 Developers return MISCREG_TLBI_VALE3IS_Xt; 239410037SARM gem5 Developers } 239510037SARM gem5 Developers break; 239610037SARM gem5 Developers case 7: 239710037SARM gem5 Developers switch (op2) { 239810037SARM gem5 Developers case 0: 239910037SARM gem5 Developers return MISCREG_TLBI_ALLE3; 240010037SARM gem5 Developers case 1: 240110037SARM gem5 Developers return MISCREG_TLBI_VAE3_Xt; 240210037SARM gem5 Developers case 5: 240310037SARM gem5 Developers return MISCREG_TLBI_VALE3_Xt; 240410037SARM gem5 Developers } 240510037SARM gem5 Developers break; 240610037SARM gem5 Developers } 240710037SARM gem5 Developers break; 240810037SARM gem5 Developers } 240910037SARM gem5 Developers break; 241010037SARM gem5 Developers } 241110037SARM gem5 Developers break; 241210037SARM gem5 Developers case 2: 241310037SARM gem5 Developers switch (crn) { 241410037SARM gem5 Developers case 0: 241510037SARM gem5 Developers switch (op1) { 241610037SARM gem5 Developers case 0: 241710037SARM gem5 Developers switch (crm) { 241810037SARM gem5 Developers case 0: 241910037SARM gem5 Developers switch (op2) { 242010037SARM gem5 Developers case 2: 242110037SARM gem5 Developers return MISCREG_OSDTRRX_EL1; 242210037SARM gem5 Developers case 4: 242310037SARM gem5 Developers return MISCREG_DBGBVR0_EL1; 242412711Sgiacomo.travaglini@arm.com case 5: 242512711Sgiacomo.travaglini@arm.com return MISCREG_DBGBCR0_EL1; 242610037SARM gem5 Developers case 6: 242710037SARM gem5 Developers return MISCREG_DBGWVR0_EL1; 242810037SARM gem5 Developers case 7: 242910037SARM gem5 Developers return MISCREG_DBGWCR0_EL1; 243010037SARM gem5 Developers } 243110037SARM gem5 Developers break; 243210037SARM gem5 Developers case 1: 243312479SCurtis.Dunham@arm.com switch (op2) { 243412479SCurtis.Dunham@arm.com case 4: 243512479SCurtis.Dunham@arm.com return MISCREG_DBGBVR1_EL1; 243612479SCurtis.Dunham@arm.com case 5: 243712479SCurtis.Dunham@arm.com return MISCREG_DBGBCR1_EL1; 243812479SCurtis.Dunham@arm.com case 6: 243912479SCurtis.Dunham@arm.com return MISCREG_DBGWVR1_EL1; 244012479SCurtis.Dunham@arm.com case 7: 244112479SCurtis.Dunham@arm.com return MISCREG_DBGWCR1_EL1; 244212479SCurtis.Dunham@arm.com } 244312479SCurtis.Dunham@arm.com break; 244412661Sgiacomo.travaglini@arm.com case 2: 244512661Sgiacomo.travaglini@arm.com switch (op2) { 244612661Sgiacomo.travaglini@arm.com case 0: 244712661Sgiacomo.travaglini@arm.com return MISCREG_MDCCINT_EL1; 244812661Sgiacomo.travaglini@arm.com case 2: 244912479SCurtis.Dunham@arm.com return MISCREG_MDSCR_EL1; 245012479SCurtis.Dunham@arm.com case 4: 245112479SCurtis.Dunham@arm.com return MISCREG_DBGBVR2_EL1; 245212479SCurtis.Dunham@arm.com case 5: 245312479SCurtis.Dunham@arm.com return MISCREG_DBGBCR2_EL1; 245412479SCurtis.Dunham@arm.com case 6: 245512479SCurtis.Dunham@arm.com return MISCREG_DBGWVR2_EL1; 245612479SCurtis.Dunham@arm.com case 7: 245712479SCurtis.Dunham@arm.com return MISCREG_DBGWCR2_EL1; 245812479SCurtis.Dunham@arm.com } 245912479SCurtis.Dunham@arm.com break; 246012479SCurtis.Dunham@arm.com case 3: 246112479SCurtis.Dunham@arm.com switch (op2) { 246212479SCurtis.Dunham@arm.com case 2: 246312479SCurtis.Dunham@arm.com return MISCREG_OSDTRTX_EL1; 246412479SCurtis.Dunham@arm.com case 4: 246512479SCurtis.Dunham@arm.com return MISCREG_DBGBVR3_EL1; 246612479SCurtis.Dunham@arm.com case 5: 246712479SCurtis.Dunham@arm.com return MISCREG_DBGBCR3_EL1; 246812479SCurtis.Dunham@arm.com case 6: 246912479SCurtis.Dunham@arm.com return MISCREG_DBGWVR3_EL1; 247012479SCurtis.Dunham@arm.com case 7: 247112479SCurtis.Dunham@arm.com return MISCREG_DBGWCR3_EL1; 247212479SCurtis.Dunham@arm.com } 247312479SCurtis.Dunham@arm.com break; 247412479SCurtis.Dunham@arm.com case 4: 247512479SCurtis.Dunham@arm.com switch (op2) { 247612479SCurtis.Dunham@arm.com case 4: 247712479SCurtis.Dunham@arm.com return MISCREG_DBGBVR4_EL1; 247812479SCurtis.Dunham@arm.com case 5: 247912479SCurtis.Dunham@arm.com return MISCREG_DBGBCR4_EL1; 248012479SCurtis.Dunham@arm.com } 248112479SCurtis.Dunham@arm.com break; 248212479SCurtis.Dunham@arm.com case 5: 248312479SCurtis.Dunham@arm.com switch (op2) { 248412479SCurtis.Dunham@arm.com case 4: 248512479SCurtis.Dunham@arm.com return MISCREG_DBGBVR5_EL1; 248612479SCurtis.Dunham@arm.com case 5: 248712479SCurtis.Dunham@arm.com return MISCREG_DBGBCR5_EL1; 248812479SCurtis.Dunham@arm.com } 248912479SCurtis.Dunham@arm.com break; 249012479SCurtis.Dunham@arm.com case 6: 249112479SCurtis.Dunham@arm.com switch (op2) { 249212479SCurtis.Dunham@arm.com case 2: 249312479SCurtis.Dunham@arm.com return MISCREG_OSECCR_EL1; 249412479SCurtis.Dunham@arm.com } 249512479SCurtis.Dunham@arm.com break; 249612479SCurtis.Dunham@arm.com } 249712479SCurtis.Dunham@arm.com break; 249812479SCurtis.Dunham@arm.com case 2: 249912479SCurtis.Dunham@arm.com switch (crm) { 250012479SCurtis.Dunham@arm.com case 0: 250112479SCurtis.Dunham@arm.com switch (op2) { 250212479SCurtis.Dunham@arm.com case 0: 250312479SCurtis.Dunham@arm.com return MISCREG_TEECR32_EL1; 250412479SCurtis.Dunham@arm.com } 250512479SCurtis.Dunham@arm.com break; 250612479SCurtis.Dunham@arm.com } 250712479SCurtis.Dunham@arm.com break; 250812479SCurtis.Dunham@arm.com case 3: 250912479SCurtis.Dunham@arm.com switch (crm) { 251012479SCurtis.Dunham@arm.com case 1: 251112661Sgiacomo.travaglini@arm.com switch (op2) { 251212479SCurtis.Dunham@arm.com case 0: 251312479SCurtis.Dunham@arm.com return MISCREG_MDCCSR_EL0; 251412479SCurtis.Dunham@arm.com } 251512479SCurtis.Dunham@arm.com break; 251612479SCurtis.Dunham@arm.com case 4: 251712479SCurtis.Dunham@arm.com switch (op2) { 251812479SCurtis.Dunham@arm.com case 0: 251912479SCurtis.Dunham@arm.com return MISCREG_MDDTR_EL0; 252012479SCurtis.Dunham@arm.com } 252112661Sgiacomo.travaglini@arm.com break; 252212479SCurtis.Dunham@arm.com case 5: 252312479SCurtis.Dunham@arm.com switch (op2) { 252412479SCurtis.Dunham@arm.com case 0: 252512479SCurtis.Dunham@arm.com return MISCREG_MDDTRRX_EL0; 252612479SCurtis.Dunham@arm.com } 252712479SCurtis.Dunham@arm.com break; 252812479SCurtis.Dunham@arm.com } 252912479SCurtis.Dunham@arm.com break; 253012479SCurtis.Dunham@arm.com case 4: 253112479SCurtis.Dunham@arm.com switch (crm) { 253212479SCurtis.Dunham@arm.com case 7: 253312479SCurtis.Dunham@arm.com switch (op2) { 253412479SCurtis.Dunham@arm.com case 0: 253512479SCurtis.Dunham@arm.com return MISCREG_DBGVCR32_EL2; 253612479SCurtis.Dunham@arm.com } 253712479SCurtis.Dunham@arm.com break; 253812479SCurtis.Dunham@arm.com } 253912479SCurtis.Dunham@arm.com break; 254012479SCurtis.Dunham@arm.com } 254112479SCurtis.Dunham@arm.com break; 254212479SCurtis.Dunham@arm.com case 1: 254312479SCurtis.Dunham@arm.com switch (op1) { 254412479SCurtis.Dunham@arm.com case 0: 254512479SCurtis.Dunham@arm.com switch (crm) { 254612479SCurtis.Dunham@arm.com case 0: 254712479SCurtis.Dunham@arm.com switch (op2) { 254812479SCurtis.Dunham@arm.com case 0: 254912479SCurtis.Dunham@arm.com return MISCREG_MDRAR_EL1; 255012479SCurtis.Dunham@arm.com case 4: 255112479SCurtis.Dunham@arm.com return MISCREG_OSLAR_EL1; 255212479SCurtis.Dunham@arm.com } 255312479SCurtis.Dunham@arm.com break; 255412479SCurtis.Dunham@arm.com case 1: 255512479SCurtis.Dunham@arm.com switch (op2) { 255612479SCurtis.Dunham@arm.com case 4: 255712479SCurtis.Dunham@arm.com return MISCREG_OSLSR_EL1; 255812479SCurtis.Dunham@arm.com } 255912479SCurtis.Dunham@arm.com break; 256012479SCurtis.Dunham@arm.com case 3: 256112479SCurtis.Dunham@arm.com switch (op2) { 256212479SCurtis.Dunham@arm.com case 4: 256312479SCurtis.Dunham@arm.com return MISCREG_OSDLR_EL1; 256412479SCurtis.Dunham@arm.com } 256512479SCurtis.Dunham@arm.com break; 256612479SCurtis.Dunham@arm.com case 4: 256712479SCurtis.Dunham@arm.com switch (op2) { 256812479SCurtis.Dunham@arm.com case 4: 256912479SCurtis.Dunham@arm.com return MISCREG_DBGPRCR_EL1; 257012479SCurtis.Dunham@arm.com } 257112479SCurtis.Dunham@arm.com break; 257212479SCurtis.Dunham@arm.com } 257312479SCurtis.Dunham@arm.com break; 257412479SCurtis.Dunham@arm.com case 2: 257512479SCurtis.Dunham@arm.com switch (crm) { 257612479SCurtis.Dunham@arm.com case 0: 257712479SCurtis.Dunham@arm.com switch (op2) { 257812479SCurtis.Dunham@arm.com case 0: 257912479SCurtis.Dunham@arm.com return MISCREG_TEEHBR32_EL1; 258012479SCurtis.Dunham@arm.com } 258112479SCurtis.Dunham@arm.com break; 258212479SCurtis.Dunham@arm.com } 258312479SCurtis.Dunham@arm.com break; 258412479SCurtis.Dunham@arm.com } 258512479SCurtis.Dunham@arm.com break; 258612479SCurtis.Dunham@arm.com case 7: 258712479SCurtis.Dunham@arm.com switch (op1) { 258812479SCurtis.Dunham@arm.com case 0: 258912479SCurtis.Dunham@arm.com switch (crm) { 259012479SCurtis.Dunham@arm.com case 8: 259112479SCurtis.Dunham@arm.com switch (op2) { 259212479SCurtis.Dunham@arm.com case 6: 259312479SCurtis.Dunham@arm.com return MISCREG_DBGCLAIMSET_EL1; 259412479SCurtis.Dunham@arm.com } 259512479SCurtis.Dunham@arm.com break; 259612479SCurtis.Dunham@arm.com case 9: 259712479SCurtis.Dunham@arm.com switch (op2) { 259812479SCurtis.Dunham@arm.com case 6: 259912479SCurtis.Dunham@arm.com return MISCREG_DBGCLAIMCLR_EL1; 260012479SCurtis.Dunham@arm.com } 260112479SCurtis.Dunham@arm.com break; 260212479SCurtis.Dunham@arm.com case 14: 260312479SCurtis.Dunham@arm.com switch (op2) { 260412479SCurtis.Dunham@arm.com case 6: 260512479SCurtis.Dunham@arm.com return MISCREG_DBGAUTHSTATUS_EL1; 260612479SCurtis.Dunham@arm.com } 260712479SCurtis.Dunham@arm.com break; 260812479SCurtis.Dunham@arm.com } 260912479SCurtis.Dunham@arm.com break; 261012479SCurtis.Dunham@arm.com } 261112479SCurtis.Dunham@arm.com break; 261212479SCurtis.Dunham@arm.com } 261312479SCurtis.Dunham@arm.com break; 261412479SCurtis.Dunham@arm.com case 3: 261512479SCurtis.Dunham@arm.com switch (crn) { 261612479SCurtis.Dunham@arm.com case 0: 261712479SCurtis.Dunham@arm.com switch (op1) { 261812479SCurtis.Dunham@arm.com case 0: 261912479SCurtis.Dunham@arm.com switch (crm) { 262012479SCurtis.Dunham@arm.com case 0: 262112479SCurtis.Dunham@arm.com switch (op2) { 262212479SCurtis.Dunham@arm.com case 0: 262312479SCurtis.Dunham@arm.com return MISCREG_MIDR_EL1; 262412479SCurtis.Dunham@arm.com case 5: 262512479SCurtis.Dunham@arm.com return MISCREG_MPIDR_EL1; 262612479SCurtis.Dunham@arm.com case 6: 262712479SCurtis.Dunham@arm.com return MISCREG_REVIDR_EL1; 262812479SCurtis.Dunham@arm.com } 262912479SCurtis.Dunham@arm.com break; 263012479SCurtis.Dunham@arm.com case 1: 263112479SCurtis.Dunham@arm.com switch (op2) { 263212479SCurtis.Dunham@arm.com case 0: 263312479SCurtis.Dunham@arm.com return MISCREG_ID_PFR0_EL1; 263412479SCurtis.Dunham@arm.com case 1: 263512479SCurtis.Dunham@arm.com return MISCREG_ID_PFR1_EL1; 263612479SCurtis.Dunham@arm.com case 2: 263712479SCurtis.Dunham@arm.com return MISCREG_ID_DFR0_EL1; 263812479SCurtis.Dunham@arm.com case 3: 263912479SCurtis.Dunham@arm.com return MISCREG_ID_AFR0_EL1; 264012479SCurtis.Dunham@arm.com case 4: 264112479SCurtis.Dunham@arm.com return MISCREG_ID_MMFR0_EL1; 264212479SCurtis.Dunham@arm.com case 5: 264312479SCurtis.Dunham@arm.com return MISCREG_ID_MMFR1_EL1; 264412479SCurtis.Dunham@arm.com case 6: 264512479SCurtis.Dunham@arm.com return MISCREG_ID_MMFR2_EL1; 264612479SCurtis.Dunham@arm.com case 7: 264712479SCurtis.Dunham@arm.com return MISCREG_ID_MMFR3_EL1; 264812479SCurtis.Dunham@arm.com } 264912479SCurtis.Dunham@arm.com break; 265012479SCurtis.Dunham@arm.com case 2: 265112479SCurtis.Dunham@arm.com switch (op2) { 265212479SCurtis.Dunham@arm.com case 0: 265312479SCurtis.Dunham@arm.com return MISCREG_ID_ISAR0_EL1; 265412479SCurtis.Dunham@arm.com case 1: 265512479SCurtis.Dunham@arm.com return MISCREG_ID_ISAR1_EL1; 265612479SCurtis.Dunham@arm.com case 2: 265712479SCurtis.Dunham@arm.com return MISCREG_ID_ISAR2_EL1; 265812479SCurtis.Dunham@arm.com case 3: 265912479SCurtis.Dunham@arm.com return MISCREG_ID_ISAR3_EL1; 266012479SCurtis.Dunham@arm.com case 4: 266112479SCurtis.Dunham@arm.com return MISCREG_ID_ISAR4_EL1; 266212479SCurtis.Dunham@arm.com case 5: 266312479SCurtis.Dunham@arm.com return MISCREG_ID_ISAR5_EL1; 266412479SCurtis.Dunham@arm.com } 266512479SCurtis.Dunham@arm.com break; 266612479SCurtis.Dunham@arm.com case 3: 266712479SCurtis.Dunham@arm.com switch (op2) { 266812479SCurtis.Dunham@arm.com case 0: 266912479SCurtis.Dunham@arm.com return MISCREG_MVFR0_EL1; 267012479SCurtis.Dunham@arm.com case 1: 267112479SCurtis.Dunham@arm.com return MISCREG_MVFR1_EL1; 267212479SCurtis.Dunham@arm.com case 2: 267312479SCurtis.Dunham@arm.com return MISCREG_MVFR2_EL1; 267412479SCurtis.Dunham@arm.com case 3 ... 7: 267512479SCurtis.Dunham@arm.com return MISCREG_RAZ; 267612479SCurtis.Dunham@arm.com } 267712479SCurtis.Dunham@arm.com break; 267812479SCurtis.Dunham@arm.com case 4: 267912479SCurtis.Dunham@arm.com switch (op2) { 268012479SCurtis.Dunham@arm.com case 0: 268112479SCurtis.Dunham@arm.com return MISCREG_ID_AA64PFR0_EL1; 268212479SCurtis.Dunham@arm.com case 1: 268312479SCurtis.Dunham@arm.com return MISCREG_ID_AA64PFR1_EL1; 268412479SCurtis.Dunham@arm.com case 2 ... 7: 268512479SCurtis.Dunham@arm.com return MISCREG_RAZ; 268612479SCurtis.Dunham@arm.com } 268712479SCurtis.Dunham@arm.com break; 268812479SCurtis.Dunham@arm.com case 5: 268912479SCurtis.Dunham@arm.com switch (op2) { 269012479SCurtis.Dunham@arm.com case 0: 269112479SCurtis.Dunham@arm.com return MISCREG_ID_AA64DFR0_EL1; 269212479SCurtis.Dunham@arm.com case 1: 269312479SCurtis.Dunham@arm.com return MISCREG_ID_AA64DFR1_EL1; 269412479SCurtis.Dunham@arm.com case 4: 269512479SCurtis.Dunham@arm.com return MISCREG_ID_AA64AFR0_EL1; 269612479SCurtis.Dunham@arm.com case 5: 269712479SCurtis.Dunham@arm.com return MISCREG_ID_AA64AFR1_EL1; 269812479SCurtis.Dunham@arm.com case 2: 269912479SCurtis.Dunham@arm.com case 3: 270012479SCurtis.Dunham@arm.com case 6: 270112479SCurtis.Dunham@arm.com case 7: 270212479SCurtis.Dunham@arm.com return MISCREG_RAZ; 270312479SCurtis.Dunham@arm.com } 270412479SCurtis.Dunham@arm.com break; 270512479SCurtis.Dunham@arm.com case 6: 270612479SCurtis.Dunham@arm.com switch (op2) { 270712479SCurtis.Dunham@arm.com case 0: 270812479SCurtis.Dunham@arm.com return MISCREG_ID_AA64ISAR0_EL1; 270912479SCurtis.Dunham@arm.com case 1: 271012479SCurtis.Dunham@arm.com return MISCREG_ID_AA64ISAR1_EL1; 271112479SCurtis.Dunham@arm.com case 2 ... 7: 271212479SCurtis.Dunham@arm.com return MISCREG_RAZ; 271312479SCurtis.Dunham@arm.com } 271412479SCurtis.Dunham@arm.com break; 271512479SCurtis.Dunham@arm.com case 7: 271612479SCurtis.Dunham@arm.com switch (op2) { 271712479SCurtis.Dunham@arm.com case 0: 271812479SCurtis.Dunham@arm.com return MISCREG_ID_AA64MMFR0_EL1; 271912479SCurtis.Dunham@arm.com case 1: 272012479SCurtis.Dunham@arm.com return MISCREG_ID_AA64MMFR1_EL1; 272112479SCurtis.Dunham@arm.com case 2 ... 7: 272212479SCurtis.Dunham@arm.com return MISCREG_RAZ; 272312479SCurtis.Dunham@arm.com } 272412479SCurtis.Dunham@arm.com break; 272512479SCurtis.Dunham@arm.com } 272612479SCurtis.Dunham@arm.com break; 272712479SCurtis.Dunham@arm.com case 1: 272812479SCurtis.Dunham@arm.com switch (crm) { 272912479SCurtis.Dunham@arm.com case 0: 273012479SCurtis.Dunham@arm.com switch (op2) { 273112479SCurtis.Dunham@arm.com case 0: 273212479SCurtis.Dunham@arm.com return MISCREG_CCSIDR_EL1; 273312661Sgiacomo.travaglini@arm.com case 1: 273412479SCurtis.Dunham@arm.com return MISCREG_CLIDR_EL1; 273512479SCurtis.Dunham@arm.com case 7: 273612479SCurtis.Dunham@arm.com return MISCREG_AIDR_EL1; 273712479SCurtis.Dunham@arm.com } 273812479SCurtis.Dunham@arm.com break; 273912479SCurtis.Dunham@arm.com } 274012479SCurtis.Dunham@arm.com break; 274112479SCurtis.Dunham@arm.com case 2: 274212479SCurtis.Dunham@arm.com switch (crm) { 274312479SCurtis.Dunham@arm.com case 0: 274412479SCurtis.Dunham@arm.com switch (op2) { 274512479SCurtis.Dunham@arm.com case 0: 274612661Sgiacomo.travaglini@arm.com return MISCREG_CSSELR_EL1; 274712479SCurtis.Dunham@arm.com } 274812479SCurtis.Dunham@arm.com break; 274912479SCurtis.Dunham@arm.com } 275012479SCurtis.Dunham@arm.com break; 275112479SCurtis.Dunham@arm.com case 3: 275212479SCurtis.Dunham@arm.com switch (crm) { 275312479SCurtis.Dunham@arm.com case 0: 275412479SCurtis.Dunham@arm.com switch (op2) { 275512661Sgiacomo.travaglini@arm.com case 1: 275612479SCurtis.Dunham@arm.com return MISCREG_CTR_EL0; 275712479SCurtis.Dunham@arm.com case 7: 275812479SCurtis.Dunham@arm.com return MISCREG_DCZID_EL0; 275912479SCurtis.Dunham@arm.com } 276012479SCurtis.Dunham@arm.com break; 276112479SCurtis.Dunham@arm.com } 276212479SCurtis.Dunham@arm.com break; 276312479SCurtis.Dunham@arm.com case 4: 276412479SCurtis.Dunham@arm.com switch (crm) { 276512479SCurtis.Dunham@arm.com case 0: 276612479SCurtis.Dunham@arm.com switch (op2) { 276712479SCurtis.Dunham@arm.com case 0: 276812479SCurtis.Dunham@arm.com return MISCREG_VPIDR_EL2; 276912479SCurtis.Dunham@arm.com case 5: 277012479SCurtis.Dunham@arm.com return MISCREG_VMPIDR_EL2; 277112479SCurtis.Dunham@arm.com } 277212479SCurtis.Dunham@arm.com break; 277312479SCurtis.Dunham@arm.com } 277412479SCurtis.Dunham@arm.com break; 277512479SCurtis.Dunham@arm.com } 277612479SCurtis.Dunham@arm.com break; 277712479SCurtis.Dunham@arm.com case 1: 277812479SCurtis.Dunham@arm.com switch (op1) { 277912479SCurtis.Dunham@arm.com case 0: 278012479SCurtis.Dunham@arm.com switch (crm) { 278112479SCurtis.Dunham@arm.com case 0: 278212479SCurtis.Dunham@arm.com switch (op2) { 278312479SCurtis.Dunham@arm.com case 0: 278412479SCurtis.Dunham@arm.com return MISCREG_SCTLR_EL1; 278512479SCurtis.Dunham@arm.com case 1: 278612479SCurtis.Dunham@arm.com return MISCREG_ACTLR_EL1; 278712479SCurtis.Dunham@arm.com case 2: 278812479SCurtis.Dunham@arm.com return MISCREG_CPACR_EL1; 278912479SCurtis.Dunham@arm.com } 279012661Sgiacomo.travaglini@arm.com break; 279112479SCurtis.Dunham@arm.com } 279212479SCurtis.Dunham@arm.com break; 279312479SCurtis.Dunham@arm.com case 4: 279412479SCurtis.Dunham@arm.com switch (crm) { 279512479SCurtis.Dunham@arm.com case 0: 279612479SCurtis.Dunham@arm.com switch (op2) { 279712479SCurtis.Dunham@arm.com case 0: 279812479SCurtis.Dunham@arm.com return MISCREG_SCTLR_EL2; 279912661Sgiacomo.travaglini@arm.com case 1: 280012479SCurtis.Dunham@arm.com return MISCREG_ACTLR_EL2; 280112479SCurtis.Dunham@arm.com } 280212479SCurtis.Dunham@arm.com break; 280312479SCurtis.Dunham@arm.com case 1: 280412479SCurtis.Dunham@arm.com switch (op2) { 280512479SCurtis.Dunham@arm.com case 0: 280612479SCurtis.Dunham@arm.com return MISCREG_HCR_EL2; 280712479SCurtis.Dunham@arm.com case 1: 280812661Sgiacomo.travaglini@arm.com return MISCREG_MDCR_EL2; 280912479SCurtis.Dunham@arm.com case 2: 281012479SCurtis.Dunham@arm.com return MISCREG_CPTR_EL2; 281112479SCurtis.Dunham@arm.com case 3: 281212479SCurtis.Dunham@arm.com return MISCREG_HSTR_EL2; 281312479SCurtis.Dunham@arm.com case 7: 281412479SCurtis.Dunham@arm.com return MISCREG_HACR_EL2; 281512479SCurtis.Dunham@arm.com } 281612479SCurtis.Dunham@arm.com break; 281712479SCurtis.Dunham@arm.com } 281812479SCurtis.Dunham@arm.com break; 281912479SCurtis.Dunham@arm.com case 6: 282012479SCurtis.Dunham@arm.com switch (crm) { 282112661Sgiacomo.travaglini@arm.com case 0: 282212479SCurtis.Dunham@arm.com switch (op2) { 282312479SCurtis.Dunham@arm.com case 0: 282412479SCurtis.Dunham@arm.com return MISCREG_SCTLR_EL3; 282512479SCurtis.Dunham@arm.com case 1: 282612479SCurtis.Dunham@arm.com return MISCREG_ACTLR_EL3; 282712479SCurtis.Dunham@arm.com } 282812479SCurtis.Dunham@arm.com break; 282912479SCurtis.Dunham@arm.com case 1: 283012661Sgiacomo.travaglini@arm.com switch (op2) { 283112479SCurtis.Dunham@arm.com case 0: 283212479SCurtis.Dunham@arm.com return MISCREG_SCR_EL3; 283312479SCurtis.Dunham@arm.com case 1: 283412479SCurtis.Dunham@arm.com return MISCREG_SDER32_EL3; 283512479SCurtis.Dunham@arm.com case 2: 283612479SCurtis.Dunham@arm.com return MISCREG_CPTR_EL3; 283712479SCurtis.Dunham@arm.com } 283812479SCurtis.Dunham@arm.com break; 283912661Sgiacomo.travaglini@arm.com case 3: 284012479SCurtis.Dunham@arm.com switch (op2) { 284112479SCurtis.Dunham@arm.com case 1: 284212479SCurtis.Dunham@arm.com return MISCREG_MDCR_EL3; 284312479SCurtis.Dunham@arm.com } 284412479SCurtis.Dunham@arm.com break; 284512479SCurtis.Dunham@arm.com } 284612479SCurtis.Dunham@arm.com break; 284712479SCurtis.Dunham@arm.com } 284812479SCurtis.Dunham@arm.com break; 284912479SCurtis.Dunham@arm.com case 2: 285012479SCurtis.Dunham@arm.com switch (op1) { 285112479SCurtis.Dunham@arm.com case 0: 285212661Sgiacomo.travaglini@arm.com switch (crm) { 285312479SCurtis.Dunham@arm.com case 0: 285412479SCurtis.Dunham@arm.com switch (op2) { 285512479SCurtis.Dunham@arm.com case 0: 285612479SCurtis.Dunham@arm.com return MISCREG_TTBR0_EL1; 285712479SCurtis.Dunham@arm.com case 1: 285812479SCurtis.Dunham@arm.com return MISCREG_TTBR1_EL1; 285912479SCurtis.Dunham@arm.com case 2: 286012479SCurtis.Dunham@arm.com return MISCREG_TCR_EL1; 286112479SCurtis.Dunham@arm.com } 286212479SCurtis.Dunham@arm.com break; 286312479SCurtis.Dunham@arm.com } 286412479SCurtis.Dunham@arm.com break; 286512479SCurtis.Dunham@arm.com case 4: 286612479SCurtis.Dunham@arm.com switch (crm) { 286712661Sgiacomo.travaglini@arm.com case 0: 286812479SCurtis.Dunham@arm.com switch (op2) { 286912479SCurtis.Dunham@arm.com case 0: 287012479SCurtis.Dunham@arm.com return MISCREG_TTBR0_EL2; 287112479SCurtis.Dunham@arm.com case 2: 287212479SCurtis.Dunham@arm.com return MISCREG_TCR_EL2; 287312479SCurtis.Dunham@arm.com } 287412479SCurtis.Dunham@arm.com break; 287512479SCurtis.Dunham@arm.com case 1: 287612479SCurtis.Dunham@arm.com switch (op2) { 287712479SCurtis.Dunham@arm.com case 0: 287812479SCurtis.Dunham@arm.com return MISCREG_VTTBR_EL2; 287912479SCurtis.Dunham@arm.com case 2: 288012479SCurtis.Dunham@arm.com return MISCREG_VTCR_EL2; 288112479SCurtis.Dunham@arm.com } 288212479SCurtis.Dunham@arm.com break; 288312479SCurtis.Dunham@arm.com } 288412661Sgiacomo.travaglini@arm.com break; 288512479SCurtis.Dunham@arm.com case 6: 288612479SCurtis.Dunham@arm.com switch (crm) { 288712479SCurtis.Dunham@arm.com case 0: 288812479SCurtis.Dunham@arm.com switch (op2) { 288912479SCurtis.Dunham@arm.com case 0: 289012479SCurtis.Dunham@arm.com return MISCREG_TTBR0_EL3; 289112479SCurtis.Dunham@arm.com case 2: 289212479SCurtis.Dunham@arm.com return MISCREG_TCR_EL3; 289312661Sgiacomo.travaglini@arm.com } 289412479SCurtis.Dunham@arm.com break; 289512479SCurtis.Dunham@arm.com } 289612479SCurtis.Dunham@arm.com break; 289712479SCurtis.Dunham@arm.com } 289812479SCurtis.Dunham@arm.com break; 289912479SCurtis.Dunham@arm.com case 3: 290012479SCurtis.Dunham@arm.com switch (op1) { 290112479SCurtis.Dunham@arm.com case 4: 290212479SCurtis.Dunham@arm.com switch (crm) { 290312479SCurtis.Dunham@arm.com case 0: 290412479SCurtis.Dunham@arm.com switch (op2) { 290512479SCurtis.Dunham@arm.com case 0: 290612479SCurtis.Dunham@arm.com return MISCREG_DACR32_EL2; 290712479SCurtis.Dunham@arm.com } 290812479SCurtis.Dunham@arm.com break; 290912479SCurtis.Dunham@arm.com } 291012479SCurtis.Dunham@arm.com break; 291112479SCurtis.Dunham@arm.com } 291212479SCurtis.Dunham@arm.com break; 291312479SCurtis.Dunham@arm.com case 4: 291412479SCurtis.Dunham@arm.com switch (op1) { 291512479SCurtis.Dunham@arm.com case 0: 291612661Sgiacomo.travaglini@arm.com switch (crm) { 291712479SCurtis.Dunham@arm.com case 0: 291812479SCurtis.Dunham@arm.com switch (op2) { 291912479SCurtis.Dunham@arm.com case 0: 292012479SCurtis.Dunham@arm.com return MISCREG_SPSR_EL1; 292112479SCurtis.Dunham@arm.com case 1: 292212479SCurtis.Dunham@arm.com return MISCREG_ELR_EL1; 292312479SCurtis.Dunham@arm.com } 292412479SCurtis.Dunham@arm.com break; 292512479SCurtis.Dunham@arm.com case 1: 292612479SCurtis.Dunham@arm.com switch (op2) { 292712479SCurtis.Dunham@arm.com case 0: 292812479SCurtis.Dunham@arm.com return MISCREG_SP_EL0; 292912479SCurtis.Dunham@arm.com } 293012479SCurtis.Dunham@arm.com break; 293112479SCurtis.Dunham@arm.com case 2: 293212479SCurtis.Dunham@arm.com switch (op2) { 293312479SCurtis.Dunham@arm.com case 0: 293412479SCurtis.Dunham@arm.com return MISCREG_SPSEL; 293512479SCurtis.Dunham@arm.com case 2: 293612479SCurtis.Dunham@arm.com return MISCREG_CURRENTEL; 293712479SCurtis.Dunham@arm.com } 293812479SCurtis.Dunham@arm.com break; 293912479SCurtis.Dunham@arm.com } 294012479SCurtis.Dunham@arm.com break; 294112479SCurtis.Dunham@arm.com case 3: 294212479SCurtis.Dunham@arm.com switch (crm) { 294312479SCurtis.Dunham@arm.com case 2: 294412479SCurtis.Dunham@arm.com switch (op2) { 294512479SCurtis.Dunham@arm.com case 0: 294612479SCurtis.Dunham@arm.com return MISCREG_NZCV; 294712479SCurtis.Dunham@arm.com case 1: 294812479SCurtis.Dunham@arm.com return MISCREG_DAIF; 294912479SCurtis.Dunham@arm.com } 295012479SCurtis.Dunham@arm.com break; 295112479SCurtis.Dunham@arm.com case 4: 295212479SCurtis.Dunham@arm.com switch (op2) { 295312479SCurtis.Dunham@arm.com case 0: 295412479SCurtis.Dunham@arm.com return MISCREG_FPCR; 295512479SCurtis.Dunham@arm.com case 1: 295612479SCurtis.Dunham@arm.com return MISCREG_FPSR; 295712479SCurtis.Dunham@arm.com } 295812479SCurtis.Dunham@arm.com break; 295912479SCurtis.Dunham@arm.com case 5: 296012479SCurtis.Dunham@arm.com switch (op2) { 296112479SCurtis.Dunham@arm.com case 0: 296212479SCurtis.Dunham@arm.com return MISCREG_DSPSR_EL0; 296312479SCurtis.Dunham@arm.com case 1: 296412479SCurtis.Dunham@arm.com return MISCREG_DLR_EL0; 296512479SCurtis.Dunham@arm.com } 296612479SCurtis.Dunham@arm.com break; 296712479SCurtis.Dunham@arm.com } 296812479SCurtis.Dunham@arm.com break; 296912479SCurtis.Dunham@arm.com case 4: 297012479SCurtis.Dunham@arm.com switch (crm) { 297112479SCurtis.Dunham@arm.com case 0: 297212479SCurtis.Dunham@arm.com switch (op2) { 297312479SCurtis.Dunham@arm.com case 0: 297412479SCurtis.Dunham@arm.com return MISCREG_SPSR_EL2; 297512479SCurtis.Dunham@arm.com case 1: 297612479SCurtis.Dunham@arm.com return MISCREG_ELR_EL2; 297712479SCurtis.Dunham@arm.com } 297812479SCurtis.Dunham@arm.com break; 297912479SCurtis.Dunham@arm.com case 1: 298012479SCurtis.Dunham@arm.com switch (op2) { 298112479SCurtis.Dunham@arm.com case 0: 298212479SCurtis.Dunham@arm.com return MISCREG_SP_EL1; 298312479SCurtis.Dunham@arm.com } 298412479SCurtis.Dunham@arm.com break; 298512479SCurtis.Dunham@arm.com case 3: 298612479SCurtis.Dunham@arm.com switch (op2) { 298712479SCurtis.Dunham@arm.com case 0: 298812479SCurtis.Dunham@arm.com return MISCREG_SPSR_IRQ_AA64; 298912479SCurtis.Dunham@arm.com case 1: 299012479SCurtis.Dunham@arm.com return MISCREG_SPSR_ABT_AA64; 299112479SCurtis.Dunham@arm.com case 2: 299212479SCurtis.Dunham@arm.com return MISCREG_SPSR_UND_AA64; 299312479SCurtis.Dunham@arm.com case 3: 299412479SCurtis.Dunham@arm.com return MISCREG_SPSR_FIQ_AA64; 299512479SCurtis.Dunham@arm.com } 299612479SCurtis.Dunham@arm.com break; 299712479SCurtis.Dunham@arm.com } 299812479SCurtis.Dunham@arm.com break; 299912479SCurtis.Dunham@arm.com case 6: 300012479SCurtis.Dunham@arm.com switch (crm) { 300112479SCurtis.Dunham@arm.com case 0: 300212479SCurtis.Dunham@arm.com switch (op2) { 300312479SCurtis.Dunham@arm.com case 0: 300412479SCurtis.Dunham@arm.com return MISCREG_SPSR_EL3; 300512479SCurtis.Dunham@arm.com case 1: 300612479SCurtis.Dunham@arm.com return MISCREG_ELR_EL3; 300712479SCurtis.Dunham@arm.com } 300812479SCurtis.Dunham@arm.com break; 300912479SCurtis.Dunham@arm.com case 1: 301012479SCurtis.Dunham@arm.com switch (op2) { 301112479SCurtis.Dunham@arm.com case 0: 301212479SCurtis.Dunham@arm.com return MISCREG_SP_EL2; 301312479SCurtis.Dunham@arm.com } 301412479SCurtis.Dunham@arm.com break; 301512479SCurtis.Dunham@arm.com } 301612479SCurtis.Dunham@arm.com break; 301712479SCurtis.Dunham@arm.com } 301812479SCurtis.Dunham@arm.com break; 301912479SCurtis.Dunham@arm.com case 5: 302012479SCurtis.Dunham@arm.com switch (op1) { 302112479SCurtis.Dunham@arm.com case 0: 302212479SCurtis.Dunham@arm.com switch (crm) { 302312479SCurtis.Dunham@arm.com case 1: 302412479SCurtis.Dunham@arm.com switch (op2) { 302512479SCurtis.Dunham@arm.com case 0: 302612479SCurtis.Dunham@arm.com return MISCREG_AFSR0_EL1; 302712479SCurtis.Dunham@arm.com case 1: 302812479SCurtis.Dunham@arm.com return MISCREG_AFSR1_EL1; 302912479SCurtis.Dunham@arm.com } 303012479SCurtis.Dunham@arm.com break; 303112479SCurtis.Dunham@arm.com case 2: 303212479SCurtis.Dunham@arm.com switch (op2) { 303312479SCurtis.Dunham@arm.com case 0: 303412479SCurtis.Dunham@arm.com return MISCREG_ESR_EL1; 303512479SCurtis.Dunham@arm.com } 303612479SCurtis.Dunham@arm.com break; 303712479SCurtis.Dunham@arm.com } 303812479SCurtis.Dunham@arm.com break; 303912479SCurtis.Dunham@arm.com case 4: 304012479SCurtis.Dunham@arm.com switch (crm) { 304112479SCurtis.Dunham@arm.com case 0: 304212479SCurtis.Dunham@arm.com switch (op2) { 304312479SCurtis.Dunham@arm.com case 1: 304412479SCurtis.Dunham@arm.com return MISCREG_IFSR32_EL2; 304512479SCurtis.Dunham@arm.com } 304612479SCurtis.Dunham@arm.com break; 304712479SCurtis.Dunham@arm.com case 1: 304812479SCurtis.Dunham@arm.com switch (op2) { 304912479SCurtis.Dunham@arm.com case 0: 305012479SCurtis.Dunham@arm.com return MISCREG_AFSR0_EL2; 305112479SCurtis.Dunham@arm.com case 1: 305212479SCurtis.Dunham@arm.com return MISCREG_AFSR1_EL2; 305312479SCurtis.Dunham@arm.com } 305412479SCurtis.Dunham@arm.com break; 305512479SCurtis.Dunham@arm.com case 2: 305612479SCurtis.Dunham@arm.com switch (op2) { 305712479SCurtis.Dunham@arm.com case 0: 305812479SCurtis.Dunham@arm.com return MISCREG_ESR_EL2; 305912479SCurtis.Dunham@arm.com } 306012479SCurtis.Dunham@arm.com break; 306112479SCurtis.Dunham@arm.com case 3: 306212479SCurtis.Dunham@arm.com switch (op2) { 306312479SCurtis.Dunham@arm.com case 0: 306412479SCurtis.Dunham@arm.com return MISCREG_FPEXC32_EL2; 306512479SCurtis.Dunham@arm.com } 306612479SCurtis.Dunham@arm.com break; 306712479SCurtis.Dunham@arm.com } 306812479SCurtis.Dunham@arm.com break; 306912479SCurtis.Dunham@arm.com case 6: 307012479SCurtis.Dunham@arm.com switch (crm) { 307112479SCurtis.Dunham@arm.com case 1: 307212479SCurtis.Dunham@arm.com switch (op2) { 307312479SCurtis.Dunham@arm.com case 0: 307412479SCurtis.Dunham@arm.com return MISCREG_AFSR0_EL3; 307512479SCurtis.Dunham@arm.com case 1: 307612479SCurtis.Dunham@arm.com return MISCREG_AFSR1_EL3; 307712479SCurtis.Dunham@arm.com } 307812479SCurtis.Dunham@arm.com break; 307912479SCurtis.Dunham@arm.com case 2: 308012479SCurtis.Dunham@arm.com switch (op2) { 308112479SCurtis.Dunham@arm.com case 0: 308212479SCurtis.Dunham@arm.com return MISCREG_ESR_EL3; 308312479SCurtis.Dunham@arm.com } 308412479SCurtis.Dunham@arm.com break; 308512479SCurtis.Dunham@arm.com } 308612479SCurtis.Dunham@arm.com break; 308712479SCurtis.Dunham@arm.com } 308812479SCurtis.Dunham@arm.com break; 308912661Sgiacomo.travaglini@arm.com case 6: 309012479SCurtis.Dunham@arm.com switch (op1) { 309112479SCurtis.Dunham@arm.com case 0: 309212479SCurtis.Dunham@arm.com switch (crm) { 309312479SCurtis.Dunham@arm.com case 0: 309412479SCurtis.Dunham@arm.com switch (op2) { 309512479SCurtis.Dunham@arm.com case 0: 309612479SCurtis.Dunham@arm.com return MISCREG_FAR_EL1; 309712479SCurtis.Dunham@arm.com } 309812661Sgiacomo.travaglini@arm.com break; 309912479SCurtis.Dunham@arm.com } 310012479SCurtis.Dunham@arm.com break; 310112479SCurtis.Dunham@arm.com case 4: 310212479SCurtis.Dunham@arm.com switch (crm) { 310312479SCurtis.Dunham@arm.com case 0: 310412479SCurtis.Dunham@arm.com switch (op2) { 310512479SCurtis.Dunham@arm.com case 0: 310612479SCurtis.Dunham@arm.com return MISCREG_FAR_EL2; 310712661Sgiacomo.travaglini@arm.com case 4: 310812479SCurtis.Dunham@arm.com return MISCREG_HPFAR_EL2; 310912479SCurtis.Dunham@arm.com } 311012479SCurtis.Dunham@arm.com break; 311112479SCurtis.Dunham@arm.com } 311212479SCurtis.Dunham@arm.com break; 311312479SCurtis.Dunham@arm.com case 6: 311412479SCurtis.Dunham@arm.com switch (crm) { 311512479SCurtis.Dunham@arm.com case 0: 311612661Sgiacomo.travaglini@arm.com switch (op2) { 311712479SCurtis.Dunham@arm.com case 0: 311812479SCurtis.Dunham@arm.com return MISCREG_FAR_EL3; 311912479SCurtis.Dunham@arm.com } 312012479SCurtis.Dunham@arm.com break; 312112479SCurtis.Dunham@arm.com } 312212479SCurtis.Dunham@arm.com break; 312312479SCurtis.Dunham@arm.com } 312412479SCurtis.Dunham@arm.com break; 312512661Sgiacomo.travaglini@arm.com case 7: 312612479SCurtis.Dunham@arm.com switch (op1) { 312712479SCurtis.Dunham@arm.com case 0: 312812479SCurtis.Dunham@arm.com switch (crm) { 312912479SCurtis.Dunham@arm.com case 4: 313012479SCurtis.Dunham@arm.com switch (op2) { 313112479SCurtis.Dunham@arm.com case 0: 313212479SCurtis.Dunham@arm.com return MISCREG_PAR_EL1; 313312479SCurtis.Dunham@arm.com } 313412661Sgiacomo.travaglini@arm.com break; 313512479SCurtis.Dunham@arm.com } 313612479SCurtis.Dunham@arm.com break; 313712479SCurtis.Dunham@arm.com } 313812479SCurtis.Dunham@arm.com break; 313912479SCurtis.Dunham@arm.com case 9: 314012479SCurtis.Dunham@arm.com switch (op1) { 314112479SCurtis.Dunham@arm.com case 0: 314212479SCurtis.Dunham@arm.com switch (crm) { 314312479SCurtis.Dunham@arm.com case 14: 314412479SCurtis.Dunham@arm.com switch (op2) { 314512479SCurtis.Dunham@arm.com case 1: 314612479SCurtis.Dunham@arm.com return MISCREG_PMINTENSET_EL1; 314712479SCurtis.Dunham@arm.com case 2: 314812479SCurtis.Dunham@arm.com return MISCREG_PMINTENCLR_EL1; 314912479SCurtis.Dunham@arm.com } 315012479SCurtis.Dunham@arm.com break; 315112479SCurtis.Dunham@arm.com } 315212479SCurtis.Dunham@arm.com break; 315312479SCurtis.Dunham@arm.com case 3: 315412479SCurtis.Dunham@arm.com switch (crm) { 315512661Sgiacomo.travaglini@arm.com case 12: 315612479SCurtis.Dunham@arm.com switch (op2) { 315712479SCurtis.Dunham@arm.com case 0: 315812479SCurtis.Dunham@arm.com return MISCREG_PMCR_EL0; 315912479SCurtis.Dunham@arm.com case 1: 316012479SCurtis.Dunham@arm.com return MISCREG_PMCNTENSET_EL0; 316112479SCurtis.Dunham@arm.com case 2: 316212479SCurtis.Dunham@arm.com return MISCREG_PMCNTENCLR_EL0; 316312479SCurtis.Dunham@arm.com case 3: 316412479SCurtis.Dunham@arm.com return MISCREG_PMOVSCLR_EL0; 316512479SCurtis.Dunham@arm.com case 4: 316612479SCurtis.Dunham@arm.com return MISCREG_PMSWINC_EL0; 316712479SCurtis.Dunham@arm.com case 5: 316812479SCurtis.Dunham@arm.com return MISCREG_PMSELR_EL0; 316912479SCurtis.Dunham@arm.com case 6: 317012479SCurtis.Dunham@arm.com return MISCREG_PMCEID0_EL0; 317112479SCurtis.Dunham@arm.com case 7: 317212479SCurtis.Dunham@arm.com return MISCREG_PMCEID1_EL0; 317312479SCurtis.Dunham@arm.com } 317412479SCurtis.Dunham@arm.com break; 317512479SCurtis.Dunham@arm.com case 13: 317612479SCurtis.Dunham@arm.com switch (op2) { 317712661Sgiacomo.travaglini@arm.com case 0: 317812479SCurtis.Dunham@arm.com return MISCREG_PMCCNTR_EL0; 317912479SCurtis.Dunham@arm.com case 1: 318012479SCurtis.Dunham@arm.com return MISCREG_PMXEVTYPER_EL0; 318112479SCurtis.Dunham@arm.com case 2: 318212479SCurtis.Dunham@arm.com return MISCREG_PMXEVCNTR_EL0; 318312479SCurtis.Dunham@arm.com } 318412479SCurtis.Dunham@arm.com break; 318512479SCurtis.Dunham@arm.com case 14: 318612661Sgiacomo.travaglini@arm.com switch (op2) { 318712661Sgiacomo.travaglini@arm.com case 0: 318812661Sgiacomo.travaglini@arm.com return MISCREG_PMUSERENR_EL0; 318912479SCurtis.Dunham@arm.com case 3: 319012479SCurtis.Dunham@arm.com return MISCREG_PMOVSSET_EL0; 319112479SCurtis.Dunham@arm.com } 319212479SCurtis.Dunham@arm.com break; 319312479SCurtis.Dunham@arm.com } 319412479SCurtis.Dunham@arm.com break; 319512479SCurtis.Dunham@arm.com } 319612661Sgiacomo.travaglini@arm.com break; 319712661Sgiacomo.travaglini@arm.com case 10: 319812661Sgiacomo.travaglini@arm.com switch (op1) { 319912661Sgiacomo.travaglini@arm.com case 0: 320012479SCurtis.Dunham@arm.com switch (crm) { 320112479SCurtis.Dunham@arm.com case 2: 320212479SCurtis.Dunham@arm.com switch (op2) { 320312479SCurtis.Dunham@arm.com case 0: 320412479SCurtis.Dunham@arm.com return MISCREG_MAIR_EL1; 320512479SCurtis.Dunham@arm.com } 320612479SCurtis.Dunham@arm.com break; 320712661Sgiacomo.travaglini@arm.com case 3: 320812661Sgiacomo.travaglini@arm.com switch (op2) { 320912479SCurtis.Dunham@arm.com case 0: 321012479SCurtis.Dunham@arm.com return MISCREG_AMAIR_EL1; 321112479SCurtis.Dunham@arm.com } 321212479SCurtis.Dunham@arm.com break; 321312479SCurtis.Dunham@arm.com } 321412479SCurtis.Dunham@arm.com break; 321512479SCurtis.Dunham@arm.com case 4: 321612479SCurtis.Dunham@arm.com switch (crm) { 321712479SCurtis.Dunham@arm.com case 2: 321812479SCurtis.Dunham@arm.com switch (op2) { 321912479SCurtis.Dunham@arm.com case 0: 322012479SCurtis.Dunham@arm.com return MISCREG_MAIR_EL2; 322112479SCurtis.Dunham@arm.com } 322212479SCurtis.Dunham@arm.com break; 322312661Sgiacomo.travaglini@arm.com case 3: 322412661Sgiacomo.travaglini@arm.com switch (op2) { 322512661Sgiacomo.travaglini@arm.com case 0: 322612479SCurtis.Dunham@arm.com return MISCREG_AMAIR_EL2; 322712479SCurtis.Dunham@arm.com } 322812479SCurtis.Dunham@arm.com break; 322912479SCurtis.Dunham@arm.com } 323012479SCurtis.Dunham@arm.com break; 323112479SCurtis.Dunham@arm.com case 6: 323212479SCurtis.Dunham@arm.com switch (crm) { 323312661Sgiacomo.travaglini@arm.com case 2: 323412661Sgiacomo.travaglini@arm.com switch (op2) { 323512661Sgiacomo.travaglini@arm.com case 0: 323612479SCurtis.Dunham@arm.com return MISCREG_MAIR_EL3; 323712479SCurtis.Dunham@arm.com } 323812479SCurtis.Dunham@arm.com break; 323912479SCurtis.Dunham@arm.com case 3: 324012479SCurtis.Dunham@arm.com switch (op2) { 324112479SCurtis.Dunham@arm.com case 0: 324212479SCurtis.Dunham@arm.com return MISCREG_AMAIR_EL3; 324312479SCurtis.Dunham@arm.com } 324412479SCurtis.Dunham@arm.com break; 324512479SCurtis.Dunham@arm.com } 324612479SCurtis.Dunham@arm.com break; 324712479SCurtis.Dunham@arm.com } 324812479SCurtis.Dunham@arm.com break; 324912479SCurtis.Dunham@arm.com case 11: 325012479SCurtis.Dunham@arm.com switch (op1) { 325112479SCurtis.Dunham@arm.com case 1: 325212479SCurtis.Dunham@arm.com switch (crm) { 325312479SCurtis.Dunham@arm.com case 0: 325412479SCurtis.Dunham@arm.com switch (op2) { 325512479SCurtis.Dunham@arm.com case 2: 325612479SCurtis.Dunham@arm.com return MISCREG_L2CTLR_EL1; 325712479SCurtis.Dunham@arm.com case 3: 325812479SCurtis.Dunham@arm.com return MISCREG_L2ECTLR_EL1; 325912479SCurtis.Dunham@arm.com } 326012479SCurtis.Dunham@arm.com break; 326112479SCurtis.Dunham@arm.com } 326212479SCurtis.Dunham@arm.com break; 326312479SCurtis.Dunham@arm.com } 326412479SCurtis.Dunham@arm.com break; 326512479SCurtis.Dunham@arm.com case 12: 326612479SCurtis.Dunham@arm.com switch (op1) { 326712479SCurtis.Dunham@arm.com case 0: 326812479SCurtis.Dunham@arm.com switch (crm) { 326912479SCurtis.Dunham@arm.com case 0: 327012479SCurtis.Dunham@arm.com switch (op2) { 327112479SCurtis.Dunham@arm.com case 0: 327212479SCurtis.Dunham@arm.com return MISCREG_VBAR_EL1; 327312479SCurtis.Dunham@arm.com case 1: 327412479SCurtis.Dunham@arm.com return MISCREG_RVBAR_EL1; 327512479SCurtis.Dunham@arm.com } 327612479SCurtis.Dunham@arm.com break; 327712479SCurtis.Dunham@arm.com case 1: 327812479SCurtis.Dunham@arm.com switch (op2) { 327912479SCurtis.Dunham@arm.com case 0: 328012479SCurtis.Dunham@arm.com return MISCREG_ISR_EL1; 328112479SCurtis.Dunham@arm.com } 328212479SCurtis.Dunham@arm.com break; 328312479SCurtis.Dunham@arm.com } 328412479SCurtis.Dunham@arm.com break; 328512479SCurtis.Dunham@arm.com case 4: 328612479SCurtis.Dunham@arm.com switch (crm) { 328712479SCurtis.Dunham@arm.com case 0: 328812479SCurtis.Dunham@arm.com switch (op2) { 328912479SCurtis.Dunham@arm.com case 0: 329012479SCurtis.Dunham@arm.com return MISCREG_VBAR_EL2; 329112479SCurtis.Dunham@arm.com case 1: 329212479SCurtis.Dunham@arm.com return MISCREG_RVBAR_EL2; 329312479SCurtis.Dunham@arm.com } 329412479SCurtis.Dunham@arm.com break; 329512479SCurtis.Dunham@arm.com } 329612479SCurtis.Dunham@arm.com break; 329712479SCurtis.Dunham@arm.com case 6: 329812661Sgiacomo.travaglini@arm.com switch (crm) { 329912661Sgiacomo.travaglini@arm.com case 0: 330012661Sgiacomo.travaglini@arm.com switch (op2) { 330112479SCurtis.Dunham@arm.com case 0: 330212479SCurtis.Dunham@arm.com return MISCREG_VBAR_EL3; 330312479SCurtis.Dunham@arm.com case 1: 330412479SCurtis.Dunham@arm.com return MISCREG_RVBAR_EL3; 330512479SCurtis.Dunham@arm.com case 2: 330612479SCurtis.Dunham@arm.com return MISCREG_RMR_EL3; 330712479SCurtis.Dunham@arm.com } 330812479SCurtis.Dunham@arm.com break; 330912479SCurtis.Dunham@arm.com } 331012479SCurtis.Dunham@arm.com break; 331112479SCurtis.Dunham@arm.com } 331212479SCurtis.Dunham@arm.com break; 331312479SCurtis.Dunham@arm.com case 13: 331412479SCurtis.Dunham@arm.com switch (op1) { 331512479SCurtis.Dunham@arm.com case 0: 331612479SCurtis.Dunham@arm.com switch (crm) { 331712479SCurtis.Dunham@arm.com case 0: 331812479SCurtis.Dunham@arm.com switch (op2) { 331912479SCurtis.Dunham@arm.com case 1: 332012479SCurtis.Dunham@arm.com return MISCREG_CONTEXTIDR_EL1; 332112479SCurtis.Dunham@arm.com case 4: 332212479SCurtis.Dunham@arm.com return MISCREG_TPIDR_EL1; 332312479SCurtis.Dunham@arm.com } 332412479SCurtis.Dunham@arm.com break; 332512479SCurtis.Dunham@arm.com } 332612479SCurtis.Dunham@arm.com break; 332712479SCurtis.Dunham@arm.com case 3: 332812479SCurtis.Dunham@arm.com switch (crm) { 332912479SCurtis.Dunham@arm.com case 0: 333012479SCurtis.Dunham@arm.com switch (op2) { 333112479SCurtis.Dunham@arm.com case 2: 333212479SCurtis.Dunham@arm.com return MISCREG_TPIDR_EL0; 333312479SCurtis.Dunham@arm.com case 3: 333412479SCurtis.Dunham@arm.com return MISCREG_TPIDRRO_EL0; 333512479SCurtis.Dunham@arm.com } 333612479SCurtis.Dunham@arm.com break; 333712479SCurtis.Dunham@arm.com } 333812479SCurtis.Dunham@arm.com break; 333912479SCurtis.Dunham@arm.com case 4: 334012479SCurtis.Dunham@arm.com switch (crm) { 334112479SCurtis.Dunham@arm.com case 0: 334212479SCurtis.Dunham@arm.com switch (op2) { 334312479SCurtis.Dunham@arm.com case 2: 334412479SCurtis.Dunham@arm.com return MISCREG_TPIDR_EL2; 334512479SCurtis.Dunham@arm.com } 334612479SCurtis.Dunham@arm.com break; 334712479SCurtis.Dunham@arm.com } 334812479SCurtis.Dunham@arm.com break; 334912479SCurtis.Dunham@arm.com case 6: 335012479SCurtis.Dunham@arm.com switch (crm) { 335112479SCurtis.Dunham@arm.com case 0: 335212479SCurtis.Dunham@arm.com switch (op2) { 335312479SCurtis.Dunham@arm.com case 2: 335412479SCurtis.Dunham@arm.com return MISCREG_TPIDR_EL3; 335512479SCurtis.Dunham@arm.com } 335612479SCurtis.Dunham@arm.com break; 335712479SCurtis.Dunham@arm.com } 335812479SCurtis.Dunham@arm.com break; 335912479SCurtis.Dunham@arm.com } 336012479SCurtis.Dunham@arm.com break; 336112479SCurtis.Dunham@arm.com case 14: 336212479SCurtis.Dunham@arm.com switch (op1) { 336312479SCurtis.Dunham@arm.com case 0: 336412479SCurtis.Dunham@arm.com switch (crm) { 336512479SCurtis.Dunham@arm.com case 1: 336612479SCurtis.Dunham@arm.com switch (op2) { 336712479SCurtis.Dunham@arm.com case 0: 336812479SCurtis.Dunham@arm.com return MISCREG_CNTKCTL_EL1; 336912479SCurtis.Dunham@arm.com } 337012479SCurtis.Dunham@arm.com break; 337112479SCurtis.Dunham@arm.com } 337212479SCurtis.Dunham@arm.com break; 337312479SCurtis.Dunham@arm.com case 3: 337412479SCurtis.Dunham@arm.com switch (crm) { 337512479SCurtis.Dunham@arm.com case 0: 337612479SCurtis.Dunham@arm.com switch (op2) { 337712479SCurtis.Dunham@arm.com case 0: 337812479SCurtis.Dunham@arm.com return MISCREG_CNTFRQ_EL0; 337912479SCurtis.Dunham@arm.com case 1: 338012479SCurtis.Dunham@arm.com return MISCREG_CNTPCT_EL0; 338112479SCurtis.Dunham@arm.com case 2: 338212479SCurtis.Dunham@arm.com return MISCREG_CNTVCT_EL0; 338312479SCurtis.Dunham@arm.com } 338412479SCurtis.Dunham@arm.com break; 338512479SCurtis.Dunham@arm.com case 2: 338612479SCurtis.Dunham@arm.com switch (op2) { 338712479SCurtis.Dunham@arm.com case 0: 338812479SCurtis.Dunham@arm.com return MISCREG_CNTP_TVAL_EL0; 338912479SCurtis.Dunham@arm.com case 1: 339012479SCurtis.Dunham@arm.com return MISCREG_CNTP_CTL_EL0; 339112479SCurtis.Dunham@arm.com case 2: 339212479SCurtis.Dunham@arm.com return MISCREG_CNTP_CVAL_EL0; 339312479SCurtis.Dunham@arm.com } 339412479SCurtis.Dunham@arm.com break; 339512479SCurtis.Dunham@arm.com case 3: 339612479SCurtis.Dunham@arm.com switch (op2) { 339712479SCurtis.Dunham@arm.com case 0: 339812479SCurtis.Dunham@arm.com return MISCREG_CNTV_TVAL_EL0; 339912479SCurtis.Dunham@arm.com case 1: 340012479SCurtis.Dunham@arm.com return MISCREG_CNTV_CTL_EL0; 340112479SCurtis.Dunham@arm.com case 2: 340212479SCurtis.Dunham@arm.com return MISCREG_CNTV_CVAL_EL0; 340312479SCurtis.Dunham@arm.com } 340412479SCurtis.Dunham@arm.com break; 340512479SCurtis.Dunham@arm.com case 8: 340612479SCurtis.Dunham@arm.com switch (op2) { 340712479SCurtis.Dunham@arm.com case 0: 340812479SCurtis.Dunham@arm.com return MISCREG_PMEVCNTR0_EL0; 340912479SCurtis.Dunham@arm.com case 1: 341012479SCurtis.Dunham@arm.com return MISCREG_PMEVCNTR1_EL0; 341112479SCurtis.Dunham@arm.com case 2: 341212479SCurtis.Dunham@arm.com return MISCREG_PMEVCNTR2_EL0; 341312479SCurtis.Dunham@arm.com case 3: 341412479SCurtis.Dunham@arm.com return MISCREG_PMEVCNTR3_EL0; 341512479SCurtis.Dunham@arm.com case 4: 341612479SCurtis.Dunham@arm.com return MISCREG_PMEVCNTR4_EL0; 341712479SCurtis.Dunham@arm.com case 5: 341812479SCurtis.Dunham@arm.com return MISCREG_PMEVCNTR5_EL0; 341912479SCurtis.Dunham@arm.com } 342012479SCurtis.Dunham@arm.com break; 342112479SCurtis.Dunham@arm.com case 12: 342212479SCurtis.Dunham@arm.com switch (op2) { 342312479SCurtis.Dunham@arm.com case 0: 342412479SCurtis.Dunham@arm.com return MISCREG_PMEVTYPER0_EL0; 342512479SCurtis.Dunham@arm.com case 1: 342612479SCurtis.Dunham@arm.com return MISCREG_PMEVTYPER1_EL0; 342712479SCurtis.Dunham@arm.com case 2: 342812479SCurtis.Dunham@arm.com return MISCREG_PMEVTYPER2_EL0; 342912479SCurtis.Dunham@arm.com case 3: 343012479SCurtis.Dunham@arm.com return MISCREG_PMEVTYPER3_EL0; 343112479SCurtis.Dunham@arm.com case 4: 343212479SCurtis.Dunham@arm.com return MISCREG_PMEVTYPER4_EL0; 343312479SCurtis.Dunham@arm.com case 5: 343412479SCurtis.Dunham@arm.com return MISCREG_PMEVTYPER5_EL0; 343512479SCurtis.Dunham@arm.com } 343612479SCurtis.Dunham@arm.com break; 343712479SCurtis.Dunham@arm.com case 15: 343812479SCurtis.Dunham@arm.com switch (op2) { 343912479SCurtis.Dunham@arm.com case 7: 344012690Sgiacomo.travaglini@arm.com return MISCREG_PMCCFILTR_EL0; 344112690Sgiacomo.travaglini@arm.com } 344212479SCurtis.Dunham@arm.com } 344312690Sgiacomo.travaglini@arm.com break; 344412690Sgiacomo.travaglini@arm.com case 4: 344512479SCurtis.Dunham@arm.com switch (crm) { 344612479SCurtis.Dunham@arm.com case 0: 344712479SCurtis.Dunham@arm.com switch (op2) { 344812479SCurtis.Dunham@arm.com case 3: 344912690Sgiacomo.travaglini@arm.com return MISCREG_CNTVOFF_EL2; 345012690Sgiacomo.travaglini@arm.com } 345112479SCurtis.Dunham@arm.com break; 345212690Sgiacomo.travaglini@arm.com case 1: 345312690Sgiacomo.travaglini@arm.com switch (op2) { 345412479SCurtis.Dunham@arm.com case 0: 345512690Sgiacomo.travaglini@arm.com return MISCREG_CNTHCTL_EL2; 345612690Sgiacomo.travaglini@arm.com } 345712479SCurtis.Dunham@arm.com break; 345812690Sgiacomo.travaglini@arm.com case 2: 345912690Sgiacomo.travaglini@arm.com switch (op2) { 346012479SCurtis.Dunham@arm.com case 0: 346112690Sgiacomo.travaglini@arm.com return MISCREG_CNTHP_TVAL_EL2; 346212690Sgiacomo.travaglini@arm.com case 1: 346312479SCurtis.Dunham@arm.com return MISCREG_CNTHP_CTL_EL2; 346412690Sgiacomo.travaglini@arm.com case 2: 346512690Sgiacomo.travaglini@arm.com return MISCREG_CNTHP_CVAL_EL2; 346612479SCurtis.Dunham@arm.com } 346712690Sgiacomo.travaglini@arm.com break; 346812690Sgiacomo.travaglini@arm.com } 346912479SCurtis.Dunham@arm.com break; 347012690Sgiacomo.travaglini@arm.com case 7: 347112690Sgiacomo.travaglini@arm.com switch (crm) { 347212479SCurtis.Dunham@arm.com case 2: 347312690Sgiacomo.travaglini@arm.com switch (op2) { 347412690Sgiacomo.travaglini@arm.com case 0: 347512479SCurtis.Dunham@arm.com return MISCREG_CNTPS_TVAL_EL1; 347612690Sgiacomo.travaglini@arm.com case 1: 347712690Sgiacomo.travaglini@arm.com return MISCREG_CNTPS_CTL_EL1; 347812479SCurtis.Dunham@arm.com case 2: 347912690Sgiacomo.travaglini@arm.com return MISCREG_CNTPS_CVAL_EL1; 348012690Sgiacomo.travaglini@arm.com } 348112479SCurtis.Dunham@arm.com break; 348212479SCurtis.Dunham@arm.com } 348312479SCurtis.Dunham@arm.com break; 348412479SCurtis.Dunham@arm.com } 348512479SCurtis.Dunham@arm.com break; 348612479SCurtis.Dunham@arm.com case 15: 348712479SCurtis.Dunham@arm.com switch (op1) { 348812479SCurtis.Dunham@arm.com case 0: 348912479SCurtis.Dunham@arm.com switch (crm) { 349012479SCurtis.Dunham@arm.com case 0: 349112479SCurtis.Dunham@arm.com switch (op2) { 349212479SCurtis.Dunham@arm.com case 0: 349312479SCurtis.Dunham@arm.com return MISCREG_IL1DATA0_EL1; 349412479SCurtis.Dunham@arm.com case 1: 349512479SCurtis.Dunham@arm.com return MISCREG_IL1DATA1_EL1; 349612479SCurtis.Dunham@arm.com case 2: 349712479SCurtis.Dunham@arm.com return MISCREG_IL1DATA2_EL1; 349812479SCurtis.Dunham@arm.com case 3: 349912479SCurtis.Dunham@arm.com return MISCREG_IL1DATA3_EL1; 350012479SCurtis.Dunham@arm.com } 350112479SCurtis.Dunham@arm.com break; 350212479SCurtis.Dunham@arm.com case 1: 350312479SCurtis.Dunham@arm.com switch (op2) { 350412479SCurtis.Dunham@arm.com case 0: 350512479SCurtis.Dunham@arm.com return MISCREG_DL1DATA0_EL1; 350612479SCurtis.Dunham@arm.com case 1: 350712479SCurtis.Dunham@arm.com return MISCREG_DL1DATA1_EL1; 350812479SCurtis.Dunham@arm.com case 2: 350912479SCurtis.Dunham@arm.com return MISCREG_DL1DATA2_EL1; 351012479SCurtis.Dunham@arm.com case 3: 351112479SCurtis.Dunham@arm.com return MISCREG_DL1DATA3_EL1; 351212479SCurtis.Dunham@arm.com case 4: 351312479SCurtis.Dunham@arm.com return MISCREG_DL1DATA4_EL1; 351412479SCurtis.Dunham@arm.com } 351512479SCurtis.Dunham@arm.com break; 351612479SCurtis.Dunham@arm.com } 351712479SCurtis.Dunham@arm.com break; 351812479SCurtis.Dunham@arm.com case 1: 351912479SCurtis.Dunham@arm.com switch (crm) { 352012479SCurtis.Dunham@arm.com case 0: 352112479SCurtis.Dunham@arm.com switch (op2) { 352212479SCurtis.Dunham@arm.com case 0: 352312479SCurtis.Dunham@arm.com return MISCREG_L2ACTLR_EL1; 352412479SCurtis.Dunham@arm.com } 352512479SCurtis.Dunham@arm.com break; 352612479SCurtis.Dunham@arm.com case 2: 352712479SCurtis.Dunham@arm.com switch (op2) { 352812479SCurtis.Dunham@arm.com case 0: 352912479SCurtis.Dunham@arm.com return MISCREG_CPUACTLR_EL1; 353012479SCurtis.Dunham@arm.com case 1: 353112479SCurtis.Dunham@arm.com return MISCREG_CPUECTLR_EL1; 353212479SCurtis.Dunham@arm.com case 2: 353312479SCurtis.Dunham@arm.com return MISCREG_CPUMERRSR_EL1; 353412479SCurtis.Dunham@arm.com case 3: 353512479SCurtis.Dunham@arm.com return MISCREG_L2MERRSR_EL1; 353612479SCurtis.Dunham@arm.com } 353712479SCurtis.Dunham@arm.com break; 353812479SCurtis.Dunham@arm.com case 3: 353912479SCurtis.Dunham@arm.com switch (op2) { 354012479SCurtis.Dunham@arm.com case 0: 354112479SCurtis.Dunham@arm.com return MISCREG_CBAR_EL1; 354212479SCurtis.Dunham@arm.com 354312479SCurtis.Dunham@arm.com } 354412479SCurtis.Dunham@arm.com break; 354512479SCurtis.Dunham@arm.com } 354612479SCurtis.Dunham@arm.com break; 354712479SCurtis.Dunham@arm.com } 354812479SCurtis.Dunham@arm.com break; 354912479SCurtis.Dunham@arm.com } 355012479SCurtis.Dunham@arm.com break; 355112479SCurtis.Dunham@arm.com } 355212479SCurtis.Dunham@arm.com 355312479SCurtis.Dunham@arm.com return MISCREG_UNKNOWN; 355412479SCurtis.Dunham@arm.com} 355512479SCurtis.Dunham@arm.com 355612479SCurtis.Dunham@arm.com} // namespace ArmISA 355712479SCurtis.Dunham@arm.com