35c35,36
< SimpleFreeList::SimpleFreeList(unsigned _numLogicalIntRegs,
---
> SimpleFreeList::SimpleFreeList(unsigned activeThreads,
> unsigned _numLogicalIntRegs,
45c46
< DPRINTF(FreeList, "FreeList: Creating new free list object.\n");
---
> DPRINTF(FreeList, "Creating new free list object.\n");
47,55d47
< // DEBUG stuff.
< freeIntRegsScoreboard.resize(numPhysicalIntRegs);
<
< freeFloatRegsScoreboard.resize(numPhysicalRegs);
<
< for (PhysRegIndex i = 0; i < numLogicalIntRegs; ++i) {
< freeIntRegsScoreboard[i] = 0;
< }
<
58c50
< for (PhysRegIndex i = numLogicalIntRegs;
---
> for (PhysRegIndex i = numLogicalIntRegs * activeThreads;
62,63d53
<
< freeIntRegsScoreboard[i] = 1;
66,71d55
< for (PhysRegIndex i = 0; i < numPhysicalIntRegs + numLogicalFloatRegs;
< ++i)
< {
< freeFloatRegsScoreboard[i] = 0;
< }
<
76,77c60,62
< for (PhysRegIndex i = numPhysicalIntRegs + numLogicalFloatRegs;
< i < numPhysicalRegs; ++i)
---
> PhysRegIndex i = numPhysicalIntRegs + (numLogicalFloatRegs * activeThreads);
>
> for ( ; i < numPhysicalRegs; ++i)
80,81d64
<
< freeFloatRegsScoreboard[i] = 1;
84a68,72
> std::string
> SimpleFreeList::name() const
> {
> return "cpu.freelist";
> }