diff -r 9d72fd83da40 -r 004a962d4cfb src/cpu/o3/cpu.cc --- a/src/cpu/o3/cpu.cc Thu Oct 17 11:54:32 2013 -0500 +++ b/src/cpu/o3/cpu.cc Thu Oct 17 11:54:53 2013 -0500 @@ -230,10 +230,7 @@ TheISA::NumIntRegs, params->numPhysIntRegs, TheISA::NumFloatRegs, params->numPhysFloatRegs), - rob(this, - params->numROBEntries, params->squashWidth, - params->smtROBPolicy, params->smtROBThreshold, - params->numThreads), + rob(this, params), scoreboard(params->numThreads, TheISA::NumIntRegs, params->numPhysIntRegs, diff -r 9d72fd83da40 -r 004a962d4cfb src/cpu/o3/rob.hh --- a/src/cpu/o3/rob.hh Thu Oct 17 11:54:32 2013 -0500 +++ b/src/cpu/o3/rob.hh Thu Oct 17 11:54:53 2013 -0500 @@ -52,6 +52,8 @@ #include "base/types.hh" #include "config/the_isa.hh" +struct DerivO3CPUParams; + /** * ROB class. The ROB is largely what drives squashing. */ @@ -91,16 +93,10 @@ public: /** ROB constructor. - * @param _numEntries Number of entries in ROB. - * @param _squashWidth Number of instructions that can be squashed in a - * single cycle. - * @param _smtROBPolicy ROB Partitioning Scheme for SMT. - * @param _smtROBThreshold Max Resources(by %) a thread can have in the ROB. - * @param _numThreads The number of active threads. + * @param _cpu The cpu object pointer. + * @param params The cpu params including several ROB-specific parameters. */ - ROB(O3CPU *_cpu, unsigned _numEntries, unsigned _squashWidth, - std::string smtROBPolicy, unsigned _smtROBThreshold, - ThreadID _numThreads); + ROB(O3CPU *_cpu, DerivO3CPUParams *params); std::string name() const; diff -r 9d72fd83da40 -r 004a962d4cfb src/cpu/o3/rob_impl.hh --- a/src/cpu/o3/rob_impl.hh Thu Oct 17 11:54:32 2013 -0500 +++ b/src/cpu/o3/rob_impl.hh Thu Oct 17 11:54:53 2013 -0500 @@ -49,20 +49,19 @@ #include "cpu/o3/rob.hh" #include "debug/Fetch.hh" #include "debug/ROB.hh" +#include "params/DerivO3CPU.hh" using namespace std; template -ROB::ROB(O3CPU *_cpu, unsigned _numEntries, unsigned _squashWidth, - std::string _smtROBPolicy, unsigned _smtROBThreshold, - ThreadID _numThreads) +ROB::ROB(O3CPU *_cpu, DerivO3CPUParams *params) : cpu(_cpu), - numEntries(_numEntries), - squashWidth(_squashWidth), + numEntries(params->numROBEntries), + squashWidth(params->squashWidth), numInstsInROB(0), - numThreads(_numThreads) + numThreads(params->numThreads) { - std::string policy = _smtROBPolicy; + std::string policy = params->smtROBPolicy; //Convert string to lowercase std::transform(policy.begin(), policy.end(), policy.begin(), @@ -93,7 +92,7 @@ robPolicy = Threshold; DPRINTF(Fetch, "ROB sharing policy set to Threshold\n"); - int threshold = _smtROBThreshold;; + int threshold = params->smtROBThreshold;; //Divide up by threshold amount for (ThreadID tid = 0; tid < numThreads; tid++) {