diff --git a/src/arch/arm/regs/cc.hh b/src/arch/arm/regs/cc.hh index ba7552799a..474e48e9e9 100644 --- a/src/arch/arm/regs/cc.hh +++ b/src/arch/arm/regs/cc.hh @@ -61,10 +61,31 @@ enum : RegIndex NumRegs }; +const char * const RegName[NumRegs] = { + "nz", + "c", + "v", + "ge", + "fp", + "zero" +}; + } // namespace cc_reg -inline constexpr RegClass ccRegClass(CCRegClass, CCRegClassName, - cc_reg::NumRegs, debug::CCRegs); +class CCRegClassOps : public RegClassOps +{ + public: + std::string + regName(const RegId &id) const override + { + return cc_reg::RegName[id.index()]; + } +}; + +static inline CCRegClassOps ccRegClassOps; + +inline constexpr RegClass ccRegClass = RegClass(CCRegClass, CCRegClassName, + cc_reg::NumRegs, debug::CCRegs).ops(ccRegClassOps); namespace cc_reg { @@ -77,15 +98,6 @@ inline constexpr RegId Fp = ccRegClass[_FpIdx], Zero = ccRegClass[_ZeroIdx]; -const char * const RegName[NumRegs] = { - "nz", - "c", - "v", - "ge", - "fp", - "zero" -}; - } // namespace cc_reg enum ConditionCode