miscregs.cc revision 10506
17259Sgblack@eecs.umich.edu/* 210037SARM gem5 Developers * Copyright (c) 2010-2013 ARM Limited 37259Sgblack@eecs.umich.edu * All rights reserved 47259Sgblack@eecs.umich.edu * 57259Sgblack@eecs.umich.edu * The license below extends only to copyright in the software and shall 67259Sgblack@eecs.umich.edu * not be construed as granting a license to any other intellectual 77259Sgblack@eecs.umich.edu * property including but not limited to intellectual property relating 87259Sgblack@eecs.umich.edu * to a hardware implementation of the functionality of the software 97259Sgblack@eecs.umich.edu * licensed hereunder. You may use the software subject to the license 107259Sgblack@eecs.umich.edu * terms below provided that you ensure that this notice is replicated 117259Sgblack@eecs.umich.edu * unmodified and in its entirety in all distributions of the software, 127259Sgblack@eecs.umich.edu * modified or unmodified, in source code or in binary form. 137259Sgblack@eecs.umich.edu * 147259Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 157259Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 167259Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright 177259Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 187259Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 197259Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 207259Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution; 217259Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 227259Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from 237259Sgblack@eecs.umich.edu * this software without specific prior written permission. 247259Sgblack@eecs.umich.edu * 257259Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 267259Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 277259Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 287259Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 297259Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 307259Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 317259Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 327259Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 337259Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 347259Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 357259Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 367259Sgblack@eecs.umich.edu * 377259Sgblack@eecs.umich.edu * Authors: Gabe Black 387405SAli.Saidi@ARM.com * Ali Saidi 3910037SARM gem5 Developers * Giacomo Gabrielli 407259Sgblack@eecs.umich.edu */ 417259Sgblack@eecs.umich.edu 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" 467259Sgblack@eecs.umich.edu 477259Sgblack@eecs.umich.edunamespace ArmISA 487259Sgblack@eecs.umich.edu{ 497259Sgblack@eecs.umich.edu 507259Sgblack@eecs.umich.eduMiscRegIndex 518868SMatt.Horsnell@arm.comdecodeCP14Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) 528868SMatt.Horsnell@arm.com{ 538868SMatt.Horsnell@arm.com switch(crn) { 548868SMatt.Horsnell@arm.com case 0: 5510037SARM gem5 Developers switch (opc1) { 568868SMatt.Horsnell@arm.com case 0: 5710037SARM gem5 Developers switch (opc2) { 588868SMatt.Horsnell@arm.com case 0: 5910037SARM gem5 Developers switch (crm) { 6010037SARM gem5 Developers case 0: 6110037SARM gem5 Developers return MISCREG_DBGDIDR; 6210037SARM gem5 Developers case 1: 6310037SARM gem5 Developers return MISCREG_DBGDSCRint; 6410037SARM gem5 Developers } 6510037SARM gem5 Developers break; 668868SMatt.Horsnell@arm.com } 6710037SARM gem5 Developers break; 6810037SARM gem5 Developers case 7: 6910037SARM gem5 Developers switch (opc2) { 7010037SARM gem5 Developers case 0: 7110037SARM gem5 Developers switch (crm) { 7210037SARM gem5 Developers case 0: 7310037SARM gem5 Developers return MISCREG_JIDR; 7410037SARM gem5 Developers } 7510037SARM gem5 Developers break; 7610037SARM gem5 Developers } 7710037SARM gem5 Developers break; 789959Schander.sudanthi@arm.com } 7910037SARM gem5 Developers break; 809959Schander.sudanthi@arm.com case 1: 819959Schander.sudanthi@arm.com switch (opc1) { 829959Schander.sudanthi@arm.com case 6: 839959Schander.sudanthi@arm.com switch (crm) { 849959Schander.sudanthi@arm.com case 0: 859959Schander.sudanthi@arm.com switch (opc2) { 869959Schander.sudanthi@arm.com case 0: 879959Schander.sudanthi@arm.com return MISCREG_TEEHBR; 889959Schander.sudanthi@arm.com } 8910037SARM gem5 Developers break; 909959Schander.sudanthi@arm.com } 9110037SARM gem5 Developers break; 9210037SARM gem5 Developers case 7: 9310037SARM gem5 Developers switch (crm) { 9410037SARM gem5 Developers case 0: 9510037SARM gem5 Developers switch (opc2) { 9610037SARM gem5 Developers case 0: 9710037SARM gem5 Developers return MISCREG_JOSCR; 9810037SARM gem5 Developers } 9910037SARM gem5 Developers break; 10010037SARM gem5 Developers } 10110037SARM gem5 Developers break; 1028868SMatt.Horsnell@arm.com } 10310037SARM gem5 Developers break; 10410037SARM gem5 Developers case 2: 10510037SARM gem5 Developers switch (opc1) { 10610037SARM gem5 Developers case 7: 10710037SARM gem5 Developers switch (crm) { 10810037SARM gem5 Developers case 0: 10910037SARM gem5 Developers switch (opc2) { 11010037SARM gem5 Developers case 0: 11110037SARM gem5 Developers return MISCREG_JMCR; 11210037SARM gem5 Developers } 11310037SARM gem5 Developers break; 11410037SARM gem5 Developers } 11510037SARM gem5 Developers break; 11610037SARM gem5 Developers } 11710037SARM gem5 Developers break; 1188868SMatt.Horsnell@arm.com } 11910037SARM gem5 Developers // If we get here then it must be a register that we haven't implemented 12010037SARM gem5 Developers warn("CP14 unimplemented crn[%d], opc1[%d], crm[%d], opc2[%d]", 12110037SARM gem5 Developers crn, opc1, crm, opc2); 12210037SARM gem5 Developers return MISCREG_CP14_UNIMPL; 12310037SARM gem5 Developers} 1248868SMatt.Horsnell@arm.com 12510037SARM gem5 Developersusing namespace std; 12610037SARM gem5 Developers 12710037SARM gem5 Developersbitset<NUM_MISCREG_INFOS> miscRegInfo[NUM_MISCREGS] = { 12810037SARM gem5 Developers // MISCREG_CPSR 12910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13010037SARM gem5 Developers // MISCREG_SPSR 13110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13210037SARM gem5 Developers // MISCREG_SPSR_FIQ 13310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13410037SARM gem5 Developers // MISCREG_SPSR_IRQ 13510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13610037SARM gem5 Developers // MISCREG_SPSR_SVC 13710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 13810037SARM gem5 Developers // MISCREG_SPSR_MON 13910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14010037SARM gem5 Developers // MISCREG_SPSR_ABT 14110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14210037SARM gem5 Developers // MISCREG_SPSR_HYP 14310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14410037SARM gem5 Developers // MISCREG_SPSR_UND 14510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14610037SARM gem5 Developers // MISCREG_ELR_HYP 14710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 14810037SARM gem5 Developers // MISCREG_FPSID 14910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15010037SARM gem5 Developers // MISCREG_FPSCR 15110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15210037SARM gem5 Developers // MISCREG_MVFR1 15310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15410037SARM gem5 Developers // MISCREG_MVFR0 15510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15610037SARM gem5 Developers // MISCREG_FPEXC 15710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 15810037SARM gem5 Developers 15910037SARM gem5 Developers // Helper registers 16010037SARM gem5 Developers // MISCREG_CPSR_MODE 16110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16210037SARM gem5 Developers // MISCREG_CPSR_Q 16310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16410037SARM gem5 Developers // MISCREG_FPSCR_Q 16510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16610037SARM gem5 Developers // MISCREG_FPSCR_EXC 16710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 16810037SARM gem5 Developers // MISCREG_LOCKADDR 16910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 17010037SARM gem5 Developers // MISCREG_LOCKFLAG 17110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 17210037SARM gem5 Developers // MISCREG_PRRR_MAIR0 17310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), 17410037SARM gem5 Developers // MISCREG_PRRR_MAIR0_NS 17510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 17610037SARM gem5 Developers // MISCREG_PRRR_MAIR0_S 17710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 17810037SARM gem5 Developers // MISCREG_NMRR_MAIR1 17910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")), 18010037SARM gem5 Developers // MISCREG_NMRR_MAIR1_NS 18110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 18210037SARM gem5 Developers // MISCREG_NMRR_MAIR1_S 18310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")), 18410037SARM gem5 Developers // MISCREG_PMXEVTYPER_PMCCFILTR 18510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000001001")), 18610037SARM gem5 Developers // MISCREG_SCTLR_RST 18710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 18810037SARM gem5 Developers // MISCREG_SEV_MAILBOX 18910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 19010037SARM gem5 Developers 19110037SARM gem5 Developers // AArch32 CP14 registers 19210037SARM gem5 Developers // MISCREG_DBGDIDR 19310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 19410037SARM gem5 Developers // MISCREG_DBGDSCRint 19510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 19610037SARM gem5 Developers // MISCREG_DBGDCCINT 19710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 19810037SARM gem5 Developers // MISCREG_DBGDTRTXint 19910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20010037SARM gem5 Developers // MISCREG_DBGDTRRXint 20110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20210037SARM gem5 Developers // MISCREG_DBGWFAR 20310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20410037SARM gem5 Developers // MISCREG_DBGVCR 20510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20610037SARM gem5 Developers // MISCREG_DBGDTRRXext 20710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 20810037SARM gem5 Developers // MISCREG_DBGDSCRext 20910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000100")), 21010037SARM gem5 Developers // MISCREG_DBGDTRTXext 21110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21210037SARM gem5 Developers // MISCREG_DBGOSECCR 21310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21410037SARM gem5 Developers // MISCREG_DBGBVR0 21510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21610037SARM gem5 Developers // MISCREG_DBGBVR1 21710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 21810037SARM gem5 Developers // MISCREG_DBGBVR2 21910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22010037SARM gem5 Developers // MISCREG_DBGBVR3 22110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22210037SARM gem5 Developers // MISCREG_DBGBVR4 22310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22410037SARM gem5 Developers // MISCREG_DBGBVR5 22510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22610037SARM gem5 Developers // MISCREG_DBGBCR0 22710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 22810037SARM gem5 Developers // MISCREG_DBGBCR1 22910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23010037SARM gem5 Developers // MISCREG_DBGBCR2 23110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23210037SARM gem5 Developers // MISCREG_DBGBCR3 23310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23410037SARM gem5 Developers // MISCREG_DBGBCR4 23510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23610037SARM gem5 Developers // MISCREG_DBGBCR5 23710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 23810037SARM gem5 Developers // MISCREG_DBGWVR0 23910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24010037SARM gem5 Developers // MISCREG_DBGWVR1 24110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24210037SARM gem5 Developers // MISCREG_DBGWVR2 24310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24410037SARM gem5 Developers // MISCREG_DBGWVR3 24510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24610037SARM gem5 Developers // MISCREG_DBGWCR0 24710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 24810037SARM gem5 Developers // MISCREG_DBGWCR1 24910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25010037SARM gem5 Developers // MISCREG_DBGWCR2 25110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25210037SARM gem5 Developers // MISCREG_DBGWCR3 25310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25410037SARM gem5 Developers // MISCREG_DBGDRAR 25510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 25610037SARM gem5 Developers // MISCREG_DBGBXVR4 25710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 25810037SARM gem5 Developers // MISCREG_DBGBXVR5 25910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 26010037SARM gem5 Developers // MISCREG_DBGOSLAR 26110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101111111111000000")), 26210037SARM gem5 Developers // MISCREG_DBGOSLSR 26310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 26410037SARM gem5 Developers // MISCREG_DBGOSDLR 26510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 26610037SARM gem5 Developers // MISCREG_DBGPRCR 26710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 26810037SARM gem5 Developers // MISCREG_DBGDSAR 26910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 27010037SARM gem5 Developers // MISCREG_DBGCLAIMSET 27110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 27210037SARM gem5 Developers // MISCREG_DBGCLAIMCLR 27310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 27410037SARM gem5 Developers // MISCREG_DBGAUTHSTATUS 27510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 27610037SARM gem5 Developers // MISCREG_DBGDEVID2 27710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 27810037SARM gem5 Developers // MISCREG_DBGDEVID1 27910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 28010037SARM gem5 Developers // MISCREG_DBGDEVID0 28110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")), 28210037SARM gem5 Developers // MISCREG_TEECR 28310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 28410037SARM gem5 Developers // MISCREG_JIDR 28510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 28610037SARM gem5 Developers // MISCREG_TEEHBR 28710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 28810037SARM gem5 Developers // MISCREG_JOSCR 28910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 29010037SARM gem5 Developers // MISCREG_JMCR 29110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 29210037SARM gem5 Developers 29310037SARM gem5 Developers // AArch32 CP15 registers 29410037SARM gem5 Developers // MISCREG_MIDR 29510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 29610037SARM gem5 Developers // MISCREG_CTR 29710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 29810037SARM gem5 Developers // MISCREG_TCMTR 29910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30010037SARM gem5 Developers // MISCREG_TLBTR 30110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30210037SARM gem5 Developers // MISCREG_MPIDR 30310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30410037SARM gem5 Developers // MISCREG_REVIDR 30510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000100")), 30610037SARM gem5 Developers // MISCREG_ID_PFR0 30710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 30810037SARM gem5 Developers // MISCREG_ID_PFR1 30910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31010037SARM gem5 Developers // MISCREG_ID_DFR0 31110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31210037SARM gem5 Developers // MISCREG_ID_AFR0 31310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31410037SARM gem5 Developers // MISCREG_ID_MMFR0 31510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31610037SARM gem5 Developers // MISCREG_ID_MMFR1 31710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 31810037SARM gem5 Developers // MISCREG_ID_MMFR2 31910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32010037SARM gem5 Developers // MISCREG_ID_MMFR3 32110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32210037SARM gem5 Developers // MISCREG_ID_ISAR0 32310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32410037SARM gem5 Developers // MISCREG_ID_ISAR1 32510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32610037SARM gem5 Developers // MISCREG_ID_ISAR2 32710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 32810037SARM gem5 Developers // MISCREG_ID_ISAR3 32910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33010037SARM gem5 Developers // MISCREG_ID_ISAR4 33110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33210037SARM gem5 Developers // MISCREG_ID_ISAR5 33310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33410037SARM gem5 Developers // MISCREG_CCSIDR 33510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33610037SARM gem5 Developers // MISCREG_CLIDR 33710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 33810037SARM gem5 Developers // MISCREG_AIDR 33910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 34010037SARM gem5 Developers // MISCREG_CSSELR 34110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 34210037SARM gem5 Developers // MISCREG_CSSELR_NS 34310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 34410037SARM gem5 Developers // MISCREG_CSSELR_S 34510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 34610037SARM gem5 Developers // MISCREG_VPIDR 34710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 34810037SARM gem5 Developers // MISCREG_VMPIDR 34910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 35010037SARM gem5 Developers // MISCREG_SCTLR 35110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 35210037SARM gem5 Developers // MISCREG_SCTLR_NS 35310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 35410037SARM gem5 Developers // MISCREG_SCTLR_S 35510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 35610037SARM gem5 Developers // MISCREG_ACTLR 35710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 35810037SARM gem5 Developers // MISCREG_ACTLR_NS 35910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 36010037SARM gem5 Developers // MISCREG_ACTLR_S 36110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 36210037SARM gem5 Developers // MISCREG_CPACR 36310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 36410037SARM gem5 Developers // MISCREG_SCR 36510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), 36610037SARM gem5 Developers // MISCREG_SDER 36710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 36810037SARM gem5 Developers // MISCREG_NSACR 36910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110111010000000001")), 37010037SARM gem5 Developers // MISCREG_HSCTLR 37110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37210037SARM gem5 Developers // MISCREG_HACTLR 37310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37410037SARM gem5 Developers // MISCREG_HCR 37510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37610037SARM gem5 Developers // MISCREG_HDCR 37710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 37810037SARM gem5 Developers // MISCREG_HCPTR 37910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 38010037SARM gem5 Developers // MISCREG_HSTR 38110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 38210037SARM gem5 Developers // MISCREG_HACR 38310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 38410037SARM gem5 Developers // MISCREG_TTBR0 38510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 38610037SARM gem5 Developers // MISCREG_TTBR0_NS 38710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 38810037SARM gem5 Developers // MISCREG_TTBR0_S 38910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 39010037SARM gem5 Developers // MISCREG_TTBR1 39110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 39210037SARM gem5 Developers // MISCREG_TTBR1_NS 39310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 39410037SARM gem5 Developers // MISCREG_TTBR1_S 39510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 39610037SARM gem5 Developers // MISCREG_TTBCR 39710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 39810037SARM gem5 Developers // MISCREG_TTBCR_NS 39910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 40010037SARM gem5 Developers // MISCREG_TTBCR_S 40110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 40210037SARM gem5 Developers // MISCREG_HTCR 40310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 40410037SARM gem5 Developers // MISCREG_VTCR 40510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 40610037SARM gem5 Developers // MISCREG_DACR 40710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 40810037SARM gem5 Developers // MISCREG_DACR_NS 40910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 41010037SARM gem5 Developers // MISCREG_DACR_S 41110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 41210037SARM gem5 Developers // MISCREG_DFSR 41310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 41410037SARM gem5 Developers // MISCREG_DFSR_NS 41510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 41610037SARM gem5 Developers // MISCREG_DFSR_S 41710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 41810037SARM gem5 Developers // MISCREG_IFSR 41910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 42010037SARM gem5 Developers // MISCREG_IFSR_NS 42110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 42210037SARM gem5 Developers // MISCREG_IFSR_S 42310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 42410037SARM gem5 Developers // MISCREG_ADFSR 42510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), 42610037SARM gem5 Developers // MISCREG_ADFSR_NS 42710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), 42810037SARM gem5 Developers // MISCREG_ADFSR_S 42910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), 43010037SARM gem5 Developers // MISCREG_AIFSR 43110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010100")), 43210037SARM gem5 Developers // MISCREG_AIFSR_NS 43310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100100")), 43410037SARM gem5 Developers // MISCREG_AIFSR_S 43510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100100")), 43610037SARM gem5 Developers // MISCREG_HADFSR 43710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 43810037SARM gem5 Developers // MISCREG_HAIFSR 43910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 44010037SARM gem5 Developers // MISCREG_HSR 44110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 44210037SARM gem5 Developers // MISCREG_DFAR 44310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 44410037SARM gem5 Developers // MISCREG_DFAR_NS 44510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 44610037SARM gem5 Developers // MISCREG_DFAR_S 44710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 44810037SARM gem5 Developers // MISCREG_IFAR 44910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 45010037SARM gem5 Developers // MISCREG_IFAR_NS 45110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 45210037SARM gem5 Developers // MISCREG_IFAR_S 45310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 45410037SARM gem5 Developers // MISCREG_HDFAR 45510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 45610037SARM gem5 Developers // MISCREG_HIFAR 45710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 45810037SARM gem5 Developers // MISCREG_HPFAR 45910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 46010037SARM gem5 Developers // MISCREG_ICIALLUIS 46110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 46210037SARM gem5 Developers // MISCREG_BPIALLIS 46310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 46410037SARM gem5 Developers // MISCREG_PAR 46510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 46610037SARM gem5 Developers // MISCREG_PAR_NS 46710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 46810037SARM gem5 Developers // MISCREG_PAR_S 46910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 47010037SARM gem5 Developers // MISCREG_ICIALLU 47110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 47210037SARM gem5 Developers // MISCREG_ICIMVAU 47310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 47410037SARM gem5 Developers // MISCREG_CP15ISB 47510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 47610037SARM gem5 Developers // MISCREG_BPIALL 47710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 47810037SARM gem5 Developers // MISCREG_BPIMVA 47910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 48010037SARM gem5 Developers // MISCREG_DCIMVAC 48110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 48210037SARM gem5 Developers // MISCREG_DCISW 48310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 48410037SARM gem5 Developers // MISCREG_ATS1CPR 48510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 48610037SARM gem5 Developers // MISCREG_ATS1CPW 48710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 48810037SARM gem5 Developers // MISCREG_ATS1CUR 48910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 49010037SARM gem5 Developers // MISCREG_ATS1CUW 49110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 49210037SARM gem5 Developers // MISCREG_ATS12NSOPR 49310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49410037SARM gem5 Developers // MISCREG_ATS12NSOPW 49510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49610037SARM gem5 Developers // MISCREG_ATS12NSOUR 49710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 49810037SARM gem5 Developers // MISCREG_ATS12NSOUW 49910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010000000000001")), 50010037SARM gem5 Developers // MISCREG_DCCMVAC 50110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 50210037SARM gem5 Developers // MISCREG_DCCSW 50310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 50410037SARM gem5 Developers // MISCREG_CP15DSB 50510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 50610037SARM gem5 Developers // MISCREG_CP15DMB 50710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 50810037SARM gem5 Developers // MISCREG_DCCMVAU 50910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51010037SARM gem5 Developers // MISCREG_DCCIMVAC 51110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51210037SARM gem5 Developers // MISCREG_DCCISW 51310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000100")), 51410037SARM gem5 Developers // MISCREG_ATS1HR 51510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 51610037SARM gem5 Developers // MISCREG_ATS1HW 51710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 51810037SARM gem5 Developers // MISCREG_TLBIALLIS 51910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52010037SARM gem5 Developers // MISCREG_TLBIMVAIS 52110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52210037SARM gem5 Developers // MISCREG_TLBIASIDIS 52310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52410037SARM gem5 Developers // MISCREG_TLBIMVAAIS 52510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 52610037SARM gem5 Developers // MISCREG_TLBIMVALIS 52710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 52810037SARM gem5 Developers // MISCREG_TLBIMVAALIS 52910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 53010037SARM gem5 Developers // MISCREG_ITLBIALL 53110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53210037SARM gem5 Developers // MISCREG_ITLBIMVA 53310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53410037SARM gem5 Developers // MISCREG_ITLBIASID 53510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53610037SARM gem5 Developers // MISCREG_DTLBIALL 53710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 53810037SARM gem5 Developers // MISCREG_DTLBIMVA 53910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54010037SARM gem5 Developers // MISCREG_DTLBIASID 54110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54210037SARM gem5 Developers // MISCREG_TLBIALL 54310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54410037SARM gem5 Developers // MISCREG_TLBIMVA 54510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54610037SARM gem5 Developers // MISCREG_TLBIASID 54710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 54810037SARM gem5 Developers // MISCREG_TLBIMVAA 54910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 55010037SARM gem5 Developers // MISCREG_TLBIMVAL 55110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 55210037SARM gem5 Developers // MISCREG_TLBIMVAAL 55310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 55410037SARM gem5 Developers // MISCREG_TLBIIPAS2IS 55510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 55610037SARM gem5 Developers // MISCREG_TLBIIPAS2LIS 55710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 55810037SARM gem5 Developers // MISCREG_TLBIALLHIS 55910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 56010037SARM gem5 Developers // MISCREG_TLBIMVAHIS 56110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 56210037SARM gem5 Developers // MISCREG_TLBIALLNSNHIS 56310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 56410037SARM gem5 Developers // MISCREG_TLBIMVALHIS 56510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 56610037SARM gem5 Developers // MISCREG_TLBIIPAS2 56710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 56810037SARM gem5 Developers // MISCREG_TLBIIPAS2L 56910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 57010037SARM gem5 Developers // MISCREG_TLBIALLH 57110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 57210037SARM gem5 Developers // MISCREG_TLBIMVAH 57310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 57410037SARM gem5 Developers // MISCREG_TLBIALLNSNH 57510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 57610037SARM gem5 Developers // MISCREG_TLBIMVALH 57710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000000")), 57810037SARM gem5 Developers // MISCREG_PMCR 57910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58010037SARM gem5 Developers // MISCREG_PMCNTENSET 58110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58210037SARM gem5 Developers // MISCREG_PMCNTENCLR 58310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58410037SARM gem5 Developers // MISCREG_PMOVSR 58510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58610037SARM gem5 Developers // MISCREG_PMSWINC 58710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 58810037SARM gem5 Developers // MISCREG_PMSELR 58910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59010037SARM gem5 Developers // MISCREG_PMCEID0 59110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59210037SARM gem5 Developers // MISCREG_PMCEID1 59310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59410037SARM gem5 Developers // MISCREG_PMCCNTR 59510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59610037SARM gem5 Developers // MISCREG_PMXEVTYPER 59710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 59810037SARM gem5 Developers // MISCREG_PMCCFILTR 59910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 60010037SARM gem5 Developers // MISCREG_PMXEVCNTR 60110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 60210037SARM gem5 Developers // MISCREG_PMUSERENR 60310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 60410037SARM gem5 Developers // MISCREG_PMINTENSET 60510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 60610037SARM gem5 Developers // MISCREG_PMINTENCLR 60710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 60810037SARM gem5 Developers // MISCREG_PMOVSSET 60910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")), 61010037SARM gem5 Developers // MISCREG_L2CTLR 61110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 61210037SARM gem5 Developers // MISCREG_L2ECTLR 61310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 61410037SARM gem5 Developers // MISCREG_PRRR 61510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 61610037SARM gem5 Developers // MISCREG_PRRR_NS 61710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 61810037SARM gem5 Developers // MISCREG_PRRR_S 61910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 62010037SARM gem5 Developers // MISCREG_MAIR0 62110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 62210037SARM gem5 Developers // MISCREG_MAIR0_NS 62310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 62410037SARM gem5 Developers // MISCREG_MAIR0_S 62510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 62610037SARM gem5 Developers // MISCREG_NMRR 62710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 62810037SARM gem5 Developers // MISCREG_NMRR_NS 62910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 63010037SARM gem5 Developers // MISCREG_NMRR_S 63110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 63210037SARM gem5 Developers // MISCREG_MAIR1 63310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 63410037SARM gem5 Developers // MISCREG_MAIR1_NS 63510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 63610037SARM gem5 Developers // MISCREG_MAIR1_S 63710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 63810037SARM gem5 Developers // MISCREG_AMAIR0 63910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 64010037SARM gem5 Developers // MISCREG_AMAIR0_NS 64110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 64210037SARM gem5 Developers // MISCREG_AMAIR0_S 64310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 64410037SARM gem5 Developers // MISCREG_AMAIR1 64510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 64610037SARM gem5 Developers // MISCREG_AMAIR1_NS 64710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 64810037SARM gem5 Developers // MISCREG_AMAIR1_S 64910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 65010037SARM gem5 Developers // MISCREG_HMAIR0 65110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 65210037SARM gem5 Developers // MISCREG_HMAIR1 65310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 65410037SARM gem5 Developers // MISCREG_HAMAIR0 65510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 65610037SARM gem5 Developers // MISCREG_HAMAIR1 65710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000100")), 65810037SARM gem5 Developers // MISCREG_VBAR 65910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 66010037SARM gem5 Developers // MISCREG_VBAR_NS 66110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 66210037SARM gem5 Developers // MISCREG_VBAR_S 66310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 66410037SARM gem5 Developers // MISCREG_MVBAR 66510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110011000000000001")), 66610037SARM gem5 Developers // MISCREG_RMR 66710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110011000000000000")), 66810037SARM gem5 Developers // MISCREG_ISR 66910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 67010037SARM gem5 Developers // MISCREG_HVBAR 67110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 67210037SARM gem5 Developers // MISCREG_FCSEIDR 67310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 67410037SARM gem5 Developers // MISCREG_CONTEXTIDR 67510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 67610037SARM gem5 Developers // MISCREG_CONTEXTIDR_NS 67710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 67810037SARM gem5 Developers // MISCREG_CONTEXTIDR_S 67910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 68010037SARM gem5 Developers // MISCREG_TPIDRURW 68110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 68210037SARM gem5 Developers // MISCREG_TPIDRURW_NS 68310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 68410037SARM gem5 Developers // MISCREG_TPIDRURW_S 68510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 68610037SARM gem5 Developers // MISCREG_TPIDRURO 68710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 68810037SARM gem5 Developers // MISCREG_TPIDRURO_NS 68910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110101100001")), 69010037SARM gem5 Developers // MISCREG_TPIDRURO_S 69110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 69210037SARM gem5 Developers // MISCREG_TPIDRPRW 69310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 69410037SARM gem5 Developers // MISCREG_TPIDRPRW_NS 69510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100110000100001")), 69610037SARM gem5 Developers // MISCREG_TPIDRPRW_S 69710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011000000100001")), 69810037SARM gem5 Developers // MISCREG_HTPIDR 69910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 70010037SARM gem5 Developers // MISCREG_CNTFRQ 70110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110101010101000011")), 70210037SARM gem5 Developers // MISCREG_CNTKCTL 70310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 70410037SARM gem5 Developers // MISCREG_CNTP_TVAL 70510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 70610037SARM gem5 Developers // MISCREG_CNTP_TVAL_NS 70710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 70810037SARM gem5 Developers // MISCREG_CNTP_TVAL_S 70910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 71010037SARM gem5 Developers // MISCREG_CNTP_CTL 71110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 71210037SARM gem5 Developers // MISCREG_CNTP_CTL_NS 71310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 71410037SARM gem5 Developers // MISCREG_CNTP_CTL_S 71510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 71610037SARM gem5 Developers // MISCREG_CNTV_TVAL 71710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 71810037SARM gem5 Developers // MISCREG_CNTV_CTL 71910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 72010037SARM gem5 Developers // MISCREG_CNTHCTL 72110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72210037SARM gem5 Developers // MISCREG_CNTHP_TVAL 72310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72410037SARM gem5 Developers // MISCREG_CNTHP_CTL 72510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 72610037SARM gem5 Developers // MISCREG_IL1DATA0 72710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 72810037SARM gem5 Developers // MISCREG_IL1DATA1 72910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73010037SARM gem5 Developers // MISCREG_IL1DATA2 73110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73210037SARM gem5 Developers // MISCREG_IL1DATA3 73310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73410037SARM gem5 Developers // MISCREG_DL1DATA0 73510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73610037SARM gem5 Developers // MISCREG_DL1DATA1 73710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 73810037SARM gem5 Developers // MISCREG_DL1DATA2 73910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74010037SARM gem5 Developers // MISCREG_DL1DATA3 74110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74210037SARM gem5 Developers // MISCREG_DL1DATA4 74310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74410037SARM gem5 Developers // MISCREG_RAMINDEX 74510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000000")), 74610037SARM gem5 Developers // MISCREG_L2ACTLR 74710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 74810037SARM gem5 Developers // MISCREG_CBAR 74910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000000")), 75010037SARM gem5 Developers // MISCREG_HTTBR 75110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 75210037SARM gem5 Developers // MISCREG_VTTBR 75310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 75410037SARM gem5 Developers // MISCREG_CNTPCT 75510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 75610037SARM gem5 Developers // MISCREG_CNTVCT 75710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), 75810037SARM gem5 Developers // MISCREG_CNTP_CVAL 75910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000010001")), 76010037SARM gem5 Developers // MISCREG_CNTP_CVAL_NS 76110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100111111100001")), 76210037SARM gem5 Developers // MISCREG_CNTP_CVAL_S 76310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00110011001111100000")), 76410037SARM gem5 Developers // MISCREG_CNTV_CVAL 76510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 76610037SARM gem5 Developers // MISCREG_CNTVOFF 76710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11001100000000000001")), 76810037SARM gem5 Developers // MISCREG_CNTHP_CVAL 76910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01001000000000000000")), 77010037SARM gem5 Developers // MISCREG_CPUMERRSR 77110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000000")), 77210037SARM gem5 Developers // MISCREG_L2MERRSR 77310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 77410037SARM gem5 Developers 77510037SARM gem5 Developers // AArch64 registers (Op0=2) 77610037SARM gem5 Developers // MISCREG_MDCCINT_EL1 77710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 77810037SARM gem5 Developers // MISCREG_OSDTRRX_EL1 77910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78010037SARM gem5 Developers // MISCREG_MDSCR_EL1 78110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78210037SARM gem5 Developers // MISCREG_OSDTRTX_EL1 78310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78410037SARM gem5 Developers // MISCREG_OSECCR_EL1 78510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78610037SARM gem5 Developers // MISCREG_DBGBVR0_EL1 78710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 78810037SARM gem5 Developers // MISCREG_DBGBVR1_EL1 78910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79010037SARM gem5 Developers // MISCREG_DBGBVR2_EL1 79110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79210037SARM gem5 Developers // MISCREG_DBGBVR3_EL1 79310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79410037SARM gem5 Developers // MISCREG_DBGBVR4_EL1 79510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79610037SARM gem5 Developers // MISCREG_DBGBVR5_EL1 79710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 79810037SARM gem5 Developers // MISCREG_DBGBCR0_EL1 79910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80010037SARM gem5 Developers // MISCREG_DBGBCR1_EL1 80110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80210037SARM gem5 Developers // MISCREG_DBGBCR2_EL1 80310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80410037SARM gem5 Developers // MISCREG_DBGBCR3_EL1 80510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80610037SARM gem5 Developers // MISCREG_DBGBCR4_EL1 80710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 80810037SARM gem5 Developers // MISCREG_DBGBCR5_EL1 80910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81010037SARM gem5 Developers // MISCREG_DBGWVR0_EL1 81110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81210037SARM gem5 Developers // MISCREG_DBGWVR1_EL1 81310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81410037SARM gem5 Developers // MISCREG_DBGWVR2_EL1 81510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81610037SARM gem5 Developers // MISCREG_DBGWVR3_EL1 81710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 81810037SARM gem5 Developers // MISCREG_DBGWCR0_EL1 81910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82010037SARM gem5 Developers // MISCREG_DBGWCR1_EL1 82110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82210037SARM gem5 Developers // MISCREG_DBGWCR2_EL1 82310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82410037SARM gem5 Developers // MISCREG_DBGWCR3_EL1 82510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 82610037SARM gem5 Developers // MISCREG_MDCCSR_EL0 82710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 82810037SARM gem5 Developers // MISCREG_MDDTR_EL0 82910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83010037SARM gem5 Developers // MISCREG_MDDTRTX_EL0 83110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83210037SARM gem5 Developers // MISCREG_MDDTRRX_EL0 83310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83410037SARM gem5 Developers // MISCREG_DBGVCR32_EL2 83510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 83610037SARM gem5 Developers // MISCREG_MDRAR_EL1 83710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 83810037SARM gem5 Developers // MISCREG_OSLAR_EL1 83910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101111111111000001")), 84010037SARM gem5 Developers // MISCREG_OSLSR_EL1 84110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 84210037SARM gem5 Developers // MISCREG_OSDLR_EL1 84310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84410037SARM gem5 Developers // MISCREG_DBGPRCR_EL1 84510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84610037SARM gem5 Developers // MISCREG_DBGCLAIMSET_EL1 84710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 84810037SARM gem5 Developers // MISCREG_DBGCLAIMCLR_EL1 84910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 85010037SARM gem5 Developers // MISCREG_DBGAUTHSTATUS_EL1 85110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")), 85210037SARM gem5 Developers // MISCREG_TEECR32_EL1 85310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), 85410037SARM gem5 Developers // MISCREG_TEEHBR32_EL1 85510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")), 85610037SARM gem5 Developers 85710037SARM gem5 Developers // AArch64 registers (Op0=1,3) 85810037SARM gem5 Developers // MISCREG_MIDR_EL1 85910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86010037SARM gem5 Developers // MISCREG_MPIDR_EL1 86110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86210037SARM gem5 Developers // MISCREG_REVIDR_EL1 86310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86410037SARM gem5 Developers // MISCREG_ID_PFR0_EL1 86510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86610037SARM gem5 Developers // MISCREG_ID_PFR1_EL1 86710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 86810037SARM gem5 Developers // MISCREG_ID_DFR0_EL1 86910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87010037SARM gem5 Developers // MISCREG_ID_AFR0_EL1 87110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87210037SARM gem5 Developers // MISCREG_ID_MMFR0_EL1 87310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87410037SARM gem5 Developers // MISCREG_ID_MMFR1_EL1 87510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87610037SARM gem5 Developers // MISCREG_ID_MMFR2_EL1 87710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 87810037SARM gem5 Developers // MISCREG_ID_MMFR3_EL1 87910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88010037SARM gem5 Developers // MISCREG_ID_ISAR0_EL1 88110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88210037SARM gem5 Developers // MISCREG_ID_ISAR1_EL1 88310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88410037SARM gem5 Developers // MISCREG_ID_ISAR2_EL1 88510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88610037SARM gem5 Developers // MISCREG_ID_ISAR3_EL1 88710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 88810037SARM gem5 Developers // MISCREG_ID_ISAR4_EL1 88910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89010037SARM gem5 Developers // MISCREG_ID_ISAR5_EL1 89110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89210037SARM gem5 Developers // MISCREG_MVFR0_EL1 89310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89410037SARM gem5 Developers // MISCREG_MVFR1_EL1 89510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89610037SARM gem5 Developers // MISCREG_MVFR2_EL1 89710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 89810037SARM gem5 Developers // MISCREG_ID_AA64PFR0_EL1 89910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90010037SARM gem5 Developers // MISCREG_ID_AA64PFR1_EL1 90110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90210037SARM gem5 Developers // MISCREG_ID_AA64DFR0_EL1 90310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90410037SARM gem5 Developers // MISCREG_ID_AA64DFR1_EL1 90510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90610037SARM gem5 Developers // MISCREG_ID_AA64AFR0_EL1 90710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 90810037SARM gem5 Developers // MISCREG_ID_AA64AFR1_EL1 90910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91010037SARM gem5 Developers // MISCREG_ID_AA64ISAR0_EL1 91110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91210037SARM gem5 Developers // MISCREG_ID_AA64ISAR1_EL1 91310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91410037SARM gem5 Developers // MISCREG_ID_AA64MMFR0_EL1 91510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91610037SARM gem5 Developers // MISCREG_ID_AA64MMFR1_EL1 91710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 91810037SARM gem5 Developers // MISCREG_CCSIDR_EL1 91910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92010037SARM gem5 Developers // MISCREG_CLIDR_EL1 92110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92210037SARM gem5 Developers // MISCREG_AIDR_EL1 92310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 92410037SARM gem5 Developers // MISCREG_CSSELR_EL1 92510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 92610037SARM gem5 Developers // MISCREG_CTR_EL0 92710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 92810037SARM gem5 Developers // MISCREG_DCZID_EL0 92910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 93010037SARM gem5 Developers // MISCREG_VPIDR_EL2 93110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 93210037SARM gem5 Developers // MISCREG_VMPIDR_EL2 93310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 93410037SARM gem5 Developers // MISCREG_SCTLR_EL1 93510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 93610037SARM gem5 Developers // MISCREG_ACTLR_EL1 93710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 93810037SARM gem5 Developers // MISCREG_CPACR_EL1 93910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 94010037SARM gem5 Developers // MISCREG_SCTLR_EL2 94110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94210037SARM gem5 Developers // MISCREG_ACTLR_EL2 94310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94410037SARM gem5 Developers // MISCREG_HCR_EL2 94510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94610037SARM gem5 Developers // MISCREG_MDCR_EL2 94710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 94810037SARM gem5 Developers // MISCREG_CPTR_EL2 94910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95010037SARM gem5 Developers // MISCREG_HSTR_EL2 95110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95210037SARM gem5 Developers // MISCREG_HACR_EL2 95310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 95410037SARM gem5 Developers // MISCREG_SCTLR_EL3 95510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 95610037SARM gem5 Developers // MISCREG_ACTLR_EL3 95710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 95810037SARM gem5 Developers // MISCREG_SCR_EL3 95910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96010037SARM gem5 Developers // MISCREG_SDER32_EL3 96110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96210037SARM gem5 Developers // MISCREG_CPTR_EL3 96310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96410037SARM gem5 Developers // MISCREG_MDCR_EL3 96510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 96610037SARM gem5 Developers // MISCREG_TTBR0_EL1 96710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 96810037SARM gem5 Developers // MISCREG_TTBR1_EL1 96910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 97010037SARM gem5 Developers // MISCREG_TCR_EL1 97110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 97210037SARM gem5 Developers // MISCREG_TTBR0_EL2 97310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97410037SARM gem5 Developers // MISCREG_TCR_EL2 97510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97610037SARM gem5 Developers // MISCREG_VTTBR_EL2 97710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 97810037SARM gem5 Developers // MISCREG_VTCR_EL2 97910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 98010037SARM gem5 Developers // MISCREG_TTBR0_EL3 98110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 98210037SARM gem5 Developers // MISCREG_TCR_EL3 98310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 98410037SARM gem5 Developers // MISCREG_DACR32_EL2 98510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 98610037SARM gem5 Developers // MISCREG_SPSR_EL1 98710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 98810037SARM gem5 Developers // MISCREG_ELR_EL1 98910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99010037SARM gem5 Developers // MISCREG_SP_EL0 99110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99210037SARM gem5 Developers // MISCREG_SPSEL 99310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 99410037SARM gem5 Developers // MISCREG_CURRENTEL 99510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 99610037SARM gem5 Developers // MISCREG_NZCV 99710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 99810037SARM gem5 Developers // MISCREG_DAIF 99910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100010037SARM gem5 Developers // MISCREG_FPCR 100110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100210037SARM gem5 Developers // MISCREG_FPSR 100310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100410037SARM gem5 Developers // MISCREG_DSPSR_EL0 100510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100610037SARM gem5 Developers // MISCREG_DLR_EL0 100710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 100810037SARM gem5 Developers // MISCREG_SPSR_EL2 100910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101010037SARM gem5 Developers // MISCREG_ELR_EL2 101110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101210037SARM gem5 Developers // MISCREG_SP_EL1 101310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101410037SARM gem5 Developers // MISCREG_SPSR_IRQ_AA64 101510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101610037SARM gem5 Developers // MISCREG_SPSR_ABT_AA64 101710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 101810037SARM gem5 Developers // MISCREG_SPSR_UND_AA64 101910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 102010037SARM gem5 Developers // MISCREG_SPSR_FIQ_AA64 102110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 102210037SARM gem5 Developers // MISCREG_SPSR_EL3 102310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102410037SARM gem5 Developers // MISCREG_ELR_EL3 102510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102610037SARM gem5 Developers // MISCREG_SP_EL2 102710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 102810037SARM gem5 Developers // MISCREG_AFSR0_EL1 102910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103010037SARM gem5 Developers // MISCREG_AFSR1_EL1 103110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103210037SARM gem5 Developers // MISCREG_ESR_EL1 103310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 103410037SARM gem5 Developers // MISCREG_IFSR32_EL2 103510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 103610037SARM gem5 Developers // MISCREG_AFSR0_EL2 103710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 103810037SARM gem5 Developers // MISCREG_AFSR1_EL2 103910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104010037SARM gem5 Developers // MISCREG_ESR_EL2 104110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104210037SARM gem5 Developers // MISCREG_FPEXC32_EL2 104310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 104410037SARM gem5 Developers // MISCREG_AFSR0_EL3 104510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 104610037SARM gem5 Developers // MISCREG_AFSR1_EL3 104710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 104810037SARM gem5 Developers // MISCREG_ESR_EL3 104910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 105010037SARM gem5 Developers // MISCREG_FAR_EL1 105110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 105210037SARM gem5 Developers // MISCREG_FAR_EL2 105310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 105410037SARM gem5 Developers // MISCREG_HPFAR_EL2 105510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 105610037SARM gem5 Developers // MISCREG_FAR_EL3 105710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 105810037SARM gem5 Developers // MISCREG_IC_IALLUIS 105910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106010037SARM gem5 Developers // MISCREG_PAR_EL1 106110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 106210037SARM gem5 Developers // MISCREG_IC_IALLU 106310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106410037SARM gem5 Developers // MISCREG_DC_IVAC_Xt 106510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106610037SARM gem5 Developers // MISCREG_DC_ISW_Xt 106710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 106810037SARM gem5 Developers // MISCREG_AT_S1E1R_Xt 106910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107010037SARM gem5 Developers // MISCREG_AT_S1E1W_Xt 107110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107210037SARM gem5 Developers // MISCREG_AT_S1E0R_Xt 107310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107410037SARM gem5 Developers // MISCREG_AT_S1E0W_Xt 107510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 107610037SARM gem5 Developers // MISCREG_DC_CSW_Xt 107710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 107810037SARM gem5 Developers // MISCREG_DC_CISW_Xt 107910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000101")), 108010037SARM gem5 Developers // MISCREG_DC_ZVA_Xt 108110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100010000101")), 108210037SARM gem5 Developers // MISCREG_IC_IVAU_Xt 108310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000001")), 108410037SARM gem5 Developers // MISCREG_DC_CVAC_Xt 108510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 108610037SARM gem5 Developers // MISCREG_DC_CVAU_Xt 108710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 108810037SARM gem5 Developers // MISCREG_DC_CIVAC_Xt 108910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101010000101")), 109010037SARM gem5 Developers // MISCREG_AT_S1E2R_Xt 109110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 109210037SARM gem5 Developers // MISCREG_AT_S1E2W_Xt 109310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 109410037SARM gem5 Developers // MISCREG_AT_S12E1R_Xt 109510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 109610037SARM gem5 Developers // MISCREG_AT_S12E1W_Xt 109710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 109810037SARM gem5 Developers // MISCREG_AT_S12E0R_Xt 109910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 110010037SARM gem5 Developers // MISCREG_AT_S12E0W_Xt 110110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 110210037SARM gem5 Developers // MISCREG_AT_S1E3R_Xt 110310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 110410037SARM gem5 Developers // MISCREG_AT_S1E3W_Xt 110510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 110610037SARM gem5 Developers // MISCREG_TLBI_VMALLE1IS 110710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 110810037SARM gem5 Developers // MISCREG_TLBI_VAE1IS_Xt 110910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111010037SARM gem5 Developers // MISCREG_TLBI_ASIDE1IS_Xt 111110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111210037SARM gem5 Developers // MISCREG_TLBI_VAAE1IS_Xt 111310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111410037SARM gem5 Developers // MISCREG_TLBI_VALE1IS_Xt 111510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111610037SARM gem5 Developers // MISCREG_TLBI_VAALE1IS_Xt 111710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 111810037SARM gem5 Developers // MISCREG_TLBI_VMALLE1 111910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112010037SARM gem5 Developers // MISCREG_TLBI_VAE1_Xt 112110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112210037SARM gem5 Developers // MISCREG_TLBI_ASIDE1_Xt 112310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112410037SARM gem5 Developers // MISCREG_TLBI_VAAE1_Xt 112510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112610037SARM gem5 Developers // MISCREG_TLBI_VALE1_Xt 112710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 112810037SARM gem5 Developers // MISCREG_TLBI_VAALE1_Xt 112910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010100000000001")), 113010037SARM gem5 Developers // MISCREG_TLBI_IPAS2E1IS_Xt 113110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 113210037SARM gem5 Developers // MISCREG_TLBI_IPAS2LE1IS_Xt 113310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 113410037SARM gem5 Developers // MISCREG_TLBI_ALLE2IS 113510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 113610037SARM gem5 Developers // MISCREG_TLBI_VAE2IS_Xt 113710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 113810037SARM gem5 Developers // MISCREG_TLBI_ALLE1IS 113910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114010037SARM gem5 Developers // MISCREG_TLBI_VALE2IS_Xt 114110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 114210037SARM gem5 Developers // MISCREG_TLBI_VMALLS12E1IS 114310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114410037SARM gem5 Developers // MISCREG_TLBI_IPAS2E1_Xt 114510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114610037SARM gem5 Developers // MISCREG_TLBI_IPAS2LE1_Xt 114710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 114810037SARM gem5 Developers // MISCREG_TLBI_ALLE2 114910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115010037SARM gem5 Developers // MISCREG_TLBI_VAE2_Xt 115110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115210037SARM gem5 Developers // MISCREG_TLBI_ALLE1 115310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 115410037SARM gem5 Developers // MISCREG_TLBI_VALE2_Xt 115510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10001000000000000001")), 115610037SARM gem5 Developers // MISCREG_TLBI_VMALLS12E1 115710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101000000000000001")), 115810037SARM gem5 Developers // MISCREG_TLBI_ALLE3IS 115910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116010037SARM gem5 Developers // MISCREG_TLBI_VAE3IS_Xt 116110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116210037SARM gem5 Developers // MISCREG_TLBI_VALE3IS_Xt 116310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116410037SARM gem5 Developers // MISCREG_TLBI_ALLE3 116510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116610037SARM gem5 Developers // MISCREG_TLBI_VAE3_Xt 116710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 116810037SARM gem5 Developers // MISCREG_TLBI_VALE3_Xt 116910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10100000000000000001")), 117010037SARM gem5 Developers // MISCREG_PMINTENSET_EL1 117110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 117210037SARM gem5 Developers // MISCREG_PMINTENCLR_EL1 117310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 117410037SARM gem5 Developers // MISCREG_PMCR_EL0 117510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 117610037SARM gem5 Developers // MISCREG_PMCNTENSET_EL0 117710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 117810037SARM gem5 Developers // MISCREG_PMCNTENCLR_EL0 117910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118010037SARM gem5 Developers // MISCREG_PMOVSCLR_EL0 118110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118210037SARM gem5 Developers // MISCREG_PMSWINC_EL0 118310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("10101010101111000001")), 118410037SARM gem5 Developers // MISCREG_PMSELR_EL0 118510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 118610037SARM gem5 Developers // MISCREG_PMCEID0_EL0 118710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), 118810037SARM gem5 Developers // MISCREG_PMCEID1_EL0 118910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101011111000001")), 119010037SARM gem5 Developers // MISCREG_PMCCNTR_EL0 119110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119210037SARM gem5 Developers // MISCREG_PMXEVTYPER_EL0 119310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119410037SARM gem5 Developers // MISCREG_PMCCFILTR_EL0 119510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119610037SARM gem5 Developers // MISCREG_PMXEVCNTR_EL0 119710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 119810037SARM gem5 Developers // MISCREG_PMUSERENR_EL0 119910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 120010037SARM gem5 Developers // MISCREG_PMOVSSET_EL0 120110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 120210037SARM gem5 Developers // MISCREG_MAIR_EL1 120310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 120410037SARM gem5 Developers // MISCREG_AMAIR_EL1 120510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 120610037SARM gem5 Developers // MISCREG_MAIR_EL2 120710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 120810037SARM gem5 Developers // MISCREG_AMAIR_EL2 120910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 121010037SARM gem5 Developers // MISCREG_MAIR_EL3 121110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 121210037SARM gem5 Developers // MISCREG_AMAIR_EL3 121310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 121410037SARM gem5 Developers // MISCREG_L2CTLR_EL1 121510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 121610037SARM gem5 Developers // MISCREG_L2ECTLR_EL1 121710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 121810037SARM gem5 Developers // MISCREG_VBAR_EL1 121910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 122010037SARM gem5 Developers // MISCREG_RVBAR_EL1 122110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 122210037SARM gem5 Developers // MISCREG_ISR_EL1 122310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 122410037SARM gem5 Developers // MISCREG_VBAR_EL2 122510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 122610037SARM gem5 Developers // MISCREG_RVBAR_EL2 122710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010100000000000001")), 122810037SARM gem5 Developers // MISCREG_VBAR_EL3 122910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 123010037SARM gem5 Developers // MISCREG_RVBAR_EL3 123110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010000000000000001")), 123210037SARM gem5 Developers // MISCREG_RMR_EL3 123310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 123410037SARM gem5 Developers // MISCREG_CONTEXTIDR_EL1 123510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 123610037SARM gem5 Developers // MISCREG_TPIDR_EL1 123710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 123810037SARM gem5 Developers // MISCREG_TPIDR_EL0 123910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 124010037SARM gem5 Developers // MISCREG_TPIDRRO_EL0 124110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110101000001")), 124210037SARM gem5 Developers // MISCREG_TPIDR_EL2 124310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 124410037SARM gem5 Developers // MISCREG_TPIDR_EL3 124510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110000000000000001")), 124610037SARM gem5 Developers // MISCREG_CNTKCTL_EL1 124710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 124810037SARM gem5 Developers // MISCREG_CNTFRQ_EL0 124910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11110101010101000001")), 125010037SARM gem5 Developers // MISCREG_CNTPCT_EL0 125110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000001")), 125210037SARM gem5 Developers // MISCREG_CNTVCT_EL0 125310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010101000011")), 125410037SARM gem5 Developers // MISCREG_CNTP_TVAL_EL0 125510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 125610037SARM gem5 Developers // MISCREG_CNTP_CTL_EL0 125710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 125810037SARM gem5 Developers // MISCREG_CNTP_CVAL_EL0 125910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126010037SARM gem5 Developers // MISCREG_CNTV_TVAL_EL0 126110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 126210037SARM gem5 Developers // MISCREG_CNTV_CTL_EL0 126310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 126410037SARM gem5 Developers // MISCREG_CNTV_CVAL_EL0 126510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 126610037SARM gem5 Developers // MISCREG_PMEVCNTR0_EL0 126710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 126810037SARM gem5 Developers // MISCREG_PMEVCNTR1_EL0 126910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127010037SARM gem5 Developers // MISCREG_PMEVCNTR2_EL0 127110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127210037SARM gem5 Developers // MISCREG_PMEVCNTR3_EL0 127310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127410037SARM gem5 Developers // MISCREG_PMEVCNTR4_EL0 127510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127610037SARM gem5 Developers // MISCREG_PMEVCNTR5_EL0 127710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 127810037SARM gem5 Developers // MISCREG_PMEVTYPER0_EL0 127910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128010037SARM gem5 Developers // MISCREG_PMEVTYPER1_EL0 128110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128210037SARM gem5 Developers // MISCREG_PMEVTYPER2_EL0 128310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128410037SARM gem5 Developers // MISCREG_PMEVTYPER3_EL0 128510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128610037SARM gem5 Developers // MISCREG_PMEVTYPER4_EL0 128710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 128810037SARM gem5 Developers // MISCREG_PMEVTYPER5_EL0 128910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 129010037SARM gem5 Developers // MISCREG_CNTVOFF_EL2 129110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111100000000000001")), 129210037SARM gem5 Developers // MISCREG_CNTHCTL_EL2 129310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129410037SARM gem5 Developers // MISCREG_CNTHP_TVAL_EL2 129510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129610037SARM gem5 Developers // MISCREG_CNTHP_CTL_EL2 129710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 129810037SARM gem5 Developers // MISCREG_CNTHP_CVAL_EL2 129910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130010037SARM gem5 Developers // MISCREG_CNTPS_TVAL_EL1 130110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130210037SARM gem5 Developers // MISCREG_CNTPS_CTL_EL1 130310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130410037SARM gem5 Developers // MISCREG_CNTPS_CVAL_EL1 130510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01111000000000000000")), 130610037SARM gem5 Developers // MISCREG_IL1DATA0_EL1 130710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 130810037SARM gem5 Developers // MISCREG_IL1DATA1_EL1 130910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131010037SARM gem5 Developers // MISCREG_IL1DATA2_EL1 131110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131210037SARM gem5 Developers // MISCREG_IL1DATA3_EL1 131310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131410037SARM gem5 Developers // MISCREG_DL1DATA0_EL1 131510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131610037SARM gem5 Developers // MISCREG_DL1DATA1_EL1 131710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 131810037SARM gem5 Developers // MISCREG_DL1DATA2_EL1 131910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132010037SARM gem5 Developers // MISCREG_DL1DATA3_EL1 132110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132210037SARM gem5 Developers // MISCREG_DL1DATA4_EL1 132310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132410037SARM gem5 Developers // MISCREG_L2ACTLR_EL1 132510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132610037SARM gem5 Developers // MISCREG_CPUACTLR_EL1 132710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 132810037SARM gem5 Developers // MISCREG_CPUECTLR_EL1 132910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 133010037SARM gem5 Developers // MISCREG_CPUMERRSR_EL1 133110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000001")), 133210037SARM gem5 Developers // MISCREG_L2MERRSR_EL1 133310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111110000000100")), 133410037SARM gem5 Developers // MISCREG_CBAR_EL1 133510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 133610037SARM gem5 Developers 133710037SARM gem5 Developers // Dummy registers 133810037SARM gem5 Developers // MISCREG_NOP 133910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")), 134010037SARM gem5 Developers // MISCREG_RAZ 134110506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")), 134210037SARM gem5 Developers // MISCREG_CP14_UNIMPL 134310506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134410037SARM gem5 Developers // MISCREG_CP15_UNIMPL 134510506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134610037SARM gem5 Developers // MISCREG_A64_UNIMPL 134710506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000100")), 134810037SARM gem5 Developers // MISCREG_UNKNOWN 134910506SAli.Saidi@ARM.com bitset<NUM_MISCREG_INFOS>(string("00000000000000000001")) 135010037SARM gem5 Developers}; 13518868SMatt.Horsnell@arm.com 13528868SMatt.Horsnell@arm.comMiscRegIndex 13537259Sgblack@eecs.umich.edudecodeCP15Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2) 13547259Sgblack@eecs.umich.edu{ 13557259Sgblack@eecs.umich.edu switch (crn) { 13567259Sgblack@eecs.umich.edu case 0: 13577259Sgblack@eecs.umich.edu switch (opc1) { 13587259Sgblack@eecs.umich.edu case 0: 13597259Sgblack@eecs.umich.edu switch (crm) { 13607259Sgblack@eecs.umich.edu case 0: 13617259Sgblack@eecs.umich.edu switch (opc2) { 13627259Sgblack@eecs.umich.edu case 1: 13637259Sgblack@eecs.umich.edu return MISCREG_CTR; 13647259Sgblack@eecs.umich.edu case 2: 13657259Sgblack@eecs.umich.edu return MISCREG_TCMTR; 13667351Sgblack@eecs.umich.edu case 3: 13677351Sgblack@eecs.umich.edu return MISCREG_TLBTR; 13687259Sgblack@eecs.umich.edu case 5: 13697259Sgblack@eecs.umich.edu return MISCREG_MPIDR; 137010037SARM gem5 Developers case 6: 137110037SARM gem5 Developers return MISCREG_REVIDR; 13727259Sgblack@eecs.umich.edu default: 13737259Sgblack@eecs.umich.edu return MISCREG_MIDR; 13747259Sgblack@eecs.umich.edu } 13757259Sgblack@eecs.umich.edu break; 13767259Sgblack@eecs.umich.edu case 1: 13777259Sgblack@eecs.umich.edu switch (opc2) { 13787259Sgblack@eecs.umich.edu case 0: 13797259Sgblack@eecs.umich.edu return MISCREG_ID_PFR0; 13807259Sgblack@eecs.umich.edu case 1: 13817259Sgblack@eecs.umich.edu return MISCREG_ID_PFR1; 13827259Sgblack@eecs.umich.edu case 2: 13837259Sgblack@eecs.umich.edu return MISCREG_ID_DFR0; 13847259Sgblack@eecs.umich.edu case 3: 13857259Sgblack@eecs.umich.edu return MISCREG_ID_AFR0; 13867259Sgblack@eecs.umich.edu case 4: 13877259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR0; 13887259Sgblack@eecs.umich.edu case 5: 13897259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR1; 13907259Sgblack@eecs.umich.edu case 6: 13917259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR2; 13927259Sgblack@eecs.umich.edu case 7: 13937259Sgblack@eecs.umich.edu return MISCREG_ID_MMFR3; 13947259Sgblack@eecs.umich.edu } 13957259Sgblack@eecs.umich.edu break; 13967259Sgblack@eecs.umich.edu case 2: 13977259Sgblack@eecs.umich.edu switch (opc2) { 13987259Sgblack@eecs.umich.edu case 0: 13997259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR0; 14007259Sgblack@eecs.umich.edu case 1: 14017259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR1; 14027259Sgblack@eecs.umich.edu case 2: 14037259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR2; 14047259Sgblack@eecs.umich.edu case 3: 14057259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR3; 14067259Sgblack@eecs.umich.edu case 4: 14077259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR4; 14087259Sgblack@eecs.umich.edu case 5: 14097259Sgblack@eecs.umich.edu return MISCREG_ID_ISAR5; 14107259Sgblack@eecs.umich.edu case 6: 14117259Sgblack@eecs.umich.edu case 7: 14127259Sgblack@eecs.umich.edu return MISCREG_RAZ; // read as zero 14137259Sgblack@eecs.umich.edu } 14147259Sgblack@eecs.umich.edu break; 14157259Sgblack@eecs.umich.edu default: 14167259Sgblack@eecs.umich.edu return MISCREG_RAZ; // read as zero 14177259Sgblack@eecs.umich.edu } 14187259Sgblack@eecs.umich.edu break; 14197259Sgblack@eecs.umich.edu case 1: 14207259Sgblack@eecs.umich.edu if (crm == 0) { 14217259Sgblack@eecs.umich.edu switch (opc2) { 14227259Sgblack@eecs.umich.edu case 0: 14237259Sgblack@eecs.umich.edu return MISCREG_CCSIDR; 14247259Sgblack@eecs.umich.edu case 1: 14257259Sgblack@eecs.umich.edu return MISCREG_CLIDR; 14267259Sgblack@eecs.umich.edu case 7: 14277259Sgblack@eecs.umich.edu return MISCREG_AIDR; 14287259Sgblack@eecs.umich.edu } 14297259Sgblack@eecs.umich.edu } 14307259Sgblack@eecs.umich.edu break; 14317259Sgblack@eecs.umich.edu case 2: 14327259Sgblack@eecs.umich.edu if (crm == 0 && opc2 == 0) { 14337259Sgblack@eecs.umich.edu return MISCREG_CSSELR; 14347259Sgblack@eecs.umich.edu } 14357259Sgblack@eecs.umich.edu break; 143610037SARM gem5 Developers case 4: 143710037SARM gem5 Developers if (crm == 0) { 143810037SARM gem5 Developers if (opc2 == 0) 143910037SARM gem5 Developers return MISCREG_VPIDR; 144010037SARM gem5 Developers else if (opc2 == 5) 144110037SARM gem5 Developers return MISCREG_VMPIDR; 144210037SARM gem5 Developers } 144310037SARM gem5 Developers break; 14447259Sgblack@eecs.umich.edu } 14457259Sgblack@eecs.umich.edu break; 14467259Sgblack@eecs.umich.edu case 1: 14477351Sgblack@eecs.umich.edu if (opc1 == 0) { 14487351Sgblack@eecs.umich.edu if (crm == 0) { 14497351Sgblack@eecs.umich.edu switch (opc2) { 14507351Sgblack@eecs.umich.edu case 0: 14517351Sgblack@eecs.umich.edu return MISCREG_SCTLR; 14527351Sgblack@eecs.umich.edu case 1: 14537351Sgblack@eecs.umich.edu return MISCREG_ACTLR; 14547351Sgblack@eecs.umich.edu case 0x2: 14557351Sgblack@eecs.umich.edu return MISCREG_CPACR; 14567351Sgblack@eecs.umich.edu } 14577351Sgblack@eecs.umich.edu } else if (crm == 1) { 14587351Sgblack@eecs.umich.edu switch (opc2) { 14597351Sgblack@eecs.umich.edu case 0: 14607351Sgblack@eecs.umich.edu return MISCREG_SCR; 14617351Sgblack@eecs.umich.edu case 1: 14627351Sgblack@eecs.umich.edu return MISCREG_SDER; 14637351Sgblack@eecs.umich.edu case 2: 14647351Sgblack@eecs.umich.edu return MISCREG_NSACR; 14657351Sgblack@eecs.umich.edu } 14667351Sgblack@eecs.umich.edu } 146710037SARM gem5 Developers } else if (opc1 == 4) { 146810037SARM gem5 Developers if (crm == 0) { 146910037SARM gem5 Developers if (opc2 == 0) 147010037SARM gem5 Developers return MISCREG_HSCTLR; 147110037SARM gem5 Developers else if (opc2 == 1) 147210037SARM gem5 Developers return MISCREG_HACTLR; 147310037SARM gem5 Developers } else if (crm == 1) { 147410037SARM gem5 Developers switch (opc2) { 147510037SARM gem5 Developers case 0: 147610037SARM gem5 Developers return MISCREG_HCR; 147710037SARM gem5 Developers case 1: 147810037SARM gem5 Developers return MISCREG_HDCR; 147910037SARM gem5 Developers case 2: 148010037SARM gem5 Developers return MISCREG_HCPTR; 148110037SARM gem5 Developers case 3: 148210037SARM gem5 Developers return MISCREG_HSTR; 148310037SARM gem5 Developers case 7: 148410037SARM gem5 Developers return MISCREG_HACR; 148510037SARM gem5 Developers } 148610037SARM gem5 Developers } 14877351Sgblack@eecs.umich.edu } 14887351Sgblack@eecs.umich.edu break; 14897351Sgblack@eecs.umich.edu case 2: 14907406SAli.Saidi@ARM.com if (opc1 == 0 && crm == 0) { 14917259Sgblack@eecs.umich.edu switch (opc2) { 14927259Sgblack@eecs.umich.edu case 0: 14937351Sgblack@eecs.umich.edu return MISCREG_TTBR0; 14947259Sgblack@eecs.umich.edu case 1: 14957351Sgblack@eecs.umich.edu return MISCREG_TTBR1; 14967351Sgblack@eecs.umich.edu case 2: 14977351Sgblack@eecs.umich.edu return MISCREG_TTBCR; 14987259Sgblack@eecs.umich.edu } 149910037SARM gem5 Developers } else if (opc1 == 4) { 150010037SARM gem5 Developers if (crm == 0 && opc2 == 2) 150110037SARM gem5 Developers return MISCREG_HTCR; 150210037SARM gem5 Developers else if (crm == 1 && opc2 == 2) 150310037SARM gem5 Developers return MISCREG_VTCR; 15047259Sgblack@eecs.umich.edu } 15057259Sgblack@eecs.umich.edu break; 15067351Sgblack@eecs.umich.edu case 3: 15077351Sgblack@eecs.umich.edu if (opc1 == 0 && crm == 0 && opc2 == 0) { 15087351Sgblack@eecs.umich.edu return MISCREG_DACR; 15097351Sgblack@eecs.umich.edu } 15107351Sgblack@eecs.umich.edu break; 15117259Sgblack@eecs.umich.edu case 5: 15127259Sgblack@eecs.umich.edu if (opc1 == 0) { 15137259Sgblack@eecs.umich.edu if (crm == 0) { 15147259Sgblack@eecs.umich.edu if (opc2 == 0) { 15157259Sgblack@eecs.umich.edu return MISCREG_DFSR; 15167259Sgblack@eecs.umich.edu } else if (opc2 == 1) { 15177259Sgblack@eecs.umich.edu return MISCREG_IFSR; 15187259Sgblack@eecs.umich.edu } 15197259Sgblack@eecs.umich.edu } else if (crm == 1) { 15207259Sgblack@eecs.umich.edu if (opc2 == 0) { 15217259Sgblack@eecs.umich.edu return MISCREG_ADFSR; 15227259Sgblack@eecs.umich.edu } else if (opc2 == 1) { 15237259Sgblack@eecs.umich.edu return MISCREG_AIFSR; 15247259Sgblack@eecs.umich.edu } 15257259Sgblack@eecs.umich.edu } 152610037SARM gem5 Developers } else if (opc1 == 4) { 152710037SARM gem5 Developers if (crm == 1) { 152810037SARM gem5 Developers if (opc2 == 0) 152910037SARM gem5 Developers return MISCREG_HADFSR; 153010037SARM gem5 Developers else if (opc2 == 1) 153110037SARM gem5 Developers return MISCREG_HAIFSR; 153210037SARM gem5 Developers } else if (crm == 2 && opc2 == 0) { 153310037SARM gem5 Developers return MISCREG_HSR; 153410037SARM gem5 Developers } 15357259Sgblack@eecs.umich.edu } 15367259Sgblack@eecs.umich.edu break; 15377259Sgblack@eecs.umich.edu case 6: 15387351Sgblack@eecs.umich.edu if (opc1 == 0 && crm == 0) { 15397351Sgblack@eecs.umich.edu switch (opc2) { 15407259Sgblack@eecs.umich.edu case 0: 15417351Sgblack@eecs.umich.edu return MISCREG_DFAR; 15427259Sgblack@eecs.umich.edu case 2: 15437351Sgblack@eecs.umich.edu return MISCREG_IFAR; 15447259Sgblack@eecs.umich.edu } 154510037SARM gem5 Developers } else if (opc1 == 4 && crm == 0) { 154610037SARM gem5 Developers switch (opc2) { 154710037SARM gem5 Developers case 0: 154810037SARM gem5 Developers return MISCREG_HDFAR; 154910037SARM gem5 Developers case 2: 155010037SARM gem5 Developers return MISCREG_HIFAR; 155110037SARM gem5 Developers case 4: 155210037SARM gem5 Developers return MISCREG_HPFAR; 155310037SARM gem5 Developers } 15547259Sgblack@eecs.umich.edu } 15557259Sgblack@eecs.umich.edu break; 15567259Sgblack@eecs.umich.edu case 7: 15577259Sgblack@eecs.umich.edu if (opc1 == 0) { 15587259Sgblack@eecs.umich.edu switch (crm) { 15597259Sgblack@eecs.umich.edu case 0: 15607259Sgblack@eecs.umich.edu if (opc2 == 4) { 15617259Sgblack@eecs.umich.edu return MISCREG_NOP; 15627259Sgblack@eecs.umich.edu } 15637259Sgblack@eecs.umich.edu break; 15647259Sgblack@eecs.umich.edu case 1: 15657259Sgblack@eecs.umich.edu switch (opc2) { 15667259Sgblack@eecs.umich.edu case 0: 15677259Sgblack@eecs.umich.edu return MISCREG_ICIALLUIS; 15687259Sgblack@eecs.umich.edu case 6: 15697259Sgblack@eecs.umich.edu return MISCREG_BPIALLIS; 15707259Sgblack@eecs.umich.edu } 15717259Sgblack@eecs.umich.edu break; 15727351Sgblack@eecs.umich.edu case 4: 15737351Sgblack@eecs.umich.edu if (opc2 == 0) { 15747351Sgblack@eecs.umich.edu return MISCREG_PAR; 15757351Sgblack@eecs.umich.edu } 15767351Sgblack@eecs.umich.edu break; 15777259Sgblack@eecs.umich.edu case 5: 15787259Sgblack@eecs.umich.edu switch (opc2) { 15797259Sgblack@eecs.umich.edu case 0: 15807259Sgblack@eecs.umich.edu return MISCREG_ICIALLU; 15817259Sgblack@eecs.umich.edu case 1: 15827259Sgblack@eecs.umich.edu return MISCREG_ICIMVAU; 15837259Sgblack@eecs.umich.edu case 4: 15847259Sgblack@eecs.umich.edu return MISCREG_CP15ISB; 15857259Sgblack@eecs.umich.edu case 6: 15867259Sgblack@eecs.umich.edu return MISCREG_BPIALL; 15877259Sgblack@eecs.umich.edu case 7: 15887259Sgblack@eecs.umich.edu return MISCREG_BPIMVA; 15897259Sgblack@eecs.umich.edu } 15907259Sgblack@eecs.umich.edu break; 15917259Sgblack@eecs.umich.edu case 6: 15927259Sgblack@eecs.umich.edu if (opc2 == 1) { 15937259Sgblack@eecs.umich.edu return MISCREG_DCIMVAC; 15947259Sgblack@eecs.umich.edu } else if (opc2 == 2) { 15957259Sgblack@eecs.umich.edu return MISCREG_DCISW; 15967259Sgblack@eecs.umich.edu } 15977259Sgblack@eecs.umich.edu break; 15987351Sgblack@eecs.umich.edu case 8: 15997351Sgblack@eecs.umich.edu switch (opc2) { 16007351Sgblack@eecs.umich.edu case 0: 160110037SARM gem5 Developers return MISCREG_ATS1CPR; 16027351Sgblack@eecs.umich.edu case 1: 160310037SARM gem5 Developers return MISCREG_ATS1CPW; 16047351Sgblack@eecs.umich.edu case 2: 160510037SARM gem5 Developers return MISCREG_ATS1CUR; 16067351Sgblack@eecs.umich.edu case 3: 160710037SARM gem5 Developers return MISCREG_ATS1CUW; 16087351Sgblack@eecs.umich.edu case 4: 160910037SARM gem5 Developers return MISCREG_ATS12NSOPR; 16107351Sgblack@eecs.umich.edu case 5: 161110037SARM gem5 Developers return MISCREG_ATS12NSOPW; 16127351Sgblack@eecs.umich.edu case 6: 161310037SARM gem5 Developers return MISCREG_ATS12NSOUR; 16147351Sgblack@eecs.umich.edu case 7: 161510037SARM gem5 Developers return MISCREG_ATS12NSOUW; 16167351Sgblack@eecs.umich.edu } 16177351Sgblack@eecs.umich.edu break; 16187259Sgblack@eecs.umich.edu case 10: 16197259Sgblack@eecs.umich.edu switch (opc2) { 16207259Sgblack@eecs.umich.edu case 1: 16217259Sgblack@eecs.umich.edu return MISCREG_DCCMVAC; 16227259Sgblack@eecs.umich.edu case 2: 162310037SARM gem5 Developers return MISCREG_DCCSW; 16247259Sgblack@eecs.umich.edu case 4: 16257259Sgblack@eecs.umich.edu return MISCREG_CP15DSB; 16267259Sgblack@eecs.umich.edu case 5: 16277259Sgblack@eecs.umich.edu return MISCREG_CP15DMB; 16287259Sgblack@eecs.umich.edu } 16297259Sgblack@eecs.umich.edu break; 16307259Sgblack@eecs.umich.edu case 11: 16317259Sgblack@eecs.umich.edu if (opc2 == 1) { 16327259Sgblack@eecs.umich.edu return MISCREG_DCCMVAU; 16337259Sgblack@eecs.umich.edu } 16347259Sgblack@eecs.umich.edu break; 16357259Sgblack@eecs.umich.edu case 13: 16367259Sgblack@eecs.umich.edu if (opc2 == 1) { 16377259Sgblack@eecs.umich.edu return MISCREG_NOP; 16387259Sgblack@eecs.umich.edu } 16397259Sgblack@eecs.umich.edu break; 16407259Sgblack@eecs.umich.edu case 14: 16417259Sgblack@eecs.umich.edu if (opc2 == 1) { 16427259Sgblack@eecs.umich.edu return MISCREG_DCCIMVAC; 16437259Sgblack@eecs.umich.edu } else if (opc2 == 2) { 16447259Sgblack@eecs.umich.edu return MISCREG_DCCISW; 16457259Sgblack@eecs.umich.edu } 16467259Sgblack@eecs.umich.edu break; 16477259Sgblack@eecs.umich.edu } 164810037SARM gem5 Developers } else if (opc1 == 4 && crm == 8) { 164910037SARM gem5 Developers if (opc2 == 0) 165010037SARM gem5 Developers return MISCREG_ATS1HR; 165110037SARM gem5 Developers else if (opc2 == 1) 165210037SARM gem5 Developers return MISCREG_ATS1HW; 16537259Sgblack@eecs.umich.edu } 16547259Sgblack@eecs.umich.edu break; 16557351Sgblack@eecs.umich.edu case 8: 16567351Sgblack@eecs.umich.edu if (opc1 == 0) { 16577351Sgblack@eecs.umich.edu switch (crm) { 16587351Sgblack@eecs.umich.edu case 3: 16597351Sgblack@eecs.umich.edu switch (opc2) { 16607351Sgblack@eecs.umich.edu case 0: 16617351Sgblack@eecs.umich.edu return MISCREG_TLBIALLIS; 16627351Sgblack@eecs.umich.edu case 1: 16637351Sgblack@eecs.umich.edu return MISCREG_TLBIMVAIS; 16647351Sgblack@eecs.umich.edu case 2: 16657351Sgblack@eecs.umich.edu return MISCREG_TLBIASIDIS; 16667351Sgblack@eecs.umich.edu case 3: 16677351Sgblack@eecs.umich.edu return MISCREG_TLBIMVAAIS; 16687351Sgblack@eecs.umich.edu } 16697351Sgblack@eecs.umich.edu break; 16707351Sgblack@eecs.umich.edu case 5: 16717351Sgblack@eecs.umich.edu switch (opc2) { 16727351Sgblack@eecs.umich.edu case 0: 16737351Sgblack@eecs.umich.edu return MISCREG_ITLBIALL; 16747351Sgblack@eecs.umich.edu case 1: 16757351Sgblack@eecs.umich.edu return MISCREG_ITLBIMVA; 16767351Sgblack@eecs.umich.edu case 2: 16777351Sgblack@eecs.umich.edu return MISCREG_ITLBIASID; 16787351Sgblack@eecs.umich.edu } 16797351Sgblack@eecs.umich.edu break; 16807351Sgblack@eecs.umich.edu case 6: 16817351Sgblack@eecs.umich.edu switch (opc2) { 16827351Sgblack@eecs.umich.edu case 0: 16837351Sgblack@eecs.umich.edu return MISCREG_DTLBIALL; 16847351Sgblack@eecs.umich.edu case 1: 16857351Sgblack@eecs.umich.edu return MISCREG_DTLBIMVA; 16867351Sgblack@eecs.umich.edu case 2: 16877351Sgblack@eecs.umich.edu return MISCREG_DTLBIASID; 16887351Sgblack@eecs.umich.edu } 16897351Sgblack@eecs.umich.edu break; 16907351Sgblack@eecs.umich.edu case 7: 16917351Sgblack@eecs.umich.edu switch (opc2) { 16927351Sgblack@eecs.umich.edu case 0: 16937351Sgblack@eecs.umich.edu return MISCREG_TLBIALL; 16947351Sgblack@eecs.umich.edu case 1: 16957351Sgblack@eecs.umich.edu return MISCREG_TLBIMVA; 16967351Sgblack@eecs.umich.edu case 2: 16977351Sgblack@eecs.umich.edu return MISCREG_TLBIASID; 16987351Sgblack@eecs.umich.edu case 3: 16997351Sgblack@eecs.umich.edu return MISCREG_TLBIMVAA; 17007351Sgblack@eecs.umich.edu } 17017351Sgblack@eecs.umich.edu break; 17027351Sgblack@eecs.umich.edu } 170310037SARM gem5 Developers } else if (opc1 == 4) { 170410037SARM gem5 Developers if (crm == 3) { 170510037SARM gem5 Developers switch (opc2) { 170610037SARM gem5 Developers case 0: 170710037SARM gem5 Developers return MISCREG_TLBIALLHIS; 170810037SARM gem5 Developers case 1: 170910037SARM gem5 Developers return MISCREG_TLBIMVAHIS; 171010037SARM gem5 Developers case 4: 171110037SARM gem5 Developers return MISCREG_TLBIALLNSNHIS; 171210037SARM gem5 Developers } 171310037SARM gem5 Developers } else if (crm == 7) { 171410037SARM gem5 Developers switch (opc2) { 171510037SARM gem5 Developers case 0: 171610037SARM gem5 Developers return MISCREG_TLBIALLH; 171710037SARM gem5 Developers case 1: 171810037SARM gem5 Developers return MISCREG_TLBIMVAH; 171910037SARM gem5 Developers case 4: 172010037SARM gem5 Developers return MISCREG_TLBIALLNSNH; 172110037SARM gem5 Developers } 172210037SARM gem5 Developers } 17237351Sgblack@eecs.umich.edu } 17247351Sgblack@eecs.umich.edu break; 17257259Sgblack@eecs.umich.edu case 9: 17267583SAli.Saidi@arm.com if (opc1 == 0) { 17277259Sgblack@eecs.umich.edu switch (crm) { 17287259Sgblack@eecs.umich.edu case 12: 17297583SAli.Saidi@arm.com switch (opc2) { 17307583SAli.Saidi@arm.com case 0: 17317583SAli.Saidi@arm.com return MISCREG_PMCR; 17327583SAli.Saidi@arm.com case 1: 17337583SAli.Saidi@arm.com return MISCREG_PMCNTENSET; 17347583SAli.Saidi@arm.com case 2: 17357583SAli.Saidi@arm.com return MISCREG_PMCNTENCLR; 17367583SAli.Saidi@arm.com case 3: 17377583SAli.Saidi@arm.com return MISCREG_PMOVSR; 17387583SAli.Saidi@arm.com case 4: 17397583SAli.Saidi@arm.com return MISCREG_PMSWINC; 17407583SAli.Saidi@arm.com case 5: 17417583SAli.Saidi@arm.com return MISCREG_PMSELR; 17427583SAli.Saidi@arm.com case 6: 17437583SAli.Saidi@arm.com return MISCREG_PMCEID0; 17447583SAli.Saidi@arm.com case 7: 17457583SAli.Saidi@arm.com return MISCREG_PMCEID1; 17467583SAli.Saidi@arm.com } 17478988SAli.Saidi@ARM.com break; 17487259Sgblack@eecs.umich.edu case 13: 17497583SAli.Saidi@arm.com switch (opc2) { 17507583SAli.Saidi@arm.com case 0: 17517583SAli.Saidi@arm.com return MISCREG_PMCCNTR; 17527583SAli.Saidi@arm.com case 1: 175310037SARM gem5 Developers // Selector is PMSELR.SEL 175410037SARM gem5 Developers return MISCREG_PMXEVTYPER_PMCCFILTR; 17557583SAli.Saidi@arm.com case 2: 17567583SAli.Saidi@arm.com return MISCREG_PMXEVCNTR; 17577583SAli.Saidi@arm.com } 17588988SAli.Saidi@ARM.com break; 17597259Sgblack@eecs.umich.edu case 14: 17607583SAli.Saidi@arm.com switch (opc2) { 17617583SAli.Saidi@arm.com case 0: 17627583SAli.Saidi@arm.com return MISCREG_PMUSERENR; 17637583SAli.Saidi@arm.com case 1: 17647583SAli.Saidi@arm.com return MISCREG_PMINTENSET; 17657583SAli.Saidi@arm.com case 2: 17667583SAli.Saidi@arm.com return MISCREG_PMINTENCLR; 176710037SARM gem5 Developers case 3: 176810037SARM gem5 Developers return MISCREG_PMOVSSET; 17697583SAli.Saidi@arm.com } 17708988SAli.Saidi@ARM.com break; 17717259Sgblack@eecs.umich.edu } 17728058SAli.Saidi@ARM.com } else if (opc1 == 1) { 17738549Sdaniel.johnson@arm.com switch (crm) { 17748549Sdaniel.johnson@arm.com case 0: 17758549Sdaniel.johnson@arm.com switch (opc2) { 17768549Sdaniel.johnson@arm.com case 2: // L2CTLR, L2 Control Register 17778549Sdaniel.johnson@arm.com return MISCREG_L2CTLR; 177810037SARM gem5 Developers case 3: 177910037SARM gem5 Developers return MISCREG_L2ECTLR; 17808549Sdaniel.johnson@arm.com } 17818988SAli.Saidi@ARM.com break; 178210037SARM gem5 Developers break; 17838549Sdaniel.johnson@arm.com } 17847259Sgblack@eecs.umich.edu } 17857259Sgblack@eecs.umich.edu break; 17867351Sgblack@eecs.umich.edu case 10: 17877351Sgblack@eecs.umich.edu if (opc1 == 0) { 17887351Sgblack@eecs.umich.edu // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown 17897351Sgblack@eecs.umich.edu if (crm == 2) { // TEX Remap Registers 17907351Sgblack@eecs.umich.edu if (opc2 == 0) { 179110037SARM gem5 Developers // Selector is TTBCR.EAE 179210037SARM gem5 Developers return MISCREG_PRRR_MAIR0; 17937351Sgblack@eecs.umich.edu } else if (opc2 == 1) { 179410037SARM gem5 Developers // Selector is TTBCR.EAE 179510037SARM gem5 Developers return MISCREG_NMRR_MAIR1; 17967351Sgblack@eecs.umich.edu } 179710037SARM gem5 Developers } else if (crm == 3) { 179810037SARM gem5 Developers if (opc2 == 0) { 179910037SARM gem5 Developers return MISCREG_AMAIR0; 180010037SARM gem5 Developers } else if (opc2 == 1) { 180110037SARM gem5 Developers return MISCREG_AMAIR1; 180210037SARM gem5 Developers } 180310037SARM gem5 Developers } 180410037SARM gem5 Developers } else if (opc1 == 4) { 180510037SARM gem5 Developers // crm 0, 1, 4, and 8, with op2 0 - 7, reserved for TLB lockdown 180610037SARM gem5 Developers if (crm == 2) { 180710037SARM gem5 Developers if (opc2 == 0) 180810037SARM gem5 Developers return MISCREG_HMAIR0; 180910037SARM gem5 Developers else if (opc2 == 1) 181010037SARM gem5 Developers return MISCREG_HMAIR1; 181110037SARM gem5 Developers } else if (crm == 3) { 181210037SARM gem5 Developers if (opc2 == 0) 181310037SARM gem5 Developers return MISCREG_HAMAIR0; 181410037SARM gem5 Developers else if (opc2 == 1) 181510037SARM gem5 Developers return MISCREG_HAMAIR1; 18167351Sgblack@eecs.umich.edu } 18177351Sgblack@eecs.umich.edu } 18187351Sgblack@eecs.umich.edu break; 18197259Sgblack@eecs.umich.edu case 11: 18208737Skoansin.tan@gmail.com if (opc1 <=7) { 18217259Sgblack@eecs.umich.edu switch (crm) { 18227259Sgblack@eecs.umich.edu case 0: 18237259Sgblack@eecs.umich.edu case 1: 18247259Sgblack@eecs.umich.edu case 2: 18257259Sgblack@eecs.umich.edu case 3: 18267259Sgblack@eecs.umich.edu case 4: 18277259Sgblack@eecs.umich.edu case 5: 18287259Sgblack@eecs.umich.edu case 6: 18297259Sgblack@eecs.umich.edu case 7: 18307259Sgblack@eecs.umich.edu case 8: 18317259Sgblack@eecs.umich.edu case 15: 18327259Sgblack@eecs.umich.edu // Reserved for DMA operations for TCM access 18337259Sgblack@eecs.umich.edu break; 18347259Sgblack@eecs.umich.edu } 18357259Sgblack@eecs.umich.edu } 18367259Sgblack@eecs.umich.edu break; 18377351Sgblack@eecs.umich.edu case 12: 18387351Sgblack@eecs.umich.edu if (opc1 == 0) { 18397351Sgblack@eecs.umich.edu if (crm == 0) { 18407351Sgblack@eecs.umich.edu if (opc2 == 0) { 18417351Sgblack@eecs.umich.edu return MISCREG_VBAR; 18427351Sgblack@eecs.umich.edu } else if (opc2 == 1) { 18437351Sgblack@eecs.umich.edu return MISCREG_MVBAR; 18447351Sgblack@eecs.umich.edu } 18457351Sgblack@eecs.umich.edu } else if (crm == 1) { 18467351Sgblack@eecs.umich.edu if (opc2 == 0) { 18477351Sgblack@eecs.umich.edu return MISCREG_ISR; 18487351Sgblack@eecs.umich.edu } 18497351Sgblack@eecs.umich.edu } 185010037SARM gem5 Developers } else if (opc1 == 4) { 185110037SARM gem5 Developers if (crm == 0 && opc2 == 0) 185210037SARM gem5 Developers return MISCREG_HVBAR; 18537351Sgblack@eecs.umich.edu } 18547351Sgblack@eecs.umich.edu break; 18557259Sgblack@eecs.umich.edu case 13: 18567259Sgblack@eecs.umich.edu if (opc1 == 0) { 18577259Sgblack@eecs.umich.edu if (crm == 0) { 18587406SAli.Saidi@ARM.com switch (opc2) { 18597351Sgblack@eecs.umich.edu case 0: 186010037SARM gem5 Developers return MISCREG_FCSEIDR; 18617259Sgblack@eecs.umich.edu case 1: 18627259Sgblack@eecs.umich.edu return MISCREG_CONTEXTIDR; 18637259Sgblack@eecs.umich.edu case 2: 18647259Sgblack@eecs.umich.edu return MISCREG_TPIDRURW; 18657259Sgblack@eecs.umich.edu case 3: 18667259Sgblack@eecs.umich.edu return MISCREG_TPIDRURO; 18677259Sgblack@eecs.umich.edu case 4: 18687259Sgblack@eecs.umich.edu return MISCREG_TPIDRPRW; 18697259Sgblack@eecs.umich.edu } 18707259Sgblack@eecs.umich.edu } 187110037SARM gem5 Developers } else if (opc1 == 4) { 187210037SARM gem5 Developers if (crm == 0 && opc2 == 2) 187310037SARM gem5 Developers return MISCREG_HTPIDR; 187410037SARM gem5 Developers } 187510037SARM gem5 Developers break; 187610037SARM gem5 Developers case 14: 187710037SARM gem5 Developers if (opc1 == 0) { 187810037SARM gem5 Developers switch (crm) { 187910037SARM gem5 Developers case 0: 188010037SARM gem5 Developers if (opc2 == 0) 188110037SARM gem5 Developers return MISCREG_CNTFRQ; 188210037SARM gem5 Developers break; 188310037SARM gem5 Developers case 1: 188410037SARM gem5 Developers if (opc2 == 0) 188510037SARM gem5 Developers return MISCREG_CNTKCTL; 188610037SARM gem5 Developers break; 188710037SARM gem5 Developers case 2: 188810037SARM gem5 Developers if (opc2 == 0) 188910037SARM gem5 Developers return MISCREG_CNTP_TVAL; 189010037SARM gem5 Developers else if (opc2 == 1) 189110037SARM gem5 Developers return MISCREG_CNTP_CTL; 189210037SARM gem5 Developers break; 189310037SARM gem5 Developers case 3: 189410037SARM gem5 Developers if (opc2 == 0) 189510037SARM gem5 Developers return MISCREG_CNTV_TVAL; 189610037SARM gem5 Developers else if (opc2 == 1) 189710037SARM gem5 Developers return MISCREG_CNTV_CTL; 189810037SARM gem5 Developers break; 189910037SARM gem5 Developers } 190010037SARM gem5 Developers } else if (opc1 == 4) { 190110037SARM gem5 Developers if (crm == 1 && opc2 == 0) { 190210037SARM gem5 Developers return MISCREG_CNTHCTL; 190310037SARM gem5 Developers } else if (crm == 2) { 190410037SARM gem5 Developers if (opc2 == 0) 190510037SARM gem5 Developers return MISCREG_CNTHP_TVAL; 190610037SARM gem5 Developers else if (opc2 == 1) 190710037SARM gem5 Developers return MISCREG_CNTHP_CTL; 190810037SARM gem5 Developers } 19097259Sgblack@eecs.umich.edu } 19107259Sgblack@eecs.umich.edu break; 19117259Sgblack@eecs.umich.edu case 15: 19127259Sgblack@eecs.umich.edu // Implementation defined 191310037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 19147259Sgblack@eecs.umich.edu } 19157259Sgblack@eecs.umich.edu // Unrecognized register 191610037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 19177259Sgblack@eecs.umich.edu} 19187259Sgblack@eecs.umich.edu 191910037SARM gem5 DevelopersMiscRegIndex 192010037SARM gem5 DevelopersdecodeCP15Reg64(unsigned crm, unsigned opc1) 192110037SARM gem5 Developers{ 192210037SARM gem5 Developers switch (crm) { 192310037SARM gem5 Developers case 2: 192410037SARM gem5 Developers switch (opc1) { 192510037SARM gem5 Developers case 0: 192610037SARM gem5 Developers return MISCREG_TTBR0; 192710037SARM gem5 Developers case 1: 192810037SARM gem5 Developers return MISCREG_TTBR1; 192910037SARM gem5 Developers case 4: 193010037SARM gem5 Developers return MISCREG_HTTBR; 193110037SARM gem5 Developers case 6: 193210037SARM gem5 Developers return MISCREG_VTTBR; 193310037SARM gem5 Developers } 193410037SARM gem5 Developers break; 193510037SARM gem5 Developers case 7: 193610037SARM gem5 Developers if (opc1 == 0) 193710037SARM gem5 Developers return MISCREG_PAR; 193810037SARM gem5 Developers break; 193910037SARM gem5 Developers case 14: 194010037SARM gem5 Developers switch (opc1) { 194110037SARM gem5 Developers case 0: 194210037SARM gem5 Developers return MISCREG_CNTPCT; 194310037SARM gem5 Developers case 1: 194410037SARM gem5 Developers return MISCREG_CNTVCT; 194510037SARM gem5 Developers case 2: 194610037SARM gem5 Developers return MISCREG_CNTP_CVAL; 194710037SARM gem5 Developers case 3: 194810037SARM gem5 Developers return MISCREG_CNTV_CVAL; 194910037SARM gem5 Developers case 4: 195010037SARM gem5 Developers return MISCREG_CNTVOFF; 195110037SARM gem5 Developers case 6: 195210037SARM gem5 Developers return MISCREG_CNTHP_CVAL; 195310037SARM gem5 Developers } 195410037SARM gem5 Developers break; 195510037SARM gem5 Developers case 15: 195610037SARM gem5 Developers if (opc1 == 0) 195710037SARM gem5 Developers return MISCREG_CPUMERRSR; 195810037SARM gem5 Developers else if (opc1 == 1) 195910037SARM gem5 Developers return MISCREG_L2MERRSR; 196010037SARM gem5 Developers break; 196110037SARM gem5 Developers } 196210037SARM gem5 Developers // Unrecognized register 196310037SARM gem5 Developers return MISCREG_CP15_UNIMPL; 19648902Sandreas.hansson@arm.com} 196510037SARM gem5 Developers 196610037SARM gem5 Developersbool 196710037SARM gem5 DeveloperscanReadCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 196810037SARM gem5 Developers{ 196910037SARM gem5 Developers bool secure = !scr.ns; 197010037SARM gem5 Developers bool canRead; 197110037SARM gem5 Developers 197210037SARM gem5 Developers switch (cpsr.mode) { 197310037SARM gem5 Developers case MODE_USER: 197410037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_USR_S_RD] : 197510037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_RD]; 197610037SARM gem5 Developers break; 197710037SARM gem5 Developers case MODE_FIQ: 197810037SARM gem5 Developers case MODE_IRQ: 197910037SARM gem5 Developers case MODE_SVC: 198010037SARM gem5 Developers case MODE_ABORT: 198110037SARM gem5 Developers case MODE_UNDEFINED: 198210037SARM gem5 Developers case MODE_SYSTEM: 198310037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_PRI_S_RD] : 198410037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_RD]; 198510037SARM gem5 Developers break; 198610037SARM gem5 Developers case MODE_MON: 198710037SARM gem5 Developers canRead = secure ? miscRegInfo[reg][MISCREG_MON_NS0_RD] : 198810037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_RD]; 198910037SARM gem5 Developers break; 199010037SARM gem5 Developers case MODE_HYP: 199110037SARM gem5 Developers canRead = miscRegInfo[reg][MISCREG_HYP_RD]; 199210037SARM gem5 Developers break; 199310037SARM gem5 Developers default: 199410037SARM gem5 Developers panic("Unrecognized mode setting in CPSR.\n"); 199510037SARM gem5 Developers } 199610037SARM gem5 Developers // can't do permissions checkes on the root of a banked pair of regs 199710037SARM gem5 Developers assert(!miscRegInfo[reg][MISCREG_BANKED]); 199810037SARM gem5 Developers return canRead; 199910037SARM gem5 Developers} 200010037SARM gem5 Developers 200110037SARM gem5 Developersbool 200210037SARM gem5 DeveloperscanWriteCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 200310037SARM gem5 Developers{ 200410037SARM gem5 Developers bool secure = !scr.ns; 200510037SARM gem5 Developers bool canWrite; 200610037SARM gem5 Developers 200710037SARM gem5 Developers switch (cpsr.mode) { 200810037SARM gem5 Developers case MODE_USER: 200910037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_USR_S_WR] : 201010037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_WR]; 201110037SARM gem5 Developers break; 201210037SARM gem5 Developers case MODE_FIQ: 201310037SARM gem5 Developers case MODE_IRQ: 201410037SARM gem5 Developers case MODE_SVC: 201510037SARM gem5 Developers case MODE_ABORT: 201610037SARM gem5 Developers case MODE_UNDEFINED: 201710037SARM gem5 Developers case MODE_SYSTEM: 201810037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_PRI_S_WR] : 201910037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_WR]; 202010037SARM gem5 Developers break; 202110037SARM gem5 Developers case MODE_MON: 202210037SARM gem5 Developers canWrite = secure ? miscRegInfo[reg][MISCREG_MON_NS0_WR] : 202310037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_WR]; 202410037SARM gem5 Developers break; 202510037SARM gem5 Developers case MODE_HYP: 202610037SARM gem5 Developers canWrite = miscRegInfo[reg][MISCREG_HYP_WR]; 202710037SARM gem5 Developers break; 202810037SARM gem5 Developers default: 202910037SARM gem5 Developers panic("Unrecognized mode setting in CPSR.\n"); 203010037SARM gem5 Developers } 203110037SARM gem5 Developers // can't do permissions checkes on the root of a banked pair of regs 203210037SARM gem5 Developers assert(!miscRegInfo[reg][MISCREG_BANKED]); 203310037SARM gem5 Developers return canWrite; 203410037SARM gem5 Developers} 203510037SARM gem5 Developers 203610037SARM gem5 Developersint 203710421Sandreas.hansson@arm.comflattenMiscRegNsBanked(MiscRegIndex reg, ThreadContext *tc) 203810037SARM gem5 Developers{ 203910421Sandreas.hansson@arm.com int reg_as_int = static_cast<int>(reg); 204010037SARM gem5 Developers if (miscRegInfo[reg][MISCREG_BANKED]) { 204110037SARM gem5 Developers SCR scr = tc->readMiscReg(MISCREG_SCR); 204210421Sandreas.hansson@arm.com reg_as_int += (ArmSystem::haveSecurity(tc) && !scr.ns) ? 2 : 1; 204310037SARM gem5 Developers } 204410421Sandreas.hansson@arm.com return reg_as_int; 204510037SARM gem5 Developers} 204610037SARM gem5 Developers 204710037SARM gem5 Developersint 204810421Sandreas.hansson@arm.comflattenMiscRegNsBanked(MiscRegIndex reg, ThreadContext *tc, bool ns) 204910037SARM gem5 Developers{ 205010421Sandreas.hansson@arm.com int reg_as_int = static_cast<int>(reg); 205110037SARM gem5 Developers if (miscRegInfo[reg][MISCREG_BANKED]) { 205210421Sandreas.hansson@arm.com reg_as_int += (ArmSystem::haveSecurity(tc) && !ns) ? 2 : 1; 205310037SARM gem5 Developers } 205410421Sandreas.hansson@arm.com return reg_as_int; 205510037SARM gem5 Developers} 205610037SARM gem5 Developers 205710037SARM gem5 Developers 205810037SARM gem5 Developers/** 205910037SARM gem5 Developers * If the reg is a child reg of a banked set, then the parent is the last 206010037SARM gem5 Developers * banked one in the list. This is messy, and the wish is to eventually have 206110037SARM gem5 Developers * the bitmap replaced with a better data structure. the preUnflatten function 206210037SARM gem5 Developers * initializes a lookup table to speed up the search for these banked 206310037SARM gem5 Developers * registers. 206410037SARM gem5 Developers */ 206510037SARM gem5 Developers 206610037SARM gem5 Developersint unflattenResultMiscReg[NUM_MISCREGS]; 206710037SARM gem5 Developers 206810037SARM gem5 Developersvoid 206910037SARM gem5 DeveloperspreUnflattenMiscReg() 207010037SARM gem5 Developers{ 207110037SARM gem5 Developers int reg = -1; 207210037SARM gem5 Developers for (int i = 0 ; i < NUM_MISCREGS; i++){ 207310037SARM gem5 Developers if (miscRegInfo[i][MISCREG_BANKED]) 207410037SARM gem5 Developers reg = i; 207510037SARM gem5 Developers if (miscRegInfo[i][MISCREG_BANKED_CHILD]) 207610037SARM gem5 Developers unflattenResultMiscReg[i] = reg; 207710037SARM gem5 Developers else 207810037SARM gem5 Developers unflattenResultMiscReg[i] = i; 207910037SARM gem5 Developers // if this assert fails, no parent was found, and something is broken 208010037SARM gem5 Developers assert(unflattenResultMiscReg[i] > -1); 208110037SARM gem5 Developers } 208210037SARM gem5 Developers} 208310037SARM gem5 Developers 208410037SARM gem5 Developersint 208510037SARM gem5 DevelopersunflattenMiscReg(int reg) 208610037SARM gem5 Developers{ 208710037SARM gem5 Developers return unflattenResultMiscReg[reg]; 208810037SARM gem5 Developers} 208910037SARM gem5 Developers 209010037SARM gem5 Developersbool 209110037SARM gem5 DeveloperscanReadAArch64SysReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 209210037SARM gem5 Developers{ 209310037SARM gem5 Developers // Check for SP_EL0 access while SPSEL == 0 209410037SARM gem5 Developers if ((reg == MISCREG_SP_EL0) && (tc->readMiscReg(MISCREG_SPSEL) == 0)) 209510037SARM gem5 Developers return false; 209610037SARM gem5 Developers 209710037SARM gem5 Developers // Check for RVBAR access 209810037SARM gem5 Developers if (reg == MISCREG_RVBAR_EL1) { 209910037SARM gem5 Developers ExceptionLevel highest_el = ArmSystem::highestEL(tc); 210010037SARM gem5 Developers if (highest_el == EL2 || highest_el == EL3) 210110037SARM gem5 Developers return false; 210210037SARM gem5 Developers } 210310037SARM gem5 Developers if (reg == MISCREG_RVBAR_EL2) { 210410037SARM gem5 Developers ExceptionLevel highest_el = ArmSystem::highestEL(tc); 210510037SARM gem5 Developers if (highest_el == EL3) 210610037SARM gem5 Developers return false; 210710037SARM gem5 Developers } 210810037SARM gem5 Developers 210910037SARM gem5 Developers bool secure = ArmSystem::haveSecurity(tc) && !scr.ns; 211010037SARM gem5 Developers 211110037SARM gem5 Developers switch (opModeToEL((OperatingMode) (uint8_t) cpsr.mode)) { 211210037SARM gem5 Developers case EL0: 211310037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_USR_S_RD] : 211410037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_RD]; 211510037SARM gem5 Developers case EL1: 211610037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_PRI_S_RD] : 211710037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_RD]; 211810037SARM gem5 Developers // @todo: uncomment this to enable Virtualization 211910037SARM gem5 Developers // case EL2: 212010037SARM gem5 Developers // return miscRegInfo[reg][MISCREG_HYP_RD]; 212110037SARM gem5 Developers case EL3: 212210037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_MON_NS0_RD] : 212310037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_RD]; 212410037SARM gem5 Developers default: 212510037SARM gem5 Developers panic("Invalid exception level"); 212610037SARM gem5 Developers } 212710037SARM gem5 Developers} 212810037SARM gem5 Developers 212910037SARM gem5 Developersbool 213010037SARM gem5 DeveloperscanWriteAArch64SysReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc) 213110037SARM gem5 Developers{ 213210037SARM gem5 Developers // Check for SP_EL0 access while SPSEL == 0 213310037SARM gem5 Developers if ((reg == MISCREG_SP_EL0) && (tc->readMiscReg(MISCREG_SPSEL) == 0)) 213410037SARM gem5 Developers return false; 213510037SARM gem5 Developers ExceptionLevel el = opModeToEL((OperatingMode) (uint8_t) cpsr.mode); 213610037SARM gem5 Developers if (reg == MISCREG_DAIF) { 213710037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 213810037SARM gem5 Developers if (el == EL0 && !sctlr.uma) 213910037SARM gem5 Developers return false; 214010037SARM gem5 Developers } 214110037SARM gem5 Developers if (reg == MISCREG_DC_ZVA_Xt) { 214210037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 214310037SARM gem5 Developers if (el == EL0 && !sctlr.dze) 214410037SARM gem5 Developers return false; 214510037SARM gem5 Developers } 214610037SARM gem5 Developers if (reg == MISCREG_DC_CVAC_Xt || reg == MISCREG_DC_CIVAC_Xt) { 214710037SARM gem5 Developers SCTLR sctlr = tc->readMiscReg(MISCREG_SCTLR_EL1); 214810037SARM gem5 Developers if (el == EL0 && !sctlr.uci) 214910037SARM gem5 Developers return false; 215010037SARM gem5 Developers } 215110037SARM gem5 Developers 215210037SARM gem5 Developers bool secure = ArmSystem::haveSecurity(tc) && !scr.ns; 215310037SARM gem5 Developers 215410037SARM gem5 Developers switch (el) { 215510037SARM gem5 Developers case EL0: 215610037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_USR_S_WR] : 215710037SARM gem5 Developers miscRegInfo[reg][MISCREG_USR_NS_WR]; 215810037SARM gem5 Developers case EL1: 215910037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_PRI_S_WR] : 216010037SARM gem5 Developers miscRegInfo[reg][MISCREG_PRI_NS_WR]; 216110037SARM gem5 Developers // @todo: uncomment this to enable Virtualization 216210037SARM gem5 Developers // case EL2: 216310037SARM gem5 Developers // return miscRegInfo[reg][MISCREG_HYP_WR]; 216410037SARM gem5 Developers case EL3: 216510037SARM gem5 Developers return secure ? miscRegInfo[reg][MISCREG_MON_NS0_WR] : 216610037SARM gem5 Developers miscRegInfo[reg][MISCREG_MON_NS1_WR]; 216710037SARM gem5 Developers default: 216810037SARM gem5 Developers panic("Invalid exception level"); 216910037SARM gem5 Developers } 217010037SARM gem5 Developers} 217110037SARM gem5 Developers 217210037SARM gem5 DevelopersMiscRegIndex 217310037SARM gem5 DevelopersdecodeAArch64SysReg(unsigned op0, unsigned op1, 217410037SARM gem5 Developers unsigned crn, unsigned crm, 217510037SARM gem5 Developers unsigned op2) 217610037SARM gem5 Developers{ 217710037SARM gem5 Developers switch (op0) { 217810037SARM gem5 Developers case 1: 217910037SARM gem5 Developers switch (crn) { 218010037SARM gem5 Developers case 7: 218110037SARM gem5 Developers switch (op1) { 218210037SARM gem5 Developers case 0: 218310037SARM gem5 Developers switch (crm) { 218410037SARM gem5 Developers case 1: 218510037SARM gem5 Developers switch (op2) { 218610037SARM gem5 Developers case 0: 218710037SARM gem5 Developers return MISCREG_IC_IALLUIS; 218810037SARM gem5 Developers } 218910037SARM gem5 Developers break; 219010037SARM gem5 Developers case 5: 219110037SARM gem5 Developers switch (op2) { 219210037SARM gem5 Developers case 0: 219310037SARM gem5 Developers return MISCREG_IC_IALLU; 219410037SARM gem5 Developers } 219510037SARM gem5 Developers break; 219610037SARM gem5 Developers case 6: 219710037SARM gem5 Developers switch (op2) { 219810037SARM gem5 Developers case 1: 219910037SARM gem5 Developers return MISCREG_DC_IVAC_Xt; 220010037SARM gem5 Developers case 2: 220110037SARM gem5 Developers return MISCREG_DC_ISW_Xt; 220210037SARM gem5 Developers } 220310037SARM gem5 Developers break; 220410037SARM gem5 Developers case 8: 220510037SARM gem5 Developers switch (op2) { 220610037SARM gem5 Developers case 0: 220710037SARM gem5 Developers return MISCREG_AT_S1E1R_Xt; 220810037SARM gem5 Developers case 1: 220910037SARM gem5 Developers return MISCREG_AT_S1E1W_Xt; 221010037SARM gem5 Developers case 2: 221110037SARM gem5 Developers return MISCREG_AT_S1E0R_Xt; 221210037SARM gem5 Developers case 3: 221310037SARM gem5 Developers return MISCREG_AT_S1E0W_Xt; 221410037SARM gem5 Developers } 221510037SARM gem5 Developers break; 221610037SARM gem5 Developers case 10: 221710037SARM gem5 Developers switch (op2) { 221810037SARM gem5 Developers case 2: 221910037SARM gem5 Developers return MISCREG_DC_CSW_Xt; 222010037SARM gem5 Developers } 222110037SARM gem5 Developers break; 222210037SARM gem5 Developers case 14: 222310037SARM gem5 Developers switch (op2) { 222410037SARM gem5 Developers case 2: 222510037SARM gem5 Developers return MISCREG_DC_CISW_Xt; 222610037SARM gem5 Developers } 222710037SARM gem5 Developers break; 222810037SARM gem5 Developers } 222910037SARM gem5 Developers break; 223010037SARM gem5 Developers case 3: 223110037SARM gem5 Developers switch (crm) { 223210037SARM gem5 Developers case 4: 223310037SARM gem5 Developers switch (op2) { 223410037SARM gem5 Developers case 1: 223510037SARM gem5 Developers return MISCREG_DC_ZVA_Xt; 223610037SARM gem5 Developers } 223710037SARM gem5 Developers break; 223810037SARM gem5 Developers case 5: 223910037SARM gem5 Developers switch (op2) { 224010037SARM gem5 Developers case 1: 224110037SARM gem5 Developers return MISCREG_IC_IVAU_Xt; 224210037SARM gem5 Developers } 224310037SARM gem5 Developers break; 224410037SARM gem5 Developers case 10: 224510037SARM gem5 Developers switch (op2) { 224610037SARM gem5 Developers case 1: 224710037SARM gem5 Developers return MISCREG_DC_CVAC_Xt; 224810037SARM gem5 Developers } 224910037SARM gem5 Developers break; 225010037SARM gem5 Developers case 11: 225110037SARM gem5 Developers switch (op2) { 225210037SARM gem5 Developers case 1: 225310037SARM gem5 Developers return MISCREG_DC_CVAU_Xt; 225410037SARM gem5 Developers } 225510037SARM gem5 Developers break; 225610037SARM gem5 Developers case 14: 225710037SARM gem5 Developers switch (op2) { 225810037SARM gem5 Developers case 1: 225910037SARM gem5 Developers return MISCREG_DC_CIVAC_Xt; 226010037SARM gem5 Developers } 226110037SARM gem5 Developers break; 226210037SARM gem5 Developers } 226310037SARM gem5 Developers break; 226410037SARM gem5 Developers case 4: 226510037SARM gem5 Developers switch (crm) { 226610037SARM gem5 Developers case 8: 226710037SARM gem5 Developers switch (op2) { 226810037SARM gem5 Developers case 0: 226910037SARM gem5 Developers return MISCREG_AT_S1E2R_Xt; 227010037SARM gem5 Developers case 1: 227110037SARM gem5 Developers return MISCREG_AT_S1E2W_Xt; 227210037SARM gem5 Developers case 4: 227310037SARM gem5 Developers return MISCREG_AT_S12E1R_Xt; 227410037SARM gem5 Developers case 5: 227510037SARM gem5 Developers return MISCREG_AT_S12E1W_Xt; 227610037SARM gem5 Developers case 6: 227710037SARM gem5 Developers return MISCREG_AT_S12E0R_Xt; 227810037SARM gem5 Developers case 7: 227910037SARM gem5 Developers return MISCREG_AT_S12E0W_Xt; 228010037SARM gem5 Developers } 228110037SARM gem5 Developers break; 228210037SARM gem5 Developers } 228310037SARM gem5 Developers break; 228410037SARM gem5 Developers case 6: 228510037SARM gem5 Developers switch (crm) { 228610037SARM gem5 Developers case 8: 228710037SARM gem5 Developers switch (op2) { 228810037SARM gem5 Developers case 0: 228910037SARM gem5 Developers return MISCREG_AT_S1E3R_Xt; 229010037SARM gem5 Developers case 1: 229110037SARM gem5 Developers return MISCREG_AT_S1E3W_Xt; 229210037SARM gem5 Developers } 229310037SARM gem5 Developers break; 229410037SARM gem5 Developers } 229510037SARM gem5 Developers break; 229610037SARM gem5 Developers } 229710037SARM gem5 Developers break; 229810037SARM gem5 Developers case 8: 229910037SARM gem5 Developers switch (op1) { 230010037SARM gem5 Developers case 0: 230110037SARM gem5 Developers switch (crm) { 230210037SARM gem5 Developers case 3: 230310037SARM gem5 Developers switch (op2) { 230410037SARM gem5 Developers case 0: 230510037SARM gem5 Developers return MISCREG_TLBI_VMALLE1IS; 230610037SARM gem5 Developers case 1: 230710037SARM gem5 Developers return MISCREG_TLBI_VAE1IS_Xt; 230810037SARM gem5 Developers case 2: 230910037SARM gem5 Developers return MISCREG_TLBI_ASIDE1IS_Xt; 231010037SARM gem5 Developers case 3: 231110037SARM gem5 Developers return MISCREG_TLBI_VAAE1IS_Xt; 231210037SARM gem5 Developers case 5: 231310037SARM gem5 Developers return MISCREG_TLBI_VALE1IS_Xt; 231410037SARM gem5 Developers case 7: 231510037SARM gem5 Developers return MISCREG_TLBI_VAALE1IS_Xt; 231610037SARM gem5 Developers } 231710037SARM gem5 Developers break; 231810037SARM gem5 Developers case 7: 231910037SARM gem5 Developers switch (op2) { 232010037SARM gem5 Developers case 0: 232110037SARM gem5 Developers return MISCREG_TLBI_VMALLE1; 232210037SARM gem5 Developers case 1: 232310037SARM gem5 Developers return MISCREG_TLBI_VAE1_Xt; 232410037SARM gem5 Developers case 2: 232510037SARM gem5 Developers return MISCREG_TLBI_ASIDE1_Xt; 232610037SARM gem5 Developers case 3: 232710037SARM gem5 Developers return MISCREG_TLBI_VAAE1_Xt; 232810037SARM gem5 Developers case 5: 232910037SARM gem5 Developers return MISCREG_TLBI_VALE1_Xt; 233010037SARM gem5 Developers case 7: 233110037SARM gem5 Developers return MISCREG_TLBI_VAALE1_Xt; 233210037SARM gem5 Developers } 233310037SARM gem5 Developers break; 233410037SARM gem5 Developers } 233510037SARM gem5 Developers break; 233610037SARM gem5 Developers case 4: 233710037SARM gem5 Developers switch (crm) { 233810037SARM gem5 Developers case 0: 233910037SARM gem5 Developers switch (op2) { 234010037SARM gem5 Developers case 1: 234110037SARM gem5 Developers return MISCREG_TLBI_IPAS2E1IS_Xt; 234210037SARM gem5 Developers case 5: 234310037SARM gem5 Developers return MISCREG_TLBI_IPAS2LE1IS_Xt; 234410037SARM gem5 Developers } 234510037SARM gem5 Developers break; 234610037SARM gem5 Developers case 3: 234710037SARM gem5 Developers switch (op2) { 234810037SARM gem5 Developers case 0: 234910037SARM gem5 Developers return MISCREG_TLBI_ALLE2IS; 235010037SARM gem5 Developers case 1: 235110037SARM gem5 Developers return MISCREG_TLBI_VAE2IS_Xt; 235210037SARM gem5 Developers case 4: 235310037SARM gem5 Developers return MISCREG_TLBI_ALLE1IS; 235410037SARM gem5 Developers case 5: 235510037SARM gem5 Developers return MISCREG_TLBI_VALE2IS_Xt; 235610037SARM gem5 Developers case 6: 235710037SARM gem5 Developers return MISCREG_TLBI_VMALLS12E1IS; 235810037SARM gem5 Developers } 235910037SARM gem5 Developers break; 236010037SARM gem5 Developers case 4: 236110037SARM gem5 Developers switch (op2) { 236210037SARM gem5 Developers case 1: 236310037SARM gem5 Developers return MISCREG_TLBI_IPAS2E1_Xt; 236410037SARM gem5 Developers case 5: 236510037SARM gem5 Developers return MISCREG_TLBI_IPAS2LE1_Xt; 236610037SARM gem5 Developers } 236710037SARM gem5 Developers break; 236810037SARM gem5 Developers case 7: 236910037SARM gem5 Developers switch (op2) { 237010037SARM gem5 Developers case 0: 237110037SARM gem5 Developers return MISCREG_TLBI_ALLE2; 237210037SARM gem5 Developers case 1: 237310037SARM gem5 Developers return MISCREG_TLBI_VAE2_Xt; 237410037SARM gem5 Developers case 4: 237510037SARM gem5 Developers return MISCREG_TLBI_ALLE1; 237610037SARM gem5 Developers case 5: 237710037SARM gem5 Developers return MISCREG_TLBI_VALE2_Xt; 237810037SARM gem5 Developers case 6: 237910037SARM gem5 Developers return MISCREG_TLBI_VMALLS12E1; 238010037SARM gem5 Developers } 238110037SARM gem5 Developers break; 238210037SARM gem5 Developers } 238310037SARM gem5 Developers break; 238410037SARM gem5 Developers case 6: 238510037SARM gem5 Developers switch (crm) { 238610037SARM gem5 Developers case 3: 238710037SARM gem5 Developers switch (op2) { 238810037SARM gem5 Developers case 0: 238910037SARM gem5 Developers return MISCREG_TLBI_ALLE3IS; 239010037SARM gem5 Developers case 1: 239110037SARM gem5 Developers return MISCREG_TLBI_VAE3IS_Xt; 239210037SARM gem5 Developers case 5: 239310037SARM gem5 Developers return MISCREG_TLBI_VALE3IS_Xt; 239410037SARM gem5 Developers } 239510037SARM gem5 Developers break; 239610037SARM gem5 Developers case 7: 239710037SARM gem5 Developers switch (op2) { 239810037SARM gem5 Developers case 0: 239910037SARM gem5 Developers return MISCREG_TLBI_ALLE3; 240010037SARM gem5 Developers case 1: 240110037SARM gem5 Developers return MISCREG_TLBI_VAE3_Xt; 240210037SARM gem5 Developers case 5: 240310037SARM gem5 Developers return MISCREG_TLBI_VALE3_Xt; 240410037SARM gem5 Developers } 240510037SARM gem5 Developers break; 240610037SARM gem5 Developers } 240710037SARM gem5 Developers break; 240810037SARM gem5 Developers } 240910037SARM gem5 Developers break; 241010037SARM gem5 Developers } 241110037SARM gem5 Developers break; 241210037SARM gem5 Developers case 2: 241310037SARM gem5 Developers switch (crn) { 241410037SARM gem5 Developers case 0: 241510037SARM gem5 Developers switch (op1) { 241610037SARM gem5 Developers case 0: 241710037SARM gem5 Developers switch (crm) { 241810037SARM gem5 Developers case 0: 241910037SARM gem5 Developers switch (op2) { 242010037SARM gem5 Developers case 2: 242110037SARM gem5 Developers return MISCREG_OSDTRRX_EL1; 242210037SARM gem5 Developers case 4: 242310037SARM gem5 Developers return MISCREG_DBGBVR0_EL1; 242410037SARM gem5 Developers case 5: 242510037SARM gem5 Developers return MISCREG_DBGBCR0_EL1; 242610037SARM gem5 Developers case 6: 242710037SARM gem5 Developers return MISCREG_DBGWVR0_EL1; 242810037SARM gem5 Developers case 7: 242910037SARM gem5 Developers return MISCREG_DBGWCR0_EL1; 243010037SARM gem5 Developers } 243110037SARM gem5 Developers break; 243210037SARM gem5 Developers case 1: 243310037SARM gem5 Developers switch (op2) { 243410037SARM gem5 Developers case 4: 243510037SARM gem5 Developers return MISCREG_DBGBVR1_EL1; 243610037SARM gem5 Developers case 5: 243710037SARM gem5 Developers return MISCREG_DBGBCR1_EL1; 243810037SARM gem5 Developers case 6: 243910037SARM gem5 Developers return MISCREG_DBGWVR1_EL1; 244010037SARM gem5 Developers case 7: 244110037SARM gem5 Developers return MISCREG_DBGWCR1_EL1; 244210037SARM gem5 Developers } 244310037SARM gem5 Developers break; 244410037SARM gem5 Developers case 2: 244510037SARM gem5 Developers switch (op2) { 244610037SARM gem5 Developers case 0: 244710037SARM gem5 Developers return MISCREG_MDCCINT_EL1; 244810037SARM gem5 Developers case 2: 244910037SARM gem5 Developers return MISCREG_MDSCR_EL1; 245010037SARM gem5 Developers case 4: 245110037SARM gem5 Developers return MISCREG_DBGBVR2_EL1; 245210037SARM gem5 Developers case 5: 245310037SARM gem5 Developers return MISCREG_DBGBCR2_EL1; 245410037SARM gem5 Developers case 6: 245510037SARM gem5 Developers return MISCREG_DBGWVR2_EL1; 245610037SARM gem5 Developers case 7: 245710037SARM gem5 Developers return MISCREG_DBGWCR2_EL1; 245810037SARM gem5 Developers } 245910037SARM gem5 Developers break; 246010037SARM gem5 Developers case 3: 246110037SARM gem5 Developers switch (op2) { 246210037SARM gem5 Developers case 2: 246310037SARM gem5 Developers return MISCREG_OSDTRTX_EL1; 246410037SARM gem5 Developers case 4: 246510037SARM gem5 Developers return MISCREG_DBGBVR3_EL1; 246610037SARM gem5 Developers case 5: 246710037SARM gem5 Developers return MISCREG_DBGBCR3_EL1; 246810037SARM gem5 Developers case 6: 246910037SARM gem5 Developers return MISCREG_DBGWVR3_EL1; 247010037SARM gem5 Developers case 7: 247110037SARM gem5 Developers return MISCREG_DBGWCR3_EL1; 247210037SARM gem5 Developers } 247310037SARM gem5 Developers break; 247410037SARM gem5 Developers case 4: 247510037SARM gem5 Developers switch (op2) { 247610037SARM gem5 Developers case 4: 247710037SARM gem5 Developers return MISCREG_DBGBVR4_EL1; 247810037SARM gem5 Developers case 5: 247910037SARM gem5 Developers return MISCREG_DBGBCR4_EL1; 248010037SARM gem5 Developers } 248110037SARM gem5 Developers break; 248210037SARM gem5 Developers case 5: 248310037SARM gem5 Developers switch (op2) { 248410037SARM gem5 Developers case 4: 248510037SARM gem5 Developers return MISCREG_DBGBVR5_EL1; 248610037SARM gem5 Developers case 5: 248710037SARM gem5 Developers return MISCREG_DBGBCR5_EL1; 248810037SARM gem5 Developers } 248910037SARM gem5 Developers break; 249010037SARM gem5 Developers case 6: 249110037SARM gem5 Developers switch (op2) { 249210037SARM gem5 Developers case 2: 249310037SARM gem5 Developers return MISCREG_OSECCR_EL1; 249410037SARM gem5 Developers } 249510037SARM gem5 Developers break; 249610037SARM gem5 Developers } 249710037SARM gem5 Developers break; 249810037SARM gem5 Developers case 2: 249910037SARM gem5 Developers switch (crm) { 250010037SARM gem5 Developers case 0: 250110037SARM gem5 Developers switch (op2) { 250210037SARM gem5 Developers case 0: 250310037SARM gem5 Developers return MISCREG_TEECR32_EL1; 250410037SARM gem5 Developers } 250510037SARM gem5 Developers break; 250610037SARM gem5 Developers } 250710037SARM gem5 Developers break; 250810037SARM gem5 Developers case 3: 250910037SARM gem5 Developers switch (crm) { 251010037SARM gem5 Developers case 1: 251110037SARM gem5 Developers switch (op2) { 251210037SARM gem5 Developers case 0: 251310037SARM gem5 Developers return MISCREG_MDCCSR_EL0; 251410037SARM gem5 Developers } 251510037SARM gem5 Developers break; 251610037SARM gem5 Developers case 4: 251710037SARM gem5 Developers switch (op2) { 251810037SARM gem5 Developers case 0: 251910037SARM gem5 Developers return MISCREG_MDDTR_EL0; 252010037SARM gem5 Developers } 252110037SARM gem5 Developers break; 252210037SARM gem5 Developers case 5: 252310037SARM gem5 Developers switch (op2) { 252410037SARM gem5 Developers case 0: 252510037SARM gem5 Developers return MISCREG_MDDTRRX_EL0; 252610037SARM gem5 Developers } 252710037SARM gem5 Developers break; 252810037SARM gem5 Developers } 252910037SARM gem5 Developers break; 253010037SARM gem5 Developers case 4: 253110037SARM gem5 Developers switch (crm) { 253210037SARM gem5 Developers case 7: 253310037SARM gem5 Developers switch (op2) { 253410037SARM gem5 Developers case 0: 253510037SARM gem5 Developers return MISCREG_DBGVCR32_EL2; 253610037SARM gem5 Developers } 253710037SARM gem5 Developers break; 253810037SARM gem5 Developers } 253910037SARM gem5 Developers break; 254010037SARM gem5 Developers } 254110037SARM gem5 Developers break; 254210037SARM gem5 Developers case 1: 254310037SARM gem5 Developers switch (op1) { 254410037SARM gem5 Developers case 0: 254510037SARM gem5 Developers switch (crm) { 254610037SARM gem5 Developers case 0: 254710037SARM gem5 Developers switch (op2) { 254810037SARM gem5 Developers case 0: 254910037SARM gem5 Developers return MISCREG_MDRAR_EL1; 255010037SARM gem5 Developers case 4: 255110037SARM gem5 Developers return MISCREG_OSLAR_EL1; 255210037SARM gem5 Developers } 255310037SARM gem5 Developers break; 255410037SARM gem5 Developers case 1: 255510037SARM gem5 Developers switch (op2) { 255610037SARM gem5 Developers case 4: 255710037SARM gem5 Developers return MISCREG_OSLSR_EL1; 255810037SARM gem5 Developers } 255910037SARM gem5 Developers break; 256010037SARM gem5 Developers case 3: 256110037SARM gem5 Developers switch (op2) { 256210037SARM gem5 Developers case 4: 256310037SARM gem5 Developers return MISCREG_OSDLR_EL1; 256410037SARM gem5 Developers } 256510037SARM gem5 Developers break; 256610037SARM gem5 Developers case 4: 256710037SARM gem5 Developers switch (op2) { 256810037SARM gem5 Developers case 4: 256910037SARM gem5 Developers return MISCREG_DBGPRCR_EL1; 257010037SARM gem5 Developers } 257110037SARM gem5 Developers break; 257210037SARM gem5 Developers } 257310037SARM gem5 Developers break; 257410037SARM gem5 Developers case 2: 257510037SARM gem5 Developers switch (crm) { 257610037SARM gem5 Developers case 0: 257710037SARM gem5 Developers switch (op2) { 257810037SARM gem5 Developers case 0: 257910037SARM gem5 Developers return MISCREG_TEEHBR32_EL1; 258010037SARM gem5 Developers } 258110037SARM gem5 Developers break; 258210037SARM gem5 Developers } 258310037SARM gem5 Developers break; 258410037SARM gem5 Developers } 258510037SARM gem5 Developers break; 258610037SARM gem5 Developers case 7: 258710037SARM gem5 Developers switch (op1) { 258810037SARM gem5 Developers case 0: 258910037SARM gem5 Developers switch (crm) { 259010037SARM gem5 Developers case 8: 259110037SARM gem5 Developers switch (op2) { 259210037SARM gem5 Developers case 6: 259310037SARM gem5 Developers return MISCREG_DBGCLAIMSET_EL1; 259410037SARM gem5 Developers } 259510037SARM gem5 Developers break; 259610037SARM gem5 Developers case 9: 259710037SARM gem5 Developers switch (op2) { 259810037SARM gem5 Developers case 6: 259910037SARM gem5 Developers return MISCREG_DBGCLAIMCLR_EL1; 260010037SARM gem5 Developers } 260110037SARM gem5 Developers break; 260210037SARM gem5 Developers case 14: 260310037SARM gem5 Developers switch (op2) { 260410037SARM gem5 Developers case 6: 260510037SARM gem5 Developers return MISCREG_DBGAUTHSTATUS_EL1; 260610037SARM gem5 Developers } 260710037SARM gem5 Developers break; 260810037SARM gem5 Developers } 260910037SARM gem5 Developers break; 261010037SARM gem5 Developers } 261110037SARM gem5 Developers break; 261210037SARM gem5 Developers } 261310037SARM gem5 Developers break; 261410037SARM gem5 Developers case 3: 261510037SARM gem5 Developers switch (crn) { 261610037SARM gem5 Developers case 0: 261710037SARM gem5 Developers switch (op1) { 261810037SARM gem5 Developers case 0: 261910037SARM gem5 Developers switch (crm) { 262010037SARM gem5 Developers case 0: 262110037SARM gem5 Developers switch (op2) { 262210037SARM gem5 Developers case 0: 262310037SARM gem5 Developers return MISCREG_MIDR_EL1; 262410037SARM gem5 Developers case 5: 262510037SARM gem5 Developers return MISCREG_MPIDR_EL1; 262610037SARM gem5 Developers case 6: 262710037SARM gem5 Developers return MISCREG_REVIDR_EL1; 262810037SARM gem5 Developers } 262910037SARM gem5 Developers break; 263010037SARM gem5 Developers case 1: 263110037SARM gem5 Developers switch (op2) { 263210037SARM gem5 Developers case 0: 263310037SARM gem5 Developers return MISCREG_ID_PFR0_EL1; 263410037SARM gem5 Developers case 1: 263510037SARM gem5 Developers return MISCREG_ID_PFR1_EL1; 263610037SARM gem5 Developers case 2: 263710037SARM gem5 Developers return MISCREG_ID_DFR0_EL1; 263810037SARM gem5 Developers case 3: 263910037SARM gem5 Developers return MISCREG_ID_AFR0_EL1; 264010037SARM gem5 Developers case 4: 264110037SARM gem5 Developers return MISCREG_ID_MMFR0_EL1; 264210037SARM gem5 Developers case 5: 264310037SARM gem5 Developers return MISCREG_ID_MMFR1_EL1; 264410037SARM gem5 Developers case 6: 264510037SARM gem5 Developers return MISCREG_ID_MMFR2_EL1; 264610037SARM gem5 Developers case 7: 264710037SARM gem5 Developers return MISCREG_ID_MMFR3_EL1; 264810037SARM gem5 Developers } 264910037SARM gem5 Developers break; 265010037SARM gem5 Developers case 2: 265110037SARM gem5 Developers switch (op2) { 265210037SARM gem5 Developers case 0: 265310037SARM gem5 Developers return MISCREG_ID_ISAR0_EL1; 265410037SARM gem5 Developers case 1: 265510037SARM gem5 Developers return MISCREG_ID_ISAR1_EL1; 265610037SARM gem5 Developers case 2: 265710037SARM gem5 Developers return MISCREG_ID_ISAR2_EL1; 265810037SARM gem5 Developers case 3: 265910037SARM gem5 Developers return MISCREG_ID_ISAR3_EL1; 266010037SARM gem5 Developers case 4: 266110037SARM gem5 Developers return MISCREG_ID_ISAR4_EL1; 266210037SARM gem5 Developers case 5: 266310037SARM gem5 Developers return MISCREG_ID_ISAR5_EL1; 266410037SARM gem5 Developers } 266510037SARM gem5 Developers break; 266610037SARM gem5 Developers case 3: 266710037SARM gem5 Developers switch (op2) { 266810037SARM gem5 Developers case 0: 266910037SARM gem5 Developers return MISCREG_MVFR0_EL1; 267010037SARM gem5 Developers case 1: 267110037SARM gem5 Developers return MISCREG_MVFR1_EL1; 267210037SARM gem5 Developers case 2: 267310037SARM gem5 Developers return MISCREG_MVFR2_EL1; 267410037SARM gem5 Developers case 3 ... 7: 267510037SARM gem5 Developers return MISCREG_RAZ; 267610037SARM gem5 Developers } 267710037SARM gem5 Developers break; 267810037SARM gem5 Developers case 4: 267910037SARM gem5 Developers switch (op2) { 268010037SARM gem5 Developers case 0: 268110037SARM gem5 Developers return MISCREG_ID_AA64PFR0_EL1; 268210037SARM gem5 Developers case 1: 268310037SARM gem5 Developers return MISCREG_ID_AA64PFR1_EL1; 268410037SARM gem5 Developers case 2 ... 7: 268510037SARM gem5 Developers return MISCREG_RAZ; 268610037SARM gem5 Developers } 268710037SARM gem5 Developers break; 268810037SARM gem5 Developers case 5: 268910037SARM gem5 Developers switch (op2) { 269010037SARM gem5 Developers case 0: 269110037SARM gem5 Developers return MISCREG_ID_AA64DFR0_EL1; 269210037SARM gem5 Developers case 1: 269310037SARM gem5 Developers return MISCREG_ID_AA64DFR1_EL1; 269410037SARM gem5 Developers case 4: 269510037SARM gem5 Developers return MISCREG_ID_AA64AFR0_EL1; 269610037SARM gem5 Developers case 5: 269710037SARM gem5 Developers return MISCREG_ID_AA64AFR1_EL1; 269810037SARM gem5 Developers case 2: 269910037SARM gem5 Developers case 3: 270010037SARM gem5 Developers case 6: 270110037SARM gem5 Developers case 7: 270210037SARM gem5 Developers return MISCREG_RAZ; 270310037SARM gem5 Developers } 270410037SARM gem5 Developers break; 270510037SARM gem5 Developers case 6: 270610037SARM gem5 Developers switch (op2) { 270710037SARM gem5 Developers case 0: 270810037SARM gem5 Developers return MISCREG_ID_AA64ISAR0_EL1; 270910037SARM gem5 Developers case 1: 271010037SARM gem5 Developers return MISCREG_ID_AA64ISAR1_EL1; 271110037SARM gem5 Developers case 2 ... 7: 271210037SARM gem5 Developers return MISCREG_RAZ; 271310037SARM gem5 Developers } 271410037SARM gem5 Developers break; 271510037SARM gem5 Developers case 7: 271610037SARM gem5 Developers switch (op2) { 271710037SARM gem5 Developers case 0: 271810037SARM gem5 Developers return MISCREG_ID_AA64MMFR0_EL1; 271910037SARM gem5 Developers case 1: 272010037SARM gem5 Developers return MISCREG_ID_AA64MMFR1_EL1; 272110037SARM gem5 Developers case 2 ... 7: 272210037SARM gem5 Developers return MISCREG_RAZ; 272310037SARM gem5 Developers } 272410037SARM gem5 Developers break; 272510037SARM gem5 Developers } 272610037SARM gem5 Developers break; 272710037SARM gem5 Developers case 1: 272810037SARM gem5 Developers switch (crm) { 272910037SARM gem5 Developers case 0: 273010037SARM gem5 Developers switch (op2) { 273110037SARM gem5 Developers case 0: 273210037SARM gem5 Developers return MISCREG_CCSIDR_EL1; 273310037SARM gem5 Developers case 1: 273410037SARM gem5 Developers return MISCREG_CLIDR_EL1; 273510037SARM gem5 Developers case 7: 273610037SARM gem5 Developers return MISCREG_AIDR_EL1; 273710037SARM gem5 Developers } 273810037SARM gem5 Developers break; 273910037SARM gem5 Developers } 274010037SARM gem5 Developers break; 274110037SARM gem5 Developers case 2: 274210037SARM gem5 Developers switch (crm) { 274310037SARM gem5 Developers case 0: 274410037SARM gem5 Developers switch (op2) { 274510037SARM gem5 Developers case 0: 274610037SARM gem5 Developers return MISCREG_CSSELR_EL1; 274710037SARM gem5 Developers } 274810037SARM gem5 Developers break; 274910037SARM gem5 Developers } 275010037SARM gem5 Developers break; 275110037SARM gem5 Developers case 3: 275210037SARM gem5 Developers switch (crm) { 275310037SARM gem5 Developers case 0: 275410037SARM gem5 Developers switch (op2) { 275510037SARM gem5 Developers case 1: 275610037SARM gem5 Developers return MISCREG_CTR_EL0; 275710037SARM gem5 Developers case 7: 275810037SARM gem5 Developers return MISCREG_DCZID_EL0; 275910037SARM gem5 Developers } 276010037SARM gem5 Developers break; 276110037SARM gem5 Developers } 276210037SARM gem5 Developers break; 276310037SARM gem5 Developers case 4: 276410037SARM gem5 Developers switch (crm) { 276510037SARM gem5 Developers case 0: 276610037SARM gem5 Developers switch (op2) { 276710037SARM gem5 Developers case 0: 276810037SARM gem5 Developers return MISCREG_VPIDR_EL2; 276910037SARM gem5 Developers case 5: 277010037SARM gem5 Developers return MISCREG_VMPIDR_EL2; 277110037SARM gem5 Developers } 277210037SARM gem5 Developers break; 277310037SARM gem5 Developers } 277410037SARM gem5 Developers break; 277510037SARM gem5 Developers } 277610037SARM gem5 Developers break; 277710037SARM gem5 Developers case 1: 277810037SARM gem5 Developers switch (op1) { 277910037SARM gem5 Developers case 0: 278010037SARM gem5 Developers switch (crm) { 278110037SARM gem5 Developers case 0: 278210037SARM gem5 Developers switch (op2) { 278310037SARM gem5 Developers case 0: 278410037SARM gem5 Developers return MISCREG_SCTLR_EL1; 278510037SARM gem5 Developers case 1: 278610037SARM gem5 Developers return MISCREG_ACTLR_EL1; 278710037SARM gem5 Developers case 2: 278810037SARM gem5 Developers return MISCREG_CPACR_EL1; 278910037SARM gem5 Developers } 279010037SARM gem5 Developers break; 279110037SARM gem5 Developers } 279210037SARM gem5 Developers break; 279310037SARM gem5 Developers case 4: 279410037SARM gem5 Developers switch (crm) { 279510037SARM gem5 Developers case 0: 279610037SARM gem5 Developers switch (op2) { 279710037SARM gem5 Developers case 0: 279810037SARM gem5 Developers return MISCREG_SCTLR_EL2; 279910037SARM gem5 Developers case 1: 280010037SARM gem5 Developers return MISCREG_ACTLR_EL2; 280110037SARM gem5 Developers } 280210037SARM gem5 Developers break; 280310037SARM gem5 Developers case 1: 280410037SARM gem5 Developers switch (op2) { 280510037SARM gem5 Developers case 0: 280610037SARM gem5 Developers return MISCREG_HCR_EL2; 280710037SARM gem5 Developers case 1: 280810037SARM gem5 Developers return MISCREG_MDCR_EL2; 280910037SARM gem5 Developers case 2: 281010037SARM gem5 Developers return MISCREG_CPTR_EL2; 281110037SARM gem5 Developers case 3: 281210037SARM gem5 Developers return MISCREG_HSTR_EL2; 281310037SARM gem5 Developers case 7: 281410037SARM gem5 Developers return MISCREG_HACR_EL2; 281510037SARM gem5 Developers } 281610037SARM gem5 Developers break; 281710037SARM gem5 Developers } 281810037SARM gem5 Developers break; 281910037SARM gem5 Developers case 6: 282010037SARM gem5 Developers switch (crm) { 282110037SARM gem5 Developers case 0: 282210037SARM gem5 Developers switch (op2) { 282310037SARM gem5 Developers case 0: 282410037SARM gem5 Developers return MISCREG_SCTLR_EL3; 282510037SARM gem5 Developers case 1: 282610037SARM gem5 Developers return MISCREG_ACTLR_EL3; 282710037SARM gem5 Developers } 282810037SARM gem5 Developers break; 282910037SARM gem5 Developers case 1: 283010037SARM gem5 Developers switch (op2) { 283110037SARM gem5 Developers case 0: 283210037SARM gem5 Developers return MISCREG_SCR_EL3; 283310037SARM gem5 Developers case 1: 283410037SARM gem5 Developers return MISCREG_SDER32_EL3; 283510037SARM gem5 Developers case 2: 283610037SARM gem5 Developers return MISCREG_CPTR_EL3; 283710037SARM gem5 Developers } 283810037SARM gem5 Developers break; 283910037SARM gem5 Developers case 3: 284010037SARM gem5 Developers switch (op2) { 284110037SARM gem5 Developers case 1: 284210037SARM gem5 Developers return MISCREG_MDCR_EL3; 284310037SARM gem5 Developers } 284410037SARM gem5 Developers break; 284510037SARM gem5 Developers } 284610037SARM gem5 Developers break; 284710037SARM gem5 Developers } 284810037SARM gem5 Developers break; 284910037SARM gem5 Developers case 2: 285010037SARM gem5 Developers switch (op1) { 285110037SARM gem5 Developers case 0: 285210037SARM gem5 Developers switch (crm) { 285310037SARM gem5 Developers case 0: 285410037SARM gem5 Developers switch (op2) { 285510037SARM gem5 Developers case 0: 285610037SARM gem5 Developers return MISCREG_TTBR0_EL1; 285710037SARM gem5 Developers case 1: 285810037SARM gem5 Developers return MISCREG_TTBR1_EL1; 285910037SARM gem5 Developers case 2: 286010037SARM gem5 Developers return MISCREG_TCR_EL1; 286110037SARM gem5 Developers } 286210037SARM gem5 Developers break; 286310037SARM gem5 Developers } 286410037SARM gem5 Developers break; 286510037SARM gem5 Developers case 4: 286610037SARM gem5 Developers switch (crm) { 286710037SARM gem5 Developers case 0: 286810037SARM gem5 Developers switch (op2) { 286910037SARM gem5 Developers case 0: 287010037SARM gem5 Developers return MISCREG_TTBR0_EL2; 287110037SARM gem5 Developers case 2: 287210037SARM gem5 Developers return MISCREG_TCR_EL2; 287310037SARM gem5 Developers } 287410037SARM gem5 Developers break; 287510037SARM gem5 Developers case 1: 287610037SARM gem5 Developers switch (op2) { 287710037SARM gem5 Developers case 0: 287810037SARM gem5 Developers return MISCREG_VTTBR_EL2; 287910037SARM gem5 Developers case 2: 288010037SARM gem5 Developers return MISCREG_VTCR_EL2; 288110037SARM gem5 Developers } 288210037SARM gem5 Developers break; 288310037SARM gem5 Developers } 288410037SARM gem5 Developers break; 288510037SARM gem5 Developers case 6: 288610037SARM gem5 Developers switch (crm) { 288710037SARM gem5 Developers case 0: 288810037SARM gem5 Developers switch (op2) { 288910037SARM gem5 Developers case 0: 289010037SARM gem5 Developers return MISCREG_TTBR0_EL3; 289110037SARM gem5 Developers case 2: 289210037SARM gem5 Developers return MISCREG_TCR_EL3; 289310037SARM gem5 Developers } 289410037SARM gem5 Developers break; 289510037SARM gem5 Developers } 289610037SARM gem5 Developers break; 289710037SARM gem5 Developers } 289810037SARM gem5 Developers break; 289910037SARM gem5 Developers case 3: 290010037SARM gem5 Developers switch (op1) { 290110037SARM gem5 Developers case 4: 290210037SARM gem5 Developers switch (crm) { 290310037SARM gem5 Developers case 0: 290410037SARM gem5 Developers switch (op2) { 290510037SARM gem5 Developers case 0: 290610037SARM gem5 Developers return MISCREG_DACR32_EL2; 290710037SARM gem5 Developers } 290810037SARM gem5 Developers break; 290910037SARM gem5 Developers } 291010037SARM gem5 Developers break; 291110037SARM gem5 Developers } 291210037SARM gem5 Developers break; 291310037SARM gem5 Developers case 4: 291410037SARM gem5 Developers switch (op1) { 291510037SARM gem5 Developers case 0: 291610037SARM gem5 Developers switch (crm) { 291710037SARM gem5 Developers case 0: 291810037SARM gem5 Developers switch (op2) { 291910037SARM gem5 Developers case 0: 292010037SARM gem5 Developers return MISCREG_SPSR_EL1; 292110037SARM gem5 Developers case 1: 292210037SARM gem5 Developers return MISCREG_ELR_EL1; 292310037SARM gem5 Developers } 292410037SARM gem5 Developers break; 292510037SARM gem5 Developers case 1: 292610037SARM gem5 Developers switch (op2) { 292710037SARM gem5 Developers case 0: 292810037SARM gem5 Developers return MISCREG_SP_EL0; 292910037SARM gem5 Developers } 293010037SARM gem5 Developers break; 293110037SARM gem5 Developers case 2: 293210037SARM gem5 Developers switch (op2) { 293310037SARM gem5 Developers case 0: 293410037SARM gem5 Developers return MISCREG_SPSEL; 293510037SARM gem5 Developers case 2: 293610037SARM gem5 Developers return MISCREG_CURRENTEL; 293710037SARM gem5 Developers } 293810037SARM gem5 Developers break; 293910037SARM gem5 Developers } 294010037SARM gem5 Developers break; 294110037SARM gem5 Developers case 3: 294210037SARM gem5 Developers switch (crm) { 294310037SARM gem5 Developers case 2: 294410037SARM gem5 Developers switch (op2) { 294510037SARM gem5 Developers case 0: 294610037SARM gem5 Developers return MISCREG_NZCV; 294710037SARM gem5 Developers case 1: 294810037SARM gem5 Developers return MISCREG_DAIF; 294910037SARM gem5 Developers } 295010037SARM gem5 Developers break; 295110037SARM gem5 Developers case 4: 295210037SARM gem5 Developers switch (op2) { 295310037SARM gem5 Developers case 0: 295410037SARM gem5 Developers return MISCREG_FPCR; 295510037SARM gem5 Developers case 1: 295610037SARM gem5 Developers return MISCREG_FPSR; 295710037SARM gem5 Developers } 295810037SARM gem5 Developers break; 295910037SARM gem5 Developers case 5: 296010037SARM gem5 Developers switch (op2) { 296110037SARM gem5 Developers case 0: 296210037SARM gem5 Developers return MISCREG_DSPSR_EL0; 296310037SARM gem5 Developers case 1: 296410037SARM gem5 Developers return MISCREG_DLR_EL0; 296510037SARM gem5 Developers } 296610037SARM gem5 Developers break; 296710037SARM gem5 Developers } 296810037SARM gem5 Developers break; 296910037SARM gem5 Developers case 4: 297010037SARM gem5 Developers switch (crm) { 297110037SARM gem5 Developers case 0: 297210037SARM gem5 Developers switch (op2) { 297310037SARM gem5 Developers case 0: 297410037SARM gem5 Developers return MISCREG_SPSR_EL2; 297510037SARM gem5 Developers case 1: 297610037SARM gem5 Developers return MISCREG_ELR_EL2; 297710037SARM gem5 Developers } 297810037SARM gem5 Developers break; 297910037SARM gem5 Developers case 1: 298010037SARM gem5 Developers switch (op2) { 298110037SARM gem5 Developers case 0: 298210037SARM gem5 Developers return MISCREG_SP_EL1; 298310037SARM gem5 Developers } 298410037SARM gem5 Developers break; 298510037SARM gem5 Developers case 3: 298610037SARM gem5 Developers switch (op2) { 298710037SARM gem5 Developers case 0: 298810037SARM gem5 Developers return MISCREG_SPSR_IRQ_AA64; 298910037SARM gem5 Developers case 1: 299010037SARM gem5 Developers return MISCREG_SPSR_ABT_AA64; 299110037SARM gem5 Developers case 2: 299210037SARM gem5 Developers return MISCREG_SPSR_UND_AA64; 299310037SARM gem5 Developers case 3: 299410037SARM gem5 Developers return MISCREG_SPSR_FIQ_AA64; 299510037SARM gem5 Developers } 299610037SARM gem5 Developers break; 299710037SARM gem5 Developers } 299810037SARM gem5 Developers break; 299910037SARM gem5 Developers case 6: 300010037SARM gem5 Developers switch (crm) { 300110037SARM gem5 Developers case 0: 300210037SARM gem5 Developers switch (op2) { 300310037SARM gem5 Developers case 0: 300410037SARM gem5 Developers return MISCREG_SPSR_EL3; 300510037SARM gem5 Developers case 1: 300610037SARM gem5 Developers return MISCREG_ELR_EL3; 300710037SARM gem5 Developers } 300810037SARM gem5 Developers break; 300910037SARM gem5 Developers case 1: 301010037SARM gem5 Developers switch (op2) { 301110037SARM gem5 Developers case 0: 301210037SARM gem5 Developers return MISCREG_SP_EL2; 301310037SARM gem5 Developers } 301410037SARM gem5 Developers break; 301510037SARM gem5 Developers } 301610037SARM gem5 Developers break; 301710037SARM gem5 Developers } 301810037SARM gem5 Developers break; 301910037SARM gem5 Developers case 5: 302010037SARM gem5 Developers switch (op1) { 302110037SARM gem5 Developers case 0: 302210037SARM gem5 Developers switch (crm) { 302310037SARM gem5 Developers case 1: 302410037SARM gem5 Developers switch (op2) { 302510037SARM gem5 Developers case 0: 302610037SARM gem5 Developers return MISCREG_AFSR0_EL1; 302710037SARM gem5 Developers case 1: 302810037SARM gem5 Developers return MISCREG_AFSR1_EL1; 302910037SARM gem5 Developers } 303010037SARM gem5 Developers break; 303110037SARM gem5 Developers case 2: 303210037SARM gem5 Developers switch (op2) { 303310037SARM gem5 Developers case 0: 303410037SARM gem5 Developers return MISCREG_ESR_EL1; 303510037SARM gem5 Developers } 303610037SARM gem5 Developers break; 303710037SARM gem5 Developers } 303810037SARM gem5 Developers break; 303910037SARM gem5 Developers case 4: 304010037SARM gem5 Developers switch (crm) { 304110037SARM gem5 Developers case 0: 304210037SARM gem5 Developers switch (op2) { 304310037SARM gem5 Developers case 1: 304410037SARM gem5 Developers return MISCREG_IFSR32_EL2; 304510037SARM gem5 Developers } 304610037SARM gem5 Developers break; 304710037SARM gem5 Developers case 1: 304810037SARM gem5 Developers switch (op2) { 304910037SARM gem5 Developers case 0: 305010037SARM gem5 Developers return MISCREG_AFSR0_EL2; 305110037SARM gem5 Developers case 1: 305210037SARM gem5 Developers return MISCREG_AFSR1_EL2; 305310037SARM gem5 Developers } 305410037SARM gem5 Developers break; 305510037SARM gem5 Developers case 2: 305610037SARM gem5 Developers switch (op2) { 305710037SARM gem5 Developers case 0: 305810037SARM gem5 Developers return MISCREG_ESR_EL2; 305910037SARM gem5 Developers } 306010037SARM gem5 Developers break; 306110037SARM gem5 Developers case 3: 306210037SARM gem5 Developers switch (op2) { 306310037SARM gem5 Developers case 0: 306410037SARM gem5 Developers return MISCREG_FPEXC32_EL2; 306510037SARM gem5 Developers } 306610037SARM gem5 Developers break; 306710037SARM gem5 Developers } 306810037SARM gem5 Developers break; 306910037SARM gem5 Developers case 6: 307010037SARM gem5 Developers switch (crm) { 307110037SARM gem5 Developers case 1: 307210037SARM gem5 Developers switch (op2) { 307310037SARM gem5 Developers case 0: 307410037SARM gem5 Developers return MISCREG_AFSR0_EL3; 307510037SARM gem5 Developers case 1: 307610037SARM gem5 Developers return MISCREG_AFSR1_EL3; 307710037SARM gem5 Developers } 307810037SARM gem5 Developers break; 307910037SARM gem5 Developers case 2: 308010037SARM gem5 Developers switch (op2) { 308110037SARM gem5 Developers case 0: 308210037SARM gem5 Developers return MISCREG_ESR_EL3; 308310037SARM gem5 Developers } 308410037SARM gem5 Developers break; 308510037SARM gem5 Developers } 308610037SARM gem5 Developers break; 308710037SARM gem5 Developers } 308810037SARM gem5 Developers break; 308910037SARM gem5 Developers case 6: 309010037SARM gem5 Developers switch (op1) { 309110037SARM gem5 Developers case 0: 309210037SARM gem5 Developers switch (crm) { 309310037SARM gem5 Developers case 0: 309410037SARM gem5 Developers switch (op2) { 309510037SARM gem5 Developers case 0: 309610037SARM gem5 Developers return MISCREG_FAR_EL1; 309710037SARM gem5 Developers } 309810037SARM gem5 Developers break; 309910037SARM gem5 Developers } 310010037SARM gem5 Developers break; 310110037SARM gem5 Developers case 4: 310210037SARM gem5 Developers switch (crm) { 310310037SARM gem5 Developers case 0: 310410037SARM gem5 Developers switch (op2) { 310510037SARM gem5 Developers case 0: 310610037SARM gem5 Developers return MISCREG_FAR_EL2; 310710037SARM gem5 Developers case 4: 310810037SARM gem5 Developers return MISCREG_HPFAR_EL2; 310910037SARM gem5 Developers } 311010037SARM gem5 Developers break; 311110037SARM gem5 Developers } 311210037SARM gem5 Developers break; 311310037SARM gem5 Developers case 6: 311410037SARM gem5 Developers switch (crm) { 311510037SARM gem5 Developers case 0: 311610037SARM gem5 Developers switch (op2) { 311710037SARM gem5 Developers case 0: 311810037SARM gem5 Developers return MISCREG_FAR_EL3; 311910037SARM gem5 Developers } 312010037SARM gem5 Developers break; 312110037SARM gem5 Developers } 312210037SARM gem5 Developers break; 312310037SARM gem5 Developers } 312410037SARM gem5 Developers break; 312510037SARM gem5 Developers case 7: 312610037SARM gem5 Developers switch (op1) { 312710037SARM gem5 Developers case 0: 312810037SARM gem5 Developers switch (crm) { 312910037SARM gem5 Developers case 4: 313010037SARM gem5 Developers switch (op2) { 313110037SARM gem5 Developers case 0: 313210037SARM gem5 Developers return MISCREG_PAR_EL1; 313310037SARM gem5 Developers } 313410037SARM gem5 Developers break; 313510037SARM gem5 Developers } 313610037SARM gem5 Developers break; 313710037SARM gem5 Developers } 313810037SARM gem5 Developers break; 313910037SARM gem5 Developers case 9: 314010037SARM gem5 Developers switch (op1) { 314110037SARM gem5 Developers case 0: 314210037SARM gem5 Developers switch (crm) { 314310037SARM gem5 Developers case 14: 314410037SARM gem5 Developers switch (op2) { 314510037SARM gem5 Developers case 1: 314610037SARM gem5 Developers return MISCREG_PMINTENSET_EL1; 314710037SARM gem5 Developers case 2: 314810037SARM gem5 Developers return MISCREG_PMINTENCLR_EL1; 314910037SARM gem5 Developers } 315010037SARM gem5 Developers break; 315110037SARM gem5 Developers } 315210037SARM gem5 Developers break; 315310037SARM gem5 Developers case 3: 315410037SARM gem5 Developers switch (crm) { 315510037SARM gem5 Developers case 12: 315610037SARM gem5 Developers switch (op2) { 315710037SARM gem5 Developers case 0: 315810037SARM gem5 Developers return MISCREG_PMCR_EL0; 315910037SARM gem5 Developers case 1: 316010037SARM gem5 Developers return MISCREG_PMCNTENSET_EL0; 316110037SARM gem5 Developers case 2: 316210037SARM gem5 Developers return MISCREG_PMCNTENCLR_EL0; 316310037SARM gem5 Developers case 3: 316410037SARM gem5 Developers return MISCREG_PMOVSCLR_EL0; 316510037SARM gem5 Developers case 4: 316610037SARM gem5 Developers return MISCREG_PMSWINC_EL0; 316710037SARM gem5 Developers case 5: 316810037SARM gem5 Developers return MISCREG_PMSELR_EL0; 316910037SARM gem5 Developers case 6: 317010037SARM gem5 Developers return MISCREG_PMCEID0_EL0; 317110037SARM gem5 Developers case 7: 317210037SARM gem5 Developers return MISCREG_PMCEID1_EL0; 317310037SARM gem5 Developers } 317410037SARM gem5 Developers break; 317510037SARM gem5 Developers case 13: 317610037SARM gem5 Developers switch (op2) { 317710037SARM gem5 Developers case 0: 317810037SARM gem5 Developers return MISCREG_PMCCNTR_EL0; 317910037SARM gem5 Developers case 1: 318010037SARM gem5 Developers return MISCREG_PMCCFILTR_EL0; 318110037SARM gem5 Developers case 2: 318210037SARM gem5 Developers return MISCREG_PMXEVCNTR_EL0; 318310037SARM gem5 Developers } 318410037SARM gem5 Developers break; 318510037SARM gem5 Developers case 14: 318610037SARM gem5 Developers switch (op2) { 318710037SARM gem5 Developers case 0: 318810037SARM gem5 Developers return MISCREG_PMUSERENR_EL0; 318910037SARM gem5 Developers case 3: 319010037SARM gem5 Developers return MISCREG_PMOVSSET_EL0; 319110037SARM gem5 Developers } 319210037SARM gem5 Developers break; 319310037SARM gem5 Developers } 319410037SARM gem5 Developers break; 319510037SARM gem5 Developers } 319610037SARM gem5 Developers break; 319710037SARM gem5 Developers case 10: 319810037SARM gem5 Developers switch (op1) { 319910037SARM gem5 Developers case 0: 320010037SARM gem5 Developers switch (crm) { 320110037SARM gem5 Developers case 2: 320210037SARM gem5 Developers switch (op2) { 320310037SARM gem5 Developers case 0: 320410037SARM gem5 Developers return MISCREG_MAIR_EL1; 320510037SARM gem5 Developers } 320610037SARM gem5 Developers break; 320710037SARM gem5 Developers case 3: 320810037SARM gem5 Developers switch (op2) { 320910037SARM gem5 Developers case 0: 321010037SARM gem5 Developers return MISCREG_AMAIR_EL1; 321110037SARM gem5 Developers } 321210037SARM gem5 Developers break; 321310037SARM gem5 Developers } 321410037SARM gem5 Developers break; 321510037SARM gem5 Developers case 4: 321610037SARM gem5 Developers switch (crm) { 321710037SARM gem5 Developers case 2: 321810037SARM gem5 Developers switch (op2) { 321910037SARM gem5 Developers case 0: 322010037SARM gem5 Developers return MISCREG_MAIR_EL2; 322110037SARM gem5 Developers } 322210037SARM gem5 Developers break; 322310037SARM gem5 Developers case 3: 322410037SARM gem5 Developers switch (op2) { 322510037SARM gem5 Developers case 0: 322610037SARM gem5 Developers return MISCREG_AMAIR_EL2; 322710037SARM gem5 Developers } 322810037SARM gem5 Developers break; 322910037SARM gem5 Developers } 323010037SARM gem5 Developers break; 323110037SARM gem5 Developers case 6: 323210037SARM gem5 Developers switch (crm) { 323310037SARM gem5 Developers case 2: 323410037SARM gem5 Developers switch (op2) { 323510037SARM gem5 Developers case 0: 323610037SARM gem5 Developers return MISCREG_MAIR_EL3; 323710037SARM gem5 Developers } 323810037SARM gem5 Developers break; 323910037SARM gem5 Developers case 3: 324010037SARM gem5 Developers switch (op2) { 324110037SARM gem5 Developers case 0: 324210037SARM gem5 Developers return MISCREG_AMAIR_EL3; 324310037SARM gem5 Developers } 324410037SARM gem5 Developers break; 324510037SARM gem5 Developers } 324610037SARM gem5 Developers break; 324710037SARM gem5 Developers } 324810037SARM gem5 Developers break; 324910037SARM gem5 Developers case 11: 325010037SARM gem5 Developers switch (op1) { 325110037SARM gem5 Developers case 1: 325210037SARM gem5 Developers switch (crm) { 325310037SARM gem5 Developers case 0: 325410037SARM gem5 Developers switch (op2) { 325510037SARM gem5 Developers case 2: 325610037SARM gem5 Developers return MISCREG_L2CTLR_EL1; 325710037SARM gem5 Developers case 3: 325810037SARM gem5 Developers return MISCREG_L2ECTLR_EL1; 325910037SARM gem5 Developers } 326010037SARM gem5 Developers break; 326110037SARM gem5 Developers } 326210037SARM gem5 Developers break; 326310037SARM gem5 Developers } 326410037SARM gem5 Developers break; 326510037SARM gem5 Developers case 12: 326610037SARM gem5 Developers switch (op1) { 326710037SARM gem5 Developers case 0: 326810037SARM gem5 Developers switch (crm) { 326910037SARM gem5 Developers case 0: 327010037SARM gem5 Developers switch (op2) { 327110037SARM gem5 Developers case 0: 327210037SARM gem5 Developers return MISCREG_VBAR_EL1; 327310037SARM gem5 Developers case 1: 327410037SARM gem5 Developers return MISCREG_RVBAR_EL1; 327510037SARM gem5 Developers } 327610037SARM gem5 Developers break; 327710037SARM gem5 Developers case 1: 327810037SARM gem5 Developers switch (op2) { 327910037SARM gem5 Developers case 0: 328010037SARM gem5 Developers return MISCREG_ISR_EL1; 328110037SARM gem5 Developers } 328210037SARM gem5 Developers break; 328310037SARM gem5 Developers } 328410037SARM gem5 Developers break; 328510037SARM gem5 Developers case 4: 328610037SARM gem5 Developers switch (crm) { 328710037SARM gem5 Developers case 0: 328810037SARM gem5 Developers switch (op2) { 328910037SARM gem5 Developers case 0: 329010037SARM gem5 Developers return MISCREG_VBAR_EL2; 329110037SARM gem5 Developers case 1: 329210037SARM gem5 Developers return MISCREG_RVBAR_EL2; 329310037SARM gem5 Developers } 329410037SARM gem5 Developers break; 329510037SARM gem5 Developers } 329610037SARM gem5 Developers break; 329710037SARM gem5 Developers case 6: 329810037SARM gem5 Developers switch (crm) { 329910037SARM gem5 Developers case 0: 330010037SARM gem5 Developers switch (op2) { 330110037SARM gem5 Developers case 0: 330210037SARM gem5 Developers return MISCREG_VBAR_EL3; 330310037SARM gem5 Developers case 1: 330410037SARM gem5 Developers return MISCREG_RVBAR_EL3; 330510037SARM gem5 Developers case 2: 330610037SARM gem5 Developers return MISCREG_RMR_EL3; 330710037SARM gem5 Developers } 330810037SARM gem5 Developers break; 330910037SARM gem5 Developers } 331010037SARM gem5 Developers break; 331110037SARM gem5 Developers } 331210037SARM gem5 Developers break; 331310037SARM gem5 Developers case 13: 331410037SARM gem5 Developers switch (op1) { 331510037SARM gem5 Developers case 0: 331610037SARM gem5 Developers switch (crm) { 331710037SARM gem5 Developers case 0: 331810037SARM gem5 Developers switch (op2) { 331910037SARM gem5 Developers case 1: 332010037SARM gem5 Developers return MISCREG_CONTEXTIDR_EL1; 332110037SARM gem5 Developers case 4: 332210037SARM gem5 Developers return MISCREG_TPIDR_EL1; 332310037SARM gem5 Developers } 332410037SARM gem5 Developers break; 332510037SARM gem5 Developers } 332610037SARM gem5 Developers break; 332710037SARM gem5 Developers case 3: 332810037SARM gem5 Developers switch (crm) { 332910037SARM gem5 Developers case 0: 333010037SARM gem5 Developers switch (op2) { 333110037SARM gem5 Developers case 2: 333210037SARM gem5 Developers return MISCREG_TPIDR_EL0; 333310037SARM gem5 Developers case 3: 333410037SARM gem5 Developers return MISCREG_TPIDRRO_EL0; 333510037SARM gem5 Developers } 333610037SARM gem5 Developers break; 333710037SARM gem5 Developers } 333810037SARM gem5 Developers break; 333910037SARM gem5 Developers case 4: 334010037SARM gem5 Developers switch (crm) { 334110037SARM gem5 Developers case 0: 334210037SARM gem5 Developers switch (op2) { 334310037SARM gem5 Developers case 2: 334410037SARM gem5 Developers return MISCREG_TPIDR_EL2; 334510037SARM gem5 Developers } 334610037SARM gem5 Developers break; 334710037SARM gem5 Developers } 334810037SARM gem5 Developers break; 334910037SARM gem5 Developers case 6: 335010037SARM gem5 Developers switch (crm) { 335110037SARM gem5 Developers case 0: 335210037SARM gem5 Developers switch (op2) { 335310037SARM gem5 Developers case 2: 335410037SARM gem5 Developers return MISCREG_TPIDR_EL3; 335510037SARM gem5 Developers } 335610037SARM gem5 Developers break; 335710037SARM gem5 Developers } 335810037SARM gem5 Developers break; 335910037SARM gem5 Developers } 336010037SARM gem5 Developers break; 336110037SARM gem5 Developers case 14: 336210037SARM gem5 Developers switch (op1) { 336310037SARM gem5 Developers case 0: 336410037SARM gem5 Developers switch (crm) { 336510037SARM gem5 Developers case 1: 336610037SARM gem5 Developers switch (op2) { 336710037SARM gem5 Developers case 0: 336810037SARM gem5 Developers return MISCREG_CNTKCTL_EL1; 336910037SARM gem5 Developers } 337010037SARM gem5 Developers break; 337110037SARM gem5 Developers } 337210037SARM gem5 Developers break; 337310037SARM gem5 Developers case 3: 337410037SARM gem5 Developers switch (crm) { 337510037SARM gem5 Developers case 0: 337610037SARM gem5 Developers switch (op2) { 337710037SARM gem5 Developers case 0: 337810037SARM gem5 Developers return MISCREG_CNTFRQ_EL0; 337910037SARM gem5 Developers case 1: 338010037SARM gem5 Developers return MISCREG_CNTPCT_EL0; 338110037SARM gem5 Developers case 2: 338210037SARM gem5 Developers return MISCREG_CNTVCT_EL0; 338310037SARM gem5 Developers } 338410037SARM gem5 Developers break; 338510037SARM gem5 Developers case 2: 338610037SARM gem5 Developers switch (op2) { 338710037SARM gem5 Developers case 0: 338810037SARM gem5 Developers return MISCREG_CNTP_TVAL_EL0; 338910037SARM gem5 Developers case 1: 339010037SARM gem5 Developers return MISCREG_CNTP_CTL_EL0; 339110037SARM gem5 Developers case 2: 339210037SARM gem5 Developers return MISCREG_CNTP_CVAL_EL0; 339310037SARM gem5 Developers } 339410037SARM gem5 Developers break; 339510037SARM gem5 Developers case 3: 339610037SARM gem5 Developers switch (op2) { 339710037SARM gem5 Developers case 0: 339810037SARM gem5 Developers return MISCREG_CNTV_TVAL_EL0; 339910037SARM gem5 Developers case 1: 340010037SARM gem5 Developers return MISCREG_CNTV_CTL_EL0; 340110037SARM gem5 Developers case 2: 340210037SARM gem5 Developers return MISCREG_CNTV_CVAL_EL0; 340310037SARM gem5 Developers } 340410037SARM gem5 Developers break; 340510037SARM gem5 Developers case 8: 340610037SARM gem5 Developers switch (op2) { 340710037SARM gem5 Developers case 0: 340810037SARM gem5 Developers return MISCREG_PMEVCNTR0_EL0; 340910037SARM gem5 Developers case 1: 341010037SARM gem5 Developers return MISCREG_PMEVCNTR1_EL0; 341110037SARM gem5 Developers case 2: 341210037SARM gem5 Developers return MISCREG_PMEVCNTR2_EL0; 341310037SARM gem5 Developers case 3: 341410037SARM gem5 Developers return MISCREG_PMEVCNTR3_EL0; 341510037SARM gem5 Developers case 4: 341610037SARM gem5 Developers return MISCREG_PMEVCNTR4_EL0; 341710037SARM gem5 Developers case 5: 341810037SARM gem5 Developers return MISCREG_PMEVCNTR5_EL0; 341910037SARM gem5 Developers } 342010037SARM gem5 Developers break; 342110037SARM gem5 Developers case 12: 342210037SARM gem5 Developers switch (op2) { 342310037SARM gem5 Developers case 0: 342410037SARM gem5 Developers return MISCREG_PMEVTYPER0_EL0; 342510037SARM gem5 Developers case 1: 342610037SARM gem5 Developers return MISCREG_PMEVTYPER1_EL0; 342710037SARM gem5 Developers case 2: 342810037SARM gem5 Developers return MISCREG_PMEVTYPER2_EL0; 342910037SARM gem5 Developers case 3: 343010037SARM gem5 Developers return MISCREG_PMEVTYPER3_EL0; 343110037SARM gem5 Developers case 4: 343210037SARM gem5 Developers return MISCREG_PMEVTYPER4_EL0; 343310037SARM gem5 Developers case 5: 343410037SARM gem5 Developers return MISCREG_PMEVTYPER5_EL0; 343510037SARM gem5 Developers } 343610037SARM gem5 Developers break; 343710037SARM gem5 Developers } 343810037SARM gem5 Developers break; 343910037SARM gem5 Developers case 4: 344010037SARM gem5 Developers switch (crm) { 344110037SARM gem5 Developers case 0: 344210037SARM gem5 Developers switch (op2) { 344310037SARM gem5 Developers case 3: 344410037SARM gem5 Developers return MISCREG_CNTVOFF_EL2; 344510037SARM gem5 Developers } 344610037SARM gem5 Developers break; 344710037SARM gem5 Developers case 1: 344810037SARM gem5 Developers switch (op2) { 344910037SARM gem5 Developers case 0: 345010037SARM gem5 Developers return MISCREG_CNTHCTL_EL2; 345110037SARM gem5 Developers } 345210037SARM gem5 Developers break; 345310037SARM gem5 Developers case 2: 345410037SARM gem5 Developers switch (op2) { 345510037SARM gem5 Developers case 0: 345610037SARM gem5 Developers return MISCREG_CNTHP_TVAL_EL2; 345710037SARM gem5 Developers case 1: 345810037SARM gem5 Developers return MISCREG_CNTHP_CTL_EL2; 345910037SARM gem5 Developers case 2: 346010037SARM gem5 Developers return MISCREG_CNTHP_CVAL_EL2; 346110037SARM gem5 Developers } 346210037SARM gem5 Developers break; 346310037SARM gem5 Developers } 346410037SARM gem5 Developers break; 346510037SARM gem5 Developers case 7: 346610037SARM gem5 Developers switch (crm) { 346710037SARM gem5 Developers case 2: 346810037SARM gem5 Developers switch (op2) { 346910037SARM gem5 Developers case 0: 347010037SARM gem5 Developers return MISCREG_CNTPS_TVAL_EL1; 347110037SARM gem5 Developers case 1: 347210037SARM gem5 Developers return MISCREG_CNTPS_CTL_EL1; 347310037SARM gem5 Developers case 2: 347410037SARM gem5 Developers return MISCREG_CNTPS_CVAL_EL1; 347510037SARM gem5 Developers } 347610037SARM gem5 Developers break; 347710037SARM gem5 Developers } 347810037SARM gem5 Developers break; 347910037SARM gem5 Developers } 348010037SARM gem5 Developers break; 348110037SARM gem5 Developers case 15: 348210037SARM gem5 Developers switch (op1) { 348310037SARM gem5 Developers case 0: 348410037SARM gem5 Developers switch (crm) { 348510037SARM gem5 Developers case 0: 348610037SARM gem5 Developers switch (op2) { 348710037SARM gem5 Developers case 0: 348810037SARM gem5 Developers return MISCREG_IL1DATA0_EL1; 348910037SARM gem5 Developers case 1: 349010037SARM gem5 Developers return MISCREG_IL1DATA1_EL1; 349110037SARM gem5 Developers case 2: 349210037SARM gem5 Developers return MISCREG_IL1DATA2_EL1; 349310037SARM gem5 Developers case 3: 349410037SARM gem5 Developers return MISCREG_IL1DATA3_EL1; 349510037SARM gem5 Developers } 349610037SARM gem5 Developers break; 349710037SARM gem5 Developers case 1: 349810037SARM gem5 Developers switch (op2) { 349910037SARM gem5 Developers case 0: 350010037SARM gem5 Developers return MISCREG_DL1DATA0_EL1; 350110037SARM gem5 Developers case 1: 350210037SARM gem5 Developers return MISCREG_DL1DATA1_EL1; 350310037SARM gem5 Developers case 2: 350410037SARM gem5 Developers return MISCREG_DL1DATA2_EL1; 350510037SARM gem5 Developers case 3: 350610037SARM gem5 Developers return MISCREG_DL1DATA3_EL1; 350710037SARM gem5 Developers case 4: 350810037SARM gem5 Developers return MISCREG_DL1DATA4_EL1; 350910037SARM gem5 Developers } 351010037SARM gem5 Developers break; 351110037SARM gem5 Developers } 351210037SARM gem5 Developers break; 351310037SARM gem5 Developers case 1: 351410037SARM gem5 Developers switch (crm) { 351510037SARM gem5 Developers case 0: 351610037SARM gem5 Developers switch (op2) { 351710037SARM gem5 Developers case 0: 351810037SARM gem5 Developers return MISCREG_L2ACTLR_EL1; 351910037SARM gem5 Developers } 352010037SARM gem5 Developers break; 352110037SARM gem5 Developers case 2: 352210037SARM gem5 Developers switch (op2) { 352310037SARM gem5 Developers case 0: 352410037SARM gem5 Developers return MISCREG_CPUACTLR_EL1; 352510037SARM gem5 Developers case 1: 352610037SARM gem5 Developers return MISCREG_CPUECTLR_EL1; 352710037SARM gem5 Developers case 2: 352810037SARM gem5 Developers return MISCREG_CPUMERRSR_EL1; 352910037SARM gem5 Developers case 3: 353010037SARM gem5 Developers return MISCREG_L2MERRSR_EL1; 353110037SARM gem5 Developers } 353210037SARM gem5 Developers break; 353310037SARM gem5 Developers case 3: 353410037SARM gem5 Developers switch (op2) { 353510037SARM gem5 Developers case 0: 353610037SARM gem5 Developers return MISCREG_CBAR_EL1; 353710037SARM gem5 Developers 353810037SARM gem5 Developers } 353910037SARM gem5 Developers break; 354010037SARM gem5 Developers } 354110037SARM gem5 Developers break; 354210037SARM gem5 Developers } 354310037SARM gem5 Developers break; 354410037SARM gem5 Developers } 354510037SARM gem5 Developers break; 354610037SARM gem5 Developers } 354710037SARM gem5 Developers 354810037SARM gem5 Developers return MISCREG_UNKNOWN; 354910037SARM gem5 Developers} 355010037SARM gem5 Developers 355110037SARM gem5 Developers} // namespace ArmISA 3552