arch,cpu: Turn (read|set)*Reg into inline helpers.
Eliminate readFloatRegFlat and setFloatRegFlat for the Fast Model ThreadContext since ARM doesn't use those register types, and those methods are no longer required by the ThreadContext interface. Change-Id: Ic149c64e2fbf1d313066fefe480c435eef6d66e5 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49113 Maintainer: Gabe Black <gabe.black@gmail.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -718,9 +718,6 @@ ThreadContext::getRegFlat(const RegId ®, void *val) const
|
||||
case IntRegClass:
|
||||
*(RegVal *)val = readIntRegFlat(idx);
|
||||
break;
|
||||
case FloatRegClass:
|
||||
*(RegVal *)val = readFloatRegFlat(idx);
|
||||
break;
|
||||
case VecRegClass:
|
||||
*(ArmISA::VecRegContainer *)val = readVecRegFlat(idx);
|
||||
break;
|
||||
@@ -749,9 +746,6 @@ ThreadContext::setRegFlat(const RegId ®, const void *val)
|
||||
case IntRegClass:
|
||||
setIntRegFlat(idx, *(RegVal *)val);
|
||||
break;
|
||||
case FloatRegClass:
|
||||
setFloatRegFlat(idx, *(RegVal *)val);
|
||||
break;
|
||||
case VecRegClass:
|
||||
setVecRegFlat(idx, *(ArmISA::VecRegContainer *)val);
|
||||
break;
|
||||
@@ -916,7 +910,7 @@ ThreadContext::readVecPredReg(const RegId ®_id) const
|
||||
return reg;
|
||||
}
|
||||
|
||||
const ArmISA::VecPredRegContainer &
|
||||
ArmISA::VecPredRegContainer
|
||||
ThreadContext::readVecPredRegFlat(RegIndex idx) const
|
||||
{
|
||||
return readVecPredReg(RegId(VecPredRegClass, idx));
|
||||
|
||||
@@ -286,70 +286,58 @@ class ThreadContext : public gem5::ThreadContext
|
||||
void setReg(const RegId ®, RegVal val) override;
|
||||
void setReg(const RegId ®, const void *val) override;
|
||||
|
||||
RegVal readIntReg(RegIndex reg_idx) const override;
|
||||
virtual RegVal readIntReg(RegIndex reg_idx) const;
|
||||
|
||||
RegVal
|
||||
readFloatReg(RegIndex reg_idx) const override
|
||||
virtual const ArmISA::VecRegContainer &readVecReg(const RegId ®) const;
|
||||
virtual ArmISA::VecRegContainer &
|
||||
getWritableVecReg(const RegId ®)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const ArmISA::VecRegContainer &readVecReg(const RegId ®) const override;
|
||||
ArmISA::VecRegContainer &
|
||||
getWritableVecReg(const RegId ®) override
|
||||
virtual RegVal
|
||||
readVecElem(const RegId ®) const
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
RegVal
|
||||
readVecElem(const RegId ®) const override
|
||||
virtual const ArmISA::VecPredRegContainer &
|
||||
readVecPredReg(const RegId ®) const;
|
||||
virtual ArmISA::VecPredRegContainer &
|
||||
getWritableVecPredReg(const RegId ®)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const ArmISA::VecPredRegContainer &
|
||||
readVecPredReg(const RegId ®) const override;
|
||||
ArmISA::VecPredRegContainer &
|
||||
getWritableVecPredReg(const RegId ®) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
RegVal
|
||||
readCCReg(RegIndex reg_idx) const override
|
||||
virtual RegVal
|
||||
readCCReg(RegIndex reg_idx) const
|
||||
{
|
||||
return readCCRegFlat(reg_idx);
|
||||
}
|
||||
|
||||
void setIntReg(RegIndex reg_idx, RegVal val) override;
|
||||
virtual void setIntReg(RegIndex reg_idx, RegVal val);
|
||||
|
||||
void
|
||||
setFloatReg(RegIndex reg_idx, RegVal val) override
|
||||
virtual void
|
||||
setVecReg(const RegId ®, const ArmISA::VecRegContainer &val)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
void
|
||||
setVecReg(const RegId ®, const ArmISA::VecRegContainer &val) override
|
||||
virtual void
|
||||
setVecElem(const RegId& reg, RegVal val)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
void
|
||||
setVecElem(const RegId& reg, RegVal val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
void
|
||||
virtual void
|
||||
setVecPredReg(const RegId ®,
|
||||
const ArmISA::VecPredRegContainer &val) override
|
||||
const ArmISA::VecPredRegContainer &val)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
void
|
||||
setCCReg(RegIndex reg_idx, RegVal val) override
|
||||
virtual void
|
||||
setCCReg(RegIndex reg_idx, RegVal val)
|
||||
{
|
||||
setCCRegFlat(reg_idx, val);
|
||||
}
|
||||
@@ -412,59 +400,47 @@ class ThreadContext : public gem5::ThreadContext
|
||||
void setRegFlat(const RegId ®, RegVal val) override;
|
||||
void setRegFlat(const RegId ®, const void *val) override;
|
||||
|
||||
RegVal readIntRegFlat(RegIndex idx) const override;
|
||||
void setIntRegFlat(RegIndex idx, uint64_t val) override;
|
||||
virtual RegVal readIntRegFlat(RegIndex idx) const;
|
||||
virtual void setIntRegFlat(RegIndex idx, uint64_t val);
|
||||
|
||||
RegVal
|
||||
readFloatRegFlat(RegIndex idx) const override
|
||||
virtual const ArmISA::VecRegContainer &readVecRegFlat(RegIndex idx) const;
|
||||
virtual ArmISA::VecRegContainer &
|
||||
getWritableVecRegFlat(RegIndex idx)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
void
|
||||
setFloatRegFlat(RegIndex idx, RegVal val) override
|
||||
virtual void
|
||||
setVecRegFlat(RegIndex idx, const ArmISA::VecRegContainer &val)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const ArmISA::VecRegContainer &readVecRegFlat(RegIndex idx) const override;
|
||||
ArmISA::VecRegContainer &
|
||||
getWritableVecRegFlat(RegIndex idx) override
|
||||
virtual RegVal
|
||||
readVecElemFlat(RegIndex idx) const
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
void
|
||||
setVecRegFlat(RegIndex idx, const ArmISA::VecRegContainer &val) override
|
||||
virtual void
|
||||
setVecElemFlat(RegIndex idx, RegVal val)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
RegVal
|
||||
readVecElemFlat(RegIndex idx) const override
|
||||
virtual ArmISA::VecPredRegContainer readVecPredRegFlat(RegIndex idx) const;
|
||||
virtual ArmISA::VecPredRegContainer &
|
||||
getWritableVecPredRegFlat(RegIndex idx)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
void
|
||||
setVecElemFlat(RegIndex idx, RegVal val) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
const ArmISA::VecPredRegContainer &
|
||||
readVecPredRegFlat(RegIndex idx) const override;
|
||||
ArmISA::VecPredRegContainer &
|
||||
getWritableVecPredRegFlat(RegIndex idx) override
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
void
|
||||
virtual void
|
||||
setVecPredRegFlat(RegIndex idx,
|
||||
const ArmISA::VecPredRegContainer &val) override
|
||||
const ArmISA::VecPredRegContainer &val)
|
||||
{
|
||||
panic("%s not implemented.", __FUNCTION__);
|
||||
}
|
||||
|
||||
RegVal readCCRegFlat(RegIndex idx) const override;
|
||||
void setCCRegFlat(RegIndex idx, RegVal val) override;
|
||||
virtual RegVal readCCRegFlat(RegIndex idx) const;
|
||||
virtual void setCCRegFlat(RegIndex idx, RegVal val);
|
||||
/** @} */
|
||||
|
||||
// hardware transactional memory
|
||||
|
||||
Reference in New Issue
Block a user