Updates for other ISA cpu_builders.
--HG-- extra : convert_revision : b02736c627bb9dcf87463a9133e04369b9f8fae2
This commit is contained in:
parent
b247e02f6e
commit
3d2a434e42
|
@ -51,6 +51,7 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(DerivO3CPU)
|
|||
Param<int> clock;
|
||||
Param<int> phase;
|
||||
Param<int> numThreads;
|
||||
Param<int> cpu_id;
|
||||
Param<int> activity;
|
||||
|
||||
SimObjectVectorParam<Process *> workload;
|
||||
|
@ -149,6 +150,7 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(DerivO3CPU)
|
|||
INIT_PARAM(clock, "clock speed"),
|
||||
INIT_PARAM_DFLT(phase, "clock phase", 0),
|
||||
INIT_PARAM(numThreads, "number of HW thread contexts"),
|
||||
INIT_PARAM(cpu_id, "processor ID"),
|
||||
INIT_PARAM_DFLT(activity, "Initial activity count", 0),
|
||||
|
||||
INIT_PARAM(workload, "Processes to run"),
|
||||
|
@ -275,9 +277,11 @@ CREATE_SIM_OBJECT(DerivO3CPU)
|
|||
MipsSimpleParams *params = new MipsSimpleParams;
|
||||
|
||||
params->clock = clock;
|
||||
params->phase = phase;
|
||||
|
||||
params->name = getInstanceName();
|
||||
params->numberOfThreads = actual_num_threads;
|
||||
params->cpu_id = cpu_id;
|
||||
params->activity = activity;
|
||||
|
||||
params->workload = workload;
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
template <class Impl>
|
||||
MipsO3CPU<Impl>::MipsO3CPU(Params *params)
|
||||
: FullO3CPU<Impl>(params)
|
||||
: FullO3CPU<Impl>(this, params)
|
||||
{
|
||||
DPRINTF(O3CPU, "Creating MipsO3CPU object.\n");
|
||||
|
||||
|
@ -95,6 +95,7 @@ MipsO3CPU<Impl>::MipsO3CPU(Params *params)
|
|||
|
||||
// Give the thread the TC.
|
||||
this->thread[i]->tc = tc;
|
||||
this->thread[i]->setCpuId(params->cpu_id);
|
||||
|
||||
// Add the TC to the CPU's list of TC's.
|
||||
this->threadContexts.push_back(tc);
|
||||
|
@ -104,17 +105,6 @@ MipsO3CPU<Impl>::MipsO3CPU(Params *params)
|
|||
this->thread[i]->setFuncExeInst(0);
|
||||
}
|
||||
|
||||
// Sets CPU pointers. These must be set at this level because the CPU
|
||||
// pointers are defined to be the highest level of CPU class.
|
||||
this->fetch.setCPU(this);
|
||||
this->decode.setCPU(this);
|
||||
this->rename.setCPU(this);
|
||||
this->iew.setCPU(this);
|
||||
this->commit.setCPU(this);
|
||||
|
||||
this->rob.setCPU(this);
|
||||
this->regFile.setCPU(this);
|
||||
|
||||
lockAddr = 0;
|
||||
lockFlag = false;
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
#endif
|
||||
|
||||
template <class Impl>
|
||||
SparcO3CPU<Impl>::SparcO3CPU(Params *params) : FullO3CPU<Impl>(params)
|
||||
SparcO3CPU<Impl>::SparcO3CPU(Params *params) : FullO3CPU<Impl>(this, params)
|
||||
{
|
||||
DPRINTF(O3CPU, "Creating SparcO3CPU object.\n");
|
||||
|
||||
|
@ -113,6 +113,7 @@ SparcO3CPU<Impl>::SparcO3CPU(Params *params) : FullO3CPU<Impl>(params)
|
|||
#endif
|
||||
// Give the thread the TC.
|
||||
this->thread[i]->tc = tc;
|
||||
this->thread[i]->setCpuId(params->cpu_id);
|
||||
|
||||
// Add the TC to the CPU's list of TC's.
|
||||
this->threadContexts.push_back(tc);
|
||||
|
@ -122,17 +123,6 @@ SparcO3CPU<Impl>::SparcO3CPU(Params *params) : FullO3CPU<Impl>(params)
|
|||
this->thread[i]->setFuncExeInst(0);
|
||||
}
|
||||
|
||||
// Sets CPU pointers. These must be set at this level because the CPU
|
||||
// pointers are defined to be the highest level of CPU class.
|
||||
this->fetch.setCPU(this);
|
||||
this->decode.setCPU(this);
|
||||
this->rename.setCPU(this);
|
||||
this->iew.setCPU(this);
|
||||
this->commit.setCPU(this);
|
||||
|
||||
this->rob.setCPU(this);
|
||||
this->regFile.setCPU(this);
|
||||
|
||||
lockAddr = 0;
|
||||
lockFlag = false;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue