Go to the documentation of this file.
32 #include "iris/detail/IrisCppAdapter.h"
33 #include "iris/detail/IrisObjects.h"
40 iris::IrisConnectionInterface *iris_if,
41 const std::string &iris_path) :
66 iris::MemorySpaceId in = iris::IRIS_UINT64_MAX;
67 iris::MemorySpaceId out = iris::IRIS_UINT64_MAX;
70 if (space.canonicalMsn == in_msn)
72 else if (space.canonicalMsn == out_msn)
76 panic_if(in == iris::IRIS_UINT64_MAX || out == iris::IRIS_UINT64_MAX,
77 "Canonical IRIS memory space numbers not found.");
79 return ThreadContext::translateAddress(paddr, out,
vaddr, in);
85 ThreadContext::initFromIrisInstance(resources);
104 ArmISA::CPSR orig_cpsr;
106 auto *non_const_this =
const_cast<CortexA76TC *
>(
this);
110 ArmISA::CPSR new_cpsr = orig_cpsr;
127 ArmISA::CPSR orig_cpsr;
131 ArmISA::CPSR new_cpsr = orig_cpsr;
149 result = ((ArmISA::CPSR)result).nz;
152 result =
bits(result, 31, 28);
188 auto cmsn = space.canonicalMsn;
197 "Unable to find address space(s) for breakpoints.");
939 { 0,
"V0" }, { 1,
"V1" }, { 2,
"V2" }, { 3,
"V3" },
940 { 4,
"V4" }, { 5,
"V5" }, { 6,
"V6" }, { 7,
"V7" },
941 { 8,
"V8" }, { 9,
"V9" }, { 10,
"V10" }, { 11,
"V11" },
942 { 12,
"V12" }, { 13,
"V13" }, { 14,
"V14" }, { 15,
"V15" },
943 { 16,
"V16" }, { 17,
"V17" }, { 18,
"V18" }, { 19,
"V19" },
944 { 20,
"V20" }, { 21,
"V21" }, { 22,
"V22" }, { 23,
"V23" },
945 { 24,
"V24" }, { 25,
"V25" }, { 26,
"V26" }, { 27,
"V27" },
946 { 28,
"V28" }, { 29,
"V29" }, { 30,
"V30" }, { 31,
"V31" }
virtual RegVal readIntRegFlat(RegIndex idx) const =0
Flat register interfaces.
@ MISCREG_TLBI_IPAS2E1IS_Xt
bool translateAddress(Addr &paddr, Addr vaddr) override
@ MISCREG_ID_AA64AFR1_EL1
@ MISCREG_ID_AA64ISAR1_EL1
@ MISCREG_TLBI_VAALE1IS_Xt
@ MISCREG_ID_AA64ISAR0_EL1
@ MISCREG_DBGCLAIMCLR_EL1
@ MISCREG_TLBI_VAAE1IS_Xt
@ MISCREG_DBGAUTHSTATUS_EL1
static ExceptionLevel currEL(const ThreadContext *tc)
@ MISCREG_TLBI_VMALLS12E1
@ MISCREG_TLBI_VALE3IS_Xt
@ MISCREG_TLBI_ASIDE1IS_Xt
@ MISCREG_DBGCLAIMSET_EL1
@ MISCREG_TLBI_IPAS2LE1IS_Xt
static IdxNameMap vecRegIdxNameMap
@ MISCREG_TLBI_VALE2IS_Xt
@ MISCREG_ID_AA64MMFR0_EL1
@ MISCREG_ID_AA64AFR0_EL1
@ MISCREG_ID_AA64DFR1_EL1
std::vector< iris::MemorySpaceInfo > memorySpaces
static IdxNameMap ccRegIdxNameMap
@ PhysicalMemorySecureMsn
@ MISCREG_ID_AA64PFR0_EL1
ThreadContext is the external interface to all thread state for anything outside of the CPU.
static IdxNameMap miscRegIdxNameMap
virtual void setIntRegFlat(RegIndex idx, RegVal val)=0
@ MISCREG_ID_AA64MMFR1_EL1
CortexA76TC(::BaseCPU *cpu, int id, System *system, ::BaseTLB *dtb, ::BaseTLB *itb, ::BaseISA *isa, iris::IrisConnectionInterface *iris_if, const std::string &iris_path)
const std::vector< iris::MemorySpaceId > & getBpSpaceIds() const override
@ MISCREG_ID_AA64DFR0_EL1
@ MISCREG_TLBI_VMALLS12E1IS
RegVal readIntRegFlat(RegIndex idx) const override
Flat register interfaces.
RegVal readCCRegFlat(RegIndex idx) const override
RegVal readCCRegFlat(RegIndex idx) const override
std::map< int, std::string > IdxNameMap
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
RegVal readMiscRegNoEffect(RegIndex misc_reg) const override
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
@ MISCREG_TLBI_VALE1IS_Xt
@ PhysicalMemoryNonSecureMsn
void extractResourceMap(ResourceIds &ids, const ResourceMap &resources, const IdxNameMap &idx_names)
static IdxNameMap intReg32IdxNameMap
T insertBits(T val, int first, int last, B bit_val)
Returns val with bits first to last set to the LSBs of bit_val.
static IdxNameMap intReg64IdxNameMap
iris::ResourceId extractResourceId(const ResourceMap &resources, const std::string &name)
@ MISCREG_TLBI_IPAS2E1_Xt
void setMiscReg(RegIndex misc_reg, const RegVal val) override
ResourceIds flattenedIntIds
static std::vector< iris::MemorySpaceId > bpSpaceIds
void setIntRegFlat(RegIndex idx, RegVal val) override
std::map< std::string, iris::ResourceInfo > ResourceMap
void setCCRegFlat(RegIndex idx, RegVal val) override
@ MISCREG_TLBI_IPAS2LE1_Xt
void setCCRegFlat(RegIndex idx, RegVal val) override
@ MISCREG_ID_AA64PFR1_EL1
void initFromIrisInstance(const ResourceMap &resources) override
bool isSecure(ThreadContext *tc)
static IdxNameMap flattenedIntIdxNameMap
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Generated on Wed Sep 30 2020 14:01:58 for gem5 by doxygen 1.8.17