cpu: O3 switchFreeList checking VecElems instead of FloatRegs Vector elements should be checked instead of floats since those are the ones mapped to the vector registers. Change-Id: I36088ab90e63720d846fcf5b43360da105b6c736 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17850 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
diff --git a/src/cpu/o3/rename_map.cc b/src/cpu/o3/rename_map.cc index 603f1ff..9d912e5 100644 --- a/src/cpu/o3/rename_map.cc +++ b/src/cpu/o3/rename_map.cc
@@ -151,8 +151,9 @@ panic_if(freeList->hasFreeVecRegs(), "The free list is already tracking full Vec"); panic_if(freeList->numFreeVecElems() != - regFile->numVecElemPhysRegs() - TheISA::NumFloatRegs, - "The free list has lost vector register elements"); + regFile->numVecElemPhysRegs() - + TheISA::NumVecRegs * TheISA::NumVecElemPerVecReg, + "The free list has lost vector register elements"); auto range = regFile->getRegIds(VecRegClass); freeList->addRegs(range.first + TheISA::NumVecRegs, range.second);