33c33,34
< SimpleFreeList::SimpleFreeList(unsigned _numLogicalIntRegs,
---
> SimpleFreeList::SimpleFreeList(unsigned activeThreads,
> unsigned _numLogicalIntRegs,
43c44
< DPRINTF(FreeList, "FreeList: Creating new free list object.\n");
---
> DPRINTF(FreeList, "Creating new free list object.\n");
45,53d45
< // DEBUG stuff.
< freeIntRegsScoreboard.resize(numPhysicalIntRegs);
<
< freeFloatRegsScoreboard.resize(numPhysicalRegs);
<
< for (PhysRegIndex i = 0; i < numLogicalIntRegs; ++i) {
< freeIntRegsScoreboard[i] = 0;
< }
<
56c48
< for (PhysRegIndex i = numLogicalIntRegs;
---
> for (PhysRegIndex i = numLogicalIntRegs * activeThreads;
60,61d51
<
< freeIntRegsScoreboard[i] = 1;
64,69d53
< for (PhysRegIndex i = 0; i < numPhysicalIntRegs + numLogicalFloatRegs;
< ++i)
< {
< freeFloatRegsScoreboard[i] = 0;
< }
<
74,75c58,60
< for (PhysRegIndex i = numPhysicalIntRegs + numLogicalFloatRegs;
< i < numPhysicalRegs; ++i)
---
> PhysRegIndex i = numPhysicalIntRegs + (numLogicalFloatRegs * activeThreads);
>
> for ( ; i < numPhysicalRegs; ++i)
78,79d62
<
< freeFloatRegsScoreboard[i] = 1;
82a66,70
> std::string
> SimpleFreeList::name() const
> {
> return "cpu.freelist";
> }