arm: Use custom RegClassOps for vector and vector pred registers.
Change-Id: Icef429d5c9c036541472c470d5009c8d29a74548 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49695 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -81,6 +81,8 @@ class MiscRegClassOps : public RegClassOps
|
||||
} miscRegClassOps;
|
||||
|
||||
VecElemRegClassOps<ArmISA::VecElem> vecRegElemClassOps(NumVecElemPerVecReg);
|
||||
TypedRegClassOps<ArmISA::VecRegContainer> vecRegClassOps;
|
||||
TypedRegClassOps<ArmISA::VecPredRegContainer> vecPredRegClassOps;
|
||||
|
||||
ISA::ISA(const Params &p) : BaseISA(p), system(NULL),
|
||||
_decoderFlavor(p.decoderFlavor), pmu(p.pmu), impdefAsNop(p.impdef_nop),
|
||||
@@ -88,10 +90,12 @@ ISA::ISA(const Params &p) : BaseISA(p), system(NULL),
|
||||
{
|
||||
_regClasses.emplace_back(NUM_INTREGS, INTREG_ZERO);
|
||||
_regClasses.emplace_back(0);
|
||||
_regClasses.emplace_back(NumVecRegs, -1, sizeof(VecRegContainer));
|
||||
_regClasses.emplace_back(NumVecRegs, vecRegClassOps, -1,
|
||||
sizeof(VecRegContainer));
|
||||
_regClasses.emplace_back(NumVecRegs * NumVecElemPerVecReg,
|
||||
vecRegElemClassOps);
|
||||
_regClasses.emplace_back(NumVecPredRegs, -1, sizeof(VecPredRegContainer));
|
||||
_regClasses.emplace_back(NumVecPredRegs, vecPredRegClassOps, -1,
|
||||
sizeof(VecPredRegContainer));
|
||||
_regClasses.emplace_back(NUM_CCREGS);
|
||||
_regClasses.emplace_back(NUM_MISCREGS, miscRegClassOps);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user