/*
 * Copyright 2020 Google, Inc.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met: redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer;
 * redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution;
 * neither the name of the copyright holders nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include "arch/arm/fastmodel/CortexR52/thread_context.hh"

#include "arch/arm/fastmodel/iris/memory_spaces.hh"
#include "arch/arm/utility.hh"
#include "iris/detail/IrisCppAdapter.h"
#include "iris/detail/IrisObjects.h"

namespace gem5
{

GEM5_DEPRECATED_NAMESPACE(FastModel, fastmodel);
namespace fastmodel
{

CortexR52TC::CortexR52TC(
        gem5::BaseCPU *cpu, int id, System *system, gem5::BaseMMU *mmu,
        gem5::BaseISA *isa, iris::IrisConnectionInterface *iris_if,
        const std::string &iris_path) :
    ThreadContext(cpu, id, system, mmu, isa, iris_if, iris_path)
{}

bool
CortexR52TC::translateAddress(Addr &paddr, Addr vaddr)
{
    // No MMU here.
    paddr = vaddr;
    return true;
}

void
CortexR52TC::initFromIrisInstance(const ResourceMap &resources)
{
    ThreadContext::initFromIrisInstance(resources);

    pcRscId = extractResourceId(resources, "R15");

    extractResourceMap(miscRegIds, resources, miscRegIdxNameMap);

    extractResourceMap(intReg32Ids, resources, intReg32IdxNameMap);
    extractResourceMap(ccRegIds, resources, ccRegIdxNameMap);
}

void
CortexR52TC::sendFunctional(PacketPtr pkt)
{
  auto msn = Iris::PhysicalMemoryMsn;
  auto id = getMemorySpaceId(msn);

  auto addr = pkt->getAddr();
  auto size = pkt->getSize();
  auto data = pkt->getPtr<uint8_t>();

  pkt->makeResponse();
  if (pkt->isRead())
      readMem(id, addr, data, size);
  else
      writeMem(id, addr, data, size);
}

RegVal
CortexR52TC::readIntReg(RegIndex reg_idx) const
{
    iris::ResourceReadResult result;
    call().resource_read(_instId, result, intReg32Ids.at(reg_idx));
    return result.data.at(0);
}

void
CortexR52TC::setIntReg(RegIndex reg_idx, RegVal val)
{
    iris::ResourceWriteResult result;
    call().resource_write(_instId, result, intReg32Ids.at(reg_idx), val);
}

RegVal
CortexR52TC::readCCRegFlat(RegIndex idx) const
{
    RegVal result = Iris::ThreadContext::readCCRegFlat(idx);
    switch (idx) {
      case ArmISA::cc_reg::Nz:
        result = ((ArmISA::CPSR)result).nz;
        break;
      case ArmISA::cc_reg::Fp:
        result = bits(result, 31, 28);
        break;
      default:
        break;
    }
    return result;
}

void
CortexR52TC::setCCRegFlat(RegIndex idx, RegVal val)
{
    switch (idx) {
      case ArmISA::cc_reg::Nz:
        {
            ArmISA::CPSR cpsr = readMiscRegNoEffect(ArmISA::MISCREG_CPSR);
            cpsr.nz = val;
            val = cpsr;
        }
        break;
      case ArmISA::cc_reg::Fp:
        {
            ArmISA::FPSCR fpscr = readMiscRegNoEffect(ArmISA::MISCREG_FPSCR);
            val = insertBits(fpscr, 31, 28, val);
        }
        break;
      default:
        break;
    }
    Iris::ThreadContext::setCCRegFlat(idx, val);
}

const std::vector<iris::MemorySpaceId> &
CortexR52TC::getBpSpaceIds() const
{
    if (bpSpaceIds.empty()) {
        std::vector<Iris::CanonicalMsn> msns{Iris::GuestMsn, Iris::NsHypMsn};
        for (auto &msn : msns) {
            auto id = getMemorySpaceId(msn);
            if (id != iris::IRIS_UINT64_MAX)
                bpSpaceIds.push_back(id);
        }
        panic_if(bpSpaceIds.empty(),
                "Unable to find address space(s) for breakpoints.");
    }
    return bpSpaceIds;
}

Iris::ThreadContext::IdxNameMap CortexR52TC::miscRegIdxNameMap({
        { ArmISA::MISCREG_CPSR, "CPSR" },
        { ArmISA::MISCREG_SPSR, "SPSR" },
        // ArmISA::MISCREG_SPSR_FIQ?
        // ArmISA::MISCREG_SPSR_IRQ?
        // ArmISA::MISCREG_SPSR_SVC?
        // ArmISA::MISCREG_SPSR_MON?
        // ArmISA::MISCREG_SPSR_ABT?
        // ArmISA::MISCREG_SPSR_HYP?
        // ArmISA::MISCREG_SPSR_UND?
        // ArmISA::MISCREG_ELR_HYP?
        // ArmISA::MISCREG_FPSID?
        // ArmISA::MISCREG_FPSCR?
        // ArmISA::MISCREG_MVFR1?
        // ArmISA::MISCREG_MVFR0?
        // ArmISA::MISCREG_FPEXC?

        // Helper registers
        // ArmISA::MISCREG_CPSR_MODE?
        // ArmISA::MISCREG_CPSR_Q?
        // ArmISA::MISCREG_FPSCR_EXC?
        // ArmISA::MISCREG_FPSCR_QC?
        // ArmISA::MISCREG_LOCKADDR?
        // ArmISA::MISCREG_LOCKFLAG?
        // ArmISA::MISCREG_PRRR_MAIR0?
        // ArmISA::MISCREG_PRRR_MAIR0_NS?
        // ArmISA::MISCREG_PRRR_MAIR0_S?
        // ArmISA::MISCREG_NMRR_MAIR1?
        // ArmISA::MISCREG_NMRR_MAIR1_NS?
        // ArmISA::MISCREG_NMRR_MAIR1_S?
        // ArmISA::MISCREG_PMXEVTYPER_PMCCFILTR?
        // ArmISA::MISCREG_SCTLR_RST?
        // ArmISA::MISCREG_SEV_MAILBOX?

        // AArch32 CP14 registers (debug/trace/ThumbEE/Jazelle control)
        // ArmISA::MISCREG_DBGDIDR?
        // ArmISA::MISCREG_DBGDSCRint?
        // ArmISA::MISCREG_DBGDCCINT?
        // ArmISA::MISCREG_DBGDTRTXint?
        // ArmISA::MISCREG_DBGDTRRXint?
        // ArmISA::MISCREG_DBGWFAR?
        // ArmISA::MISCREG_DBGVCR?
        // ArmISA::MISCREG_DBGDTRRXext?
        // ArmISA::MISCREG_DBGDSCRext?
        // ArmISA::MISCREG_DBGDTRTXext?
        // ArmISA::MISCREG_DBGOSECCR?
        // ArmISA::MISCREG_DBGBVR0?
        // ArmISA::MISCREG_DBGBVR1?
        // ArmISA::MISCREG_DBGBVR2?
        // ArmISA::MISCREG_DBGBVR3?
        // ArmISA::MISCREG_DBGBVR4?
        // ArmISA::MISCREG_DBGBVR5?
        // ArmISA::MISCREG_DBGBCR0?
        // ArmISA::MISCREG_DBGBCR1?
        // ArmISA::MISCREG_DBGBCR2?
        // ArmISA::MISCREG_DBGBCR3?
        // ArmISA::MISCREG_DBGBCR4?
        // ArmISA::MISCREG_DBGBCR5?
        // ArmISA::MISCREG_DBGWVR0?
        // ArmISA::MISCREG_DBGWVR1?
        // ArmISA::MISCREG_DBGWVR2?
        // ArmISA::MISCREG_DBGWVR3?
        // ArmISA::MISCREG_DBGWCR0?
        // ArmISA::MISCREG_DBGWCR1?
        // ArmISA::MISCREG_DBGWCR2?
        // ArmISA::MISCREG_DBGWCR3?
        // ArmISA::MISCREG_DBGDRAR?
        // ArmISA::MISCREG_DBGBXVR4?
        // ArmISA::MISCREG_DBGBXVR5?
        // ArmISA::MISCREG_DBGOSLAR?
        // ArmISA::MISCREG_DBGOSLSR?
        // ArmISA::MISCREG_DBGOSDLR?
        // ArmISA::MISCREG_DBGPRCR?
        // ArmISA::MISCREG_DBGDSAR?
        // ArmISA::MISCREG_DBGCLAIMSET?
        // ArmISA::MISCREG_DBGCLAIMCLR?
        // ArmISA::MISCREG_DBGAUTHSTATUS?
        // ArmISA::MISCREG_DBGDEVID2?
        // ArmISA::MISCREG_DBGDEVID1?
        // ArmISA::MISCREG_DBGDEVID0?
        // ArmISA::MISCREG_TEECR? not in ARM DDI 0487A.b+
        // ArmISA::MISCREG_JIDR?
        // ArmISA::MISCREG_TEEHBR? not in ARM DDI 0487A.b+
        // ArmISA::MISCREG_JOSCR?
        // ArmISA::MISCREG_JMCR?

        // AArch32 CP15 registers (system control)
        // ArmISA::MISCREG_MIDR?
        // ArmISA::MISCREG_CTR?
        // ArmISA::MISCREG_TCMTR?
        // ArmISA::MISCREG_TLBTR?
        // ArmISA::MISCREG_MPIDR?
        // ArmISA::MISCREG_REVIDR?
        // ArmISA::MISCREG_ID_PFR0?
        // ArmISA::MISCREG_ID_PFR1?
        // ArmISA::MISCREG_ID_DFR0?
        // ArmISA::MISCREG_ID_AFR0?
        // ArmISA::MISCREG_ID_MMFR0?
        // ArmISA::MISCREG_ID_MMFR1?
        // ArmISA::MISCREG_ID_MMFR2?
        // ArmISA::MISCREG_ID_MMFR3?
        // ArmISA::MISCREG_ID_MMFR4?
        // ArmISA::MISCREG_ID_ISAR0?
        // ArmISA::MISCREG_ID_ISAR1?
        // ArmISA::MISCREG_ID_ISAR2?
        // ArmISA::MISCREG_ID_ISAR3?
        // ArmISA::MISCREG_ID_ISAR4?
        // ArmISA::MISCREG_ID_ISAR5?
        // ArmISA::MISCREG_ID_ISAR6?
        // ArmISA::MISCREG_CCSIDR?
        // ArmISA::MISCREG_CLIDR?
        // ArmISA::MISCREG_AIDR?
        // ArmISA::MISCREG_CSSELR?
        // ArmISA::MISCREG_CSSELR_NS?
        // ArmISA::MISCREG_CSSELR_S?
        // ArmISA::MISCREG_VPIDR?
        // ArmISA::MISCREG_VMPIDR?
        // ArmISA::MISCREG_SCTLR?
        // ArmISA::MISCREG_SCTLR_NS?
        // ArmISA::MISCREG_SCTLR_S?
        // ArmISA::MISCREG_ACTLR?
        // ArmISA::MISCREG_ACTLR_NS?
        // ArmISA::MISCREG_ACTLR_S?
        // ArmISA::MISCREG_CPACR?
        // ArmISA::MISCREG_SCR?
        // ArmISA::MISCREG_SDER?
        // ArmISA::MISCREG_NSACR?
        // ArmISA::MISCREG_HSCTLR?
        // ArmISA::MISCREG_HACTLR?
        // ArmISA::MISCREG_HCR?
        // ArmISA::MISCREG_HDCR?
        // ArmISA::MISCREG_HCPTR?
        // ArmISA::MISCREG_HSTR?
        // ArmISA::MISCREG_HACR?
        // ArmISA::MISCREG_TTBR0?
        // ArmISA::MISCREG_TTBR0_NS?
        // ArmISA::MISCREG_TTBR0_S?
        // ArmISA::MISCREG_TTBR1?
        // ArmISA::MISCREG_TTBR1_NS?
        // ArmISA::MISCREG_TTBR1_S?
        // ArmISA::MISCREG_TTBCR?
        // ArmISA::MISCREG_TTBCR_NS?
        // ArmISA::MISCREG_TTBCR_S?
        // ArmISA::MISCREG_HTCR?
        // ArmISA::MISCREG_VTCR?
        // ArmISA::MISCREG_DACR?
        // ArmISA::MISCREG_DACR_NS?
        // ArmISA::MISCREG_DACR_S?
        // ArmISA::MISCREG_DFSR?
        // ArmISA::MISCREG_DFSR_NS?
        // ArmISA::MISCREG_DFSR_S?
        // ArmISA::MISCREG_IFSR?
        // ArmISA::MISCREG_IFSR_NS?
        // ArmISA::MISCREG_IFSR_S?
        // ArmISA::MISCREG_ADFSR?
        // ArmISA::MISCREG_ADFSR_NS?
        // ArmISA::MISCREG_ADFSR_S?
        // ArmISA::MISCREG_AIFSR?
        // ArmISA::MISCREG_AIFSR_NS?
        // ArmISA::MISCREG_AIFSR_S?
        // ArmISA::MISCREG_HADFSR?
        // ArmISA::MISCREG_HAIFSR?
        // ArmISA::MISCREG_HSR?
        // ArmISA::MISCREG_DFAR?
        // ArmISA::MISCREG_DFAR_NS?
        // ArmISA::MISCREG_DFAR_S?
        // ArmISA::MISCREG_IFAR?
        // ArmISA::MISCREG_IFAR_NS?
        // ArmISA::MISCREG_IFAR_S?
        // ArmISA::MISCREG_HDFAR?
        // ArmISA::MISCREG_HIFAR?
        // ArmISA::MISCREG_HPFAR?
        // ArmISA::MISCREG_ICIALLUIS?
        // ArmISA::MISCREG_BPIALLIS?
        // ArmISA::MISCREG_PAR?
        // ArmISA::MISCREG_PAR_NS?
        // ArmISA::MISCREG_PAR_S?
        // ArmISA::MISCREG_ICIALLU?
        // ArmISA::MISCREG_ICIMVAU?
        // ArmISA::MISCREG_CP15ISB?
        // ArmISA::MISCREG_BPIALL?
        // ArmISA::MISCREG_BPIMVA?
        // ArmISA::MISCREG_DCIMVAC?
        // ArmISA::MISCREG_DCISW?
        // ArmISA::MISCREG_ATS1CPR?
        // ArmISA::MISCREG_ATS1CPW?
        // ArmISA::MISCREG_ATS1CUR?
        // ArmISA::MISCREG_ATS1CUW?
        // ArmISA::MISCREG_ATS12NSOPR?
        // ArmISA::MISCREG_ATS12NSOPW?
        // ArmISA::MISCREG_ATS12NSOUR?
        // ArmISA::MISCREG_ATS12NSOUW?
        // ArmISA::MISCREG_DCCMVAC?
        // ArmISA::MISCREG_DCCSW?
        // ArmISA::MISCREG_CP15DSB?
        // ArmISA::MISCREG_CP15DMB?
        // ArmISA::MISCREG_DCCMVAU?
        // ArmISA::MISCREG_DCCIMVAC?
        // ArmISA::MISCREG_DCCISW?
        // ArmISA::MISCREG_ATS1HR?
        // ArmISA::MISCREG_ATS1HW?
        // ArmISA::MISCREG_TLBIALLIS?
        // ArmISA::MISCREG_TLBIMVAIS?
        // ArmISA::MISCREG_TLBIASIDIS?
        // ArmISA::MISCREG_TLBIMVAAIS?
        // ArmISA::MISCREG_TLBIMVALIS?
        // ArmISA::MISCREG_TLBIMVAALIS?
        // ArmISA::MISCREG_ITLBIALL?
        // ArmISA::MISCREG_ITLBIMVA?
        // ArmISA::MISCREG_ITLBIASID?
        // ArmISA::MISCREG_DTLBIALL?
        // ArmISA::MISCREG_DTLBIMVA?
        // ArmISA::MISCREG_DTLBIASID?
        // ArmISA::MISCREG_TLBIALL?
        // ArmISA::MISCREG_TLBIMVA?
        // ArmISA::MISCREG_TLBIASID?
        // ArmISA::MISCREG_TLBIMVAA?
        // ArmISA::MISCREG_TLBIMVAL?
        // ArmISA::MISCREG_TLBIMVAAL?
        // ArmISA::MISCREG_TLBIIPAS2IS?
        // ArmISA::MISCREG_TLBIIPAS2LIS?
        // ArmISA::MISCREG_TLBIALLHIS?
        // ArmISA::MISCREG_TLBIMVAHIS?
        // ArmISA::MISCREG_TLBIALLNSNHIS?
        // ArmISA::MISCREG_TLBIMVALHIS?
        // ArmISA::MISCREG_TLBIIPAS2?
        // ArmISA::MISCREG_TLBIIPAS2L?
        // ArmISA::MISCREG_TLBIALLH?
        // ArmISA::MISCREG_TLBIMVAH?
        // ArmISA::MISCREG_TLBIALLNSNH?
        // ArmISA::MISCREG_TLBIMVALH?
        // ArmISA::MISCREG_PMCR?
        // ArmISA::MISCREG_PMCNTENSET?
        // ArmISA::MISCREG_PMCNTENCLR?
        // ArmISA::MISCREG_PMOVSR?
        // ArmISA::MISCREG_PMSWINC?
        // ArmISA::MISCREG_PMSELR?
        // ArmISA::MISCREG_PMCEID0?
        // ArmISA::MISCREG_PMCEID1?
        // ArmISA::MISCREG_PMCCNTR?
        // ArmISA::MISCREG_PMXEVTYPER?
        // ArmISA::MISCREG_PMCCFILTR?
        // ArmISA::MISCREG_PMXEVCNTR?
        // ArmISA::MISCREG_PMUSERENR?
        // ArmISA::MISCREG_PMINTENSET?
        // ArmISA::MISCREG_PMINTENCLR?
        // ArmISA::MISCREG_PMOVSSET?
        // ArmISA::MISCREG_L2CTLR?
        // ArmISA::MISCREG_L2ECTLR?
        // ArmISA::MISCREG_PRRR?
        // ArmISA::MISCREG_PRRR_NS?
        // ArmISA::MISCREG_PRRR_S?
        // ArmISA::MISCREG_MAIR0?
        // ArmISA::MISCREG_MAIR0_NS?
        // ArmISA::MISCREG_MAIR0_S?
        // ArmISA::MISCREG_NMRR?
        // ArmISA::MISCREG_NMRR_NS?
        // ArmISA::MISCREG_NMRR_S?
        // ArmISA::MISCREG_MAIR1?
        // ArmISA::MISCREG_MAIR1_NS?
        // ArmISA::MISCREG_MAIR1_S?
        // ArmISA::MISCREG_AMAIR0?
        // ArmISA::MISCREG_AMAIR0_NS?
        // ArmISA::MISCREG_AMAIR0_S?
        // ArmISA::MISCREG_AMAIR1?
        // ArmISA::MISCREG_AMAIR1_NS?
        // ArmISA::MISCREG_AMAIR1_S?
        // ArmISA::MISCREG_HMAIR0?
        // ArmISA::MISCREG_HMAIR1?
        // ArmISA::MISCREG_HAMAIR0?
        // ArmISA::MISCREG_HAMAIR1?
        // ArmISA::MISCREG_VBAR?
        // ArmISA::MISCREG_VBAR_NS?
        // ArmISA::MISCREG_VBAR_S?
        // ArmISA::MISCREG_MVBAR?
        // ArmISA::MISCREG_RMR?
        // ArmISA::MISCREG_ISR?
        // ArmISA::MISCREG_HVBAR?
        // ArmISA::MISCREG_FCSEIDR?
        // ArmISA::MISCREG_CONTEXTIDR?
        // ArmISA::MISCREG_CONTEXTIDR_NS?
        // ArmISA::MISCREG_CONTEXTIDR_S?
        // ArmISA::MISCREG_TPIDRURW?
        // ArmISA::MISCREG_TPIDRURW_NS?
        // ArmISA::MISCREG_TPIDRURW_S?
        // ArmISA::MISCREG_TPIDRURO?
        // ArmISA::MISCREG_TPIDRURO_NS?
        // ArmISA::MISCREG_TPIDRURO_S?
        // ArmISA::MISCREG_TPIDRPRW?
        // ArmISA::MISCREG_TPIDRPRW_NS?
        /// ArmISA::MISCREG_TPIDRPRW_S?
        // ArmISA::MISCREG_HTPIDR?
        // ArmISA::MISCREG_CNTFRQ?
        // ArmISA::MISCREG_CNTKCTL?
        // ArmISA::MISCREG_CNTP_TVAL?
        // ArmISA::MISCREG_CNTP_TVAL_NS?
        // ArmISA::MISCREG_CNTP_TVAL_S?
        // ArmISA::MISCREG_CNTP_CTL?
        // ArmISA::MISCREG_CNTP_CTL_NS?
        // ArmISA::MISCREG_CNTP_CTL_S?
        // ArmISA::MISCREG_CNTV_TVAL?
        // ArmISA::MISCREG_CNTV_CTL?
        // ArmISA::MISCREG_CNTHCTL?
        // ArmISA::MISCREG_CNTHP_TVAL?
        // ArmISA::MISCREG_CNTHP_CTL?
        // ArmISA::MISCREG_IL1DATA0?
        // ArmISA::MISCREG_IL1DATA1?
        // ArmISA::MISCREG_IL1DATA2?
        // ArmISA::MISCREG_IL1DATA3?
        // ArmISA::MISCREG_DL1DATA0?
        // ArmISA::MISCREG_DL1DATA1?
        // ArmISA::MISCREG_DL1DATA2?
        // ArmISA::MISCREG_DL1DATA3?
        // ArmISA::MISCREG_DL1DATA4?
        // ArmISA::MISCREG_RAMINDEX?
        // ArmISA::MISCREG_L2ACTLR?
        // ArmISA::MISCREG_CBAR?
        // ArmISA::MISCREG_HTTBR?
        // ArmISA::MISCREG_VTTBR?
        // ArmISA::MISCREG_CNTPCT?
        // ArmISA::MISCREG_CNTVCT?
        // ArmISA::MISCREG_CNTP_CVAL?
        // ArmISA::MISCREG_CNTP_CVAL_NS?
        // ArmISA::MISCREG_CNTP_CVAL_S?
        // ArmISA::MISCREG_CNTV_CVAL?
        // ArmISA::MISCREG_CNTVOFF?
        // ArmISA::MISCREG_CNTHP_CVAL?
        // ArmISA::MISCREG_CPUMERRSR?
        // ArmISA::MISCREG_L2MERRSR?

        // AArch64 registers (Op0=2)
        // ArmISA::MISCREG_MDCCINT_EL1?
        // ArmISA::MISCREG_OSDTRRX_EL1?
        // ArmISA::MISCREG_MDSCR_EL1?
        // ArmISA::MISCREG_OSDTRTX_EL1?
        // ArmISA::MISCREG_OSECCR_EL1?
        // ArmISA::MISCREG_DBGBVR0_EL1?
        // ArmISA::MISCREG_DBGBVR1_EL1?
        // ArmISA::MISCREG_DBGBVR2_EL1?
        // ArmISA::MISCREG_DBGBVR3_EL1?
        // ArmISA::MISCREG_DBGBVR4_EL1?
        // ArmISA::MISCREG_DBGBVR5_EL1?
        // ArmISA::MISCREG_DBGBCR0_EL1?
        // ArmISA::MISCREG_DBGBCR1_EL1?
        // ArmISA::MISCREG_DBGBCR2_EL1?
        // ArmISA::MISCREG_DBGBCR3_EL1?
        // ArmISA::MISCREG_DBGBCR4_EL1?
        // ArmISA::MISCREG_DBGBCR5_EL1?
        // ArmISA::MISCREG_DBGWVR0_EL1?
        // ArmISA::MISCREG_DBGWVR1_EL1?
        // ArmISA::MISCREG_DBGWVR2_EL1?
        // ArmISA::MISCREG_DBGWVR3_EL1?
        // ArmISA::MISCREG_DBGWCR0_EL1?
        // ArmISA::MISCREG_DBGWCR1_EL1?
        // ArmISA::MISCREG_DBGWCR2_EL1?
        // ArmISA::MISCREG_DBGWCR3_EL1?
        // ArmISA::MISCREG_MDCCSR_EL0?
        // ArmISA::MISCREG_MDDTR_EL0?
        // ArmISA::MISCREG_MDDTRTX_EL0?
        // ArmISA::MISCREG_MDDTRRX_EL0?
        // ArmISA::MISCREG_DBGVCR32_EL2?
        // ArmISA::MISCREG_MDRAR_EL1?
        // ArmISA::MISCREG_OSLAR_EL1?
        // ArmISA::MISCREG_OSLSR_EL1?
        // ArmISA::MISCREG_OSDLR_EL1?
        // ArmISA::MISCREG_DBGPRCR_EL1?
        // ArmISA::MISCREG_DBGCLAIMSET_EL1?
        // ArmISA::MISCREG_DBGCLAIMCLR_EL1?
        // ArmISA::MISCREG_DBGAUTHSTATUS_EL1?
        // ArmISA::MISCREG_TEECR32_EL1? not in ARM DDI 0487A.b+
        // ArmISA::MISCREG_TEEHBR32_EL1? not in ARM DDI 0487A.b+

        // AArch64 registers (Op0=1)
        // ArmISA::MISCREG_MIDR_EL1?
        // ArmISA::MISCREG_MPIDR_EL1?
        // ArmISA::MISCREG_REVIDR_EL1?
        // ArmISA::MISCREG_ID_PFR0_EL1?
        // ArmISA::MISCREG_ID_PFR1_EL1?
        // ArmISA::MISCREG_ID_DFR0_EL1?
        // ArmISA::MISCREG_ID_AFR0_EL1?
        // ArmISA::MISCREG_ID_MMFR0_EL1?
        // ArmISA::MISCREG_ID_MMFR1_EL1?
        // ArmISA::MISCREG_ID_MMFR2_EL1?
        // ArmISA::MISCREG_ID_MMFR3_EL1?
        // ArmISA::MISCREG_ID_MMFR4_EL1?
        // ArmISA::MISCREG_ID_ISAR0_EL1?
        // ArmISA::MISCREG_ID_ISAR1_EL1?
        // ArmISA::MISCREG_ID_ISAR2_EL1?
        // ArmISA::MISCREG_ID_ISAR3_EL1?
        // ArmISA::MISCREG_ID_ISAR4_EL1?
        // ArmISA::MISCREG_ID_ISAR5_EL1?
        // ArmISA::MISCREG_ID_ISAR6_EL1?
        // ArmISA::MISCREG_MVFR0_EL1?
        // ArmISA::MISCREG_MVFR1_EL1?
        // ArmISA::MISCREG_MVFR2_EL1?
        // ArmISA::MISCREG_ID_AA64PFR0_EL1?
        // ArmISA::MISCREG_ID_AA64PFR1_EL1?
        // ArmISA::MISCREG_ID_AA64DFR0_EL1?
        // ArmISA::MISCREG_ID_AA64DFR1_EL1?
        // ArmISA::MISCREG_ID_AA64AFR0_EL1?
        // ArmISA::MISCREG_ID_AA64AFR1_EL1?
        // ArmISA::MISCREG_ID_AA64ISAR0_EL1?
        // ArmISA::MISCREG_ID_AA64ISAR1_EL1?
        // ArmISA::MISCREG_ID_AA64MMFR0_EL1?
        // ArmISA::MISCREG_ID_AA64MMFR1_EL1?
        // ArmISA::MISCREG_CCSIDR_EL1?
        // ArmISA::MISCREG_CLIDR_EL1?
        // ArmISA::MISCREG_AIDR_EL1?
        // ArmISA::MISCREG_CSSELR_EL1?
        // ArmISA::MISCREG_CTR_EL0?
        // ArmISA::MISCREG_DCZID_EL0?
        // ArmISA::MISCREG_VPIDR_EL2?
        // ArmISA::MISCREG_VMPIDR_EL2?
        // ArmISA::MISCREG_SCTLR_EL1?
        // ArmISA::MISCREG_ACTLR_EL1?
        // ArmISA::MISCREG_CPACR_EL1?
        // ArmISA::MISCREG_SCTLR_EL2?
        // ArmISA::MISCREG_ACTLR_EL2?
        // ArmISA::MISCREG_HCR_EL2?
        // ArmISA::MISCREG_MDCR_EL2?
        // ArmISA::MISCREG_CPTR_EL2?
        // ArmISA::MISCREG_HSTR_EL2?
        // ArmISA::MISCREG_HACR_EL2?
        // ArmISA::MISCREG_SCTLR_EL3?
        // ArmISA::MISCREG_ACTLR_EL3?
        // ArmISA::MISCREG_SCR_EL3?
        // ArmISA::MISCREG_SDER32_EL3?
        // ArmISA::MISCREG_CPTR_EL3?
        // ArmISA::MISCREG_MDCR_EL3?
        // ArmISA::MISCREG_TTBR0_EL1?
        // ArmISA::MISCREG_TTBR1_EL1?
        // ArmISA::MISCREG_TCR_EL1?
        // ArmISA::MISCREG_TTBR0_EL2?
        // ArmISA::MISCREG_TCR_EL2?
        // ArmISA::MISCREG_VTTBR_EL2?
        // ArmISA::MISCREG_VTCR_EL2?
        // ArmISA::MISCREG_TTBR0_EL3?
        // ArmISA::MISCREG_TCR_EL3?
        // ArmISA::MISCREG_DACR32_EL2?
        // ArmISA::MISCREG_SPSR_EL1?
        // ArmISA::MISCREG_ELR_EL1?
        // ArmISA::MISCREG_SP_EL0?
        // ArmISA::MISCREG_SPSEL?
        // ArmISA::MISCREG_CURRENTEL?
        // ArmISA::MISCREG_NZCV?
        // ArmISA::MISCREG_DAIF?
        // ArmISA::MISCREG_FPCR?
        { ArmISA::MISCREG_FPSCR, "FPSCR" },
        // ArmISA::MISCREG_DSPSR_EL0?
        // ArmISA::MISCREG_DLR_EL0?
        // ArmISA::MISCREG_SPSR_EL2?
        // ArmISA::MISCREG_ELR_EL2?
        // ArmISA::MISCREG_SP_EL1?
        // ArmISA::MISCREG_SPSR_IRQ_AA64?
        // ArmISA::MISCREG_SPSR_ABT_AA64?
        // ArmISA::MISCREG_SPSR_UND_AA64?
        // ArmISA::MISCREG_SPSR_FIQ_AA64?
        // ArmISA::MISCREG_SPSR_EL3?
        // ArmISA::MISCREG_ELR_EL3?
        // ArmISA::MISCREG_SP_EL2?
        // ArmISA::MISCREG_AFSR0_EL1?
        // ArmISA::MISCREG_AFSR1_EL1?
        // ArmISA::MISCREG_ESR_EL1?
        // ArmISA::MISCREG_IFSR32_EL2?
        // ArmISA::MISCREG_AFSR0_EL2?
        // ArmISA::MISCREG_AFSR1_EL2?
        // ArmISA::MISCREG_ESR_EL2?
        // ArmISA::MISCREG_FPEXC32_EL2?
        // ArmISA::MISCREG_AFSR0_EL3?
        // ArmISA::MISCREG_AFSR1_EL3?
        // ArmISA::MISCREG_ESR_EL3?
        // ArmISA::MISCREG_FAR_EL1?
        // ArmISA::MISCREG_FAR_EL2?
        // ArmISA::MISCREG_HPFAR_EL2?
        // ArmISA::MISCREG_FAR_EL3?
        // ArmISA::MISCREG_IC_IALLUIS?
        // ArmISA::MISCREG_PAR_EL1?
        // ArmISA::MISCREG_IC_IALLU?
        // ArmISA::MISCREG_DC_IVAC_Xt?
        // ArmISA::MISCREG_DC_ISW_Xt?
        // ArmISA::MISCREG_AT_S1E1R_Xt?
        // ArmISA::MISCREG_AT_S1E1W_Xt?
        // ArmISA::MISCREG_AT_S1E0R_Xt?
        // ArmISA::MISCREG_AT_S1E0W_Xt?
        // ArmISA::MISCREG_DC_CSW_Xt?
        // ArmISA::MISCREG_DC_CISW_Xt?
        // ArmISA::MISCREG_DC_ZVA_Xt?
        // ArmISA::MISCREG_IC_IVAU_Xt?
        // ArmISA::MISCREG_DC_CVAC_Xt?
        // ArmISA::MISCREG_DC_CVAU_Xt?
        // ArmISA::MISCREG_DC_CIVAC_Xt?
        // ArmISA::MISCREG_AT_S1E2R_Xt?
        // ArmISA::MISCREG_AT_S1E2W_Xt?
        // ArmISA::MISCREG_AT_S12E1R_Xt?
        // ArmISA::MISCREG_AT_S12E1W_Xt?
        // ArmISA::MISCREG_AT_S12E0R_Xt?
        // ArmISA::MISCREG_AT_S12E0W_Xt?
        // ArmISA::MISCREG_AT_S1E3R_Xt?
        // ArmISA::MISCREG_AT_S1E3W_Xt?
        // ArmISA::MISCREG_TLBI_VMALLE1IS?
        // ArmISA::MISCREG_TLBI_VAE1IS_Xt?
        // ArmISA::MISCREG_TLBI_ASIDE1IS_Xt?
        // ArmISA::MISCREG_TLBI_VAAE1IS_Xt?
        // ArmISA::MISCREG_TLBI_VALE1IS_Xt?
        // ArmISA::MISCREG_TLBI_VAALE1IS_Xt?
        // ArmISA::MISCREG_TLBI_VMALLE1?
        // ArmISA::MISCREG_TLBI_VAE1_Xt?
        // ArmISA::MISCREG_TLBI_ASIDE1_Xt?
        // ArmISA::MISCREG_TLBI_VAAE1_Xt?
        // ArmISA::MISCREG_TLBI_VALE1_Xt?
        // ArmISA::MISCREG_TLBI_VAALE1_Xt?
        // ArmISA::MISCREG_TLBI_IPAS2E1IS_Xt?
        // ArmISA::MISCREG_TLBI_IPAS2LE1IS_Xt?
        // ArmISA::MISCREG_TLBI_ALLE2IS?
        // ArmISA::MISCREG_TLBI_VAE2IS_Xt?
        // ArmISA::MISCREG_TLBI_ALLE1IS?
        // ArmISA::MISCREG_TLBI_VALE2IS_Xt?
        // ArmISA::MISCREG_TLBI_VMALLS12E1IS?
        // ArmISA::MISCREG_TLBI_IPAS2E1_Xt?
        // ArmISA::MISCREG_TLBI_IPAS2LE1_Xt?
        // ArmISA::MISCREG_TLBI_ALLE2?
        // ArmISA::MISCREG_TLBI_VAE2_Xt?
        // ArmISA::MISCREG_TLBI_ALLE1?
        // ArmISA::MISCREG_TLBI_VALE2_Xt?
        // ArmISA::MISCREG_TLBI_VMALLS12E1?
        // ArmISA::MISCREG_TLBI_ALLE3IS?
        // ArmISA::MISCREG_TLBI_VAE3IS_Xt?
        // ArmISA::MISCREG_TLBI_VALE3IS_Xt?
        // ArmISA::MISCREG_TLBI_ALLE3?
        // ArmISA::MISCREG_TLBI_VAE3_Xt?
        // ArmISA::MISCREG_TLBI_VALE3_Xt?
        // ArmISA::MISCREG_PMINTENSET_EL1?
        // ArmISA::MISCREG_PMINTENCLR_EL1?
        // ArmISA::MISCREG_PMCR_EL0?
        // ArmISA::MISCREG_PMCNTENSET_EL0?
        // ArmISA::MISCREG_PMCNTENCLR_EL0?
        // ArmISA::MISCREG_PMOVSCLR_EL0?
        // ArmISA::MISCREG_PMSWINC_EL0?
        // ArmISA::MISCREG_PMSELR_EL0?
        // ArmISA::MISCREG_PMCEID0_EL0?
        // ArmISA::MISCREG_PMCEID1_EL0?
        // ArmISA::MISCREG_PMCCNTR_EL0?
        // ArmISA::MISCREG_PMXEVTYPER_EL0?
        // ArmISA::MISCREG_PMCCFILTR_EL0?
        // ArmISA::MISCREG_PMXEVCNTR_EL0?
        // ArmISA::MISCREG_PMUSERENR_EL0?
        // ArmISA::MISCREG_PMOVSSET_EL0?
        // ArmISA::MISCREG_MAIR_EL1?
        // ArmISA::MISCREG_AMAIR_EL1?
        // ArmISA::MISCREG_MAIR_EL2?
        // ArmISA::MISCREG_AMAIR_EL2?
        // ArmISA::MISCREG_MAIR_EL3?
        // ArmISA::MISCREG_AMAIR_EL3?
        // ArmISA::MISCREG_L2CTLR_EL1?
        // ArmISA::MISCREG_L2ECTLR_EL1?
        // ArmISA::MISCREG_VBAR_EL1?
        // ArmISA::MISCREG_RVBAR_EL1?
        // ArmISA::MISCREG_ISR_EL1?
        // ArmISA::MISCREG_VBAR_EL2?
        // ArmISA::MISCREG_RVBAR_EL2?
        // ArmISA::MISCREG_VBAR_EL3?
        // ArmISA::MISCREG_RVBAR_EL3?
        // ArmISA::MISCREG_RMR_EL3?
        // ArmISA::MISCREG_CONTEXTIDR_EL1?
        // ArmISA::MISCREG_TPIDR_EL1?
        // ArmISA::MISCREG_TPIDR_EL0?
        // ArmISA::MISCREG_TPIDRRO_EL0?
        // ArmISA::MISCREG_TPIDR_EL2?
        // ArmISA::MISCREG_TPIDR_EL3?
        // ArmISA::MISCREG_CNTKCTL_EL1?
        // ArmISA::MISCREG_CNTFRQ_EL0?
        // ArmISA::MISCREG_CNTPCT_EL0?
        // ArmISA::MISCREG_CNTVCT_EL0?
        // ArmISA::MISCREG_CNTP_TVAL_EL0?
        // ArmISA::MISCREG_CNTP_CTL_EL0?
        // ArmISA::MISCREG_CNTP_CVAL_EL0?
        // ArmISA::MISCREG_CNTV_TVAL_EL0?
        // ArmISA::MISCREG_CNTV_CTL_EL0?
        // ArmISA::MISCREG_CNTV_CVAL_EL0?
        // ArmISA::MISCREG_PMEVCNTR0_EL0?
        // ArmISA::MISCREG_PMEVCNTR1_EL0?
        // ArmISA::MISCREG_PMEVCNTR2_EL0?
        // ArmISA::MISCREG_PMEVCNTR3_EL0?
        // ArmISA::MISCREG_PMEVCNTR4_EL0?
        // ArmISA::MISCREG_PMEVCNTR5_EL0?
        // ArmISA::MISCREG_PMEVTYPER0_EL0?
        // ArmISA::MISCREG_PMEVTYPER1_EL0?
        // ArmISA::MISCREG_PMEVTYPER2_EL0?
        // ArmISA::MISCREG_PMEVTYPER3_EL0?
        // ArmISA::MISCREG_PMEVTYPER4_EL0?
        // ArmISA::MISCREG_PMEVTYPER5_EL0?
        // ArmISA::MISCREG_CNTVOFF_EL2?
        // ArmISA::MISCREG_CNTHCTL_EL2?
        // ArmISA::MISCREG_CNTHP_TVAL_EL2?
        // ArmISA::MISCREG_CNTHP_CTL_EL2?
        // ArmISA::MISCREG_CNTHP_CVAL_EL2?
        // ArmISA::MISCREG_CNTPS_TVAL_EL1?
        // ArmISA::MISCREG_CNTPS_CTL_EL1?
        // ArmISA::MISCREG_CNTPS_CVAL_EL1?
        // ArmISA::MISCREG_IL1DATA0_EL1?
        // ArmISA::MISCREG_IL1DATA1_EL1?
        // ArmISA::MISCREG_IL1DATA2_EL1?
        // ArmISA::MISCREG_IL1DATA3_EL1?
        // ArmISA::MISCREG_DL1DATA0_EL1?
        // ArmISA::MISCREG_DL1DATA1_EL1?
        // ArmISA::MISCREG_DL1DATA2_EL1?
        // ArmISA::MISCREG_DL1DATA3_EL1?
        // ArmISA::MISCREG_DL1DATA4_EL1?
        // ArmISA::MISCREG_L2ACTLR_EL1?
        // ArmISA::MISCREG_CPUACTLR_EL1?
        // ArmISA::MISCREG_CPUECTLR_EL1?
        // ArmISA::MISCREG_CPUMERRSR_EL1?
        // ArmISA::MISCREG_L2MERRSR_EL1?
        // ArmISA::MISCREG_CBAR_EL1?
        // ArmISA::MISCREG_CONTEXTIDR_EL2?

        // Introduced in ARMv8.1
        // ArmISA::MISCREG_TTBR1_EL2?
        // ArmISA::MISCREG_CNTHV_CTL_EL2?
        // ArmISA::MISCREG_CNTHV_CVAL_EL2?
        // ArmISA::MISCREG_CNTHV_TVAL_EL2?

        // RAS extension (unimplemented)
        // ArmISA::MISCREG_ERRIDR_EL1?
        // ArmISA::MISCREG_ERRSELR_EL1?
        // ArmISA::MISCREG_ERXFR_EL1?
        // ArmISA::MISCREG_ERXCTLR_EL1?
        // ArmISA::MISCREG_ERXSTATUS_EL1?
        // ArmISA::MISCREG_ERXADDR_EL1?
        // ArmISA::MISCREG_ERXMISC0_EL1?
        // ArmISA::MISCREG_ERXMISC1_EL1?
        // ArmISA::MISCREG_DISR_EL1?
        // ArmISA::MISCREG_VSESR_EL2?
        // ArmISA::MISCREG_VDISR_EL2?
});

Iris::ThreadContext::IdxNameMap CortexR52TC::intReg32IdxNameMap({
        { ArmISA::int_reg::R0, "R0" },
        { ArmISA::int_reg::R1, "R1" },
        { ArmISA::int_reg::R2, "R2" },
        { ArmISA::int_reg::R3, "R3" },
        { ArmISA::int_reg::R4, "R4" },
        { ArmISA::int_reg::R5, "R5" },
        { ArmISA::int_reg::R6, "R6" },
        { ArmISA::int_reg::R7, "R7" },
        { ArmISA::int_reg::R8, "R8" },
        { ArmISA::int_reg::R9, "R9" },
        { ArmISA::int_reg::R10, "R10" },
        { ArmISA::int_reg::R11, "R11" },
        { ArmISA::int_reg::R12, "R12" },
        { ArmISA::int_reg::R13, "R13" },
        { ArmISA::int_reg::R14, "R14" },
        { ArmISA::int_reg::R15, "R15" }
});

Iris::ThreadContext::IdxNameMap CortexR52TC::ccRegIdxNameMap({
        { ArmISA::cc_reg::Nz, "CPSR" },
        { ArmISA::cc_reg::C, "CPSR.C" },
        { ArmISA::cc_reg::V, "CPSR.V" },
        { ArmISA::cc_reg::Ge, "CPSR.GE" },
        { ArmISA::cc_reg::Fp, "FPSCR" },
});

std::vector<iris::MemorySpaceId> CortexR52TC::bpSpaceIds;

} // namespace fastmodel
} // namespace gem5
