summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-01-06 05:30:46 -0800
committerGabe Black <gabeblack@google.com>2018-01-20 07:29:24 +0000
commitcd9450c1d95d9494e2714ec84620c548b0eebbb1 (patch)
tree1f9ec93031ec2a79ef8dbcefa57b7e44104deed9 /src/sim
parentecec88750729b2c94d5ca9dedbf7a755c46c41a7 (diff)
downloadgem5-cd9450c1d95d9494e2714ec84620c548b0eebbb1.tar.xz
base: Rework bitunions so they can be more flexible.
They are now oriented around a class which makes it easy to provide custom setter/getter functions which let you set or read bits in an arbitrary way. Future additions may add the ability to add custom bitfield methods, and index-able bitfields. Change-Id: Ibd6d4d9e49107490f6dad30a4379a8c93bda9333 Reviewed-on: https://gem5-review.googlesource.com/7201 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/serialize.hh18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/sim/serialize.hh b/src/sim/serialize.hh
index 1005d5b97..b6c026394 100644
--- a/src/sim/serialize.hh
+++ b/src/sim/serialize.hh
@@ -72,33 +72,33 @@ typedef std::ostream CheckpointOut;
template <class T>
void paramOut(CheckpointOut &cp, const std::string &name, const T &param);
-template <typename DataType, typename BitUnion>
+template <typename BitUnion>
void paramOut(CheckpointOut &cp, const std::string &name,
- const BitfieldBackend::BitUnionOperators<DataType, BitUnion> &p)
+ const BitfieldBackend::BitUnionOperators<BitUnion> &p)
{
- paramOut(cp, name, p.__data);
+ paramOut(cp, name, p.__storage);
}
template <class T>
void paramIn(CheckpointIn &cp, const std::string &name, T &param);
-template <typename DataType, typename BitUnion>
+template <typename BitUnion>
void paramIn(CheckpointIn &cp, const std::string &name,
- BitfieldBackend::BitUnionOperators<DataType, BitUnion> &p)
+ BitfieldBackend::BitUnionOperators<BitUnion> &p)
{
- paramIn(cp, name, p.__data);
+ paramIn(cp, name, p.__storage);
}
template <class T>
bool optParamIn(CheckpointIn &cp, const std::string &name, T &param,
bool warn = true);
-template <typename DataType, typename BitUnion>
+template <typename BitUnion>
bool optParamIn(CheckpointIn &cp, const std::string &name,
- BitfieldBackend::BitUnionOperators<DataType, BitUnion> &p,
+ BitfieldBackend::BitUnionOperators<BitUnion> &p,
bool warn = true)
{
- return optParamIn(cp, name, p.__data, warn);
+ return optParamIn(cp, name, p.__storage, warn);
}
template <class T>