Checker: Fix checker CPU ports
This patch updates how the checker CPU handles the ports such that the regressions will once again run without causing a panic. A minor amount of tidying up was also done as part of this patch.
This commit is contained in:
parent
d090f4d930
commit
105ad88d35
2 changed files with 21 additions and 19 deletions
|
@ -65,7 +65,8 @@ CheckerCPU::init()
|
|||
}
|
||||
|
||||
CheckerCPU::CheckerCPU(Params *p)
|
||||
: BaseCPU(p, true), thread(NULL), tc(NULL)
|
||||
: BaseCPU(p, true), systemPtr(NULL), icachePort(NULL), dcachePort(NULL),
|
||||
tc(NULL), thread(NULL)
|
||||
{
|
||||
memReq = NULL;
|
||||
curStaticInst = NULL;
|
||||
|
@ -83,9 +84,7 @@ CheckerCPU::CheckerCPU(Params *p)
|
|||
warnOnlyOnLoadError = p->warnOnlyOnLoadError;
|
||||
itb = p->itb;
|
||||
dtb = p->dtb;
|
||||
systemPtr = NULL;
|
||||
workload = p->workload;
|
||||
thread = NULL;
|
||||
|
||||
updateOnError = true;
|
||||
}
|
||||
|
|
|
@ -98,42 +98,40 @@ class CheckerCPU : public BaseCPU
|
|||
public:
|
||||
virtual void init();
|
||||
|
||||
public:
|
||||
typedef CheckerCPUParams Params;
|
||||
const Params *params() const
|
||||
{ return reinterpret_cast<const Params *>(_params); }
|
||||
CheckerCPU(Params *p);
|
||||
virtual ~CheckerCPU();
|
||||
|
||||
std::vector<Process*> workload;
|
||||
|
||||
void setSystem(System *system);
|
||||
|
||||
System *systemPtr;
|
||||
|
||||
void setIcachePort(CpuPort *icache_port);
|
||||
|
||||
CpuPort *icachePort;
|
||||
|
||||
void setDcachePort(CpuPort *dcache_port);
|
||||
|
||||
CpuPort *dcachePort;
|
||||
|
||||
CpuPort &getDataPort()
|
||||
{
|
||||
panic("Not supported on checker!");
|
||||
// the checker does not have ports on its own so return the
|
||||
// data port of the actual CPU core
|
||||
assert(dcachePort);
|
||||
return *dcachePort;
|
||||
}
|
||||
|
||||
CpuPort &getInstPort()
|
||||
{
|
||||
panic("Not supported on checker!");
|
||||
// the checker does not have ports on its own so return the
|
||||
// data port of the actual CPU core
|
||||
assert(icachePort);
|
||||
return *icachePort;
|
||||
}
|
||||
|
||||
public:
|
||||
// Primary thread being run.
|
||||
SimpleThread *thread;
|
||||
protected:
|
||||
|
||||
std::vector<Process*> workload;
|
||||
|
||||
System *systemPtr;
|
||||
|
||||
CpuPort *icachePort;
|
||||
CpuPort *dcachePort;
|
||||
|
||||
ThreadContext *tc;
|
||||
|
||||
|
@ -167,6 +165,11 @@ class CheckerCPU : public BaseCPU
|
|||
|
||||
std::queue<int> miscRegIdxs;
|
||||
|
||||
public:
|
||||
|
||||
// Primary thread being run.
|
||||
SimpleThread *thread;
|
||||
|
||||
TheISA::TLB* getITBPtr() { return itb; }
|
||||
TheISA::TLB* getDTBPtr() { return dtb; }
|
||||
|
||||
|
|
Loading…
Reference in a new issue