miscregs.cc revision 11587
17259Sgblack@eecs.umich.edu/* 211574SCurtis.Dunham@arm.com * Copyright (c) 2010-2013, 2015-2016 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 427405SAli.Saidi@ARM.com#include "arch/arm/isa.hh" 437259Sgblack@eecs.umich.edu#include "arch/arm/miscregs.hh" 447404SAli.Saidi@ARM.com#include "base/misc.hh" 4510037SARM gem5 Developers#include "cpu/thread_context.hh" 4610828SGiacomo.Gabrielli@arm.com#include "sim/full_system.hh" 477259Sgblack@eecs.umich.edu 487259Sgblack@eecs.umich.edunamespace ArmISA 497259Sgblack@eecs.umich.edu{ 507259Sgblack@eecs.umich.edu 517259Sgblack@eecs.umich.eduMiscRegIndex 528868SMatt.Horsnell@arm.comdecodeCP14Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) 538868SMatt.Horsnell@arm.com{ 548868SMatt.Horsnell@arm.com switch(crn) { 558868SMatt.Horsnell@arm.com case 0: 5610037SARM gem5 Developers switch (opc1) { 578868SMatt.Horsnell@arm.com case 0: 5810037SARM gem5 Developers switch (opc2) { 598868SMatt.Horsnell@arm.com case 0: 6010037SARM gem5 Developers switch (crm) { 6110037SARM gem5 Developers case 0: 6210037SARM gem5 Developers return MISCREG_DBGDIDR; 6310037SARM gem5 Developers case 1: 6410037SARM gem5 Developers return MISCREG_DBGDSCRint; 6510037SARM gem5 Developers } 6610037SARM gem5 Developers break; 678868SMatt.Horsnell@arm.com } 6810037SARM gem5 Developers break; 6910037SARM gem5 Developers case 7: 7010037SARM gem5 Developers switch (opc2) { 7110037SARM gem5 Developers case 0: 7210037SARM gem5 Developers switch (crm) { 7310037SARM gem5 Developers case 0: 7410037SARM gem5 Developers return MISCREG_JIDR; 7510037SARM gem5 Developers } 7610037SARM gem5 Developers break; 7710037SARM gem5 Developers } 7810037SARM gem5 Developers break; 799959Schander.sudanthi@arm.com } 8010037SARM gem5 Developers break; 819959Schander.sudanthi@arm.com case 1: 829959Schander.sudanthi@arm.com switch (opc1) { 839959Schander.sudanthi@arm.com case 6: 849959Schander.sudanthi@arm.com switch (crm) { 859959Schander.sudanthi@arm.com case 0: 869959Schander.sudanthi@arm.com switch (opc2) { 879959Schander.sudanthi@arm.com case 0: 889959Schander.sudanthi@arm.com return MISCREG_TEEHBR; 899959Schander.sudanthi@arm.com } 9010037SARM gem5 Developers break; 919959Schander.sudanthi@arm.com } 9210037SARM gem5 Developers break; 9310037SARM gem5 Developers case 7: 9410037SARM gem5 Developers switch (crm) { 9510037SARM gem5 Developers case 0: 9610037SARM gem5 Developers switch (opc2) { 9710037SARM gem5 Developers case 0: 9810037SARM gem5 Developers return MISCREG_JOSCR; 9910037SARM gem5 Developers } 10010037SARM gem5 Developers break; 10110037SARM gem5 Developers } 10210037SARM gem5 Developers break; 1038868SMatt.Horsnell@arm.com } 10410037SARM gem5 Developers break; 10510037SARM gem5 Developers case 2: 10610037SARM gem5 Developers switch (opc1) { 10710037SARM gem5 Developers case 7: 10810037SARM gem5 Developers switch (crm) { 10910037SARM gem5 Developers case 0: 11010037SARM gem5 Developers switch (opc2) { 11110037SARM gem5 Developers case 0: 11210037SARM gem5 Developers return MISCREG_JMCR; 11310037SARM gem5 Developers } 11410037SARM gem5 Developers break; 11510037SARM gem5 Developers } 11610037SARM gem5 Developers break; 11710037SARM gem5 Developers } 11810037SARM gem5 Developers break; 1198868SMatt.Horsnell@arm.com } 12010037SARM gem5 Developers // If we get here then it must be a register that we haven't implemented 12110037SARM gem5 Developers warn("CP14 unimplemented crn[%d], opc1[%d], crm[%d], opc2[%d]", 12210037SARM gem5 Developers crn, opc1, crm, opc2); 12310037SARM gem5 Developers return MISCREG_CP14_UNIMPL; 12410037SARM gem5 Developers} 1258868SMatt.Horsnell@arm.com 12610037SARM gem5 Developersusing namespace std; 12710037SARM gem5 Developers 12810037SARM gem5 Developersbitset<NUM_MISCREG_INFOS> miscRegInfo[NUM_MISCREGS] = { 12910037SARM gem5 Developers // MISCREG_CPSR 13010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13110037SARM gem5 Developers // MISCREG_SPSR 13210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13310037SARM gem5 Developers // MISCREG_SPSR_FIQ 13410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13510037SARM gem5 Developers // MISCREG_SPSR_IRQ 13610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13710037SARM gem5 Developers // MISCREG_SPSR_SVC 13810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13910037SARM gem5 Developers // MISCREG_SPSR_MON 14010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14110037SARM gem5 Developers // MISCREG_SPSR_ABT 14210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14310037SARM gem5 Developers // MISCREG_SPSR_HYP 14410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14510037SARM gem5 Developers // MISCREG_SPSR_UND 14610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14710037SARM gem5 Developers // MISCREG_ELR_HYP 14810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14910037SARM gem5 Developers // MISCREG_FPSID 15010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15110037SARM gem5 Developers // MISCREG_FPSCR 15210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15310037SARM gem5 Developers // MISCREG_MVFR1 15410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15510037SARM gem5 Developers // MISCREG_MVFR0 15610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15710037SARM gem5 Developers // MISCREG_FPEXC 15810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15910037SARM gem5 Developers 16010037SARM gem5 Developers // Helper registers 16110037SARM gem5 Developers // MISCREG_CPSR_MODE 16210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16310037SARM gem5 Developers // MISCREG_CPSR_Q 16410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16510037SARM gem5 Developers // MISCREG_FPSCR_Q 16610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16710037SARM gem5 Developers // MISCREG_FPSCR_EXC 16810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16910037SARM gem5 Developers // MISCREG_LOCKADDR 17010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 17110037SARM gem5 Developers // MISCREG_LOCKFLAG 17210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 17310037SARM gem5 Developers // MISCREG_PRRR_MAIR0 17410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), 17510037SARM gem5 Developers // MISCREG_PRRR_MAIR0_NS 17610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 17710037SARM gem5 Developers // MISCREG_PRRR_MAIR0_S 17810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 17910037SARM gem5 Developers // MISCREG_NMRR_MAIR1 18010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), 18110037SARM gem5 Developers // MISCREG_NMRR_MAIR1_NS 18210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 18310037SARM gem5 Developers // MISCREG_NMRR_MAIR1_S 18410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 18510037SARM gem5 Developers // MISCREG_PMXEVTYPER_PMCCFILTR 18610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000001001")), 18710037SARM gem5 Developers // MISCREG_SCTLR_RST 18810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 18910037SARM gem5 Developers // MISCREG_SEV_MAILBOX 19010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 19110037SARM gem5 Developers 19210037SARM gem5 Developers // AArch32 CP14 registers 19310037SARM gem5 Developers // MISCREG_DBGDIDR 19410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 19510037SARM gem5 Developers // MISCREG_DBGDSCRint 19610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 19710037SARM gem5 Developers // MISCREG_DBGDCCINT 19810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 19910037SARM gem5 Developers // MISCREG_DBGDTRTXint 20010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20110037SARM gem5 Developers // MISCREG_DBGDTRRXint 20210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20310037SARM gem5 Developers // MISCREG_DBGWFAR 20410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20510037SARM gem5 Developers // MISCREG_DBGVCR 20610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20710037SARM gem5 Developers // MISCREG_DBGDTRRXext 20810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20910037SARM gem5 Developers // MISCREG_DBGDSCRext 21010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000100")), 21110037SARM gem5 Developers // MISCREG_DBGDTRTXext 21210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21310037SARM gem5 Developers // MISCREG_DBGOSECCR 21410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21510037SARM gem5 Developers // MISCREG_DBGBVR0 21610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21710037SARM gem5 Developers // MISCREG_DBGBVR1 21810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21910037SARM gem5 Developers // MISCREG_DBGBVR2 22010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22110037SARM gem5 Developers // MISCREG_DBGBVR3 22210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22310037SARM gem5 Developers // MISCREG_DBGBVR4 22410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22510037SARM gem5 Developers // MISCREG_DBGBVR5 22610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22710037SARM gem5 Developers // MISCREG_DBGBCR0 22810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22910037SARM gem5 Developers // MISCREG_DBGBCR1 23010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23110037SARM gem5 Developers // MISCREG_DBGBCR2 23210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23310037SARM gem5 Developers // MISCREG_DBGBCR3 23410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23510037SARM gem5 Developers // MISCREG_DBGBCR4 23610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23710037SARM gem5 Developers // MISCREG_DBGBCR5 23810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23910037SARM gem5 Developers // MISCREG_DBGWVR0 24010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24110037SARM gem5 Developers // MISCREG_DBGWVR1 24210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24310037SARM gem5 Developers // MISCREG_DBGWVR2 24410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24510037SARM gem5 Developers // MISCREG_DBGWVR3 24610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24710037SARM gem5 Developers // MISCREG_DBGWCR0 24810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24910037SARM gem5 Developers // MISCREG_DBGWCR1 25010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25110037SARM gem5 Developers // MISCREG_DBGWCR2 25210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25310037SARM gem5 Developers // MISCREG_DBGWCR3 25410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25510037SARM gem5 Developers // MISCREG_DBGDRAR 25610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 25710037SARM gem5 Developers // MISCREG_DBGBXVR4 25810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25910037SARM gem5 Developers // MISCREG_DBGBXVR5 26010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 26110037SARM gem5 Developers // MISCREG_DBGOSLAR 26210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101111111111000000")), 26310037SARM gem5 Developers // MISCREG_DBGOSLSR 26410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 26510037SARM gem5 Developers // MISCREG_DBGOSDLR 26610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 26710037SARM gem5 Developers // MISCREG_DBGPRCR 26810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 26910037SARM gem5 Developers // MISCREG_DBGDSAR 27010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 27110037SARM gem5 Developers // MISCREG_DBGCLAIMSET 27210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 27310037SARM gem5 Developers // MISCREG_DBGCLAIMCLR 27410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 27510037SARM gem5 Developers // MISCREG_DBGAUTHSTATUS 27610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 27710037SARM gem5 Developers // MISCREG_DBGDEVID2 27810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 27910037SARM gem5 Developers // MISCREG_DBGDEVID1 28010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 28110037SARM gem5 Developers // MISCREG_DBGDEVID0 28210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 28310037SARM gem5 Developers // MISCREG_TEECR 28410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 28510037SARM gem5 Developers // MISCREG_JIDR 28610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 28710037SARM gem5 Developers // MISCREG_TEEHBR 28810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 28910037SARM gem5 Developers // MISCREG_JOSCR 29010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 29110037SARM gem5 Developers // MISCREG_JMCR 29210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 29310037SARM gem5 Developers 29410037SARM gem5 Developers // AArch32 CP15 registers 29510037SARM gem5 Developers // MISCREG_MIDR 29610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 29710037SARM gem5 Developers // MISCREG_CTR 29810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 29910037SARM gem5 Developers // MISCREG_TCMTR 30010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30110037SARM gem5 Developers // MISCREG_TLBTR 30210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30310037SARM gem5 Developers // MISCREG_MPIDR 30410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30510037SARM gem5 Developers // MISCREG_REVIDR 30610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000100")), 30710037SARM gem5 Developers // MISCREG_ID_PFR0 30810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30910037SARM gem5 Developers // MISCREG_ID_PFR1 31010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31110037SARM gem5 Developers // MISCREG_ID_DFR0 31210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31310037SARM gem5 Developers // MISCREG_ID_AFR0 31410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31510037SARM gem5 Developers // MISCREG_ID_MMFR0 31610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31710037SARM gem5 Developers // MISCREG_ID_MMFR1 31810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31910037SARM gem5 Developers // MISCREG_ID_MMFR2 32010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32110037SARM gem5 Developers // MISCREG_ID_MMFR3 32210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32310037SARM gem5 Developers // MISCREG_ID_ISAR0 32410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32510037SARM gem5 Developers // MISCREG_ID_ISAR1 32610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32710037SARM gem5 Developers // MISCREG_ID_ISAR2 32810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32910037SARM gem5 Developers // MISCREG_ID_ISAR3 33010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33110037SARM gem5 Developers // MISCREG_ID_ISAR4 33210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33310037SARM gem5 Developers // MISCREG_ID_ISAR5 33410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33510037SARM gem5 Developers // MISCREG_CCSIDR 33610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33710037SARM gem5 Developers // MISCREG_CLIDR 33810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33910037SARM gem5 Developers // MISCREG_AIDR 34010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 34110037SARM gem5 Developers // MISCREG_CSSELR 34210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 34310037SARM gem5 Developers // MISCREG_CSSELR_NS 34410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 34510037SARM gem5 Developers // MISCREG_CSSELR_S 34610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 34710037SARM gem5 Developers // MISCREG_VPIDR 34810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 34910037SARM gem5 Developers // MISCREG_VMPIDR 35010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 35110037SARM gem5 Developers // MISCREG_SCTLR 35210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 35310037SARM gem5 Developers // MISCREG_SCTLR_NS 35410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 35510037SARM gem5 Developers // MISCREG_SCTLR_S 35610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 35710037SARM gem5 Developers // MISCREG_ACTLR 35810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 35910037SARM gem5 Developers // MISCREG_ACTLR_NS 36010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 36110037SARM gem5 Developers // MISCREG_ACTLR_S 36210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 36310037SARM gem5 Developers // MISCREG_CPACR 36410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 36510037SARM gem5 Developers // MISCREG_SCR 36610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), 36710037SARM gem5 Developers // MISCREG_SDER 36810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 36910037SARM gem5 Developers // MISCREG_NSACR 37010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110111010000000001")), 37110037SARM gem5 Developers // MISCREG_HSCTLR 37210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37310037SARM gem5 Developers // MISCREG_HACTLR 37410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37510037SARM gem5 Developers // MISCREG_HCR 37610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37710037SARM gem5 Developers // MISCREG_HDCR 37810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37910037SARM gem5 Developers // MISCREG_HCPTR 38010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 38110037SARM gem5 Developers // MISCREG_HSTR 38210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 38310037SARM gem5 Developers // MISCREG_HACR 38410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 38510037SARM gem5 Developers // MISCREG_TTBR0 38610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 38710037SARM gem5 Developers // MISCREG_TTBR0_NS 38810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 38910037SARM gem5 Developers // MISCREG_TTBR0_S 39010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 39110037SARM gem5 Developers // MISCREG_TTBR1 39210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 39310037SARM gem5 Developers // MISCREG_TTBR1_NS 39410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 39510037SARM gem5 Developers // MISCREG_TTBR1_S 39610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 39710037SARM gem5 Developers // MISCREG_TTBCR 39810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 39910037SARM gem5 Developers // MISCREG_TTBCR_NS 40010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 40110037SARM gem5 Developers // MISCREG_TTBCR_S 40210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 40310037SARM gem5 Developers // MISCREG_HTCR 40410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 40510037SARM gem5 Developers // MISCREG_VTCR 40610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 40710037SARM gem5 Developers // MISCREG_DACR 40810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 40910037SARM gem5 Developers // MISCREG_DACR_NS 41010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 41110037SARM gem5 Developers // MISCREG_DACR_S 41210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 41310037SARM gem5 Developers // MISCREG_DFSR 41410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 41510037SARM gem5 Developers // MISCREG_DFSR_NS 41610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 41710037SARM gem5 Developers // MISCREG_DFSR_S 41810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 41910037SARM gem5 Developers // MISCREG_IFSR 42010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 42110037SARM gem5 Developers // MISCREG_IFSR_NS 42210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 42310037SARM gem5 Developers // MISCREG_IFSR_S 42410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 42510037SARM gem5 Developers // MISCREG_ADFSR 42610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), 42710037SARM gem5 Developers // MISCREG_ADFSR_NS 42810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), 42910037SARM gem5 Developers // MISCREG_ADFSR_S 43010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), 43110037SARM gem5 Developers // MISCREG_AIFSR 43210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), 43310037SARM gem5 Developers // MISCREG_AIFSR_NS 43410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), 43510037SARM gem5 Developers // MISCREG_AIFSR_S 43610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), 43710037SARM gem5 Developers // MISCREG_HADFSR 43810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 43910037SARM gem5 Developers // MISCREG_HAIFSR 44010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 44110037SARM gem5 Developers // MISCREG_HSR 44210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 44310037SARM gem5 Developers // MISCREG_DFAR 44410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 44510037SARM gem5 Developers // MISCREG_DFAR_NS 44610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 44710037SARM gem5 Developers // MISCREG_DFAR_S 44810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 44910037SARM gem5 Developers // MISCREG_IFAR 45010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 45110037SARM gem5 Developers // MISCREG_IFAR_NS 45210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 45310037SARM gem5 Developers // MISCREG_IFAR_S 45410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 45510037SARM gem5 Developers // MISCREG_HDFAR 45610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 45710037SARM gem5 Developers // MISCREG_HIFAR 45810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 45910037SARM gem5 Developers // MISCREG_HPFAR 46010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 46110037SARM gem5 Developers // MISCREG_ICIALLUIS 46210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 46310037SARM gem5 Developers // MISCREG_BPIALLIS 46410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 46510037SARM gem5 Developers // MISCREG_PAR 46610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 46710037SARM gem5 Developers // MISCREG_PAR_NS 46810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 46910037SARM gem5 Developers // MISCREG_PAR_S 47010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 47110037SARM gem5 Developers // MISCREG_ICIALLU 47210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 47310037SARM gem5 Developers // MISCREG_ICIMVAU 47410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 47510037SARM gem5 Developers // MISCREG_CP15ISB 47610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 47710037SARM gem5 Developers // MISCREG_BPIALL 47810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 47910037SARM gem5 Developers // MISCREG_BPIMVA 48010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 48110037SARM gem5 Developers // MISCREG_DCIMVAC 48210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 48310037SARM gem5 Developers // MISCREG_DCISW 48410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 48510037SARM gem5 Developers // MISCREG_ATS1CPR 48610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 48710037SARM gem5 Developers // MISCREG_ATS1CPW 48810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 48910037SARM gem5 Developers // MISCREG_ATS1CUR 49010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 49110037SARM gem5 Developers // MISCREG_ATS1CUW 49210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 49310037SARM gem5 Developers // MISCREG_ATS12NSOPR 49410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49510037SARM gem5 Developers // MISCREG_ATS12NSOPW 49610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49710037SARM gem5 Developers // MISCREG_ATS12NSOUR 49810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49910037SARM gem5 Developers // MISCREG_ATS12NSOUW 50010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 50110037SARM gem5 Developers // MISCREG_DCCMVAC 50210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 50310037SARM gem5 Developers // MISCREG_DCCSW 50410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 50510037SARM gem5 Developers // MISCREG_CP15DSB 50610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 50710037SARM gem5 Developers // MISCREG_CP15DMB 50810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 50910037SARM gem5 Developers // MISCREG_DCCMVAU 51010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51110037SARM gem5 Developers // MISCREG_DCCIMVAC 51210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51310037SARM gem5 Developers // MISCREG_DCCISW 51410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51510037SARM gem5 Developers // MISCREG_ATS1HR 51610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 51710037SARM gem5 Developers // MISCREG_ATS1HW 51810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 51910037SARM gem5 Developers // MISCREG_TLBIALLIS 52010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52110037SARM gem5 Developers // MISCREG_TLBIMVAIS 52210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52310037SARM gem5 Developers // MISCREG_TLBIASIDIS 52410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52510037SARM gem5 Developers // MISCREG_TLBIMVAAIS 52610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52710037SARM gem5 Developers // MISCREG_TLBIMVALIS 52810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 52910037SARM gem5 Developers // MISCREG_TLBIMVAALIS 53010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 53110037SARM gem5 Developers // MISCREG_ITLBIALL 53210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53310037SARM gem5 Developers // MISCREG_ITLBIMVA 53410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53510037SARM gem5 Developers // MISCREG_ITLBIASID 53610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53710037SARM gem5 Developers // MISCREG_DTLBIALL 53810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53910037SARM gem5 Developers // MISCREG_DTLBIMVA 54010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54110037SARM gem5 Developers // MISCREG_DTLBIASID 54210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54310037SARM gem5 Developers // MISCREG_TLBIALL 54410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54510037SARM gem5 Developers // MISCREG_TLBIMVA 54610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54710037SARM gem5 Developers // MISCREG_TLBIASID 54810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54910037SARM gem5 Developers // MISCREG_TLBIMVAA 55010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 55110037SARM gem5 Developers // MISCREG_TLBIMVAL 55210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 55310037SARM gem5 Developers // MISCREG_TLBIMVAAL 55410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 55510037SARM gem5 Developers // MISCREG_TLBIIPAS2IS 55610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 55710037SARM gem5 Developers // MISCREG_TLBIIPAS2LIS 55810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 55910037SARM gem5 Developers // MISCREG_TLBIALLHIS 56010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 56110037SARM gem5 Developers // MISCREG_TLBIMVAHIS 56210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 56310037SARM gem5 Developers // MISCREG_TLBIALLNSNHIS 56410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 56510037SARM gem5 Developers // MISCREG_TLBIMVALHIS 56610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 56710037SARM gem5 Developers // MISCREG_TLBIIPAS2 56810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 56910037SARM gem5 Developers // MISCREG_TLBIIPAS2L 57010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 57110037SARM gem5 Developers // MISCREG_TLBIALLH 57210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 57310037SARM gem5 Developers // MISCREG_TLBIMVAH 57410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 57510037SARM gem5 Developers // MISCREG_TLBIALLNSNH 57610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 57710037SARM gem5 Developers // MISCREG_TLBIMVALH 57810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 57910037SARM gem5 Developers // MISCREG_PMCR 58010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58110037SARM gem5 Developers // MISCREG_PMCNTENSET 58210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58310037SARM gem5 Developers // MISCREG_PMCNTENCLR 58410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58510037SARM gem5 Developers // MISCREG_PMOVSR 58610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58710037SARM gem5 Developers // MISCREG_PMSWINC 58810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58910037SARM gem5 Developers // MISCREG_PMSELR 59010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59110037SARM gem5 Developers // MISCREG_PMCEID0 59210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59310037SARM gem5 Developers // MISCREG_PMCEID1 59410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59510037SARM gem5 Developers // MISCREG_PMCCNTR 59610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59710037SARM gem5 Developers // MISCREG_PMXEVTYPER 59810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59910037SARM gem5 Developers // MISCREG_PMCCFILTR 60010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 60110037SARM gem5 Developers // MISCREG_PMXEVCNTR 60210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 60310037SARM gem5 Developers // MISCREG_PMUSERENR 60410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 60510037SARM gem5 Developers // MISCREG_PMINTENSET 60610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 60710037SARM gem5 Developers // MISCREG_PMINTENCLR 60810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 60910037SARM gem5 Developers // MISCREG_PMOVSSET 61010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 61110037SARM gem5 Developers // MISCREG_L2CTLR 61210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 61310037SARM gem5 Developers // MISCREG_L2ECTLR 61410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 61510037SARM gem5 Developers // MISCREG_PRRR 61610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 61710037SARM gem5 Developers // MISCREG_PRRR_NS 61810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 61910037SARM gem5 Developers // MISCREG_PRRR_S 62010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 62110037SARM gem5 Developers // MISCREG_MAIR0 62210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 62310037SARM gem5 Developers // MISCREG_MAIR0_NS 62410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 62510037SARM gem5 Developers // MISCREG_MAIR0_S 62610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 62710037SARM gem5 Developers // MISCREG_NMRR 62810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 62910037SARM gem5 Developers // MISCREG_NMRR_NS 63010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 63110037SARM gem5 Developers // MISCREG_NMRR_S 63210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 63310037SARM gem5 Developers // MISCREG_MAIR1 63410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 63510037SARM gem5 Developers // MISCREG_MAIR1_NS 63610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 63710037SARM gem5 Developers // MISCREG_MAIR1_S 63810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 63910037SARM gem5 Developers // MISCREG_AMAIR0 64010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 64110037SARM gem5 Developers // MISCREG_AMAIR0_NS 64210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 64310037SARM gem5 Developers // MISCREG_AMAIR0_S 64410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 64510037SARM gem5 Developers // MISCREG_AMAIR1 64610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 64710037SARM gem5 Developers // MISCREG_AMAIR1_NS 64810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 64910037SARM gem5 Developers // MISCREG_AMAIR1_S 65010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 65110037SARM gem5 Developers // MISCREG_HMAIR0 65210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 65310037SARM gem5 Developers // MISCREG_HMAIR1 65410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 65510037SARM gem5 Developers // MISCREG_HAMAIR0 65610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 65710037SARM gem5 Developers // MISCREG_HAMAIR1 65810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 65910037SARM gem5 Developers // MISCREG_VBAR 66010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 66110037SARM gem5 Developers // MISCREG_VBAR_NS 66210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 66310037SARM gem5 Developers // MISCREG_VBAR_S 66410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 66510037SARM gem5 Developers // MISCREG_MVBAR 66610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), 66710037SARM gem5 Developers // MISCREG_RMR 66810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110011000000000000")), 66910037SARM gem5 Developers // MISCREG_ISR 67010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 67110037SARM gem5 Developers // MISCREG_HVBAR 67210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 67310037SARM gem5 Developers // MISCREG_FCSEIDR 67410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 67510037SARM gem5 Developers // MISCREG_CONTEXTIDR 67610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 67710037SARM gem5 Developers // MISCREG_CONTEXTIDR_NS 67810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 67910037SARM gem5 Developers // MISCREG_CONTEXTIDR_S 68010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 68110037SARM gem5 Developers // MISCREG_TPIDRURW 68210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 68310037SARM gem5 Developers // MISCREG_TPIDRURW_NS 68410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 68510037SARM gem5 Developers // MISCREG_TPIDRURW_S 68610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 68710037SARM gem5 Developers // MISCREG_TPIDRURO 68810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 68910037SARM gem5 Developers // MISCREG_TPIDRURO_NS 69010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110101100001")), 69110037SARM gem5 Developers // MISCREG_TPIDRURO_S 69210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 69310037SARM gem5 Developers // MISCREG_TPIDRPRW 69410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 69510037SARM gem5 Developers // MISCREG_TPIDRPRW_NS 69610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 69710037SARM gem5 Developers // MISCREG_TPIDRPRW_S 69810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 69910037SARM gem5 Developers // MISCREG_HTPIDR 70010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 70110037SARM gem5 Developers // MISCREG_CNTFRQ 70210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110101010101000011")), 70310037SARM gem5 Developers // MISCREG_CNTKCTL 70410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 70510037SARM gem5 Developers // MISCREG_CNTP_TVAL 70610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 70710037SARM gem5 Developers // MISCREG_CNTP_TVAL_NS 70810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 70910037SARM gem5 Developers // MISCREG_CNTP_TVAL_S 71010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 71110037SARM gem5 Developers // MISCREG_CNTP_CTL 71210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 71310037SARM gem5 Developers // MISCREG_CNTP_CTL_NS 71410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 71510037SARM gem5 Developers // MISCREG_CNTP_CTL_S 71610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 71710037SARM gem5 Developers // MISCREG_CNTV_TVAL 71810845Sandreas.sandberg@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 71910037SARM gem5 Developers // MISCREG_CNTV_CTL 72010845Sandreas.sandberg@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 72110037SARM gem5 Developers // MISCREG_CNTHCTL 72210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72310037SARM gem5 Developers // MISCREG_CNTHP_TVAL 72410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72510037SARM gem5 Developers // MISCREG_CNTHP_CTL 72610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72710037SARM gem5 Developers // MISCREG_IL1DATA0 72810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 72910037SARM gem5 Developers // MISCREG_IL1DATA1 73010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73110037SARM gem5 Developers // MISCREG_IL1DATA2 73210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73310037SARM gem5 Developers // MISCREG_IL1DATA3 73410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73510037SARM gem5 Developers // MISCREG_DL1DATA0 73610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73710037SARM gem5 Developers // MISCREG_DL1DATA1 73810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73910037SARM gem5 Developers // MISCREG_DL1DATA2 74010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74110037SARM gem5 Developers // MISCREG_DL1DATA3 74210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74310037SARM gem5 Developers // MISCREG_DL1DATA4 74410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74510037SARM gem5 Developers // MISCREG_RAMINDEX 74610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 74710037SARM gem5 Developers // MISCREG_L2ACTLR 74810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74910037SARM gem5 Developers // MISCREG_CBAR 75010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000000")), 75110037SARM gem5 Developers // MISCREG_HTTBR 75210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 75310037SARM gem5 Developers // MISCREG_VTTBR 75410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 75510037SARM gem5 Developers // MISCREG_CNTPCT 75610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 75710037SARM gem5 Developers // MISCREG_CNTVCT 75810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), 75910037SARM gem5 Developers // MISCREG_CNTP_CVAL 76010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 76110037SARM gem5 Developers // MISCREG_CNTP_CVAL_NS 76210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 76310037SARM gem5 Developers // MISCREG_CNTP_CVAL_S 76410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 76510037SARM gem5 Developers // MISCREG_CNTV_CVAL 76610845Sandreas.sandberg@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 76710037SARM gem5 Developers // MISCREG_CNTVOFF 76810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 76910037SARM gem5 Developers // MISCREG_CNTHP_CVAL 77010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 77110037SARM gem5 Developers // MISCREG_CPUMERRSR 77210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 77310037SARM gem5 Developers // MISCREG_L2MERRSR 77410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 77510037SARM gem5 Developers 77610037SARM gem5 Developers // AArch64 registers (Op0=2) 77710037SARM gem5 Developers // MISCREG_MDCCINT_EL1 77810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 77910037SARM gem5 Developers // MISCREG_OSDTRRX_EL1 78010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78110037SARM gem5 Developers // MISCREG_MDSCR_EL1 78210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78310037SARM gem5 Developers // MISCREG_OSDTRTX_EL1 78410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78510037SARM gem5 Developers // MISCREG_OSECCR_EL1 78610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78710037SARM gem5 Developers // MISCREG_DBGBVR0_EL1 78810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78910037SARM gem5 Developers // MISCREG_DBGBVR1_EL1 79010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79110037SARM gem5 Developers // MISCREG_DBGBVR2_EL1 79210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79310037SARM gem5 Developers // MISCREG_DBGBVR3_EL1 79410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79510037SARM gem5 Developers // MISCREG_DBGBVR4_EL1 79610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79710037SARM gem5 Developers // MISCREG_DBGBVR5_EL1 79810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79910037SARM gem5 Developers // MISCREG_DBGBCR0_EL1 80010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80110037SARM gem5 Developers // MISCREG_DBGBCR1_EL1 80210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80310037SARM gem5 Developers // MISCREG_DBGBCR2_EL1 80410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80510037SARM gem5 Developers // MISCREG_DBGBCR3_EL1 80610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80710037SARM gem5 Developers // MISCREG_DBGBCR4_EL1 80810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80910037SARM gem5 Developers // MISCREG_DBGBCR5_EL1 81010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81110037SARM gem5 Developers // MISCREG_DBGWVR0_EL1 81210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81310037SARM gem5 Developers // MISCREG_DBGWVR1_EL1 81410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81510037SARM gem5 Developers // MISCREG_DBGWVR2_EL1 81610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81710037SARM gem5 Developers // MISCREG_DBGWVR3_EL1 81810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81910037SARM gem5 Developers // MISCREG_DBGWCR0_EL1 82010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82110037SARM gem5 Developers // MISCREG_DBGWCR1_EL1 82210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82310037SARM gem5 Developers // MISCREG_DBGWCR2_EL1 82410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82510037SARM gem5 Developers // MISCREG_DBGWCR3_EL1 82610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82710037SARM gem5 Developers // MISCREG_MDCCSR_EL0 82810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 82910037SARM gem5 Developers // MISCREG_MDDTR_EL0 83010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83110037SARM gem5 Developers // MISCREG_MDDTRTX_EL0 83210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83310037SARM gem5 Developers // MISCREG_MDDTRRX_EL0 83410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83510037SARM gem5 Developers // MISCREG_DBGVCR32_EL2 83610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83710037SARM gem5 Developers // MISCREG_MDRAR_EL1 83810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 83910037SARM gem5 Developers // MISCREG_OSLAR_EL1 84010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101111111111000001")), 84110037SARM gem5 Developers // MISCREG_OSLSR_EL1 84210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 84310037SARM gem5 Developers // MISCREG_OSDLR_EL1 84410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84510037SARM gem5 Developers // MISCREG_DBGPRCR_EL1 84610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84710037SARM gem5 Developers // MISCREG_DBGCLAIMSET_EL1 84810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84910037SARM gem5 Developers // MISCREG_DBGCLAIMCLR_EL1 85010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 85110037SARM gem5 Developers // MISCREG_DBGAUTHSTATUS_EL1 85210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 85310037SARM gem5 Developers // MISCREG_TEECR32_EL1 85410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), 85510037SARM gem5 Developers // MISCREG_TEEHBR32_EL1 85610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), 85710037SARM gem5 Developers 85810037SARM gem5 Developers // AArch64 registers (Op0=1,3) 85910037SARM gem5 Developers // MISCREG_MIDR_EL1 86010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86110037SARM gem5 Developers // MISCREG_MPIDR_EL1 86210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86310037SARM gem5 Developers // MISCREG_REVIDR_EL1 86410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86510037SARM gem5 Developers // MISCREG_ID_PFR0_EL1 86610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86710037SARM gem5 Developers // MISCREG_ID_PFR1_EL1 86810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86910037SARM gem5 Developers // MISCREG_ID_DFR0_EL1 87010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87110037SARM gem5 Developers // MISCREG_ID_AFR0_EL1 87210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87310037SARM gem5 Developers // MISCREG_ID_MMFR0_EL1 87410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87510037SARM gem5 Developers // MISCREG_ID_MMFR1_EL1 87610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87710037SARM gem5 Developers // MISCREG_ID_MMFR2_EL1 87810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87910037SARM gem5 Developers // MISCREG_ID_MMFR3_EL1 88010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88110037SARM gem5 Developers // MISCREG_ID_ISAR0_EL1 88210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88310037SARM gem5 Developers // MISCREG_ID_ISAR1_EL1 88410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88510037SARM gem5 Developers // MISCREG_ID_ISAR2_EL1 88610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88710037SARM gem5 Developers // MISCREG_ID_ISAR3_EL1 88810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88910037SARM gem5 Developers // MISCREG_ID_ISAR4_EL1 89010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89110037SARM gem5 Developers // MISCREG_ID_ISAR5_EL1 89210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89310037SARM gem5 Developers // MISCREG_MVFR0_EL1 89410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89510037SARM gem5 Developers // MISCREG_MVFR1_EL1 89610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89710037SARM gem5 Developers // MISCREG_MVFR2_EL1 89810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89910037SARM gem5 Developers // MISCREG_ID_AA64PFR0_EL1 90010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90110037SARM gem5 Developers // MISCREG_ID_AA64PFR1_EL1 90210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90310037SARM gem5 Developers // MISCREG_ID_AA64DFR0_EL1 90410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90510037SARM gem5 Developers // MISCREG_ID_AA64DFR1_EL1 90610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90710037SARM gem5 Developers // MISCREG_ID_AA64AFR0_EL1 90810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90910037SARM gem5 Developers // MISCREG_ID_AA64AFR1_EL1 91010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91110037SARM gem5 Developers // MISCREG_ID_AA64ISAR0_EL1 91210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91310037SARM gem5 Developers // MISCREG_ID_AA64ISAR1_EL1 91410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91510037SARM gem5 Developers // MISCREG_ID_AA64MMFR0_EL1 91610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91710037SARM gem5 Developers // MISCREG_ID_AA64MMFR1_EL1 91810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91910037SARM gem5 Developers // MISCREG_CCSIDR_EL1 92010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92110037SARM gem5 Developers // MISCREG_CLIDR_EL1 92210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92310037SARM gem5 Developers // MISCREG_AIDR_EL1 92410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92510037SARM gem5 Developers // MISCREG_CSSELR_EL1 92610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 92710037SARM gem5 Developers // MISCREG_CTR_EL0 92810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 92910037SARM gem5 Developers // MISCREG_DCZID_EL0 93010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 93110037SARM gem5 Developers // MISCREG_VPIDR_EL2 93210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 93310037SARM gem5 Developers // MISCREG_VMPIDR_EL2 93410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 93510037SARM gem5 Developers // MISCREG_SCTLR_EL1 93610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 93710037SARM gem5 Developers // MISCREG_ACTLR_EL1 93810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 93910037SARM gem5 Developers // MISCREG_CPACR_EL1 94010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 94110037SARM gem5 Developers // MISCREG_SCTLR_EL2 94210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94310037SARM gem5 Developers // MISCREG_ACTLR_EL2 94410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94510037SARM gem5 Developers // MISCREG_HCR_EL2 94610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94710037SARM gem5 Developers // MISCREG_MDCR_EL2 94810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94910037SARM gem5 Developers // MISCREG_CPTR_EL2 95010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95110037SARM gem5 Developers // MISCREG_HSTR_EL2 95210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95310037SARM gem5 Developers // MISCREG_HACR_EL2 95410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95510037SARM gem5 Developers // MISCREG_SCTLR_EL3 95610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 95710037SARM gem5 Developers // MISCREG_ACTLR_EL3 95810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 95910037SARM gem5 Developers // MISCREG_SCR_EL3 96010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96110037SARM gem5 Developers // MISCREG_SDER32_EL3 96210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96310037SARM gem5 Developers // MISCREG_CPTR_EL3 96410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96510037SARM gem5 Developers // MISCREG_MDCR_EL3 96610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96710037SARM gem5 Developers // MISCREG_TTBR0_EL1 96810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 96910037SARM gem5 Developers // MISCREG_TTBR1_EL1 97010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 97110037SARM gem5 Developers // MISCREG_TCR_EL1 97210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 97310037SARM gem5 Developers // MISCREG_TTBR0_EL2 97410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97510037SARM gem5 Developers // MISCREG_TCR_EL2 97610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97710037SARM gem5 Developers // MISCREG_VTTBR_EL2 97810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97910037SARM gem5 Developers // MISCREG_VTCR_EL2 98010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 98110037SARM gem5 Developers // MISCREG_TTBR0_EL3 98210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 98310037SARM gem5 Developers // MISCREG_TCR_EL3 98410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 98510037SARM gem5 Developers // MISCREG_DACR32_EL2 98610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 98710037SARM gem5 Developers // MISCREG_SPSR_EL1 98810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 98910037SARM gem5 Developers // MISCREG_ELR_EL1 99010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99110037SARM gem5 Developers // MISCREG_SP_EL0 99210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99310037SARM gem5 Developers // MISCREG_SPSEL 99410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99510037SARM gem5 Developers // MISCREG_CURRENTEL 99610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 99710037SARM gem5 Developers // MISCREG_NZCV 99810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 99910037SARM gem5 Developers // MISCREG_DAIF 100010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100110037SARM gem5 Developers // MISCREG_FPCR 100210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100310037SARM gem5 Developers // MISCREG_FPSR 100410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100510037SARM gem5 Developers // MISCREG_DSPSR_EL0 100610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100710037SARM gem5 Developers // MISCREG_DLR_EL0 100810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100910037SARM gem5 Developers // MISCREG_SPSR_EL2 101010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101110037SARM gem5 Developers // MISCREG_ELR_EL2 101210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101310037SARM gem5 Developers // MISCREG_SP_EL1 101410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101510037SARM gem5 Developers // MISCREG_SPSR_IRQ_AA64 101610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101710037SARM gem5 Developers // MISCREG_SPSR_ABT_AA64 101810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101910037SARM gem5 Developers // MISCREG_SPSR_UND_AA64 102010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 102110037SARM gem5 Developers // MISCREG_SPSR_FIQ_AA64 102210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 102310037SARM gem5 Developers // MISCREG_SPSR_EL3 102410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102510037SARM gem5 Developers // MISCREG_ELR_EL3 102610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102710037SARM gem5 Developers // MISCREG_SP_EL2 102810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102910037SARM gem5 Developers // MISCREG_AFSR0_EL1 103010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103110037SARM gem5 Developers // MISCREG_AFSR1_EL1 103210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103310037SARM gem5 Developers // MISCREG_ESR_EL1 103410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103510037SARM gem5 Developers // MISCREG_IFSR32_EL2 103610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 103710037SARM gem5 Developers // MISCREG_AFSR0_EL2 103810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 103910037SARM gem5 Developers // MISCREG_AFSR1_EL2 104010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104110037SARM gem5 Developers // MISCREG_ESR_EL2 104210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104310037SARM gem5 Developers // MISCREG_FPEXC32_EL2 104410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104510037SARM gem5 Developers // MISCREG_AFSR0_EL3 104610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 104710037SARM gem5 Developers // MISCREG_AFSR1_EL3 104810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 104910037SARM gem5 Developers // MISCREG_ESR_EL3 105010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 105110037SARM gem5 Developers // MISCREG_FAR_EL1 105210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 105310037SARM gem5 Developers // MISCREG_FAR_EL2 105410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 105510037SARM gem5 Developers // MISCREG_HPFAR_EL2 105610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 105710037SARM gem5 Developers // MISCREG_FAR_EL3 105810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 105910037SARM gem5 Developers // MISCREG_IC_IALLUIS 106010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106110037SARM gem5 Developers // MISCREG_PAR_EL1 106210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 106310037SARM gem5 Developers // MISCREG_IC_IALLU 106410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106510037SARM gem5 Developers // MISCREG_DC_IVAC_Xt 106610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106710037SARM gem5 Developers // MISCREG_DC_ISW_Xt 106810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106910037SARM gem5 Developers // MISCREG_AT_S1E1R_Xt 107010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107110037SARM gem5 Developers // MISCREG_AT_S1E1W_Xt 107210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107310037SARM gem5 Developers // MISCREG_AT_S1E0R_Xt 107410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107510037SARM gem5 Developers // MISCREG_AT_S1E0W_Xt 107610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107710037SARM gem5 Developers // MISCREG_DC_CSW_Xt 107810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 107910037SARM gem5 Developers // MISCREG_DC_CISW_Xt 108010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 108110037SARM gem5 Developers // MISCREG_DC_ZVA_Xt 108210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100010000101")), 108310037SARM gem5 Developers // MISCREG_IC_IVAU_Xt 108410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 108510037SARM gem5 Developers // MISCREG_DC_CVAC_Xt 108610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 108710037SARM gem5 Developers // MISCREG_DC_CVAU_Xt 108810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 108910037SARM gem5 Developers // MISCREG_DC_CIVAC_Xt 109010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 109110037SARM gem5 Developers // MISCREG_AT_S1E2R_Xt 109210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 109310037SARM gem5 Developers // MISCREG_AT_S1E2W_Xt 109410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 109510037SARM gem5 Developers // MISCREG_AT_S12E1R_Xt 109610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 109710037SARM gem5 Developers // MISCREG_AT_S12E1W_Xt 109810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 109910037SARM gem5 Developers // MISCREG_AT_S12E0R_Xt 110010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 110110037SARM gem5 Developers // MISCREG_AT_S12E0W_Xt 110210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 110310037SARM gem5 Developers // MISCREG_AT_S1E3R_Xt 110410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 110510037SARM gem5 Developers // MISCREG_AT_S1E3W_Xt 110610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 110710037SARM gem5 Developers // MISCREG_TLBI_VMALLE1IS 110810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 110910037SARM gem5 Developers // MISCREG_TLBI_VAE1IS_Xt 111010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111110037SARM gem5 Developers // MISCREG_TLBI_ASIDE1IS_Xt 111210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111310037SARM gem5 Developers // MISCREG_TLBI_VAAE1IS_Xt 111410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111510037SARM gem5 Developers // MISCREG_TLBI_VALE1IS_Xt 111610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111710037SARM gem5 Developers // MISCREG_TLBI_VAALE1IS_Xt 111810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111910037SARM gem5 Developers // MISCREG_TLBI_VMALLE1 112010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112110037SARM gem5 Developers // MISCREG_TLBI_VAE1_Xt 112210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112310037SARM gem5 Developers // MISCREG_TLBI_ASIDE1_Xt 112410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112510037SARM gem5 Developers // MISCREG_TLBI_VAAE1_Xt 112610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112710037SARM gem5 Developers // MISCREG_TLBI_VALE1_Xt 112810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112910037SARM gem5 Developers // MISCREG_TLBI_VAALE1_Xt 113010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 113110037SARM gem5 Developers // MISCREG_TLBI_IPAS2E1IS_Xt 113210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 113310037SARM gem5 Developers // MISCREG_TLBI_IPAS2LE1IS_Xt 113410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 113510037SARM gem5 Developers // MISCREG_TLBI_ALLE2IS 113610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 113710037SARM gem5 Developers // MISCREG_TLBI_VAE2IS_Xt 113810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 113910037SARM gem5 Developers // MISCREG_TLBI_ALLE1IS 114010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114110037SARM gem5 Developers // MISCREG_TLBI_VALE2IS_Xt 114210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 114310037SARM gem5 Developers // MISCREG_TLBI_VMALLS12E1IS 114410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114510037SARM gem5 Developers // MISCREG_TLBI_IPAS2E1_Xt 114610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114710037SARM gem5 Developers // MISCREG_TLBI_IPAS2LE1_Xt 114810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114910037SARM gem5 Developers // MISCREG_TLBI_ALLE2 115010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115110037SARM gem5 Developers // MISCREG_TLBI_VAE2_Xt 115210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115310037SARM gem5 Developers // MISCREG_TLBI_ALLE1 115410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 115510037SARM gem5 Developers // MISCREG_TLBI_VALE2_Xt 115610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115710037SARM gem5 Developers // MISCREG_TLBI_VMALLS12E1 115810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 115910037SARM gem5 Developers // MISCREG_TLBI_ALLE3IS 116010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116110037SARM gem5 Developers // MISCREG_TLBI_VAE3IS_Xt 116210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116310037SARM gem5 Developers // MISCREG_TLBI_VALE3IS_Xt 116410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116510037SARM gem5 Developers // MISCREG_TLBI_ALLE3 116610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116710037SARM gem5 Developers // MISCREG_TLBI_VAE3_Xt 116810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116910037SARM gem5 Developers // MISCREG_TLBI_VALE3_Xt 117010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 117110037SARM gem5 Developers // MISCREG_PMINTENSET_EL1 117210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 117310037SARM gem5 Developers // MISCREG_PMINTENCLR_EL1 117410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 117510037SARM gem5 Developers // MISCREG_PMCR_EL0 117610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 117710037SARM gem5 Developers // MISCREG_PMCNTENSET_EL0 117810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 117910037SARM gem5 Developers // MISCREG_PMCNTENCLR_EL0 118010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118110037SARM gem5 Developers // MISCREG_PMOVSCLR_EL0 118210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118310037SARM gem5 Developers // MISCREG_PMSWINC_EL0 118410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101111000001")), 118510037SARM gem5 Developers // MISCREG_PMSELR_EL0 118610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118710037SARM gem5 Developers // MISCREG_PMCEID0_EL0 118810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), 118910037SARM gem5 Developers // MISCREG_PMCEID1_EL0 119010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), 119110037SARM gem5 Developers // MISCREG_PMCCNTR_EL0 119210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119310037SARM gem5 Developers // MISCREG_PMXEVTYPER_EL0 119410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119510037SARM gem5 Developers // MISCREG_PMCCFILTR_EL0 119610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119710037SARM gem5 Developers // MISCREG_PMXEVCNTR_EL0 119810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119910037SARM gem5 Developers // MISCREG_PMUSERENR_EL0 120010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 120110037SARM gem5 Developers // MISCREG_PMOVSSET_EL0 120210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 120310037SARM gem5 Developers // MISCREG_MAIR_EL1 120410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 120510037SARM gem5 Developers // MISCREG_AMAIR_EL1 120610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 120710037SARM gem5 Developers // MISCREG_MAIR_EL2 120810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 120910037SARM gem5 Developers // MISCREG_AMAIR_EL2 121010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 121110037SARM gem5 Developers // MISCREG_MAIR_EL3 121210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 121310037SARM gem5 Developers // MISCREG_AMAIR_EL3 121410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 121510037SARM gem5 Developers // MISCREG_L2CTLR_EL1 121610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 121710037SARM gem5 Developers // MISCREG_L2ECTLR_EL1 121810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 121910037SARM gem5 Developers // MISCREG_VBAR_EL1 122010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 122110037SARM gem5 Developers // MISCREG_RVBAR_EL1 122210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 122310037SARM gem5 Developers // MISCREG_ISR_EL1 122410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 122510037SARM gem5 Developers // MISCREG_VBAR_EL2 122610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 122710037SARM gem5 Developers // MISCREG_RVBAR_EL2 122810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010100000000000001")), 122910037SARM gem5 Developers // MISCREG_VBAR_EL3 123010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 123110037SARM gem5 Developers // MISCREG_RVBAR_EL3 123210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010000000000000001")), 123310037SARM gem5 Developers // MISCREG_RMR_EL3 123410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 123510037SARM gem5 Developers // MISCREG_CONTEXTIDR_EL1 123610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 123710037SARM gem5 Developers // MISCREG_TPIDR_EL1 123810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 123910037SARM gem5 Developers // MISCREG_TPIDR_EL0 124010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 124110037SARM gem5 Developers // MISCREG_TPIDRRO_EL0 124210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 124310037SARM gem5 Developers // MISCREG_TPIDR_EL2 124410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 124510037SARM gem5 Developers // MISCREG_TPIDR_EL3 124610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 124710037SARM gem5 Developers // MISCREG_CNTKCTL_EL1 124810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 124910037SARM gem5 Developers // MISCREG_CNTFRQ_EL0 125010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110101010101000001")), 125110037SARM gem5 Developers // MISCREG_CNTPCT_EL0 125210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 125310037SARM gem5 Developers // MISCREG_CNTVCT_EL0 125410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), 125510037SARM gem5 Developers // MISCREG_CNTP_TVAL_EL0 125610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 125710037SARM gem5 Developers // MISCREG_CNTP_CTL_EL0 125810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 125910037SARM gem5 Developers // MISCREG_CNTP_CVAL_EL0 126010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126110037SARM gem5 Developers // MISCREG_CNTV_TVAL_EL0 126210845Sandreas.sandberg@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126310037SARM gem5 Developers // MISCREG_CNTV_CTL_EL0 126410845Sandreas.sandberg@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126510037SARM gem5 Developers // MISCREG_CNTV_CVAL_EL0 126610845Sandreas.sandberg@arm.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126710037SARM gem5 Developers // MISCREG_PMEVCNTR0_EL0 126810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126910037SARM gem5 Developers // MISCREG_PMEVCNTR1_EL0 127010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127110037SARM gem5 Developers // MISCREG_PMEVCNTR2_EL0 127210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127310037SARM gem5 Developers // MISCREG_PMEVCNTR3_EL0 127410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127510037SARM gem5 Developers // MISCREG_PMEVCNTR4_EL0 127610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127710037SARM gem5 Developers // MISCREG_PMEVCNTR5_EL0 127810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127910037SARM gem5 Developers // MISCREG_PMEVTYPER0_EL0 128010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128110037SARM gem5 Developers // MISCREG_PMEVTYPER1_EL0 128210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128310037SARM gem5 Developers // MISCREG_PMEVTYPER2_EL0 128410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128510037SARM gem5 Developers // MISCREG_PMEVTYPER3_EL0 128610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128710037SARM gem5 Developers // MISCREG_PMEVTYPER4_EL0 128810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128910037SARM gem5 Developers // MISCREG_PMEVTYPER5_EL0 129010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 129110037SARM gem5 Developers // MISCREG_CNTVOFF_EL2 129210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 129310037SARM gem5 Developers // MISCREG_CNTHCTL_EL2 129411587SDylan.Johnson@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000100")), 129510037SARM gem5 Developers // MISCREG_CNTHP_TVAL_EL2 129610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129710037SARM gem5 Developers // MISCREG_CNTHP_CTL_EL2 129810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129910037SARM gem5 Developers // MISCREG_CNTHP_CVAL_EL2 130010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130110037SARM gem5 Developers // MISCREG_CNTPS_TVAL_EL1 130210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130310037SARM gem5 Developers // MISCREG_CNTPS_CTL_EL1 130410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130510037SARM gem5 Developers // MISCREG_CNTPS_CVAL_EL1 130610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130710037SARM gem5 Developers // MISCREG_IL1DATA0_EL1 130810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 130910037SARM gem5 Developers // MISCREG_IL1DATA1_EL1 131010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131110037SARM gem5 Developers // MISCREG_IL1DATA2_EL1 131210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131310037SARM gem5 Developers // MISCREG_IL1DATA3_EL1 131410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131510037SARM gem5 Developers // MISCREG_DL1DATA0_EL1 131610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131710037SARM gem5 Developers // MISCREG_DL1DATA1_EL1 131810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131910037SARM gem5 Developers // MISCREG_DL1DATA2_EL1 132010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132110037SARM gem5 Developers // MISCREG_DL1DATA3_EL1 132210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132310037SARM gem5 Developers // MISCREG_DL1DATA4_EL1 132410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132510037SARM gem5 Developers // MISCREG_L2ACTLR_EL1 132610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132710037SARM gem5 Developers // MISCREG_CPUACTLR_EL1 132810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132910037SARM gem5 Developers // MISCREG_CPUECTLR_EL1 133010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 133110037SARM gem5 Developers // MISCREG_CPUMERRSR_EL1 133210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 133310037SARM gem5 Developers // MISCREG_L2MERRSR_EL1 133410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 133510037SARM gem5 Developers // MISCREG_CBAR_EL1 133610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 133710856SCurtis.Dunham@arm.com // MISCREG_CONTEXTIDR_EL2 133810856SCurtis.Dunham@arm.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 133910037SARM gem5 Developers 134010037SARM gem5 Developers // Dummy registers 134110037SARM gem5 Developers // MISCREG_NOP 134210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 134310037SARM gem5 Developers // MISCREG_RAZ 134410506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 134510037SARM gem5 Developers // MISCREG_CP14_UNIMPL 134610506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134710037SARM gem5 Developers // MISCREG_CP15_UNIMPL 134810506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134910037SARM gem5 Developers // MISCREG_A64_UNIMPL 135010506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 135110037SARM gem5 Developers // MISCREG_UNKNOWN 135210506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")) 135310037SARM gem5 Developers}; 13548868SMatt.Horsnell@arm.com 13558868SMatt.Horsnell@arm.comMiscRegIndex 13567259Sgblack@eecs.umich.edudecodeCP15Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) 13577259Sgblack@eecs.umich.edu{ 13587259Sgblack@eecs.umich.edu switch (crn) { 13597259Sgblack@eecs.umich.edu case 0: 13607259Sgblack@eecs.umich.edu switch (opc1) { 13617259Sgblack@eecs.umich.edu case 0: 13627259Sgblack@eecs.umich.edu switch (crm) { 13637259Sgblack@eecs.umich.edu case 0: 13647259Sgblack@eecs.umich.edu switch (opc2) { 13657259Sgblack@eecs.umich.edu case 1: 13667259Sgblack@eecs.umich.edu return MISCREG_CTR; 13677259Sgblack@eecs.umich.edu case 2: 13687259Sgblack@eecs.umich.edu return MISCREG_TCMTR; 13697351Sgblack@eecs.umich.edu case 3: 13707351Sgblack@eecs.umich.edu return MISCREG_TLBTR; 13717259Sgblack@eecs.umich.edu case 5: 13727259Sgblack@eecs.umich.edu return MISCREG_MPIDR; 137310037SARM gem5 Developers case 6: 137410037SARM gem5 Developers return MISCREG_REVIDR; 13757259Sgblack@eecs.umich.edu default: 13767259Sgblack@eecs.umich.edu return MISCREG_MIDR; 13777259Sgblack@eecs.umich.edu } 13787259Sgblack@eecs.umich.edu break; 13797259Sgblack@eecs.umich.edu case 1: 13807259Sgblack@eecs.umich.edu switch (opc2) { 13817259Sgblack@eecs.umich.edu case 0: 13827259Sgblack@eecs.umich.edu return MISCREG_ID_PFR0; 13837259Sgblack@eecs.umich.edu case 1: 13847259Sgblack@eecs.umich.edu return MISCREG_ID_PFR1; 13857259Sgblack@eecs.umich.edu case 2: 13867259Sgblack@eecs.umich.edu return MISCREG_ID_DFR0; 13877259Sgblack@eecs.umich.edu case 3: 13887259Sgblack@eecs.umich.edu return MISCREG_ID_AFR0; 13897259Sgblack@eecs.umich.edu case 4: 13907259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR0; 13917259Sgblack@eecs.umich.edu case 5: 13927259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR1; 13937259Sgblack@eecs.umich.edu case 6: 13947259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR2; 13957259Sgblack@eecs.umich.edu case 7: 13967259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR3; 13977259Sgblack@eecs.umich.edu } 13987259Sgblack@eecs.umich.edu break; 13997259Sgblack@eecs.umich.edu case 2: 14007259Sgblack@eecs.umich.edu switch (opc2) { 14017259Sgblack@eecs.umich.edu case 0: 14027259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR0; 14037259Sgblack@eecs.umich.edu case 1: 14047259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR1; 14057259Sgblack@eecs.umich.edu case 2: 14067259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR2; 14077259Sgblack@eecs.umich.edu case 3: 14087259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR3; 14097259Sgblack@eecs.umich.edu case 4: 14107259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR4; 14117259Sgblack@eecs.umich.edu case 5: 14127259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR5; 14137259Sgblack@eecs.umich.edu case 6: 14147259Sgblack@eecs.umich.edu case 7: 14157259Sgblack@eecs.umich.edu return MISCREG_RAZ; // read as zero 14167259Sgblack@eecs.umich.edu } 14177259Sgblack@eecs.umich.edu break; 14187259Sgblack@eecs.umich.edu default: 14197259Sgblack@eecs.umich.edu return MISCREG_RAZ; // read as zero 14207259Sgblack@eecs.umich.edu } 14217259Sgblack@eecs.umich.edu break; 14227259Sgblack@eecs.umich.edu case 1: 14237259Sgblack@eecs.umich.edu if (crm == 0) { 14247259Sgblack@eecs.umich.edu switch (opc2) { 14257259Sgblack@eecs.umich.edu case 0: 14267259Sgblack@eecs.umich.edu return MISCREG_CCSIDR; 14277259Sgblack@eecs.umich.edu case 1: 14287259Sgblack@eecs.umich.edu return MISCREG_CLIDR; 14297259Sgblack@eecs.umich.edu case 7: 14307259Sgblack@eecs.umich.edu return MISCREG_AIDR; 14317259Sgblack@eecs.umich.edu } 14327259Sgblack@eecs.umich.edu } 14337259Sgblack@eecs.umich.edu break; 14347259Sgblack@eecs.umich.edu case 2: 14357259Sgblack@eecs.umich.edu if (crm == 0 && opc2 == 0) { 14367259Sgblack@eecs.umich.edu return MISCREG_CSSELR; 14377259Sgblack@eecs.umich.edu } 14387259Sgblack@eecs.umich.edu break; 143910037SARM gem5 Developers case 4: 144010037SARM gem5 Developers if (crm == 0) { 144110037SARM gem5 Developers if (opc2 == 0) 144210037SARM gem5 Developers return MISCREG_VPIDR; 144310037SARM gem5 Developers else if (opc2 == 5) 144410037SARM gem5 Developers return MISCREG_VMPIDR; 144510037SARM gem5 Developers } 144610037SARM gem5 Developers break; 14477259Sgblack@eecs.umich.edu } 14487259Sgblack@eecs.umich.edu break; 14497259Sgblack@eecs.umich.edu case 1: 14507351Sgblack@eecs.umich.edu if (opc1 == 0) { 14517351Sgblack@eecs.umich.edu if (crm == 0) { 14527351Sgblack@eecs.umich.edu switch (opc2) { 14537351Sgblack@eecs.umich.edu case 0: 14547351Sgblack@eecs.umich.edu return MISCREG_SCTLR; 14557351Sgblack@eecs.umich.edu case 1: 14567351Sgblack@eecs.umich.edu return MISCREG_ACTLR; 14577351Sgblack@eecs.umich.edu case 0x2: 14587351Sgblack@eecs.umich.edu return MISCREG_CPACR; 14597351Sgblack@eecs.umich.edu } 14607351Sgblack@eecs.umich.edu } else if (crm == 1) { 14617351Sgblack@eecs.umich.edu switch (opc2) { 14627351Sgblack@eecs.umich.edu case 0: 14637351Sgblack@eecs.umich.edu return MISCREG_SCR; 14647351Sgblack@eecs.umich.edu case 1: 14657351Sgblack@eecs.umich.edu return MISCREG_SDER; 14667351Sgblack@eecs.umich.edu case 2: 14677351Sgblack@eecs.umich.edu return MISCREG_NSACR; 14687351Sgblack@eecs.umich.edu } 14697351Sgblack@eecs.umich.edu } 147010037SARM gem5 Developers } else if (opc1 == 4) { 147110037SARM gem5 Developers if (crm == 0) { 147210037SARM gem5 Developers if (opc2 == 0) 147310037SARM gem5 Developers return MISCREG_HSCTLR; 147410037SARM gem5 Developers else if (opc2 == 1) 147510037SARM gem5 Developers return MISCREG_HACTLR; 147610037SARM gem5 Developers } else if (crm == 1) { 147710037SARM gem5 Developers switch (opc2) { 147810037SARM gem5 Developers case 0: 147910037SARM gem5 Developers return MISCREG_HCR; 148010037SARM gem5 Developers case 1: 148110037SARM gem5 Developers return MISCREG_HDCR; 148210037SARM gem5 Developers case 2: 148310037SARM gem5 Developers return MISCREG_HCPTR; 148410037SARM gem5 Developers case 3: 148510037SARM gem5 Developers return MISCREG_HSTR; 148610037SARM gem5 Developers case 7: 148710037SARM gem5 Developers return MISCREG_HACR; 148810037SARM gem5 Developers } 148910037SARM gem5 Developers } 14907351Sgblack@eecs.umich.edu } 14917351Sgblack@eecs.umich.edu break; 14927351Sgblack@eecs.umich.edu case 2: 14937406SAli.Saidi@ARM.com if (opc1 == 0 && crm == 0) { 14947259Sgblack@eecs.umich.edu switch (opc2) { 14957259Sgblack@eecs.umich.edu case 0: 14967351Sgblack@eecs.umich.edu return MISCREG_TTBR0; 14977259Sgblack@eecs.umich.edu case 1: 14987351Sgblack@eecs.umich.edu return MISCREG_TTBR1; 14997351Sgblack@eecs.umich.edu case 2: 15007351Sgblack@eecs.umich.edu return MISCREG_TTBCR; 15017259Sgblack@eecs.umich.edu } 150210037SARM gem5 Developers } else if (opc1 == 4) { 150310037SARM gem5 Developers if (crm == 0 && opc2 == 2) 150410037SARM gem5 Developers return MISCREG_HTCR; 150510037SARM gem5 Developers else if (crm == 1 && opc2 == 2) 150610037SARM gem5 Developers return MISCREG_VTCR; 15077259Sgblack@eecs.umich.edu } 15087259Sgblack@eecs.umich.edu break; 15097351Sgblack@eecs.umich.edu case 3: 15107351Sgblack@eecs.umich.edu if (opc1 == 0 && crm == 0 && opc2 == 0) { 15117351Sgblack@eecs.umich.edu return MISCREG_DACR; 15127351Sgblack@eecs.umich.edu } 15137351Sgblack@eecs.umich.edu break; 15147259Sgblack@eecs.umich.edu case 5: 15157259Sgblack@eecs.umich.edu if (opc1 == 0) { 15167259Sgblack@eecs.umich.edu if (crm == 0) { 15177259Sgblack@eecs.umich.edu if (opc2 == 0) { 15187259Sgblack@eecs.umich.edu return MISCREG_DFSR; 15197259Sgblack@eecs.umich.edu } else if (opc2 == 1) { 15207259Sgblack@eecs.umich.edu return MISCREG_IFSR; 15217259Sgblack@eecs.umich.edu } 15227259Sgblack@eecs.umich.edu } else if (crm == 1) { 15237259Sgblack@eecs.umich.edu if (opc2 == 0) { 15247259Sgblack@eecs.umich.edu return MISCREG_ADFSR; 15257259Sgblack@eecs.umich.edu } else if (opc2 == 1) { 15267259Sgblack@eecs.umich.edu return MISCREG_AIFSR; 15277259Sgblack@eecs.umich.edu } 15287259Sgblack@eecs.umich.edu } 152910037SARM gem5 Developers } else if (opc1 == 4) { 153010037SARM gem5 Developers if (crm == 1) { 153110037SARM gem5 Developers if (opc2 == 0) 153210037SARM gem5 Developers return MISCREG_HADFSR; 153310037SARM gem5 Developers else if (opc2 == 1) 153410037SARM gem5 Developers return MISCREG_HAIFSR; 153510037SARM gem5 Developers } else if (crm == 2 && opc2 == 0) { 153610037SARM gem5 Developers return MISCREG_HSR; 153710037SARM gem5 Developers } 15387259Sgblack@eecs.umich.edu } 15397259Sgblack@eecs.umich.edu break; 15407259Sgblack@eecs.umich.edu case 6: 15417351Sgblack@eecs.umich.edu if (opc1 == 0 && crm == 0) { 15427351Sgblack@eecs.umich.edu switch (opc2) { 15437259Sgblack@eecs.umich.edu case 0: 15447351Sgblack@eecs.umich.edu return MISCREG_DFAR; 15457259Sgblack@eecs.umich.edu case 2: 15467351Sgblack@eecs.umich.edu return MISCREG_IFAR; 15477259Sgblack@eecs.umich.edu } 154810037SARM gem5 Developers } else if (opc1 == 4 && crm == 0) { 154910037SARM gem5 Developers switch (opc2) { 155010037SARM gem5 Developers case 0: 155110037SARM gem5 Developers return MISCREG_HDFAR; 155210037SARM gem5 Developers case 2: 155310037SARM gem5 Developers return MISCREG_HIFAR; 155410037SARM gem5 Developers case 4: 155510037SARM gem5 Developers return MISCREG_HPFAR; 155610037SARM gem5 Developers } 15577259Sgblack@eecs.umich.edu } 15587259Sgblack@eecs.umich.edu break; 15597259Sgblack@eecs.umich.edu case 7: 15607259Sgblack@eecs.umich.edu if (opc1 == 0) { 15617259Sgblack@eecs.umich.edu switch (crm) { 15627259Sgblack@eecs.umich.edu case 0: 15637259Sgblack@eecs.umich.edu if (opc2 == 4) { 15647259Sgblack@eecs.umich.edu return MISCREG_NOP; 15657259Sgblack@eecs.umich.edu } 15667259Sgblack@eecs.umich.edu break; 15677259Sgblack@eecs.umich.edu case 1: 15687259Sgblack@eecs.umich.edu switch (opc2) { 15697259Sgblack@eecs.umich.edu case 0: 15707259Sgblack@eecs.umich.edu return MISCREG_ICIALLUIS; 15717259Sgblack@eecs.umich.edu case 6: 15727259Sgblack@eecs.umich.edu return MISCREG_BPIALLIS; 15737259Sgblack@eecs.umich.edu } 15747259Sgblack@eecs.umich.edu break; 15757351Sgblack@eecs.umich.edu case 4: 15767351Sgblack@eecs.umich.edu if (opc2 == 0) { 15777351Sgblack@eecs.umich.edu return MISCREG_PAR; 15787351Sgblack@eecs.umich.edu } 15797351Sgblack@eecs.umich.edu break; 15807259Sgblack@eecs.umich.edu case 5: 15817259Sgblack@eecs.umich.edu switch (opc2) { 15827259Sgblack@eecs.umich.edu case 0: 15837259Sgblack@eecs.umich.edu return MISCREG_ICIALLU; 15847259Sgblack@eecs.umich.edu case 1: 15857259Sgblack@eecs.umich.edu return MISCREG_ICIMVAU; 15867259Sgblack@eecs.umich.edu case 4: 15877259Sgblack@eecs.umich.edu return MISCREG_CP15ISB; 15887259Sgblack@eecs.umich.edu case 6: 15897259Sgblack@eecs.umich.edu return MISCREG_BPIALL; 15907259Sgblack@eecs.umich.edu case 7: 15917259Sgblack@eecs.umich.edu return MISCREG_BPIMVA; 15927259Sgblack@eecs.umich.edu } 15937259Sgblack@eecs.umich.edu break; 15947259Sgblack@eecs.umich.edu case 6: 15957259Sgblack@eecs.umich.edu if (opc2 == 1) { 15967259Sgblack@eecs.umich.edu return MISCREG_DCIMVAC; 15977259Sgblack@eecs.umich.edu } else if (opc2 == 2) { 15987259Sgblack@eecs.umich.edu return MISCREG_DCISW; 15997259Sgblack@eecs.umich.edu } 16007259Sgblack@eecs.umich.edu break; 16017351Sgblack@eecs.umich.edu case 8: 16027351Sgblack@eecs.umich.edu switch (opc2) { 16037351Sgblack@eecs.umich.edu case 0: 160410037SARM gem5 Developers return MISCREG_ATS1CPR; 16057351Sgblack@eecs.umich.edu case 1: 160610037SARM gem5 Developers return MISCREG_ATS1CPW; 16077351Sgblack@eecs.umich.edu case 2: 160810037SARM gem5 Developers return MISCREG_ATS1CUR; 16097351Sgblack@eecs.umich.edu case 3: 161010037SARM gem5 Developers return MISCREG_ATS1CUW; 16117351Sgblack@eecs.umich.edu case 4: 161210037SARM gem5 Developers return MISCREG_ATS12NSOPR; 16137351Sgblack@eecs.umich.edu case 5: 161410037SARM gem5 Developers return MISCREG_ATS12NSOPW; 16157351Sgblack@eecs.umich.edu case 6: 161610037SARM gem5 Developers return MISCREG_ATS12NSOUR; 16177351Sgblack@eecs.umich.edu case 7: 161810037SARM gem5 Developers return MISCREG_ATS12NSOUW; 16197351Sgblack@eecs.umich.edu } 16207351Sgblack@eecs.umich.edu break; 16217259Sgblack@eecs.umich.edu case 10: 16227259Sgblack@eecs.umich.edu switch (opc2) { 16237259Sgblack@eecs.umich.edu case 1: 16247259Sgblack@eecs.umich.edu return MISCREG_DCCMVAC; 16257259Sgblack@eecs.umich.edu case 2: 162610037SARM gem5 Developers return MISCREG_DCCSW; 16277259Sgblack@eecs.umich.edu case 4: 16287259Sgblack@eecs.umich.edu return MISCREG_CP15DSB; 16297259Sgblack@eecs.umich.edu case 5: 16307259Sgblack@eecs.umich.edu return MISCREG_CP15DMB; 16317259Sgblack@eecs.umich.edu } 16327259Sgblack@eecs.umich.edu break; 16337259Sgblack@eecs.umich.edu case 11: 16347259Sgblack@eecs.umich.edu if (opc2 == 1) { 16357259Sgblack@eecs.umich.edu return MISCREG_DCCMVAU; 16367259Sgblack@eecs.umich.edu } 16377259Sgblack@eecs.umich.edu break; 16387259Sgblack@eecs.umich.edu case 13: 16397259Sgblack@eecs.umich.edu if (opc2 == 1) { 16407259Sgblack@eecs.umich.edu return MISCREG_NOP; 16417259Sgblack@eecs.umich.edu } 16427259Sgblack@eecs.umich.edu break; 16437259Sgblack@eecs.umich.edu case 14: 16447259Sgblack@eecs.umich.edu if (opc2 == 1) { 16457259Sgblack@eecs.umich.edu return MISCREG_DCCIMVAC; 16467259Sgblack@eecs.umich.edu } else if (opc2 == 2) { 16477259Sgblack@eecs.umich.edu return MISCREG_DCCISW; 16487259Sgblack@eecs.umich.edu } 16497259Sgblack@eecs.umich.edu break; 16507259Sgblack@eecs.umich.edu } 165110037SARM gem5 Developers } else if (opc1 == 4 && crm == 8) { 165210037SARM gem5 Developers if (opc2 == 0) 165310037SARM gem5 Developers return MISCREG_ATS1HR; 165410037SARM gem5 Developers else if (opc2 == 1) 165510037SARM gem5 Developers return MISCREG_ATS1HW; 16567259Sgblack@eecs.umich.edu } 16577259Sgblack@eecs.umich.edu break; 16587351Sgblack@eecs.umich.edu case 8: 16597351Sgblack@eecs.umich.edu if (opc1 == 0) { 16607351Sgblack@eecs.umich.edu switch (crm) { 16617351Sgblack@eecs.umich.edu case 3: 16627351Sgblack@eecs.umich.edu switch (opc2) { 16637351Sgblack@eecs.umich.edu case 0: 16647351Sgblack@eecs.umich.edu return MISCREG_TLBIALLIS; 16657351Sgblack@eecs.umich.edu case 1: 16667351Sgblack@eecs.umich.edu return MISCREG_TLBIMVAIS; 16677351Sgblack@eecs.umich.edu case 2: 16687351Sgblack@eecs.umich.edu return MISCREG_TLBIASIDIS; 16697351Sgblack@eecs.umich.edu case 3: 16707351Sgblack@eecs.umich.edu return MISCREG_TLBIMVAAIS; 16717351Sgblack@eecs.umich.edu } 16727351Sgblack@eecs.umich.edu break; 16737351Sgblack@eecs.umich.edu case 5: 16747351Sgblack@eecs.umich.edu switch (opc2) { 16757351Sgblack@eecs.umich.edu case 0: 16767351Sgblack@eecs.umich.edu return MISCREG_ITLBIALL; 16777351Sgblack@eecs.umich.edu case 1: 16787351Sgblack@eecs.umich.edu return MISCREG_ITLBIMVA; 16797351Sgblack@eecs.umich.edu case 2: 16807351Sgblack@eecs.umich.edu return MISCREG_ITLBIASID; 16817351Sgblack@eecs.umich.edu } 16827351Sgblack@eecs.umich.edu break; 16837351Sgblack@eecs.umich.edu case 6: 16847351Sgblack@eecs.umich.edu switch (opc2) { 16857351Sgblack@eecs.umich.edu case 0: 16867351Sgblack@eecs.umich.edu return MISCREG_DTLBIALL; 16877351Sgblack@eecs.umich.edu case 1: 16887351Sgblack@eecs.umich.edu return MISCREG_DTLBIMVA; 16897351Sgblack@eecs.umich.edu case 2: 16907351Sgblack@eecs.umich.edu return MISCREG_DTLBIASID; 16917351Sgblack@eecs.umich.edu } 16927351Sgblack@eecs.umich.edu break; 16937351Sgblack@eecs.umich.edu case 7: 16947351Sgblack@eecs.umich.edu switch (opc2) { 16957351Sgblack@eecs.umich.edu case 0: 16967351Sgblack@eecs.umich.edu return MISCREG_TLBIALL; 16977351Sgblack@eecs.umich.edu case 1: 16987351Sgblack@eecs.umich.edu return MISCREG_TLBIMVA; 16997351Sgblack@eecs.umich.edu case 2: 17007351Sgblack@eecs.umich.edu return MISCREG_TLBIASID; 17017351Sgblack@eecs.umich.edu case 3: 17027351Sgblack@eecs.umich.edu return MISCREG_TLBIMVAA; 17037351Sgblack@eecs.umich.edu } 17047351Sgblack@eecs.umich.edu break; 17057351Sgblack@eecs.umich.edu } 170610037SARM gem5 Developers } else if (opc1 == 4) { 170710037SARM gem5 Developers if (crm == 3) { 170810037SARM gem5 Developers switch (opc2) { 170910037SARM gem5 Developers case 0: 171010037SARM gem5 Developers return MISCREG_TLBIALLHIS; 171110037SARM gem5 Developers case 1: 171210037SARM gem5 Developers return MISCREG_TLBIMVAHIS; 171310037SARM gem5 Developers case 4: 171410037SARM gem5 Developers return MISCREG_TLBIALLNSNHIS; 171510037SARM gem5 Developers } 171610037SARM gem5 Developers } else if (crm == 7) { 171710037SARM gem5 Developers switch (opc2) { 171810037SARM gem5 Developers case 0: 171910037SARM gem5 Developers return MISCREG_TLBIALLH; 172010037SARM gem5 Developers case 1: 172110037SARM gem5 Developers return MISCREG_TLBIMVAH; 172210037SARM gem5 Developers case 4: 172310037SARM gem5 Developers return MISCREG_TLBIALLNSNH; 172410037SARM gem5 Developers } 172510037SARM gem5 Developers } 17267351Sgblack@eecs.umich.edu } 17277351Sgblack@eecs.umich.edu break; 17287259Sgblack@eecs.umich.edu case 9: 17297583SAli.Saidi@arm.com if (opc1 == 0) { 17307259Sgblack@eecs.umich.edu switch (crm) { 17317259Sgblack@eecs.umich.edu case 12: 17327583SAli.Saidi@arm.com switch (opc2) { 17337583SAli.Saidi@arm.com case 0: 17347583SAli.Saidi@arm.com return MISCREG_PMCR; 17357583SAli.Saidi@arm.com case 1: 17367583SAli.Saidi@arm.com return MISCREG_PMCNTENSET; 17377583SAli.Saidi@arm.com case 2: 17387583SAli.Saidi@arm.com return MISCREG_PMCNTENCLR; 17397583SAli.Saidi@arm.com case 3: 17407583SAli.Saidi@arm.com return MISCREG_PMOVSR; 17417583SAli.Saidi@arm.com case 4: 17427583SAli.Saidi@arm.com return MISCREG_PMSWINC; 17437583SAli.Saidi@arm.com case 5: 17447583SAli.Saidi@arm.com return MISCREG_PMSELR; 17457583SAli.Saidi@arm.com case 6: 17467583SAli.Saidi@arm.com return MISCREG_PMCEID0; 17477583SAli.Saidi@arm.com case 7: 17487583SAli.Saidi@arm.com return MISCREG_PMCEID1; 17497583SAli.Saidi@arm.com } 17508988SAli.Saidi@ARM.com break; 17517259Sgblack@eecs.umich.edu case 13: 17527583SAli.Saidi@arm.com switch (opc2) { 17537583SAli.Saidi@arm.com case 0: 17547583SAli.Saidi@arm.com return MISCREG_PMCCNTR; 17557583SAli.Saidi@arm.com case 1: 175610037SARM gem5 Developers // Selector is PMSELR.SEL 175710037SARM gem5 Developers return MISCREG_PMXEVTYPER_PMCCFILTR; 17587583SAli.Saidi@arm.com case 2: 17597583SAli.Saidi@arm.com return MISCREG_PMXEVCNTR; 17607583SAli.Saidi@arm.com } 17618988SAli.Saidi@ARM.com break; 17627259Sgblack@eecs.umich.edu case 14: 17637583SAli.Saidi@arm.com switch (opc2) { 17647583SAli.Saidi@arm.com case 0: 17657583SAli.Saidi@arm.com return MISCREG_PMUSERENR; 17667583SAli.Saidi@arm.com case 1: 17677583SAli.Saidi@arm.com return MISCREG_PMINTENSET; 17687583SAli.Saidi@arm.com case 2: 17697583SAli.Saidi@arm.com return MISCREG_PMINTENCLR; 177010037SARM gem5 Developers case 3: 177110037SARM gem5 Developers return MISCREG_PMOVSSET; 17727583SAli.Saidi@arm.com } 17738988SAli.Saidi@ARM.com break; 17747259Sgblack@eecs.umich.edu } 17758058SAli.Saidi@ARM.com } else if (opc1 == 1) { 17768549Sdaniel.johnson@arm.com switch (crm) { 17778549Sdaniel.johnson@arm.com case 0: 17788549Sdaniel.johnson@arm.com switch (opc2) { 17798549Sdaniel.johnson@arm.com case 2: // L2CTLR, L2 Control Register 17808549Sdaniel.johnson@arm.com return MISCREG_L2CTLR; 178110037SARM gem5 Developers case 3: 178210037SARM gem5 Developers return MISCREG_L2ECTLR; 17838549Sdaniel.johnson@arm.com } 17848988SAli.Saidi@ARM.com break; 178510037SARM gem5 Developers break; 17868549Sdaniel.johnson@arm.com } 17877259Sgblack@eecs.umich.edu } 17887259Sgblack@eecs.umich.edu break; 17897351Sgblack@eecs.umich.edu case 10: 17907351Sgblack@eecs.umich.edu if (opc1 == 0) { 17917351Sgblack@eecs.umich.edu // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown 17927351Sgblack@eecs.umich.edu if (crm == 2) { // TEX Remap Registers 17937351Sgblack@eecs.umich.edu if (opc2 == 0) { 179410037SARM gem5 Developers // Selector is TTBCR.EAE 179510037SARM gem5 Developers return MISCREG_PRRR_MAIR0; 17967351Sgblack@eecs.umich.edu } else if (opc2 == 1) { 179710037SARM gem5 Developers // Selector is TTBCR.EAE 179810037SARM gem5 Developers return MISCREG_NMRR_MAIR1; 17997351Sgblack@eecs.umich.edu } 180010037SARM gem5 Developers } else if (crm == 3) { 180110037SARM gem5 Developers if (opc2 == 0) { 180210037SARM gem5 Developers return MISCREG_AMAIR0; 180310037SARM gem5 Developers } else if (opc2 == 1) { 180410037SARM gem5 Developers return MISCREG_AMAIR1; 180510037SARM gem5 Developers } 180610037SARM gem5 Developers } 180710037SARM gem5 Developers } else if (opc1 == 4) { 180810037SARM gem5 Developers // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown 180910037SARM gem5 Developers if (crm == 2) { 181010037SARM gem5 Developers if (opc2 == 0) 181110037SARM gem5 Developers return MISCREG_HMAIR0; 181210037SARM gem5 Developers else if (opc2 == 1) 181310037SARM gem5 Developers return MISCREG_HMAIR1; 181410037SARM gem5 Developers } else if (crm == 3) { 181510037SARM gem5 Developers if (opc2 == 0) 181610037SARM gem5 Developers return MISCREG_HAMAIR0; 181710037SARM gem5 Developers else if (opc2 == 1) 181810037SARM gem5 Developers return MISCREG_HAMAIR1; 18197351Sgblack@eecs.umich.edu } 18207351Sgblack@eecs.umich.edu } 18217351Sgblack@eecs.umich.edu break; 18227259Sgblack@eecs.umich.edu case 11: 18238737Skoansin.tan@gmail.com if (opc1 <=7) { 18247259Sgblack@eecs.umich.edu switch (crm) { 18257259Sgblack@eecs.umich.edu case 0: 18267259Sgblack@eecs.umich.edu case 1: 18277259Sgblack@eecs.umich.edu case 2: 18287259Sgblack@eecs.umich.edu case 3: 18297259Sgblack@eecs.umich.edu case 4: 18307259Sgblack@eecs.umich.edu case 5: 18317259Sgblack@eecs.umich.edu case 6: 18327259Sgblack@eecs.umich.edu case 7: 18337259Sgblack@eecs.umich.edu case 8: 18347259Sgblack@eecs.umich.edu case 15: 18357259Sgblack@eecs.umich.edu // Reserved for DMA operations for TCM access 18367259Sgblack@eecs.umich.edu break; 18377259Sgblack@eecs.umich.edu } 18387259Sgblack@eecs.umich.edu } 18397259Sgblack@eecs.umich.edu break; 18407351Sgblack@eecs.umich.edu case 12: 18417351Sgblack@eecs.umich.edu if (opc1 == 0) { 18427351Sgblack@eecs.umich.edu if (crm == 0) { 18437351Sgblack@eecs.umich.edu if (opc2 == 0) { 18447351Sgblack@eecs.umich.edu return MISCREG_VBAR; 18457351Sgblack@eecs.umich.edu } else if (opc2 == 1) { 18467351Sgblack@eecs.umich.edu return MISCREG_MVBAR; 18477351Sgblack@eecs.umich.edu } 18487351Sgblack@eecs.umich.edu } else if (crm == 1) { 18497351Sgblack@eecs.umich.edu if (opc2 == 0) { 18507351Sgblack@eecs.umich.edu return MISCREG_ISR; 18517351Sgblack@eecs.umich.edu } 18527351Sgblack@eecs.umich.edu } 185310037SARM gem5 Developers } else if (opc1 == 4) { 185410037SARM gem5 Developers if (crm == 0 && opc2 == 0) 185510037SARM gem5 Developers return MISCREG_HVBAR; 18567351Sgblack@eecs.umich.edu } 18577351Sgblack@eecs.umich.edu break; 18587259Sgblack@eecs.umich.edu case 13: 18597259Sgblack@eecs.umich.edu if (opc1 == 0) { 18607259Sgblack@eecs.umich.edu if (crm == 0) { 18617406SAli.Saidi@ARM.com switch (opc2) { 18627351Sgblack@eecs.umich.edu case 0: 186310037SARM gem5 Developers return MISCREG_FCSEIDR; 18647259Sgblack@eecs.umich.edu case 1: 18657259Sgblack@eecs.umich.edu return MISCREG_CONTEXTIDR; 18667259Sgblack@eecs.umich.edu case 2: 18677259Sgblack@eecs.umich.edu return MISCREG_TPIDRURW; 18687259Sgblack@eecs.umich.edu case 3: 18697259Sgblack@eecs.umich.edu return MISCREG_TPIDRURO; 18707259Sgblack@eecs.umich.edu case 4: 18717259Sgblack@eecs.umich.edu return MISCREG_TPIDRPRW; 18727259Sgblack@eecs.umich.edu } 18737259Sgblack@eecs.umich.edu } 187410037SARM gem5 Developers } else if (opc1 == 4) { 187510037SARM gem5 Developers if (crm == 0 && opc2 == 2) 187610037SARM gem5 Developers return MISCREG_HTPIDR; 187710037SARM gem5 Developers } 187810037SARM gem5 Developers break; 187910037SARM gem5 Developers case 14: 188010037SARM gem5 Developers if (opc1 == 0) { 188110037SARM gem5 Developers switch (crm) { 188210037SARM gem5 Developers case 0: 188310037SARM gem5 Developers if (opc2 == 0) 188410037SARM gem5 Developers return MISCREG_CNTFRQ; 188510037SARM gem5 Developers break; 188610037SARM gem5 Developers case 1: 188710037SARM gem5 Developers if (opc2 == 0) 188810037SARM gem5 Developers return MISCREG_CNTKCTL; 188910037SARM gem5 Developers break; 189010037SARM gem5 Developers case 2: 189110037SARM gem5 Developers if (opc2 == 0) 189210037SARM gem5 Developers return MISCREG_CNTP_TVAL; 189310037SARM gem5 Developers else if (opc2 == 1) 189410037SARM gem5 Developers return MISCREG_CNTP_CTL; 189510037SARM gem5 Developers break; 189610037SARM gem5 Developers case 3: 189710037SARM gem5 Developers if (opc2 == 0) 189810037SARM gem5 Developers return MISCREG_CNTV_TVAL; 189910037SARM gem5 Developers else if (opc2 == 1) 190010037SARM gem5 Developers return MISCREG_CNTV_CTL; 190110037SARM gem5 Developers break; 190210037SARM gem5 Developers } 190310037SARM gem5 Developers } else if (opc1 == 4) { 190410037SARM gem5 Developers if (crm == 1 && opc2 == 0) { 190510037SARM gem5 Developers return MISCREG_CNTHCTL; 190610037SARM gem5 Developers } else if (crm == 2) { 190710037SARM gem5 Developers if (opc2 == 0) 190810037SARM gem5 Developers return MISCREG_CNTHP_TVAL; 190910037SARM gem5 Developers else if (opc2 == 1) 191010037SARM gem5 Developers return MISCREG_CNTHP_CTL; 191110037SARM gem5 Developers } 19127259Sgblack@eecs.umich.edu } 19137259Sgblack@eecs.umich.edu break; 19147259Sgblack@eecs.umich.edu case 15: 19157259Sgblack@eecs.umich.edu // Implementation defined 191610037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 19177259Sgblack@eecs.umich.edu } 19187259Sgblack@eecs.umich.edu // Unrecognized register 191910037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 19207259Sgblack@eecs.umich.edu} 19217259Sgblack@eecs.umich.edu 192210037SARM gem5 DevelopersMiscRegIndex 192310037SARM gem5 DevelopersdecodeCP15Reg64(unsigned crm, unsigned opc1) 192410037SARM gem5 Developers{ 192510037SARM gem5 Developers switch (crm) { 192610037SARM gem5 Developers case 2: 192710037SARM gem5 Developers switch (opc1) { 192810037SARM gem5 Developers case 0: 192910037SARM gem5 Developers return MISCREG_TTBR0; 193010037SARM gem5 Developers case 1: 193110037SARM gem5 Developers return MISCREG_TTBR1; 193210037SARM gem5 Developers case 4: 193310037SARM gem5 Developers return MISCREG_HTTBR; 193410037SARM gem5 Developers case 6: 193510037SARM gem5 Developers return MISCREG_VTTBR; 193610037SARM gem5 Developers } 193710037SARM gem5 Developers break; 193810037SARM gem5 Developers case 7: 193910037SARM gem5 Developers if (opc1 == 0) 194010037SARM gem5 Developers return MISCREG_PAR; 194110037SARM gem5 Developers break; 194210037SARM gem5 Developers case 14: 194310037SARM gem5 Developers switch (opc1) { 194410037SARM gem5 Developers case 0: 194510037SARM gem5 Developers return MISCREG_CNTPCT; 194610037SARM gem5 Developers case 1: 194710037SARM gem5 Developers return MISCREG_CNTVCT; 194810037SARM gem5 Developers case 2: 194910037SARM gem5 Developers return MISCREG_CNTP_CVAL; 195010037SARM gem5 Developers case 3: 195110037SARM gem5 Developers return MISCREG_CNTV_CVAL; 195210037SARM gem5 Developers case 4: 195310037SARM gem5 Developers return MISCREG_CNTVOFF; 195410037SARM gem5 Developers case 6: 195510037SARM gem5 Developers return MISCREG_CNTHP_CVAL; 195610037SARM gem5 Developers } 195710037SARM gem5 Developers break; 195810037SARM gem5 Developers case 15: 195910037SARM gem5 Developers if (opc1 == 0) 196010037SARM gem5 Developers return MISCREG_CPUMERRSR; 196110037SARM gem5 Developers else if (opc1 == 1) 196210037SARM gem5 Developers return MISCREG_L2MERRSR; 196310037SARM gem5 Developers break; 196410037SARM gem5 Developers } 196510037SARM gem5 Developers // Unrecognized register 196610037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 19678902Sandreas.hansson@arm.com} 196810037SARM gem5 Developers 196910037SARM gem5 Developersbool 197010037SARM gem5 DeveloperscanReadCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 197110037SARM gem5 Developers{ 197210037SARM gem5 Developers bool secure = !scr.ns; 197310037SARM gem5 Developers bool canRead; 197410037SARM gem5 Developers 197510037SARM gem5 Developers switch (cpsr.mode) { 197610037SARM gem5 Developers case MODE_USER: 197710037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_USR_S_RD] : 197810037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_RD]; 197910037SARM gem5 Developers break; 198010037SARM gem5 Developers case MODE_FIQ: 198110037SARM gem5 Developers case MODE_IRQ: 198210037SARM gem5 Developers case MODE_SVC: 198310037SARM gem5 Developers case MODE_ABORT: 198410037SARM gem5 Developers case MODE_UNDEFINED: 198510037SARM gem5 Developers case MODE_SYSTEM: 198610037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_PRI_S_RD] : 198710037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_RD]; 198810037SARM gem5 Developers break; 198910037SARM gem5 Developers case MODE_MON: 199010037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_MON_NS0_RD] : 199110037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_RD]; 199210037SARM gem5 Developers break; 199310037SARM gem5 Developers case MODE_HYP: 199410037SARM gem5 Developers canRead = miscRegInfo[reg][MISCREG_HYP_RD]; 199510037SARM gem5 Developers break; 199610037SARM gem5 Developers default: 199710037SARM gem5 Developers panic("Unrecognized mode setting in CPSR.\n"); 199810037SARM gem5 Developers } 199910037SARM gem5 Developers // can't do permissions checkes on the root of a banked pair of regs 200010037SARM gem5 Developers assert(!miscRegInfo[reg][MISCREG_BANKED]); 200110037SARM gem5 Developers return canRead; 200210037SARM gem5 Developers} 200310037SARM gem5 Developers 200410037SARM gem5 Developersbool 200510037SARM gem5 DeveloperscanWriteCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 200610037SARM gem5 Developers{ 200710037SARM gem5 Developers bool secure = !scr.ns; 200810037SARM gem5 Developers bool canWrite; 200910037SARM gem5 Developers 201010037SARM gem5 Developers switch (cpsr.mode) { 201110037SARM gem5 Developers case MODE_USER: 201210037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_USR_S_WR] : 201310037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_WR]; 201410037SARM gem5 Developers break; 201510037SARM gem5 Developers case MODE_FIQ: 201610037SARM gem5 Developers case MODE_IRQ: 201710037SARM gem5 Developers case MODE_SVC: 201810037SARM gem5 Developers case MODE_ABORT: 201910037SARM gem5 Developers case MODE_UNDEFINED: 202010037SARM gem5 Developers case MODE_SYSTEM: 202110037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_PRI_S_WR] : 202210037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_WR]; 202310037SARM gem5 Developers break; 202410037SARM gem5 Developers case MODE_MON: 202510037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_MON_NS0_WR] : 202610037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_WR]; 202710037SARM gem5 Developers break; 202810037SARM gem5 Developers case MODE_HYP: 202910037SARM gem5 Developers canWrite = miscRegInfo[reg][MISCREG_HYP_WR]; 203010037SARM gem5 Developers break; 203110037SARM gem5 Developers default: 203210037SARM gem5 Developers panic("Unrecognized mode setting in CPSR.\n"); 203310037SARM gem5 Developers } 203410037SARM gem5 Developers // can't do permissions checkes on the root of a banked pair of regs 203510037SARM gem5 Developers assert(!miscRegInfo[reg][MISCREG_BANKED]); 203610037SARM gem5 Developers return canWrite; 203710037SARM gem5 Developers} 203810037SARM gem5 Developers 203910037SARM gem5 Developersint 204010421Sandreas.hansson@arm.comflattenMiscRegNsBanked(MiscRegIndex reg, ThreadContext *tc) 204110037SARM gem5 Developers{ 204210421Sandreas.hansson@arm.com int reg_as_int = static_cast<int>(reg); 204310037SARM gem5 Developers if (miscRegInfo[reg][MISCREG_BANKED]) { 204410037SARM gem5 Developers SCR scr = tc->readMiscReg(MISCREG_SCR); 204510421Sandreas.hansson@arm.com reg_as_int += (ArmSystem::haveSecurity(tc) && !scr.ns) ? 2 : 1; 204610037SARM gem5 Developers } 204710421Sandreas.hansson@arm.com return reg_as_int; 204810037SARM gem5 Developers} 204910037SARM gem5 Developers 205010037SARM gem5 Developersint 205110421Sandreas.hansson@arm.comflattenMiscRegNsBanked(MiscRegIndex reg, ThreadContext *tc, bool ns) 205210037SARM gem5 Developers{ 205310421Sandreas.hansson@arm.com int reg_as_int = static_cast<int>(reg); 205410037SARM gem5 Developers if (miscRegInfo[reg][MISCREG_BANKED]) { 205510421Sandreas.hansson@arm.com reg_as_int += (ArmSystem::haveSecurity(tc) && !ns) ? 2 : 1; 205610037SARM gem5 Developers } 205710421Sandreas.hansson@arm.com return reg_as_int; 205810037SARM gem5 Developers} 205910037SARM gem5 Developers 206010037SARM gem5 Developers 206110037SARM gem5 Developers/** 206210037SARM gem5 Developers * If the reg is a child reg of a banked set, then the parent is the last 206310037SARM gem5 Developers * banked one in the list. This is messy, and the wish is to eventually have 206410037SARM gem5 Developers * the bitmap replaced with a better data structure. the preUnflatten function 206510037SARM gem5 Developers * initializes a lookup table to speed up the search for these banked 206610037SARM gem5 Developers * registers. 206710037SARM gem5 Developers */ 206810037SARM gem5 Developers 206910037SARM gem5 Developersint unflattenResultMiscReg[NUM_MISCREGS]; 207010037SARM gem5 Developers 207110037SARM gem5 Developersvoid 207210037SARM gem5 DeveloperspreUnflattenMiscReg() 207310037SARM gem5 Developers{ 207410037SARM gem5 Developers int reg = -1; 207510037SARM gem5 Developers for (int i = 0 ; i < NUM_MISCREGS; i++){ 207610037SARM gem5 Developers if (miscRegInfo[i][MISCREG_BANKED]) 207710037SARM gem5 Developers reg = i; 207810037SARM gem5 Developers if (miscRegInfo[i][MISCREG_BANKED_CHILD]) 207910037SARM gem5 Developers unflattenResultMiscReg[i] = reg; 208010037SARM gem5 Developers else 208110037SARM gem5 Developers unflattenResultMiscReg[i] = i; 208210037SARM gem5 Developers // if this assert fails, no parent was found, and something is broken 208310037SARM gem5 Developers assert(unflattenResultMiscReg[i] > -1); 208410037SARM gem5 Developers } 208510037SARM gem5 Developers} 208610037SARM gem5 Developers 208710037SARM gem5 Developersint 208810037SARM gem5 DevelopersunflattenMiscReg(int reg) 208910037SARM gem5 Developers{ 209010037SARM gem5 Developers return unflattenResultMiscReg[reg]; 209110037SARM gem5 Developers} 209210037SARM gem5 Developers 209310037SARM gem5 Developersbool 209410037SARM gem5 DeveloperscanReadAArch64SysReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 209510037SARM gem5 Developers{ 209610037SARM gem5 Developers // Check for SP_EL0 access while SPSEL == 0 209710037SARM gem5 Developers if ((reg == MISCREG_SP_EL0) && (tc->readMiscReg(MISCREG_SPSEL) == 0)) 209810037SARM gem5 Developers return false; 209910037SARM gem5 Developers 210010037SARM gem5 Developers // Check for RVBAR access 210110037SARM gem5 Developers if (reg == MISCREG_RVBAR_EL1) { 210210037SARM gem5 Developers ExceptionLevel highest_el = ArmSystem::highestEL(tc); 210310037SARM gem5 Developers if (highest_el == EL2 || highest_el == EL3) 210410037SARM gem5 Developers return false; 210510037SARM gem5 Developers } 210610037SARM gem5 Developers if (reg == MISCREG_RVBAR_EL2) { 210710037SARM gem5 Developers ExceptionLevel highest_el = ArmSystem::highestEL(tc); 210810037SARM gem5 Developers if (highest_el == EL3) 210910037SARM gem5 Developers return false; 211010037SARM gem5 Developers } 211110037SARM gem5 Developers 211210037SARM gem5 Developers bool secure = ArmSystem::haveSecurity(tc) && !scr.ns; 211310037SARM gem5 Developers 211410037SARM gem5 Developers switch (opModeToEL((OperatingMode) (uint8_t) cpsr.mode)) { 211510037SARM gem5 Developers case EL0: 211610037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_USR_S_RD] : 211710037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_RD]; 211810037SARM gem5 Developers case EL1: 211910037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_PRI_S_RD] : 212010037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_RD]; 212111574SCurtis.Dunham@arm.com case EL2: 212211574SCurtis.Dunham@arm.com return miscRegInfo[reg][MISCREG_HYP_RD]; 212310037SARM gem5 Developers case EL3: 212410037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_MON_NS0_RD] : 212510037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_RD]; 212610037SARM gem5 Developers default: 212710037SARM gem5 Developers panic("Invalid exception level"); 212810037SARM gem5 Developers } 212910037SARM gem5 Developers} 213010037SARM gem5 Developers 213110037SARM gem5 Developersbool 213210037SARM gem5 DeveloperscanWriteAArch64SysReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 213310037SARM gem5 Developers{ 213410037SARM gem5 Developers // Check for SP_EL0 access while SPSEL == 0 213510037SARM gem5 Developers if ((reg == MISCREG_SP_EL0) && (tc->readMiscReg(MISCREG_SPSEL) == 0)) 213610037SARM gem5 Developers return false; 213710037SARM gem5 Developers ExceptionLevel el = opModeToEL((OperatingMode) (uint8_t) cpsr.mode); 213810037SARM gem5 Developers if (reg == MISCREG_DAIF) { 213910037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 214010037SARM gem5 Developers if (el == EL0 && !sctlr.uma) 214110037SARM gem5 Developers return false; 214210037SARM gem5 Developers } 214310828SGiacomo.Gabrielli@arm.com if (FullSystem && reg == MISCREG_DC_ZVA_Xt) { 214410828SGiacomo.Gabrielli@arm.com // In syscall-emulation mode, this test is skipped and DCZVA is always 214510828SGiacomo.Gabrielli@arm.com // allowed at EL0 214610037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 214710037SARM gem5 Developers if (el == EL0 && !sctlr.dze) 214810037SARM gem5 Developers return false; 214910037SARM gem5 Developers } 215010037SARM gem5 Developers if (reg == MISCREG_DC_CVAC_Xt || reg == MISCREG_DC_CIVAC_Xt) { 215110037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 215210037SARM gem5 Developers if (el == EL0 && !sctlr.uci) 215310037SARM gem5 Developers return false; 215410037SARM gem5 Developers } 215510037SARM gem5 Developers 215610037SARM gem5 Developers bool secure = ArmSystem::haveSecurity(tc) && !scr.ns; 215710037SARM gem5 Developers 215810037SARM gem5 Developers switch (el) { 215910037SARM gem5 Developers case EL0: 216010037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_USR_S_WR] : 216110037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_WR]; 216210037SARM gem5 Developers case EL1: 216310037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_PRI_S_WR] : 216410037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_WR]; 216511574SCurtis.Dunham@arm.com case EL2: 216611574SCurtis.Dunham@arm.com return miscRegInfo[reg][MISCREG_HYP_WR]; 216710037SARM gem5 Developers case EL3: 216810037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_MON_NS0_WR] : 216910037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_WR]; 217010037SARM gem5 Developers default: 217110037SARM gem5 Developers panic("Invalid exception level"); 217210037SARM gem5 Developers } 217310037SARM gem5 Developers} 217410037SARM gem5 Developers 217510037SARM gem5 DevelopersMiscRegIndex 217610037SARM gem5 DevelopersdecodeAArch64SysReg(unsigned op0, unsigned op1, 217710037SARM gem5 Developers unsigned crn, unsigned crm, 217810037SARM gem5 Developers unsigned op2) 217910037SARM gem5 Developers{ 218010037SARM gem5 Developers switch (op0) { 218110037SARM gem5 Developers case 1: 218210037SARM gem5 Developers switch (crn) { 218310037SARM gem5 Developers case 7: 218410037SARM gem5 Developers switch (op1) { 218510037SARM gem5 Developers case 0: 218610037SARM gem5 Developers switch (crm) { 218710037SARM gem5 Developers case 1: 218810037SARM gem5 Developers switch (op2) { 218910037SARM gem5 Developers case 0: 219010037SARM gem5 Developers return MISCREG_IC_IALLUIS; 219110037SARM gem5 Developers } 219210037SARM gem5 Developers break; 219310037SARM gem5 Developers case 5: 219410037SARM gem5 Developers switch (op2) { 219510037SARM gem5 Developers case 0: 219610037SARM gem5 Developers return MISCREG_IC_IALLU; 219710037SARM gem5 Developers } 219810037SARM gem5 Developers break; 219910037SARM gem5 Developers case 6: 220010037SARM gem5 Developers switch (op2) { 220110037SARM gem5 Developers case 1: 220210037SARM gem5 Developers return MISCREG_DC_IVAC_Xt; 220310037SARM gem5 Developers case 2: 220410037SARM gem5 Developers return MISCREG_DC_ISW_Xt; 220510037SARM gem5 Developers } 220610037SARM gem5 Developers break; 220710037SARM gem5 Developers case 8: 220810037SARM gem5 Developers switch (op2) { 220910037SARM gem5 Developers case 0: 221010037SARM gem5 Developers return MISCREG_AT_S1E1R_Xt; 221110037SARM gem5 Developers case 1: 221210037SARM gem5 Developers return MISCREG_AT_S1E1W_Xt; 221310037SARM gem5 Developers case 2: 221410037SARM gem5 Developers return MISCREG_AT_S1E0R_Xt; 221510037SARM gem5 Developers case 3: 221610037SARM gem5 Developers return MISCREG_AT_S1E0W_Xt; 221710037SARM gem5 Developers } 221810037SARM gem5 Developers break; 221910037SARM gem5 Developers case 10: 222010037SARM gem5 Developers switch (op2) { 222110037SARM gem5 Developers case 2: 222210037SARM gem5 Developers return MISCREG_DC_CSW_Xt; 222310037SARM gem5 Developers } 222410037SARM gem5 Developers break; 222510037SARM gem5 Developers case 14: 222610037SARM gem5 Developers switch (op2) { 222710037SARM gem5 Developers case 2: 222810037SARM gem5 Developers return MISCREG_DC_CISW_Xt; 222910037SARM gem5 Developers } 223010037SARM gem5 Developers break; 223110037SARM gem5 Developers } 223210037SARM gem5 Developers break; 223310037SARM gem5 Developers case 3: 223410037SARM gem5 Developers switch (crm) { 223510037SARM gem5 Developers case 4: 223610037SARM gem5 Developers switch (op2) { 223710037SARM gem5 Developers case 1: 223810037SARM gem5 Developers return MISCREG_DC_ZVA_Xt; 223910037SARM gem5 Developers } 224010037SARM gem5 Developers break; 224110037SARM gem5 Developers case 5: 224210037SARM gem5 Developers switch (op2) { 224310037SARM gem5 Developers case 1: 224410037SARM gem5 Developers return MISCREG_IC_IVAU_Xt; 224510037SARM gem5 Developers } 224610037SARM gem5 Developers break; 224710037SARM gem5 Developers case 10: 224810037SARM gem5 Developers switch (op2) { 224910037SARM gem5 Developers case 1: 225010037SARM gem5 Developers return MISCREG_DC_CVAC_Xt; 225110037SARM gem5 Developers } 225210037SARM gem5 Developers break; 225310037SARM gem5 Developers case 11: 225410037SARM gem5 Developers switch (op2) { 225510037SARM gem5 Developers case 1: 225610037SARM gem5 Developers return MISCREG_DC_CVAU_Xt; 225710037SARM gem5 Developers } 225810037SARM gem5 Developers break; 225910037SARM gem5 Developers case 14: 226010037SARM gem5 Developers switch (op2) { 226110037SARM gem5 Developers case 1: 226210037SARM gem5 Developers return MISCREG_DC_CIVAC_Xt; 226310037SARM gem5 Developers } 226410037SARM gem5 Developers break; 226510037SARM gem5 Developers } 226610037SARM gem5 Developers break; 226710037SARM gem5 Developers case 4: 226810037SARM gem5 Developers switch (crm) { 226910037SARM gem5 Developers case 8: 227010037SARM gem5 Developers switch (op2) { 227110037SARM gem5 Developers case 0: 227210037SARM gem5 Developers return MISCREG_AT_S1E2R_Xt; 227310037SARM gem5 Developers case 1: 227410037SARM gem5 Developers return MISCREG_AT_S1E2W_Xt; 227510037SARM gem5 Developers case 4: 227610037SARM gem5 Developers return MISCREG_AT_S12E1R_Xt; 227710037SARM gem5 Developers case 5: 227810037SARM gem5 Developers return MISCREG_AT_S12E1W_Xt; 227910037SARM gem5 Developers case 6: 228010037SARM gem5 Developers return MISCREG_AT_S12E0R_Xt; 228110037SARM gem5 Developers case 7: 228210037SARM gem5 Developers return MISCREG_AT_S12E0W_Xt; 228310037SARM gem5 Developers } 228410037SARM gem5 Developers break; 228510037SARM gem5 Developers } 228610037SARM gem5 Developers break; 228710037SARM gem5 Developers case 6: 228810037SARM gem5 Developers switch (crm) { 228910037SARM gem5 Developers case 8: 229010037SARM gem5 Developers switch (op2) { 229110037SARM gem5 Developers case 0: 229210037SARM gem5 Developers return MISCREG_AT_S1E3R_Xt; 229310037SARM gem5 Developers case 1: 229410037SARM gem5 Developers return MISCREG_AT_S1E3W_Xt; 229510037SARM gem5 Developers } 229610037SARM gem5 Developers break; 229710037SARM gem5 Developers } 229810037SARM gem5 Developers break; 229910037SARM gem5 Developers } 230010037SARM gem5 Developers break; 230110037SARM gem5 Developers case 8: 230210037SARM gem5 Developers switch (op1) { 230310037SARM gem5 Developers case 0: 230410037SARM gem5 Developers switch (crm) { 230510037SARM gem5 Developers case 3: 230610037SARM gem5 Developers switch (op2) { 230710037SARM gem5 Developers case 0: 230810037SARM gem5 Developers return MISCREG_TLBI_VMALLE1IS; 230910037SARM gem5 Developers case 1: 231010037SARM gem5 Developers return MISCREG_TLBI_VAE1IS_Xt; 231110037SARM gem5 Developers case 2: 231210037SARM gem5 Developers return MISCREG_TLBI_ASIDE1IS_Xt; 231310037SARM gem5 Developers case 3: 231410037SARM gem5 Developers return MISCREG_TLBI_VAAE1IS_Xt; 231510037SARM gem5 Developers case 5: 231610037SARM gem5 Developers return MISCREG_TLBI_VALE1IS_Xt; 231710037SARM gem5 Developers case 7: 231810037SARM gem5 Developers return MISCREG_TLBI_VAALE1IS_Xt; 231910037SARM gem5 Developers } 232010037SARM gem5 Developers break; 232110037SARM gem5 Developers case 7: 232210037SARM gem5 Developers switch (op2) { 232310037SARM gem5 Developers case 0: 232410037SARM gem5 Developers return MISCREG_TLBI_VMALLE1; 232510037SARM gem5 Developers case 1: 232610037SARM gem5 Developers return MISCREG_TLBI_VAE1_Xt; 232710037SARM gem5 Developers case 2: 232810037SARM gem5 Developers return MISCREG_TLBI_ASIDE1_Xt; 232910037SARM gem5 Developers case 3: 233010037SARM gem5 Developers return MISCREG_TLBI_VAAE1_Xt; 233110037SARM gem5 Developers case 5: 233210037SARM gem5 Developers return MISCREG_TLBI_VALE1_Xt; 233310037SARM gem5 Developers case 7: 233410037SARM gem5 Developers return MISCREG_TLBI_VAALE1_Xt; 233510037SARM gem5 Developers } 233610037SARM gem5 Developers break; 233710037SARM gem5 Developers } 233810037SARM gem5 Developers break; 233910037SARM gem5 Developers case 4: 234010037SARM gem5 Developers switch (crm) { 234110037SARM gem5 Developers case 0: 234210037SARM gem5 Developers switch (op2) { 234310037SARM gem5 Developers case 1: 234410037SARM gem5 Developers return MISCREG_TLBI_IPAS2E1IS_Xt; 234510037SARM gem5 Developers case 5: 234610037SARM gem5 Developers return MISCREG_TLBI_IPAS2LE1IS_Xt; 234710037SARM gem5 Developers } 234810037SARM gem5 Developers break; 234910037SARM gem5 Developers case 3: 235010037SARM gem5 Developers switch (op2) { 235110037SARM gem5 Developers case 0: 235210037SARM gem5 Developers return MISCREG_TLBI_ALLE2IS; 235310037SARM gem5 Developers case 1: 235410037SARM gem5 Developers return MISCREG_TLBI_VAE2IS_Xt; 235510037SARM gem5 Developers case 4: 235610037SARM gem5 Developers return MISCREG_TLBI_ALLE1IS; 235710037SARM gem5 Developers case 5: 235810037SARM gem5 Developers return MISCREG_TLBI_VALE2IS_Xt; 235910037SARM gem5 Developers case 6: 236010037SARM gem5 Developers return MISCREG_TLBI_VMALLS12E1IS; 236110037SARM gem5 Developers } 236210037SARM gem5 Developers break; 236310037SARM gem5 Developers case 4: 236410037SARM gem5 Developers switch (op2) { 236510037SARM gem5 Developers case 1: 236610037SARM gem5 Developers return MISCREG_TLBI_IPAS2E1_Xt; 236710037SARM gem5 Developers case 5: 236810037SARM gem5 Developers return MISCREG_TLBI_IPAS2LE1_Xt; 236910037SARM gem5 Developers } 237010037SARM gem5 Developers break; 237110037SARM gem5 Developers case 7: 237210037SARM gem5 Developers switch (op2) { 237310037SARM gem5 Developers case 0: 237410037SARM gem5 Developers return MISCREG_TLBI_ALLE2; 237510037SARM gem5 Developers case 1: 237610037SARM gem5 Developers return MISCREG_TLBI_VAE2_Xt; 237710037SARM gem5 Developers case 4: 237810037SARM gem5 Developers return MISCREG_TLBI_ALLE1; 237910037SARM gem5 Developers case 5: 238010037SARM gem5 Developers return MISCREG_TLBI_VALE2_Xt; 238110037SARM gem5 Developers case 6: 238210037SARM gem5 Developers return MISCREG_TLBI_VMALLS12E1; 238310037SARM gem5 Developers } 238410037SARM gem5 Developers break; 238510037SARM gem5 Developers } 238610037SARM gem5 Developers break; 238710037SARM gem5 Developers case 6: 238810037SARM gem5 Developers switch (crm) { 238910037SARM gem5 Developers case 3: 239010037SARM gem5 Developers switch (op2) { 239110037SARM gem5 Developers case 0: 239210037SARM gem5 Developers return MISCREG_TLBI_ALLE3IS; 239310037SARM gem5 Developers case 1: 239410037SARM gem5 Developers return MISCREG_TLBI_VAE3IS_Xt; 239510037SARM gem5 Developers case 5: 239610037SARM gem5 Developers return MISCREG_TLBI_VALE3IS_Xt; 239710037SARM gem5 Developers } 239810037SARM gem5 Developers break; 239910037SARM gem5 Developers case 7: 240010037SARM gem5 Developers switch (op2) { 240110037SARM gem5 Developers case 0: 240210037SARM gem5 Developers return MISCREG_TLBI_ALLE3; 240310037SARM gem5 Developers case 1: 240410037SARM gem5 Developers return MISCREG_TLBI_VAE3_Xt; 240510037SARM gem5 Developers case 5: 240610037SARM gem5 Developers return MISCREG_TLBI_VALE3_Xt; 240710037SARM gem5 Developers } 240810037SARM gem5 Developers break; 240910037SARM gem5 Developers } 241010037SARM gem5 Developers break; 241110037SARM gem5 Developers } 241210037SARM gem5 Developers break; 241310037SARM gem5 Developers } 241410037SARM gem5 Developers break; 241510037SARM gem5 Developers case 2: 241610037SARM gem5 Developers switch (crn) { 241710037SARM gem5 Developers case 0: 241810037SARM gem5 Developers switch (op1) { 241910037SARM gem5 Developers case 0: 242010037SARM gem5 Developers switch (crm) { 242110037SARM gem5 Developers case 0: 242210037SARM gem5 Developers switch (op2) { 242310037SARM gem5 Developers case 2: 242410037SARM gem5 Developers return MISCREG_OSDTRRX_EL1; 242510037SARM gem5 Developers case 4: 242610037SARM gem5 Developers return MISCREG_DBGBVR0_EL1; 242710037SARM gem5 Developers case 5: 242810037SARM gem5 Developers return MISCREG_DBGBCR0_EL1; 242910037SARM gem5 Developers case 6: 243010037SARM gem5 Developers return MISCREG_DBGWVR0_EL1; 243110037SARM gem5 Developers case 7: 243210037SARM gem5 Developers return MISCREG_DBGWCR0_EL1; 243310037SARM gem5 Developers } 243410037SARM gem5 Developers break; 243510037SARM gem5 Developers case 1: 243610037SARM gem5 Developers switch (op2) { 243710037SARM gem5 Developers case 4: 243810037SARM gem5 Developers return MISCREG_DBGBVR1_EL1; 243910037SARM gem5 Developers case 5: 244010037SARM gem5 Developers return MISCREG_DBGBCR1_EL1; 244110037SARM gem5 Developers case 6: 244210037SARM gem5 Developers return MISCREG_DBGWVR1_EL1; 244310037SARM gem5 Developers case 7: 244410037SARM gem5 Developers return MISCREG_DBGWCR1_EL1; 244510037SARM gem5 Developers } 244610037SARM gem5 Developers break; 244710037SARM gem5 Developers case 2: 244810037SARM gem5 Developers switch (op2) { 244910037SARM gem5 Developers case 0: 245010037SARM gem5 Developers return MISCREG_MDCCINT_EL1; 245110037SARM gem5 Developers case 2: 245210037SARM gem5 Developers return MISCREG_MDSCR_EL1; 245310037SARM gem5 Developers case 4: 245410037SARM gem5 Developers return MISCREG_DBGBVR2_EL1; 245510037SARM gem5 Developers case 5: 245610037SARM gem5 Developers return MISCREG_DBGBCR2_EL1; 245710037SARM gem5 Developers case 6: 245810037SARM gem5 Developers return MISCREG_DBGWVR2_EL1; 245910037SARM gem5 Developers case 7: 246010037SARM gem5 Developers return MISCREG_DBGWCR2_EL1; 246110037SARM gem5 Developers } 246210037SARM gem5 Developers break; 246310037SARM gem5 Developers case 3: 246410037SARM gem5 Developers switch (op2) { 246510037SARM gem5 Developers case 2: 246610037SARM gem5 Developers return MISCREG_OSDTRTX_EL1; 246710037SARM gem5 Developers case 4: 246810037SARM gem5 Developers return MISCREG_DBGBVR3_EL1; 246910037SARM gem5 Developers case 5: 247010037SARM gem5 Developers return MISCREG_DBGBCR3_EL1; 247110037SARM gem5 Developers case 6: 247210037SARM gem5 Developers return MISCREG_DBGWVR3_EL1; 247310037SARM gem5 Developers case 7: 247410037SARM gem5 Developers return MISCREG_DBGWCR3_EL1; 247510037SARM gem5 Developers } 247610037SARM gem5 Developers break; 247710037SARM gem5 Developers case 4: 247810037SARM gem5 Developers switch (op2) { 247910037SARM gem5 Developers case 4: 248010037SARM gem5 Developers return MISCREG_DBGBVR4_EL1; 248110037SARM gem5 Developers case 5: 248210037SARM gem5 Developers return MISCREG_DBGBCR4_EL1; 248310037SARM gem5 Developers } 248410037SARM gem5 Developers break; 248510037SARM gem5 Developers case 5: 248610037SARM gem5 Developers switch (op2) { 248710037SARM gem5 Developers case 4: 248810037SARM gem5 Developers return MISCREG_DBGBVR5_EL1; 248910037SARM gem5 Developers case 5: 249010037SARM gem5 Developers return MISCREG_DBGBCR5_EL1; 249110037SARM gem5 Developers } 249210037SARM gem5 Developers break; 249310037SARM gem5 Developers case 6: 249410037SARM gem5 Developers switch (op2) { 249510037SARM gem5 Developers case 2: 249610037SARM gem5 Developers return MISCREG_OSECCR_EL1; 249710037SARM gem5 Developers } 249810037SARM gem5 Developers break; 249910037SARM gem5 Developers } 250010037SARM gem5 Developers break; 250110037SARM gem5 Developers case 2: 250210037SARM gem5 Developers switch (crm) { 250310037SARM gem5 Developers case 0: 250410037SARM gem5 Developers switch (op2) { 250510037SARM gem5 Developers case 0: 250610037SARM gem5 Developers return MISCREG_TEECR32_EL1; 250710037SARM gem5 Developers } 250810037SARM gem5 Developers break; 250910037SARM gem5 Developers } 251010037SARM gem5 Developers break; 251110037SARM gem5 Developers case 3: 251210037SARM gem5 Developers switch (crm) { 251310037SARM gem5 Developers case 1: 251410037SARM gem5 Developers switch (op2) { 251510037SARM gem5 Developers case 0: 251610037SARM gem5 Developers return MISCREG_MDCCSR_EL0; 251710037SARM gem5 Developers } 251810037SARM gem5 Developers break; 251910037SARM gem5 Developers case 4: 252010037SARM gem5 Developers switch (op2) { 252110037SARM gem5 Developers case 0: 252210037SARM gem5 Developers return MISCREG_MDDTR_EL0; 252310037SARM gem5 Developers } 252410037SARM gem5 Developers break; 252510037SARM gem5 Developers case 5: 252610037SARM gem5 Developers switch (op2) { 252710037SARM gem5 Developers case 0: 252810037SARM gem5 Developers return MISCREG_MDDTRRX_EL0; 252910037SARM gem5 Developers } 253010037SARM gem5 Developers break; 253110037SARM gem5 Developers } 253210037SARM gem5 Developers break; 253310037SARM gem5 Developers case 4: 253410037SARM gem5 Developers switch (crm) { 253510037SARM gem5 Developers case 7: 253610037SARM gem5 Developers switch (op2) { 253710037SARM gem5 Developers case 0: 253810037SARM gem5 Developers return MISCREG_DBGVCR32_EL2; 253910037SARM gem5 Developers } 254010037SARM gem5 Developers break; 254110037SARM gem5 Developers } 254210037SARM gem5 Developers break; 254310037SARM gem5 Developers } 254410037SARM gem5 Developers break; 254510037SARM gem5 Developers case 1: 254610037SARM gem5 Developers switch (op1) { 254710037SARM gem5 Developers case 0: 254810037SARM gem5 Developers switch (crm) { 254910037SARM gem5 Developers case 0: 255010037SARM gem5 Developers switch (op2) { 255110037SARM gem5 Developers case 0: 255210037SARM gem5 Developers return MISCREG_MDRAR_EL1; 255310037SARM gem5 Developers case 4: 255410037SARM gem5 Developers return MISCREG_OSLAR_EL1; 255510037SARM gem5 Developers } 255610037SARM gem5 Developers break; 255710037SARM gem5 Developers case 1: 255810037SARM gem5 Developers switch (op2) { 255910037SARM gem5 Developers case 4: 256010037SARM gem5 Developers return MISCREG_OSLSR_EL1; 256110037SARM gem5 Developers } 256210037SARM gem5 Developers break; 256310037SARM gem5 Developers case 3: 256410037SARM gem5 Developers switch (op2) { 256510037SARM gem5 Developers case 4: 256610037SARM gem5 Developers return MISCREG_OSDLR_EL1; 256710037SARM gem5 Developers } 256810037SARM gem5 Developers break; 256910037SARM gem5 Developers case 4: 257010037SARM gem5 Developers switch (op2) { 257110037SARM gem5 Developers case 4: 257210037SARM gem5 Developers return MISCREG_DBGPRCR_EL1; 257310037SARM gem5 Developers } 257410037SARM gem5 Developers break; 257510037SARM gem5 Developers } 257610037SARM gem5 Developers break; 257710037SARM gem5 Developers case 2: 257810037SARM gem5 Developers switch (crm) { 257910037SARM gem5 Developers case 0: 258010037SARM gem5 Developers switch (op2) { 258110037SARM gem5 Developers case 0: 258210037SARM gem5 Developers return MISCREG_TEEHBR32_EL1; 258310037SARM gem5 Developers } 258410037SARM gem5 Developers break; 258510037SARM gem5 Developers } 258610037SARM gem5 Developers break; 258710037SARM gem5 Developers } 258810037SARM gem5 Developers break; 258910037SARM gem5 Developers case 7: 259010037SARM gem5 Developers switch (op1) { 259110037SARM gem5 Developers case 0: 259210037SARM gem5 Developers switch (crm) { 259310037SARM gem5 Developers case 8: 259410037SARM gem5 Developers switch (op2) { 259510037SARM gem5 Developers case 6: 259610037SARM gem5 Developers return MISCREG_DBGCLAIMSET_EL1; 259710037SARM gem5 Developers } 259810037SARM gem5 Developers break; 259910037SARM gem5 Developers case 9: 260010037SARM gem5 Developers switch (op2) { 260110037SARM gem5 Developers case 6: 260210037SARM gem5 Developers return MISCREG_DBGCLAIMCLR_EL1; 260310037SARM gem5 Developers } 260410037SARM gem5 Developers break; 260510037SARM gem5 Developers case 14: 260610037SARM gem5 Developers switch (op2) { 260710037SARM gem5 Developers case 6: 260810037SARM gem5 Developers return MISCREG_DBGAUTHSTATUS_EL1; 260910037SARM gem5 Developers } 261010037SARM gem5 Developers break; 261110037SARM gem5 Developers } 261210037SARM gem5 Developers break; 261310037SARM gem5 Developers } 261410037SARM gem5 Developers break; 261510037SARM gem5 Developers } 261610037SARM gem5 Developers break; 261710037SARM gem5 Developers case 3: 261810037SARM gem5 Developers switch (crn) { 261910037SARM gem5 Developers case 0: 262010037SARM gem5 Developers switch (op1) { 262110037SARM gem5 Developers case 0: 262210037SARM gem5 Developers switch (crm) { 262310037SARM gem5 Developers case 0: 262410037SARM gem5 Developers switch (op2) { 262510037SARM gem5 Developers case 0: 262610037SARM gem5 Developers return MISCREG_MIDR_EL1; 262710037SARM gem5 Developers case 5: 262810037SARM gem5 Developers return MISCREG_MPIDR_EL1; 262910037SARM gem5 Developers case 6: 263010037SARM gem5 Developers return MISCREG_REVIDR_EL1; 263110037SARM gem5 Developers } 263210037SARM gem5 Developers break; 263310037SARM gem5 Developers case 1: 263410037SARM gem5 Developers switch (op2) { 263510037SARM gem5 Developers case 0: 263610037SARM gem5 Developers return MISCREG_ID_PFR0_EL1; 263710037SARM gem5 Developers case 1: 263810037SARM gem5 Developers return MISCREG_ID_PFR1_EL1; 263910037SARM gem5 Developers case 2: 264010037SARM gem5 Developers return MISCREG_ID_DFR0_EL1; 264110037SARM gem5 Developers case 3: 264210037SARM gem5 Developers return MISCREG_ID_AFR0_EL1; 264310037SARM gem5 Developers case 4: 264410037SARM gem5 Developers return MISCREG_ID_MMFR0_EL1; 264510037SARM gem5 Developers case 5: 264610037SARM gem5 Developers return MISCREG_ID_MMFR1_EL1; 264710037SARM gem5 Developers case 6: 264810037SARM gem5 Developers return MISCREG_ID_MMFR2_EL1; 264910037SARM gem5 Developers case 7: 265010037SARM gem5 Developers return MISCREG_ID_MMFR3_EL1; 265110037SARM gem5 Developers } 265210037SARM gem5 Developers break; 265310037SARM gem5 Developers case 2: 265410037SARM gem5 Developers switch (op2) { 265510037SARM gem5 Developers case 0: 265610037SARM gem5 Developers return MISCREG_ID_ISAR0_EL1; 265710037SARM gem5 Developers case 1: 265810037SARM gem5 Developers return MISCREG_ID_ISAR1_EL1; 265910037SARM gem5 Developers case 2: 266010037SARM gem5 Developers return MISCREG_ID_ISAR2_EL1; 266110037SARM gem5 Developers case 3: 266210037SARM gem5 Developers return MISCREG_ID_ISAR3_EL1; 266310037SARM gem5 Developers case 4: 266410037SARM gem5 Developers return MISCREG_ID_ISAR4_EL1; 266510037SARM gem5 Developers case 5: 266610037SARM gem5 Developers return MISCREG_ID_ISAR5_EL1; 266710037SARM gem5 Developers } 266810037SARM gem5 Developers break; 266910037SARM gem5 Developers case 3: 267010037SARM gem5 Developers switch (op2) { 267110037SARM gem5 Developers case 0: 267210037SARM gem5 Developers return MISCREG_MVFR0_EL1; 267310037SARM gem5 Developers case 1: 267410037SARM gem5 Developers return MISCREG_MVFR1_EL1; 267510037SARM gem5 Developers case 2: 267610037SARM gem5 Developers return MISCREG_MVFR2_EL1; 267710037SARM gem5 Developers case 3 ... 7: 267810037SARM gem5 Developers return MISCREG_RAZ; 267910037SARM gem5 Developers } 268010037SARM gem5 Developers break; 268110037SARM gem5 Developers case 4: 268210037SARM gem5 Developers switch (op2) { 268310037SARM gem5 Developers case 0: 268410037SARM gem5 Developers return MISCREG_ID_AA64PFR0_EL1; 268510037SARM gem5 Developers case 1: 268610037SARM gem5 Developers return MISCREG_ID_AA64PFR1_EL1; 268710037SARM gem5 Developers case 2 ... 7: 268810037SARM gem5 Developers return MISCREG_RAZ; 268910037SARM gem5 Developers } 269010037SARM gem5 Developers break; 269110037SARM gem5 Developers case 5: 269210037SARM gem5 Developers switch (op2) { 269310037SARM gem5 Developers case 0: 269410037SARM gem5 Developers return MISCREG_ID_AA64DFR0_EL1; 269510037SARM gem5 Developers case 1: 269610037SARM gem5 Developers return MISCREG_ID_AA64DFR1_EL1; 269710037SARM gem5 Developers case 4: 269810037SARM gem5 Developers return MISCREG_ID_AA64AFR0_EL1; 269910037SARM gem5 Developers case 5: 270010037SARM gem5 Developers return MISCREG_ID_AA64AFR1_EL1; 270110037SARM gem5 Developers case 2: 270210037SARM gem5 Developers case 3: 270310037SARM gem5 Developers case 6: 270410037SARM gem5 Developers case 7: 270510037SARM gem5 Developers return MISCREG_RAZ; 270610037SARM gem5 Developers } 270710037SARM gem5 Developers break; 270810037SARM gem5 Developers case 6: 270910037SARM gem5 Developers switch (op2) { 271010037SARM gem5 Developers case 0: 271110037SARM gem5 Developers return MISCREG_ID_AA64ISAR0_EL1; 271210037SARM gem5 Developers case 1: 271310037SARM gem5 Developers return MISCREG_ID_AA64ISAR1_EL1; 271410037SARM gem5 Developers case 2 ... 7: 271510037SARM gem5 Developers return MISCREG_RAZ; 271610037SARM gem5 Developers } 271710037SARM gem5 Developers break; 271810037SARM gem5 Developers case 7: 271910037SARM gem5 Developers switch (op2) { 272010037SARM gem5 Developers case 0: 272110037SARM gem5 Developers return MISCREG_ID_AA64MMFR0_EL1; 272210037SARM gem5 Developers case 1: 272310037SARM gem5 Developers return MISCREG_ID_AA64MMFR1_EL1; 272410037SARM gem5 Developers case 2 ... 7: 272510037SARM gem5 Developers return MISCREG_RAZ; 272610037SARM gem5 Developers } 272710037SARM gem5 Developers break; 272810037SARM gem5 Developers } 272910037SARM gem5 Developers break; 273010037SARM gem5 Developers case 1: 273110037SARM gem5 Developers switch (crm) { 273210037SARM gem5 Developers case 0: 273310037SARM gem5 Developers switch (op2) { 273410037SARM gem5 Developers case 0: 273510037SARM gem5 Developers return MISCREG_CCSIDR_EL1; 273610037SARM gem5 Developers case 1: 273710037SARM gem5 Developers return MISCREG_CLIDR_EL1; 273810037SARM gem5 Developers case 7: 273910037SARM gem5 Developers return MISCREG_AIDR_EL1; 274010037SARM gem5 Developers } 274110037SARM gem5 Developers break; 274210037SARM gem5 Developers } 274310037SARM gem5 Developers break; 274410037SARM gem5 Developers case 2: 274510037SARM gem5 Developers switch (crm) { 274610037SARM gem5 Developers case 0: 274710037SARM gem5 Developers switch (op2) { 274810037SARM gem5 Developers case 0: 274910037SARM gem5 Developers return MISCREG_CSSELR_EL1; 275010037SARM gem5 Developers } 275110037SARM gem5 Developers break; 275210037SARM gem5 Developers } 275310037SARM gem5 Developers break; 275410037SARM gem5 Developers case 3: 275510037SARM gem5 Developers switch (crm) { 275610037SARM gem5 Developers case 0: 275710037SARM gem5 Developers switch (op2) { 275810037SARM gem5 Developers case 1: 275910037SARM gem5 Developers return MISCREG_CTR_EL0; 276010037SARM gem5 Developers case 7: 276110037SARM gem5 Developers return MISCREG_DCZID_EL0; 276210037SARM gem5 Developers } 276310037SARM gem5 Developers break; 276410037SARM gem5 Developers } 276510037SARM gem5 Developers break; 276610037SARM gem5 Developers case 4: 276710037SARM gem5 Developers switch (crm) { 276810037SARM gem5 Developers case 0: 276910037SARM gem5 Developers switch (op2) { 277010037SARM gem5 Developers case 0: 277110037SARM gem5 Developers return MISCREG_VPIDR_EL2; 277210037SARM gem5 Developers case 5: 277310037SARM gem5 Developers return MISCREG_VMPIDR_EL2; 277410037SARM gem5 Developers } 277510037SARM gem5 Developers break; 277610037SARM gem5 Developers } 277710037SARM gem5 Developers break; 277810037SARM gem5 Developers } 277910037SARM gem5 Developers break; 278010037SARM gem5 Developers case 1: 278110037SARM gem5 Developers switch (op1) { 278210037SARM gem5 Developers case 0: 278310037SARM gem5 Developers switch (crm) { 278410037SARM gem5 Developers case 0: 278510037SARM gem5 Developers switch (op2) { 278610037SARM gem5 Developers case 0: 278710037SARM gem5 Developers return MISCREG_SCTLR_EL1; 278810037SARM gem5 Developers case 1: 278910037SARM gem5 Developers return MISCREG_ACTLR_EL1; 279010037SARM gem5 Developers case 2: 279110037SARM gem5 Developers return MISCREG_CPACR_EL1; 279210037SARM gem5 Developers } 279310037SARM gem5 Developers break; 279410037SARM gem5 Developers } 279510037SARM gem5 Developers break; 279610037SARM gem5 Developers case 4: 279710037SARM gem5 Developers switch (crm) { 279810037SARM gem5 Developers case 0: 279910037SARM gem5 Developers switch (op2) { 280010037SARM gem5 Developers case 0: 280110037SARM gem5 Developers return MISCREG_SCTLR_EL2; 280210037SARM gem5 Developers case 1: 280310037SARM gem5 Developers return MISCREG_ACTLR_EL2; 280410037SARM gem5 Developers } 280510037SARM gem5 Developers break; 280610037SARM gem5 Developers case 1: 280710037SARM gem5 Developers switch (op2) { 280810037SARM gem5 Developers case 0: 280910037SARM gem5 Developers return MISCREG_HCR_EL2; 281010037SARM gem5 Developers case 1: 281110037SARM gem5 Developers return MISCREG_MDCR_EL2; 281210037SARM gem5 Developers case 2: 281310037SARM gem5 Developers return MISCREG_CPTR_EL2; 281410037SARM gem5 Developers case 3: 281510037SARM gem5 Developers return MISCREG_HSTR_EL2; 281610037SARM gem5 Developers case 7: 281710037SARM gem5 Developers return MISCREG_HACR_EL2; 281810037SARM gem5 Developers } 281910037SARM gem5 Developers break; 282010037SARM gem5 Developers } 282110037SARM gem5 Developers break; 282210037SARM gem5 Developers case 6: 282310037SARM gem5 Developers switch (crm) { 282410037SARM gem5 Developers case 0: 282510037SARM gem5 Developers switch (op2) { 282610037SARM gem5 Developers case 0: 282710037SARM gem5 Developers return MISCREG_SCTLR_EL3; 282810037SARM gem5 Developers case 1: 282910037SARM gem5 Developers return MISCREG_ACTLR_EL3; 283010037SARM gem5 Developers } 283110037SARM gem5 Developers break; 283210037SARM gem5 Developers case 1: 283310037SARM gem5 Developers switch (op2) { 283410037SARM gem5 Developers case 0: 283510037SARM gem5 Developers return MISCREG_SCR_EL3; 283610037SARM gem5 Developers case 1: 283710037SARM gem5 Developers return MISCREG_SDER32_EL3; 283810037SARM gem5 Developers case 2: 283910037SARM gem5 Developers return MISCREG_CPTR_EL3; 284010037SARM gem5 Developers } 284110037SARM gem5 Developers break; 284210037SARM gem5 Developers case 3: 284310037SARM gem5 Developers switch (op2) { 284410037SARM gem5 Developers case 1: 284510037SARM gem5 Developers return MISCREG_MDCR_EL3; 284610037SARM gem5 Developers } 284710037SARM gem5 Developers break; 284810037SARM gem5 Developers } 284910037SARM gem5 Developers break; 285010037SARM gem5 Developers } 285110037SARM gem5 Developers break; 285210037SARM gem5 Developers case 2: 285310037SARM gem5 Developers switch (op1) { 285410037SARM gem5 Developers case 0: 285510037SARM gem5 Developers switch (crm) { 285610037SARM gem5 Developers case 0: 285710037SARM gem5 Developers switch (op2) { 285810037SARM gem5 Developers case 0: 285910037SARM gem5 Developers return MISCREG_TTBR0_EL1; 286010037SARM gem5 Developers case 1: 286110037SARM gem5 Developers return MISCREG_TTBR1_EL1; 286210037SARM gem5 Developers case 2: 286310037SARM gem5 Developers return MISCREG_TCR_EL1; 286410037SARM gem5 Developers } 286510037SARM gem5 Developers break; 286610037SARM gem5 Developers } 286710037SARM gem5 Developers break; 286810037SARM gem5 Developers case 4: 286910037SARM gem5 Developers switch (crm) { 287010037SARM gem5 Developers case 0: 287110037SARM gem5 Developers switch (op2) { 287210037SARM gem5 Developers case 0: 287310037SARM gem5 Developers return MISCREG_TTBR0_EL2; 287410037SARM gem5 Developers case 2: 287510037SARM gem5 Developers return MISCREG_TCR_EL2; 287610037SARM gem5 Developers } 287710037SARM gem5 Developers break; 287810037SARM gem5 Developers case 1: 287910037SARM gem5 Developers switch (op2) { 288010037SARM gem5 Developers case 0: 288110037SARM gem5 Developers return MISCREG_VTTBR_EL2; 288210037SARM gem5 Developers case 2: 288310037SARM gem5 Developers return MISCREG_VTCR_EL2; 288410037SARM gem5 Developers } 288510037SARM gem5 Developers break; 288610037SARM gem5 Developers } 288710037SARM gem5 Developers break; 288810037SARM gem5 Developers case 6: 288910037SARM gem5 Developers switch (crm) { 289010037SARM gem5 Developers case 0: 289110037SARM gem5 Developers switch (op2) { 289210037SARM gem5 Developers case 0: 289310037SARM gem5 Developers return MISCREG_TTBR0_EL3; 289410037SARM gem5 Developers case 2: 289510037SARM gem5 Developers return MISCREG_TCR_EL3; 289610037SARM gem5 Developers } 289710037SARM gem5 Developers break; 289810037SARM gem5 Developers } 289910037SARM gem5 Developers break; 290010037SARM gem5 Developers } 290110037SARM gem5 Developers break; 290210037SARM gem5 Developers case 3: 290310037SARM gem5 Developers switch (op1) { 290410037SARM gem5 Developers case 4: 290510037SARM gem5 Developers switch (crm) { 290610037SARM gem5 Developers case 0: 290710037SARM gem5 Developers switch (op2) { 290810037SARM gem5 Developers case 0: 290910037SARM gem5 Developers return MISCREG_DACR32_EL2; 291010037SARM gem5 Developers } 291110037SARM gem5 Developers break; 291210037SARM gem5 Developers } 291310037SARM gem5 Developers break; 291410037SARM gem5 Developers } 291510037SARM gem5 Developers break; 291610037SARM gem5 Developers case 4: 291710037SARM gem5 Developers switch (op1) { 291810037SARM gem5 Developers case 0: 291910037SARM gem5 Developers switch (crm) { 292010037SARM gem5 Developers case 0: 292110037SARM gem5 Developers switch (op2) { 292210037SARM gem5 Developers case 0: 292310037SARM gem5 Developers return MISCREG_SPSR_EL1; 292410037SARM gem5 Developers case 1: 292510037SARM gem5 Developers return MISCREG_ELR_EL1; 292610037SARM gem5 Developers } 292710037SARM gem5 Developers break; 292810037SARM gem5 Developers case 1: 292910037SARM gem5 Developers switch (op2) { 293010037SARM gem5 Developers case 0: 293110037SARM gem5 Developers return MISCREG_SP_EL0; 293210037SARM gem5 Developers } 293310037SARM gem5 Developers break; 293410037SARM gem5 Developers case 2: 293510037SARM gem5 Developers switch (op2) { 293610037SARM gem5 Developers case 0: 293710037SARM gem5 Developers return MISCREG_SPSEL; 293810037SARM gem5 Developers case 2: 293910037SARM gem5 Developers return MISCREG_CURRENTEL; 294010037SARM gem5 Developers } 294110037SARM gem5 Developers break; 294210037SARM gem5 Developers } 294310037SARM gem5 Developers break; 294410037SARM gem5 Developers case 3: 294510037SARM gem5 Developers switch (crm) { 294610037SARM gem5 Developers case 2: 294710037SARM gem5 Developers switch (op2) { 294810037SARM gem5 Developers case 0: 294910037SARM gem5 Developers return MISCREG_NZCV; 295010037SARM gem5 Developers case 1: 295110037SARM gem5 Developers return MISCREG_DAIF; 295210037SARM gem5 Developers } 295310037SARM gem5 Developers break; 295410037SARM gem5 Developers case 4: 295510037SARM gem5 Developers switch (op2) { 295610037SARM gem5 Developers case 0: 295710037SARM gem5 Developers return MISCREG_FPCR; 295810037SARM gem5 Developers case 1: 295910037SARM gem5 Developers return MISCREG_FPSR; 296010037SARM gem5 Developers } 296110037SARM gem5 Developers break; 296210037SARM gem5 Developers case 5: 296310037SARM gem5 Developers switch (op2) { 296410037SARM gem5 Developers case 0: 296510037SARM gem5 Developers return MISCREG_DSPSR_EL0; 296610037SARM gem5 Developers case 1: 296710037SARM gem5 Developers return MISCREG_DLR_EL0; 296810037SARM gem5 Developers } 296910037SARM gem5 Developers break; 297010037SARM gem5 Developers } 297110037SARM gem5 Developers break; 297210037SARM gem5 Developers case 4: 297310037SARM gem5 Developers switch (crm) { 297410037SARM gem5 Developers case 0: 297510037SARM gem5 Developers switch (op2) { 297610037SARM gem5 Developers case 0: 297710037SARM gem5 Developers return MISCREG_SPSR_EL2; 297810037SARM gem5 Developers case 1: 297910037SARM gem5 Developers return MISCREG_ELR_EL2; 298010037SARM gem5 Developers } 298110037SARM gem5 Developers break; 298210037SARM gem5 Developers case 1: 298310037SARM gem5 Developers switch (op2) { 298410037SARM gem5 Developers case 0: 298510037SARM gem5 Developers return MISCREG_SP_EL1; 298610037SARM gem5 Developers } 298710037SARM gem5 Developers break; 298810037SARM gem5 Developers case 3: 298910037SARM gem5 Developers switch (op2) { 299010037SARM gem5 Developers case 0: 299110037SARM gem5 Developers return MISCREG_SPSR_IRQ_AA64; 299210037SARM gem5 Developers case 1: 299310037SARM gem5 Developers return MISCREG_SPSR_ABT_AA64; 299410037SARM gem5 Developers case 2: 299510037SARM gem5 Developers return MISCREG_SPSR_UND_AA64; 299610037SARM gem5 Developers case 3: 299710037SARM gem5 Developers return MISCREG_SPSR_FIQ_AA64; 299810037SARM gem5 Developers } 299910037SARM gem5 Developers break; 300010037SARM gem5 Developers } 300110037SARM gem5 Developers break; 300210037SARM gem5 Developers case 6: 300310037SARM gem5 Developers switch (crm) { 300410037SARM gem5 Developers case 0: 300510037SARM gem5 Developers switch (op2) { 300610037SARM gem5 Developers case 0: 300710037SARM gem5 Developers return MISCREG_SPSR_EL3; 300810037SARM gem5 Developers case 1: 300910037SARM gem5 Developers return MISCREG_ELR_EL3; 301010037SARM gem5 Developers } 301110037SARM gem5 Developers break; 301210037SARM gem5 Developers case 1: 301310037SARM gem5 Developers switch (op2) { 301410037SARM gem5 Developers case 0: 301510037SARM gem5 Developers return MISCREG_SP_EL2; 301610037SARM gem5 Developers } 301710037SARM gem5 Developers break; 301810037SARM gem5 Developers } 301910037SARM gem5 Developers break; 302010037SARM gem5 Developers } 302110037SARM gem5 Developers break; 302210037SARM gem5 Developers case 5: 302310037SARM gem5 Developers switch (op1) { 302410037SARM gem5 Developers case 0: 302510037SARM gem5 Developers switch (crm) { 302610037SARM gem5 Developers case 1: 302710037SARM gem5 Developers switch (op2) { 302810037SARM gem5 Developers case 0: 302910037SARM gem5 Developers return MISCREG_AFSR0_EL1; 303010037SARM gem5 Developers case 1: 303110037SARM gem5 Developers return MISCREG_AFSR1_EL1; 303210037SARM gem5 Developers } 303310037SARM gem5 Developers break; 303410037SARM gem5 Developers case 2: 303510037SARM gem5 Developers switch (op2) { 303610037SARM gem5 Developers case 0: 303710037SARM gem5 Developers return MISCREG_ESR_EL1; 303810037SARM gem5 Developers } 303910037SARM gem5 Developers break; 304010037SARM gem5 Developers } 304110037SARM gem5 Developers break; 304210037SARM gem5 Developers case 4: 304310037SARM gem5 Developers switch (crm) { 304410037SARM gem5 Developers case 0: 304510037SARM gem5 Developers switch (op2) { 304610037SARM gem5 Developers case 1: 304710037SARM gem5 Developers return MISCREG_IFSR32_EL2; 304810037SARM gem5 Developers } 304910037SARM gem5 Developers break; 305010037SARM gem5 Developers case 1: 305110037SARM gem5 Developers switch (op2) { 305210037SARM gem5 Developers case 0: 305310037SARM gem5 Developers return MISCREG_AFSR0_EL2; 305410037SARM gem5 Developers case 1: 305510037SARM gem5 Developers return MISCREG_AFSR1_EL2; 305610037SARM gem5 Developers } 305710037SARM gem5 Developers break; 305810037SARM gem5 Developers case 2: 305910037SARM gem5 Developers switch (op2) { 306010037SARM gem5 Developers case 0: 306110037SARM gem5 Developers return MISCREG_ESR_EL2; 306210037SARM gem5 Developers } 306310037SARM gem5 Developers break; 306410037SARM gem5 Developers case 3: 306510037SARM gem5 Developers switch (op2) { 306610037SARM gem5 Developers case 0: 306710037SARM gem5 Developers return MISCREG_FPEXC32_EL2; 306810037SARM gem5 Developers } 306910037SARM gem5 Developers break; 307010037SARM gem5 Developers } 307110037SARM gem5 Developers break; 307210037SARM gem5 Developers case 6: 307310037SARM gem5 Developers switch (crm) { 307410037SARM gem5 Developers case 1: 307510037SARM gem5 Developers switch (op2) { 307610037SARM gem5 Developers case 0: 307710037SARM gem5 Developers return MISCREG_AFSR0_EL3; 307810037SARM gem5 Developers case 1: 307910037SARM gem5 Developers return MISCREG_AFSR1_EL3; 308010037SARM gem5 Developers } 308110037SARM gem5 Developers break; 308210037SARM gem5 Developers case 2: 308310037SARM gem5 Developers switch (op2) { 308410037SARM gem5 Developers case 0: 308510037SARM gem5 Developers return MISCREG_ESR_EL3; 308610037SARM gem5 Developers } 308710037SARM gem5 Developers break; 308810037SARM gem5 Developers } 308910037SARM gem5 Developers break; 309010037SARM gem5 Developers } 309110037SARM gem5 Developers break; 309210037SARM gem5 Developers case 6: 309310037SARM gem5 Developers switch (op1) { 309410037SARM gem5 Developers case 0: 309510037SARM gem5 Developers switch (crm) { 309610037SARM gem5 Developers case 0: 309710037SARM gem5 Developers switch (op2) { 309810037SARM gem5 Developers case 0: 309910037SARM gem5 Developers return MISCREG_FAR_EL1; 310010037SARM gem5 Developers } 310110037SARM gem5 Developers break; 310210037SARM gem5 Developers } 310310037SARM gem5 Developers break; 310410037SARM gem5 Developers case 4: 310510037SARM gem5 Developers switch (crm) { 310610037SARM gem5 Developers case 0: 310710037SARM gem5 Developers switch (op2) { 310810037SARM gem5 Developers case 0: 310910037SARM gem5 Developers return MISCREG_FAR_EL2; 311010037SARM gem5 Developers case 4: 311110037SARM gem5 Developers return MISCREG_HPFAR_EL2; 311210037SARM gem5 Developers } 311310037SARM gem5 Developers break; 311410037SARM gem5 Developers } 311510037SARM gem5 Developers break; 311610037SARM gem5 Developers case 6: 311710037SARM gem5 Developers switch (crm) { 311810037SARM gem5 Developers case 0: 311910037SARM gem5 Developers switch (op2) { 312010037SARM gem5 Developers case 0: 312110037SARM gem5 Developers return MISCREG_FAR_EL3; 312210037SARM gem5 Developers } 312310037SARM gem5 Developers break; 312410037SARM gem5 Developers } 312510037SARM gem5 Developers break; 312610037SARM gem5 Developers } 312710037SARM gem5 Developers break; 312810037SARM gem5 Developers case 7: 312910037SARM gem5 Developers switch (op1) { 313010037SARM gem5 Developers case 0: 313110037SARM gem5 Developers switch (crm) { 313210037SARM gem5 Developers case 4: 313310037SARM gem5 Developers switch (op2) { 313410037SARM gem5 Developers case 0: 313510037SARM gem5 Developers return MISCREG_PAR_EL1; 313610037SARM gem5 Developers } 313710037SARM gem5 Developers break; 313810037SARM gem5 Developers } 313910037SARM gem5 Developers break; 314010037SARM gem5 Developers } 314110037SARM gem5 Developers break; 314210037SARM gem5 Developers case 9: 314310037SARM gem5 Developers switch (op1) { 314410037SARM gem5 Developers case 0: 314510037SARM gem5 Developers switch (crm) { 314610037SARM gem5 Developers case 14: 314710037SARM gem5 Developers switch (op2) { 314810037SARM gem5 Developers case 1: 314910037SARM gem5 Developers return MISCREG_PMINTENSET_EL1; 315010037SARM gem5 Developers case 2: 315110037SARM gem5 Developers return MISCREG_PMINTENCLR_EL1; 315210037SARM gem5 Developers } 315310037SARM gem5 Developers break; 315410037SARM gem5 Developers } 315510037SARM gem5 Developers break; 315610037SARM gem5 Developers case 3: 315710037SARM gem5 Developers switch (crm) { 315810037SARM gem5 Developers case 12: 315910037SARM gem5 Developers switch (op2) { 316010037SARM gem5 Developers case 0: 316110037SARM gem5 Developers return MISCREG_PMCR_EL0; 316210037SARM gem5 Developers case 1: 316310037SARM gem5 Developers return MISCREG_PMCNTENSET_EL0; 316410037SARM gem5 Developers case 2: 316510037SARM gem5 Developers return MISCREG_PMCNTENCLR_EL0; 316610037SARM gem5 Developers case 3: 316710037SARM gem5 Developers return MISCREG_PMOVSCLR_EL0; 316810037SARM gem5 Developers case 4: 316910037SARM gem5 Developers return MISCREG_PMSWINC_EL0; 317010037SARM gem5 Developers case 5: 317110037SARM gem5 Developers return MISCREG_PMSELR_EL0; 317210037SARM gem5 Developers case 6: 317310037SARM gem5 Developers return MISCREG_PMCEID0_EL0; 317410037SARM gem5 Developers case 7: 317510037SARM gem5 Developers return MISCREG_PMCEID1_EL0; 317610037SARM gem5 Developers } 317710037SARM gem5 Developers break; 317810037SARM gem5 Developers case 13: 317910037SARM gem5 Developers switch (op2) { 318010037SARM gem5 Developers case 0: 318110037SARM gem5 Developers return MISCREG_PMCCNTR_EL0; 318210037SARM gem5 Developers case 1: 318310604SAndreas.Sandberg@ARM.com return MISCREG_PMXEVTYPER_EL0; 318410037SARM gem5 Developers case 2: 318510037SARM gem5 Developers return MISCREG_PMXEVCNTR_EL0; 318610037SARM gem5 Developers } 318710037SARM gem5 Developers break; 318810037SARM gem5 Developers case 14: 318910037SARM gem5 Developers switch (op2) { 319010037SARM gem5 Developers case 0: 319110037SARM gem5 Developers return MISCREG_PMUSERENR_EL0; 319210037SARM gem5 Developers case 3: 319310037SARM gem5 Developers return MISCREG_PMOVSSET_EL0; 319410037SARM gem5 Developers } 319510037SARM gem5 Developers break; 319610037SARM gem5 Developers } 319710037SARM gem5 Developers break; 319810037SARM gem5 Developers } 319910037SARM gem5 Developers break; 320010037SARM gem5 Developers case 10: 320110037SARM gem5 Developers switch (op1) { 320210037SARM gem5 Developers case 0: 320310037SARM gem5 Developers switch (crm) { 320410037SARM gem5 Developers case 2: 320510037SARM gem5 Developers switch (op2) { 320610037SARM gem5 Developers case 0: 320710037SARM gem5 Developers return MISCREG_MAIR_EL1; 320810037SARM gem5 Developers } 320910037SARM gem5 Developers break; 321010037SARM gem5 Developers case 3: 321110037SARM gem5 Developers switch (op2) { 321210037SARM gem5 Developers case 0: 321310037SARM gem5 Developers return MISCREG_AMAIR_EL1; 321410037SARM gem5 Developers } 321510037SARM gem5 Developers break; 321610037SARM gem5 Developers } 321710037SARM gem5 Developers break; 321810037SARM gem5 Developers case 4: 321910037SARM gem5 Developers switch (crm) { 322010037SARM gem5 Developers case 2: 322110037SARM gem5 Developers switch (op2) { 322210037SARM gem5 Developers case 0: 322310037SARM gem5 Developers return MISCREG_MAIR_EL2; 322410037SARM gem5 Developers } 322510037SARM gem5 Developers break; 322610037SARM gem5 Developers case 3: 322710037SARM gem5 Developers switch (op2) { 322810037SARM gem5 Developers case 0: 322910037SARM gem5 Developers return MISCREG_AMAIR_EL2; 323010037SARM gem5 Developers } 323110037SARM gem5 Developers break; 323210037SARM gem5 Developers } 323310037SARM gem5 Developers break; 323410037SARM gem5 Developers case 6: 323510037SARM gem5 Developers switch (crm) { 323610037SARM gem5 Developers case 2: 323710037SARM gem5 Developers switch (op2) { 323810037SARM gem5 Developers case 0: 323910037SARM gem5 Developers return MISCREG_MAIR_EL3; 324010037SARM gem5 Developers } 324110037SARM gem5 Developers break; 324210037SARM gem5 Developers case 3: 324310037SARM gem5 Developers switch (op2) { 324410037SARM gem5 Developers case 0: 324510037SARM gem5 Developers return MISCREG_AMAIR_EL3; 324610037SARM gem5 Developers } 324710037SARM gem5 Developers break; 324810037SARM gem5 Developers } 324910037SARM gem5 Developers break; 325010037SARM gem5 Developers } 325110037SARM gem5 Developers break; 325210037SARM gem5 Developers case 11: 325310037SARM gem5 Developers switch (op1) { 325410037SARM gem5 Developers case 1: 325510037SARM gem5 Developers switch (crm) { 325610037SARM gem5 Developers case 0: 325710037SARM gem5 Developers switch (op2) { 325810037SARM gem5 Developers case 2: 325910037SARM gem5 Developers return MISCREG_L2CTLR_EL1; 326010037SARM gem5 Developers case 3: 326110037SARM gem5 Developers return MISCREG_L2ECTLR_EL1; 326210037SARM gem5 Developers } 326310037SARM gem5 Developers break; 326410037SARM gem5 Developers } 326510037SARM gem5 Developers break; 326610037SARM gem5 Developers } 326710037SARM gem5 Developers break; 326810037SARM gem5 Developers case 12: 326910037SARM gem5 Developers switch (op1) { 327010037SARM gem5 Developers case 0: 327110037SARM gem5 Developers switch (crm) { 327210037SARM gem5 Developers case 0: 327310037SARM gem5 Developers switch (op2) { 327410037SARM gem5 Developers case 0: 327510037SARM gem5 Developers return MISCREG_VBAR_EL1; 327610037SARM gem5 Developers case 1: 327710037SARM gem5 Developers return MISCREG_RVBAR_EL1; 327810037SARM gem5 Developers } 327910037SARM gem5 Developers break; 328010037SARM gem5 Developers case 1: 328110037SARM gem5 Developers switch (op2) { 328210037SARM gem5 Developers case 0: 328310037SARM gem5 Developers return MISCREG_ISR_EL1; 328410037SARM gem5 Developers } 328510037SARM gem5 Developers break; 328610037SARM gem5 Developers } 328710037SARM gem5 Developers break; 328810037SARM gem5 Developers case 4: 328910037SARM gem5 Developers switch (crm) { 329010037SARM gem5 Developers case 0: 329110037SARM gem5 Developers switch (op2) { 329210037SARM gem5 Developers case 0: 329310037SARM gem5 Developers return MISCREG_VBAR_EL2; 329410037SARM gem5 Developers case 1: 329510037SARM gem5 Developers return MISCREG_RVBAR_EL2; 329610037SARM gem5 Developers } 329710037SARM gem5 Developers break; 329810037SARM gem5 Developers } 329910037SARM gem5 Developers break; 330010037SARM gem5 Developers case 6: 330110037SARM gem5 Developers switch (crm) { 330210037SARM gem5 Developers case 0: 330310037SARM gem5 Developers switch (op2) { 330410037SARM gem5 Developers case 0: 330510037SARM gem5 Developers return MISCREG_VBAR_EL3; 330610037SARM gem5 Developers case 1: 330710037SARM gem5 Developers return MISCREG_RVBAR_EL3; 330810037SARM gem5 Developers case 2: 330910037SARM gem5 Developers return MISCREG_RMR_EL3; 331010037SARM gem5 Developers } 331110037SARM gem5 Developers break; 331210037SARM gem5 Developers } 331310037SARM gem5 Developers break; 331410037SARM gem5 Developers } 331510037SARM gem5 Developers break; 331610037SARM gem5 Developers case 13: 331710037SARM gem5 Developers switch (op1) { 331810037SARM gem5 Developers case 0: 331910037SARM gem5 Developers switch (crm) { 332010037SARM gem5 Developers case 0: 332110037SARM gem5 Developers switch (op2) { 332210037SARM gem5 Developers case 1: 332310037SARM gem5 Developers return MISCREG_CONTEXTIDR_EL1; 332410037SARM gem5 Developers case 4: 332510037SARM gem5 Developers return MISCREG_TPIDR_EL1; 332610037SARM gem5 Developers } 332710037SARM gem5 Developers break; 332810037SARM gem5 Developers } 332910037SARM gem5 Developers break; 333010037SARM gem5 Developers case 3: 333110037SARM gem5 Developers switch (crm) { 333210037SARM gem5 Developers case 0: 333310037SARM gem5 Developers switch (op2) { 333410037SARM gem5 Developers case 2: 333510037SARM gem5 Developers return MISCREG_TPIDR_EL0; 333610037SARM gem5 Developers case 3: 333710037SARM gem5 Developers return MISCREG_TPIDRRO_EL0; 333810037SARM gem5 Developers } 333910037SARM gem5 Developers break; 334010037SARM gem5 Developers } 334110037SARM gem5 Developers break; 334210037SARM gem5 Developers case 4: 334310037SARM gem5 Developers switch (crm) { 334410037SARM gem5 Developers case 0: 334510037SARM gem5 Developers switch (op2) { 334610856SCurtis.Dunham@arm.com case 1: 334710856SCurtis.Dunham@arm.com return MISCREG_CONTEXTIDR_EL2; 334810037SARM gem5 Developers case 2: 334910037SARM gem5 Developers return MISCREG_TPIDR_EL2; 335010037SARM gem5 Developers } 335110037SARM gem5 Developers break; 335210037SARM gem5 Developers } 335310037SARM gem5 Developers break; 335410037SARM gem5 Developers case 6: 335510037SARM gem5 Developers switch (crm) { 335610037SARM gem5 Developers case 0: 335710037SARM gem5 Developers switch (op2) { 335810037SARM gem5 Developers case 2: 335910037SARM gem5 Developers return MISCREG_TPIDR_EL3; 336010037SARM gem5 Developers } 336110037SARM gem5 Developers break; 336210037SARM gem5 Developers } 336310037SARM gem5 Developers break; 336410037SARM gem5 Developers } 336510037SARM gem5 Developers break; 336610037SARM gem5 Developers case 14: 336710037SARM gem5 Developers switch (op1) { 336810037SARM gem5 Developers case 0: 336910037SARM gem5 Developers switch (crm) { 337010037SARM gem5 Developers case 1: 337110037SARM gem5 Developers switch (op2) { 337210037SARM gem5 Developers case 0: 337310037SARM gem5 Developers return MISCREG_CNTKCTL_EL1; 337410037SARM gem5 Developers } 337510037SARM gem5 Developers break; 337610037SARM gem5 Developers } 337710037SARM gem5 Developers break; 337810037SARM gem5 Developers case 3: 337910037SARM gem5 Developers switch (crm) { 338010037SARM gem5 Developers case 0: 338110037SARM gem5 Developers switch (op2) { 338210037SARM gem5 Developers case 0: 338310037SARM gem5 Developers return MISCREG_CNTFRQ_EL0; 338410037SARM gem5 Developers case 1: 338510037SARM gem5 Developers return MISCREG_CNTPCT_EL0; 338610037SARM gem5 Developers case 2: 338710037SARM gem5 Developers return MISCREG_CNTVCT_EL0; 338810037SARM gem5 Developers } 338910037SARM gem5 Developers break; 339010037SARM gem5 Developers case 2: 339110037SARM gem5 Developers switch (op2) { 339210037SARM gem5 Developers case 0: 339310037SARM gem5 Developers return MISCREG_CNTP_TVAL_EL0; 339410037SARM gem5 Developers case 1: 339510037SARM gem5 Developers return MISCREG_CNTP_CTL_EL0; 339610037SARM gem5 Developers case 2: 339710037SARM gem5 Developers return MISCREG_CNTP_CVAL_EL0; 339810037SARM gem5 Developers } 339910037SARM gem5 Developers break; 340010037SARM gem5 Developers case 3: 340110037SARM gem5 Developers switch (op2) { 340210037SARM gem5 Developers case 0: 340310037SARM gem5 Developers return MISCREG_CNTV_TVAL_EL0; 340410037SARM gem5 Developers case 1: 340510037SARM gem5 Developers return MISCREG_CNTV_CTL_EL0; 340610037SARM gem5 Developers case 2: 340710037SARM gem5 Developers return MISCREG_CNTV_CVAL_EL0; 340810037SARM gem5 Developers } 340910037SARM gem5 Developers break; 341010037SARM gem5 Developers case 8: 341110037SARM gem5 Developers switch (op2) { 341210037SARM gem5 Developers case 0: 341310037SARM gem5 Developers return MISCREG_PMEVCNTR0_EL0; 341410037SARM gem5 Developers case 1: 341510037SARM gem5 Developers return MISCREG_PMEVCNTR1_EL0; 341610037SARM gem5 Developers case 2: 341710037SARM gem5 Developers return MISCREG_PMEVCNTR2_EL0; 341810037SARM gem5 Developers case 3: 341910037SARM gem5 Developers return MISCREG_PMEVCNTR3_EL0; 342010037SARM gem5 Developers case 4: 342110037SARM gem5 Developers return MISCREG_PMEVCNTR4_EL0; 342210037SARM gem5 Developers case 5: 342310037SARM gem5 Developers return MISCREG_PMEVCNTR5_EL0; 342410037SARM gem5 Developers } 342510037SARM gem5 Developers break; 342610037SARM gem5 Developers case 12: 342710037SARM gem5 Developers switch (op2) { 342810037SARM gem5 Developers case 0: 342910037SARM gem5 Developers return MISCREG_PMEVTYPER0_EL0; 343010037SARM gem5 Developers case 1: 343110037SARM gem5 Developers return MISCREG_PMEVTYPER1_EL0; 343210037SARM gem5 Developers case 2: 343310037SARM gem5 Developers return MISCREG_PMEVTYPER2_EL0; 343410037SARM gem5 Developers case 3: 343510037SARM gem5 Developers return MISCREG_PMEVTYPER3_EL0; 343610037SARM gem5 Developers case 4: 343710037SARM gem5 Developers return MISCREG_PMEVTYPER4_EL0; 343810037SARM gem5 Developers case 5: 343910037SARM gem5 Developers return MISCREG_PMEVTYPER5_EL0; 344010037SARM gem5 Developers } 344110037SARM gem5 Developers break; 344210604SAndreas.Sandberg@ARM.com case 15: 344310604SAndreas.Sandberg@ARM.com switch (op2) { 344410604SAndreas.Sandberg@ARM.com case 7: 344510604SAndreas.Sandberg@ARM.com return MISCREG_PMCCFILTR_EL0; 344610604SAndreas.Sandberg@ARM.com } 344710037SARM gem5 Developers } 344810037SARM gem5 Developers break; 344910037SARM gem5 Developers case 4: 345010037SARM gem5 Developers switch (crm) { 345110037SARM gem5 Developers case 0: 345210037SARM gem5 Developers switch (op2) { 345310037SARM gem5 Developers case 3: 345410037SARM gem5 Developers return MISCREG_CNTVOFF_EL2; 345510037SARM gem5 Developers } 345610037SARM gem5 Developers break; 345710037SARM gem5 Developers case 1: 345810037SARM gem5 Developers switch (op2) { 345910037SARM gem5 Developers case 0: 346010037SARM gem5 Developers return MISCREG_CNTHCTL_EL2; 346110037SARM gem5 Developers } 346210037SARM gem5 Developers break; 346310037SARM gem5 Developers case 2: 346410037SARM gem5 Developers switch (op2) { 346510037SARM gem5 Developers case 0: 346610037SARM gem5 Developers return MISCREG_CNTHP_TVAL_EL2; 346710037SARM gem5 Developers case 1: 346810037SARM gem5 Developers return MISCREG_CNTHP_CTL_EL2; 346910037SARM gem5 Developers case 2: 347010037SARM gem5 Developers return MISCREG_CNTHP_CVAL_EL2; 347110037SARM gem5 Developers } 347210037SARM gem5 Developers break; 347310037SARM gem5 Developers } 347410037SARM gem5 Developers break; 347510037SARM gem5 Developers case 7: 347610037SARM gem5 Developers switch (crm) { 347710037SARM gem5 Developers case 2: 347810037SARM gem5 Developers switch (op2) { 347910037SARM gem5 Developers case 0: 348010037SARM gem5 Developers return MISCREG_CNTPS_TVAL_EL1; 348110037SARM gem5 Developers case 1: 348210037SARM gem5 Developers return MISCREG_CNTPS_CTL_EL1; 348310037SARM gem5 Developers case 2: 348410037SARM gem5 Developers return MISCREG_CNTPS_CVAL_EL1; 348510037SARM gem5 Developers } 348610037SARM gem5 Developers break; 348710037SARM gem5 Developers } 348810037SARM gem5 Developers break; 348910037SARM gem5 Developers } 349010037SARM gem5 Developers break; 349110037SARM gem5 Developers case 15: 349210037SARM gem5 Developers switch (op1) { 349310037SARM gem5 Developers case 0: 349410037SARM gem5 Developers switch (crm) { 349510037SARM gem5 Developers case 0: 349610037SARM gem5 Developers switch (op2) { 349710037SARM gem5 Developers case 0: 349810037SARM gem5 Developers return MISCREG_IL1DATA0_EL1; 349910037SARM gem5 Developers case 1: 350010037SARM gem5 Developers return MISCREG_IL1DATA1_EL1; 350110037SARM gem5 Developers case 2: 350210037SARM gem5 Developers return MISCREG_IL1DATA2_EL1; 350310037SARM gem5 Developers case 3: 350410037SARM gem5 Developers return MISCREG_IL1DATA3_EL1; 350510037SARM gem5 Developers } 350610037SARM gem5 Developers break; 350710037SARM gem5 Developers case 1: 350810037SARM gem5 Developers switch (op2) { 350910037SARM gem5 Developers case 0: 351010037SARM gem5 Developers return MISCREG_DL1DATA0_EL1; 351110037SARM gem5 Developers case 1: 351210037SARM gem5 Developers return MISCREG_DL1DATA1_EL1; 351310037SARM gem5 Developers case 2: 351410037SARM gem5 Developers return MISCREG_DL1DATA2_EL1; 351510037SARM gem5 Developers case 3: 351610037SARM gem5 Developers return MISCREG_DL1DATA3_EL1; 351710037SARM gem5 Developers case 4: 351810037SARM gem5 Developers return MISCREG_DL1DATA4_EL1; 351910037SARM gem5 Developers } 352010037SARM gem5 Developers break; 352110037SARM gem5 Developers } 352210037SARM gem5 Developers break; 352310037SARM gem5 Developers case 1: 352410037SARM gem5 Developers switch (crm) { 352510037SARM gem5 Developers case 0: 352610037SARM gem5 Developers switch (op2) { 352710037SARM gem5 Developers case 0: 352810037SARM gem5 Developers return MISCREG_L2ACTLR_EL1; 352910037SARM gem5 Developers } 353010037SARM gem5 Developers break; 353110037SARM gem5 Developers case 2: 353210037SARM gem5 Developers switch (op2) { 353310037SARM gem5 Developers case 0: 353410037SARM gem5 Developers return MISCREG_CPUACTLR_EL1; 353510037SARM gem5 Developers case 1: 353610037SARM gem5 Developers return MISCREG_CPUECTLR_EL1; 353710037SARM gem5 Developers case 2: 353810037SARM gem5 Developers return MISCREG_CPUMERRSR_EL1; 353910037SARM gem5 Developers case 3: 354010037SARM gem5 Developers return MISCREG_L2MERRSR_EL1; 354110037SARM gem5 Developers } 354210037SARM gem5 Developers break; 354310037SARM gem5 Developers case 3: 354410037SARM gem5 Developers switch (op2) { 354510037SARM gem5 Developers case 0: 354610037SARM gem5 Developers return MISCREG_CBAR_EL1; 354710037SARM gem5 Developers 354810037SARM gem5 Developers } 354910037SARM gem5 Developers break; 355010037SARM gem5 Developers } 355110037SARM gem5 Developers break; 355210037SARM gem5 Developers } 355310037SARM gem5 Developers break; 355410037SARM gem5 Developers } 355510037SARM gem5 Developers break; 355610037SARM gem5 Developers } 355710037SARM gem5 Developers 355810037SARM gem5 Developers return MISCREG_UNKNOWN; 355910037SARM gem5 Developers} 356010037SARM gem5 Developers 356110037SARM gem5 Developers} // namespace ArmISA 3562