cpu: o3: corrects base FP and CC register index in removeThread()

This commit is contained in:
Nilay Vaish 2014-10-20 16:47:55 -05:00
parent c6731e331a
commit 922a9d8ed2

View file

@ -835,26 +835,22 @@ FullO3CPU<Impl>::removeThread(ThreadID tid)
// Unbind Int Regs from Rename Map // Unbind Int Regs from Rename Map
for (int ireg = 0; ireg < TheISA::NumIntRegs; ireg++) { for (int ireg = 0; ireg < TheISA::NumIntRegs; ireg++) {
PhysRegIndex phys_reg = renameMap[tid].lookup(ireg); PhysRegIndex phys_reg = renameMap[tid].lookup(ireg);
scoreboard.unsetReg(phys_reg); scoreboard.unsetReg(phys_reg);
freeList.addReg(phys_reg); freeList.addReg(phys_reg);
} }
// Unbind Float Regs from Rename Map // Unbind Float Regs from Rename Map
int max_reg = TheISA::NumIntRegs + TheISA::NumFloatRegs; int max_reg = TheISA::FP_Reg_Base + TheISA::NumFloatRegs;
for (int freg = TheISA::NumIntRegs; freg < max_reg; freg++) { for (int freg = TheISA::FP_Reg_Base; freg < max_reg; freg++) {
PhysRegIndex phys_reg = renameMap[tid].lookup(freg); PhysRegIndex phys_reg = renameMap[tid].lookup(freg);
scoreboard.unsetReg(phys_reg); scoreboard.unsetReg(phys_reg);
freeList.addReg(phys_reg); freeList.addReg(phys_reg);
} }
// Unbind condition-code Regs from Rename Map // Unbind condition-code Regs from Rename Map
max_reg = TheISA::NumIntRegs + TheISA::NumFloatRegs + TheISA::NumCCRegs; max_reg = TheISA::CC_Reg_Base + TheISA::NumCCRegs;
for (int creg = TheISA::NumIntRegs + TheISA::NumFloatRegs; for (int creg = TheISA::CC_Reg_Base; creg < max_reg; creg++) {
creg < max_reg; creg++) {
PhysRegIndex phys_reg = renameMap[tid].lookup(creg); PhysRegIndex phys_reg = renameMap[tid].lookup(creg);
scoreboard.unsetReg(phys_reg); scoreboard.unsetReg(phys_reg);
freeList.addReg(phys_reg); freeList.addReg(phys_reg);
} }