Gabe Black has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/49698 )
(
50 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the
submitted one.
)Change subject: cpu: Remove the default implementation of (get|
set)RegFlat.
......................................................................
cpu: Remove the default implementation of (get|set)RegFlat.
This was originally intended to call back into the original readIntReg,
setIntReg, etc, but now that *those* are implemented by calling into
getRegFlat, setRegFlat, etc, that's a circular dependency and makes that
implementation unusable.
Change-Id: I4135f0d8721f5f9d724be590767bed0023a9de20
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49698
Reviewed-by: Giacomo Travaglini <[email protected]>
Maintainer: Giacomo Travaglini <[email protected]>
Tested-by: kokoro <[email protected]>
---
M src/cpu/thread_context.cc
M src/cpu/thread_context.hh
2 files changed, 21 insertions(+), 80 deletions(-)
Approvals:
Giacomo Travaglini: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/cpu/thread_context.cc b/src/cpu/thread_context.cc
index 228f193..181c583 100644
--- a/src/cpu/thread_context.cc
+++ b/src/cpu/thread_context.cc
@@ -198,83 +198,6 @@
}
void
-ThreadContext::getRegFlat(const RegId ®, void *val) const
-{
- const RegIndex idx = reg.index();
- const RegClassType type = reg.classValue();
- switch (type) {
- case IntRegClass:
- *(RegVal *)val = readIntRegFlat(idx);
- break;
- case FloatRegClass:
- *(RegVal *)val = readFloatRegFlat(idx);
- break;
- case VecRegClass:
- *(TheISA::VecRegContainer *)val = readVecRegFlat(idx);
- break;
- case VecElemClass:
- *(RegVal *)val = readVecElemFlat(idx);
- break;
- case VecPredRegClass:
- *(TheISA::VecPredRegContainer *)val = readVecPredRegFlat(idx);
- break;
- case CCRegClass:
- *(RegVal *)val = readCCRegFlat(idx);
- break;
- case MiscRegClass:
- panic("MiscRegs should not be read with getReg.");
- default:
- panic("Unrecognized register class type %d.", type);
- }
-}
-
-void *
-ThreadContext::getWritableRegFlat(const RegId ®)
-{
- const RegIndex idx = reg.index();
- const RegClassType type = reg.classValue();
- switch (type) {
- case VecRegClass:
- return &getWritableVecRegFlat(idx);
- case VecPredRegClass:
- return &getWritableVecPredRegFlat(idx);
- default:
- panic("Unrecognized register class type %d.", type);
- }
-}
-
-void
-ThreadContext::setRegFlat(const RegId ®, const void *val)
-{
- const RegIndex idx = reg.index();
- const RegClassType type = reg.classValue();
- switch (type) {
- case IntRegClass:
- setIntRegFlat(idx, *(RegVal *)val);
- break;
- case FloatRegClass:
- setFloatRegFlat(idx, *(RegVal *)val);
- break;
- case VecRegClass:
- setVecRegFlat(idx, *(TheISA::VecRegContainer *)val);
- break;
- case VecElemClass:
- setVecElemFlat(idx, *(RegVal *)val);
- break;
- case VecPredRegClass:
- setVecPredRegFlat(idx, *(TheISA::VecPredRegContainer *)val);
- break;
- case CCRegClass:
- setCCRegFlat(idx, *(RegVal *)val);
- break;
- case MiscRegClass:
- panic("MiscRegs should not be read with getReg.");
- default:
- panic("Unrecognized register class type %d.", type);
- }
-}
-
-void
serialize(const ThreadContext &tc, CheckpointOut &cp)
{
// Cast away the const so we can get the non-const ISA ptr, which we
then
diff --git a/src/cpu/thread_context.hh b/src/cpu/thread_context.hh
index 09cef3c..5e1c5ad 100644
--- a/src/cpu/thread_context.hh
+++ b/src/cpu/thread_context.hh
@@ -335,11 +335,11 @@
*/
virtual RegVal getRegFlat(const RegId ®) const;
- virtual void getRegFlat(const RegId ®, void *val) const;
- virtual void *getWritableRegFlat(const RegId ®);
+ virtual void getRegFlat(const RegId ®, void *val) const = 0;
+ virtual void *getWritableRegFlat(const RegId ®) = 0;
virtual void setRegFlat(const RegId ®, RegVal val);
- virtual void setRegFlat(const RegId ®, const void *val);
+ virtual void setRegFlat(const RegId ®, const void *val) = 0;
RegVal
readIntRegFlat(RegIndex idx) const
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/49698
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I4135f0d8721f5f9d724be590767bed0023a9de20
Gerrit-Change-Number: 49698
Gerrit-PatchSet: 52
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-Reviewer: Gabe Black <[email protected]>
Gerrit-Reviewer: Giacomo Travaglini <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s