canHandleInterrupts(true),
avoidQuiesceLiveLock(false)
{
+ if (commitWidth > Impl::MaxWidth)
+ fatal("commitWidth (%d) is larger than compiled limit (%d),\n"
+ "\tincrease MaxWidth in src/cpu/o3/impl.hh\n",
+ commitWidth, static_cast<int>(Impl::MaxWidth));
+
_status = Active;
_nextStatus = Inactive;
std::string policy = params->smtCommitPolicy;
decodeWidth(params->decodeWidth),
numThreads(params->numThreads)
{
+ if (decodeWidth > Impl::MaxWidth)
+ fatal("decodeWidth (%d) is larger than compiled limit (%d),\n"
+ "\tincrease MaxWidth in src/cpu/o3/impl.hh\n",
+ decodeWidth, static_cast<int>(Impl::MaxWidth));
+
// @todo: Make into a parameter
skidBufferMax = (fetchToDecodeDelay + 1) * params->fetchWidth;
}
wbWidth(params->wbWidth),
numThreads(params->numThreads)
{
+ if (dispatchWidth > Impl::MaxWidth)
+ fatal("dispatchWidth (%d) is larger than compiled limit (%d),\n"
+ "\tincrease MaxWidth in src/cpu/o3/impl.hh\n",
+ dispatchWidth, static_cast<int>(Impl::MaxWidth));
+ if (issueWidth > Impl::MaxWidth)
+ fatal("issueWidth (%d) is larger than compiled limit (%d),\n"
+ "\tincrease MaxWidth in src/cpu/o3/impl.hh\n",
+ issueWidth, static_cast<int>(Impl::MaxWidth));
+ if (wbWidth > Impl::MaxWidth)
+ fatal("wbWidth (%d) is larger than compiled limit (%d),\n"
+ "\tincrease MaxWidth in src/cpu/o3/impl.hh\n",
+ wbWidth, static_cast<int>(Impl::MaxWidth));
+
_status = Active;
exeStatus = Running;
wbStatus = Idle;
maxPhysicalRegs(params->numPhysIntRegs + params->numPhysFloatRegs
+ params->numPhysCCRegs)
{
+ if (renameWidth > Impl::MaxWidth)
+ fatal("renameWidth (%d) is larger than compiled limit (%d),\n"
+ "\tincrease MaxWidth in src/cpu/o3/impl.hh\n",
+ renameWidth, static_cast<int>(Impl::MaxWidth));
+
// @todo: Make into a parameter.
skidBufferMax = (2 * (decodeToRenameDelay * params->decodeWidth)) + renameWidth;
}