arch-arm: Improve debugging of CC regs accesses

As of now we are simply printing the CC reg index which is
not particularly helpful. With this patch we actually print
the (NZ|C|V) reg name.

Change-Id: Ib4b56a372b25e5bc2b6b762d2ef3ff2084097cce
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/70718
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Giacomo Travaglini
2023-03-07 14:58:15 +00:00
parent 3b3911f521
commit 223a07031f

View File

@@ -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