ThreadContext::readVecReg(const RegId ®_id) const
{
const RegIndex idx = reg_id.index();
+ ArmISA::VecRegContainer ® = vecRegs.at(idx);
+ reg.zero();
+
// 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);
+ return reg;
iris::ResourceReadResult result;
call().resource_read(_instId, result, vecRegIds.at(idx));
ThreadContext::readVecPredReg(const RegId ®_id) const
{
RegIndex idx = reg_id.index();
- if (idx >= vecPredRegIds.size())
- return vecPredRegs.at(idx);
ArmISA::VecPredRegContainer ® = vecPredRegs.at(idx);
+ reg.reset();
+
+ if (idx >= vecPredRegIds.size())
+ return reg;
iris::ResourceReadResult result;
call().resource_read(_instId, result, vecPredRegIds.at(idx));