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