cpu: Add generalized register accessors setReg and getReg.
These will read registers of any type, as described by a RegId. These currently have default implementations which just delegate to the existing, register type specific accessors. Change-Id: I980ca15b3acd9a5a796c977276201d64c69398b8 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49107 Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -193,6 +193,13 @@ class ThreadContext : public PCEventScope
|
||||
//
|
||||
// New accessors for new decoder.
|
||||
//
|
||||
virtual RegVal getReg(const RegId ®) const;
|
||||
virtual void getReg(const RegId ®, void *val) const;
|
||||
virtual void *getWritableReg(const RegId ®);
|
||||
|
||||
virtual void setReg(const RegId ®, RegVal val);
|
||||
virtual void setReg(const RegId ®, const void *val);
|
||||
|
||||
virtual RegVal readIntReg(RegIndex reg_idx) const = 0;
|
||||
|
||||
virtual RegVal readFloatReg(RegIndex reg_idx) const = 0;
|
||||
@@ -272,6 +279,13 @@ class ThreadContext : public PCEventScope
|
||||
* serialization code to access all registers.
|
||||
*/
|
||||
|
||||
virtual RegVal getRegFlat(const RegId ®) const;
|
||||
virtual void getRegFlat(const RegId ®, void *val) const;
|
||||
virtual void *getWritableRegFlat(const RegId ®);
|
||||
|
||||
virtual void setRegFlat(const RegId ®, RegVal val);
|
||||
virtual void setRegFlat(const RegId ®, const void *val);
|
||||
|
||||
virtual RegVal readIntRegFlat(RegIndex idx) const = 0;
|
||||
virtual void setIntRegFlat(RegIndex idx, RegVal val) = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user