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