32 #ifndef __CPU_O3_FREE_LIST_HH__
33 #define __CPU_O3_FREE_LIST_HH__
42 #include "debug/FreeList.hh"
185 DPRINTF(FreeList,
"Freeing register %i.\n", freed_reg);
211 #endif // __CPU_O3_FREE_LIST_HH__
std::queue< PhysRegIndex > freeRegs
The actual free list.
bool hasFreeIntRegs() const
Checks if there are any free integer registers.
PhysRegIndex getCCReg()
Gets a free cc register.
unsigned numFreeIntRegs() const
Returns the number of free integer registers.
std::string name() const
Gives the name of the freelist.
SimpleFreeList floatList
The list of free floating point registers.
Simple physical register file class.
UnifiedFreeList(const std::string &_my_name, PhysRegFile *_regFile)
Constructs a free list.
void addIntReg(PhysRegIndex freed_reg)
Adds an integer register back to the free list.
bool hasFreeCCRegs() const
Checks if there are any free cc registers.
void addReg(PhysRegIndex freed_reg)
Adds a register back to the free list.
PhysRegIndex getIntReg()
Gets a free integer register.
SimpleFreeList intList
The list of free integer registers.
PhysRegIndex getReg()
Get the next available register from the free list.
SimpleFreeList * getCCList()
Returns a pointer to the condition-code free list.
unsigned numFreeRegs() const
Return the number of free registers on the list.
Free list for a single class of registers (e.g., integer or floating point).
Unified register rename map for all classes of registers.
PhysRegFile * regFile
The register file object is used only to distinguish integer from floating-point physical register in...
bool isIntPhysReg(PhysRegIndex reg_idx) const
const std::string _name
The object name, for DPRINTF.
FreeList class that simply holds the list of free integer and floating point registers.
SimpleFreeList ccList
The list of free condition-code registers.
void addReg(PhysRegIndex reg)
Add a physical register to the free list.
bool hasFreeFloatRegs() const
Checks if there are any free fp registers.
unsigned numFreeFloatRegs() const
Returns the number of free fp registers.
bool isFloatPhysReg(PhysRegIndex reg_idx) const
void addCCReg(PhysRegIndex freed_reg)
Adds a cc register back to the free list.
bool hasFreeRegs() const
True iff there are free registers on the list.
bool isCCPhysReg(PhysRegIndex reg_idx)
Return true if the specified physical register index corresponds to a condition-code physical registe...
unsigned numFreeCCRegs() const
Returns the number of free cc registers.
PhysRegIndex getFloatReg()
Gets a free fp register.
void addFloatReg(PhysRegIndex freed_reg)
Adds a fp register back to the free list.