fastmodel: Fix building with Fast Model.
Some build errors had crept in over time. This change fixes them. Change-Id: I457d32190aa65b0ecd2d6de3f4f5d42d922ae5d5 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46120 Reviewed-by: Yu-hsin Wang <yuhsingw@google.com> Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include "arch/arm/fastmodel/CortexA76/cortex_a76.hh"
|
||||
|
||||
#include "arch/arm/fastmodel/iris/cpu.hh"
|
||||
#include "arch/arm/regs/misc.hh"
|
||||
#include "base/logging.hh"
|
||||
#include "dev/arm/base_gic.hh"
|
||||
#include "sim/core.hh"
|
||||
|
||||
@@ -70,7 +70,7 @@ SCGIC::Terminator::sendTowardsCPU(uint8_t len, const uint8_t *data)
|
||||
|
||||
SCGIC::SCGIC(const SCFastModelGICParams ¶ms,
|
||||
sc_core::sc_module_name _name)
|
||||
: scx_evs_GIC(_name)
|
||||
: scx_evs_GIC(_name), _params(params)
|
||||
{
|
||||
signalInterrupt.bind(signal_interrupt);
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ class SCGIC : public scx_evs_GIC
|
||||
};
|
||||
|
||||
std::unique_ptr<Terminator> terminator;
|
||||
const SCFastModelGICParams &_params;
|
||||
|
||||
public:
|
||||
SCGIC(const SCFastModelGICParams &p) : SCGIC(p, p.name.c_str()) {}
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
#include "arch/arm/fastmodel/iris/isa.hh"
|
||||
|
||||
#include "arch/arm/regs/misc.hh"
|
||||
#include "base/logging.hh"
|
||||
#include "cpu/thread_context.hh"
|
||||
#include "params/IrisISA.hh"
|
||||
#include "sim/serialize.hh"
|
||||
|
||||
void
|
||||
@@ -40,3 +40,9 @@ Iris::ISA::serialize(CheckpointOut &cp) const
|
||||
miscRegs[i] = tc->readMiscRegNoEffect(i);
|
||||
SERIALIZE_ARRAY(miscRegs, ArmISA::NUM_PHYS_MISCREGS);
|
||||
}
|
||||
|
||||
void
|
||||
Iris::ISA::copyRegsFrom(ThreadContext *src)
|
||||
{
|
||||
panic("copyRegsFrom not implemented");
|
||||
}
|
||||
|
||||
@@ -39,13 +39,15 @@ class ISA : public BaseISA
|
||||
public:
|
||||
ISA(const Params &p) : BaseISA(p) {}
|
||||
|
||||
void serialize(CheckpointOut &cp) const;
|
||||
void serialize(CheckpointOut &cp) const override;
|
||||
|
||||
void copyRegsFrom(ThreadContext *src) override;
|
||||
|
||||
bool
|
||||
inUserMode() const override
|
||||
{
|
||||
CPSR cpsr = tc->readMiscRegNoEffect(MISCREG_CPSR);
|
||||
return ::inUserMode(cpsr);
|
||||
ArmISA::CPSR cpsr = tc->readMiscRegNoEffect(ArmISA::MISCREG_CPSR);
|
||||
return ArmISA::inUserMode(cpsr);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -670,7 +670,7 @@ ThreadContext::readVecReg(const RegId ®_id) const
|
||||
call().resource_read(_instId, result, vecRegIds.at(idx));
|
||||
size_t data_size = result.data.size() * (sizeof(*result.data.data()));
|
||||
size_t size = std::min(data_size, reg.size());
|
||||
memcpy(reg.raw_ptr<void>(), (void *)result.data.data(), size);
|
||||
memcpy(reg.as<uint8_t>(), (void *)result.data.data(), size);
|
||||
|
||||
return reg;
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
||||
#include "arch/arm/regs/vec.hh"
|
||||
#include "cpu/base.hh"
|
||||
#include "cpu/thread_context.hh"
|
||||
#include "iris/IrisInstance.h"
|
||||
@@ -276,21 +277,22 @@ class ThreadContext : public ::ThreadContext
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const VecRegContainer &readVecReg(const RegId ®) const override;
|
||||
VecRegContainer &
|
||||
const ArmISA::VecRegContainer &readVecReg(const RegId ®) const override;
|
||||
ArmISA::VecRegContainer &
|
||||
getWritableVecReg(const RegId ®) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const VecElem &
|
||||
const ArmISA::VecElem &
|
||||
readVecElem(const RegId ®) const override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const VecPredRegContainer &readVecPredReg(const RegId ®) const override;
|
||||
VecPredRegContainer &
|
||||
const ArmISA::VecPredRegContainer &
|
||||
readVecPredReg(const RegId ®) const override;
|
||||
ArmISA::VecPredRegContainer &
|
||||
getWritableVecPredReg(const RegId ®) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
@@ -311,20 +313,20 @@ class ThreadContext : public ::ThreadContext
|
||||
}
|
||||
|
||||
void
|
||||
setVecReg(const RegId ®, const VecRegContainer &val) override
|
||||
setVecReg(const RegId ®, const ArmISA::VecRegContainer &val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
void
|
||||
setVecElem(const RegId& reg, const VecElem& val) override
|
||||
setVecElem(const RegId& reg, const ArmISA::VecElem& val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
void
|
||||
setVecPredReg(const RegId ®,
|
||||
const VecPredRegContainer &val) override
|
||||
const ArmISA::VecPredRegContainer &val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
@@ -403,38 +405,40 @@ class ThreadContext : public ::ThreadContext
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const VecRegContainer &readVecRegFlat(RegIndex idx) const override;
|
||||
VecRegContainer &
|
||||
const ArmISA::VecRegContainer &readVecRegFlat(RegIndex idx) const override;
|
||||
ArmISA::VecRegContainer &
|
||||
getWritableVecRegFlat(RegIndex idx) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
void
|
||||
setVecRegFlat(RegIndex idx, const VecRegContainer &val) override
|
||||
setVecRegFlat(RegIndex idx, const ArmISA::VecRegContainer &val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const VecElem&
|
||||
const ArmISA::VecElem&
|
||||
readVecElemFlat(RegIndex idx, const ElemIndex& elemIdx) const override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
void
|
||||
setVecElemFlat(RegIndex idx, const ElemIndex &elemIdx,
|
||||
const VecElem &val) override
|
||||
const ArmISA::VecElem &val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const VecPredRegContainer &readVecPredRegFlat(RegIndex idx) const override;
|
||||
VecPredRegContainer &
|
||||
const ArmISA::VecPredRegContainer &
|
||||
readVecPredRegFlat(RegIndex idx) const override;
|
||||
ArmISA::VecPredRegContainer &
|
||||
getWritableVecPredRegFlat(RegIndex idx) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
void
|
||||
setVecPredRegFlat(RegIndex idx, const VecPredRegContainer &val) override
|
||||
setVecPredRegFlat(RegIndex idx,
|
||||
const ArmISA::VecPredRegContainer &val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user