32#include "iris/detail/IrisCppAdapter.h"
33#include "iris/detail/IrisObjects.h"
44 const std::string &iris_path) :
59 ThreadContext::initFromIrisInstance(resources);
89 iris::ResourceReadResult result;
91 return result.data.at(0);
97 iris::ResourceWriteResult result;
107 result = ((ArmISA::CPSR)result).nz;
110 result =
bits(result, 31, 28);
146 for (
auto &msn : msns) {
148 if (
id != iris::IRIS_UINT64_MAX)
152 "Unable to find address space(s) for breakpoints.");
virtual RegVal readCCRegFlat(RegIndex idx) const
void extractResourceMap(ResourceIds &ids, const ResourceMap &resources, const IdxNameMap &idx_names)
void writeMem(iris::MemorySpaceId space, Addr addr, const void *p, size_t size)
void readMem(iris::MemorySpaceId space, Addr addr, void *p, size_t size)
std::map< std::string, iris::ResourceInfo > ResourceMap
std::map< int, std::string > IdxNameMap
iris::MemorySpaceId getMemorySpaceId(const Iris::CanonicalMsn &msn) const
iris::IrisCppAdapter & call() const
iris::ResourceId extractResourceId(const ResourceMap &resources, const std::string &name)
virtual void setCCRegFlat(RegIndex idx, RegVal val)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void makeResponse()
Take a request packet and modify it in place to be suitable for returning as a response to that reque...
T * getPtr()
get a pointer to the data ptr.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
RegVal readMiscRegNoEffect(RegIndex idx) const override
RegVal readIntReg(RegIndex reg_idx) const override
bool translateAddress(Addr &paddr, Addr vaddr) override
RegVal readCCRegFlat(RegIndex idx) const override
static IdxNameMap ccRegIdxNameMap
void sendFunctional(PacketPtr pkt) override
const std::vector< iris::MemorySpaceId > & getBpSpaceIds() const override
CortexR52TC(gem5::BaseCPU *cpu, int id, System *system, gem5::BaseMMU *mmu, gem5::BaseISA *isa, iris::IrisConnectionInterface *iris_if, const std::string &iris_path)
void setCCRegFlat(RegIndex idx, RegVal val) override
void setIntReg(RegIndex reg_idx, RegVal val) override
void initFromIrisInstance(const ResourceMap &resources) override
static IdxNameMap miscRegIdxNameMap
static IdxNameMap intReg32IdxNameMap
static std::vector< iris::MemorySpaceId > bpSpaceIds
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
constexpr T insertBits(T val, unsigned first, unsigned last, B bit_val)
Returns val with bits first to last set to the LSBs of bit_val.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.