+ using IdRange = std::pair<PhysIds::const_iterator,
+ PhysIds::const_iterator>;
+ private:
+ static constexpr auto NumVecElemPerVecReg = TheISA::NumVecElemPerVecReg;
+
+ /** Integer register file. */
+ std::vector<RegVal> intRegFile;
+ std::vector<PhysRegId> intRegIds;
+
+ /** Floating point register file. */
+ std::vector<RegVal> floatRegFile;
+ std::vector<PhysRegId> floatRegIds;
+
+ /** Vector register file. */
+ std::vector<VecRegContainer> vectorRegFile;
+ std::vector<PhysRegId> vecRegIds;
+ std::vector<PhysRegId> vecElemIds;
+
+ /** Predicate register file. */
+ std::vector<VecPredRegContainer> vecPredRegFile;
+ std::vector<PhysRegId> vecPredRegIds;
+
+ /** Condition-code register file. */
+ std::vector<CCReg> ccRegFile;
+ std::vector<PhysRegId> ccRegIds;
+
+ /** Misc Reg Ids */
+ std::vector<PhysRegId> miscRegIds;
+
+ /**
+ * Number of physical general purpose registers
+ */
+ unsigned numPhysicalIntRegs;
+
+ /**
+ * Number of physical floating point registers
+ */
+ unsigned numPhysicalFloatRegs;