26a27,28
> *
> * Authors: Kevin Lim
29,30c31,32
< #ifndef __CPU_O3_FREE_LIST_HH__
< #define __CPU_O3_FREE_LIST_HH__
---
> #ifndef __CPU_O3_CPU_FREE_LIST_HH__
> #define __CPU_O3_CPU_FREE_LIST_HH__
48,50c50,53
< * Note that while this most likely should be called FreeList, the name
< * "FreeList" is used in a typedef within the CPU Policy, and therefore no
< * class can be named simply "FreeList".
---
> * Note that
> * while this most likely should be called FreeList, the name "FreeList"
> * is used in a typedef within the CPU Policy, and therefore no class
> * can be named simply "FreeList".
76a80,84
> /** DEBUG stuff below. */
> std::vector<int> freeIntRegsScoreboard;
>
> std::vector<bool> freeFloatRegsScoreboard;
>
78,86c86
< /** Constructs a free list.
< * @param activeThreads Number of active threads.
< * @param _numLogicalIntRegs Number of logical integer registers.
< * @param _numPhysicalIntRegs Number of physical integer registers.
< * @param _numLogicalFloatRegs Number of logical fp registers.
< * @param _numPhysicalFloatRegs Number of physical fp registers.
< */
< SimpleFreeList(unsigned activeThreads,
< unsigned _numLogicalIntRegs,
---
> SimpleFreeList(unsigned _numLogicalIntRegs,
91,94d90
< /** Gives the name of the freelist. */
< std::string name() const;
<
< /** Gets a free integer register. */
97d92
< /** Gets a free fp register. */
100d94
< /** Adds a register back to the free list. */
103d96
< /** Adds an integer register back to the free list. */
106d98
< /** Adds a fp register back to the free list. */
109d100
< /** Checks if there are any free integer registers. */
113d103
< /** Checks if there are any free fp registers. */
117d106
< /** Returns the number of free integer registers. */
121d109
< /** Returns the number of free fp registers. */
129,130c117
< DPRINTF(FreeList, "Trying to get free integer register.\n");
<
---
> DPRINTF(Rename, "FreeList: Trying to get free integer register.\n");
138a126,129
> // DEBUG
> assert(freeIntRegsScoreboard[free_reg]);
> freeIntRegsScoreboard[free_reg] = 0;
>
145,146c136
< DPRINTF(FreeList, "Trying to get free float register.\n");
<
---
> DPRINTF(Rename, "FreeList: Trying to get free float register.\n");
154a145,148
> // DEBUG
> assert(freeFloatRegsScoreboard[free_reg]);
> freeFloatRegsScoreboard[free_reg] = 0;
>
161c155
< DPRINTF(FreeList,"Freeing register %i.\n", freed_reg);
---
> DPRINTF(Rename, "Freelist: Freeing register %i.\n", freed_reg);
165,166c159,163
< if (freed_reg != TheISA::ZeroReg)
< freeIntRegs.push(freed_reg);
---
> freeIntRegs.push(freed_reg);
>
> // DEBUG
> assert(freeIntRegsScoreboard[freed_reg] == false);
> freeIntRegsScoreboard[freed_reg] = 1;
168,169c165,169
< if (freed_reg != (TheISA::ZeroReg + numPhysicalIntRegs))
< freeFloatRegs.push(freed_reg);
---
> freeFloatRegs.push(freed_reg);
>
> // DEBUG
> assert(freeFloatRegsScoreboard[freed_reg] == false);
> freeFloatRegsScoreboard[freed_reg] = 1;
176c176
< DPRINTF(FreeList,"Freeing int register %i.\n", freed_reg);
---
> DPRINTF(Rename, "Freelist: Freeing int register %i.\n", freed_reg);
177a178,181
> // DEBUG
> assert(!freeIntRegsScoreboard[freed_reg]);
> freeIntRegsScoreboard[freed_reg] = 1;
>
184c188
< DPRINTF(FreeList,"Freeing float register %i.\n", freed_reg);
---
> DPRINTF(Rename, "Freelist: Freeing float register %i.\n", freed_reg);
185a190,193
> // DEBUG
> assert(!freeFloatRegsScoreboard[freed_reg]);
> freeFloatRegsScoreboard[freed_reg] = 1;
>
189c197
< #endif // __CPU_O3_FREE_LIST_HH__
---
> #endif // __CPU_O3_CPU_FREE_LIST_HH__