These registers don't have an architectural equivalent, but they may
need to be accessed by generic code, for instance the code that
checkpoints a thread context.
Change-Id: I4a18f44f2c09e379a4629c8e3eb8070b5c01918e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23784
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
ArmThreadContext::readVecReg(const RegId ®_id) const
{
const RegIndex idx = reg_id.index();
+ // Ignore accesses to registers which aren't architected. gem5 defines a
+ // few extra registers which it uses internally in the implementation of
+ // some instructions.
+ if (idx >= vecRegIds.size())
+ return vecRegs.at(idx);
ArmISA::VecRegContainer ® = vecRegs.at(idx);
iris::ResourceReadResult result;