changeset 38c7a9ea7729 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=38c7a9ea7729
description:
cpu: Add support to checker for CACHE_BLOCK_ZERO commands.
The checker didn't know how to properly validate these new commands.
diffstat:
src/cpu/checker/cpu.cc | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diffs (27 lines):
diff -r 58d5d471b598 -r 38c7a9ea7729 src/cpu/checker/cpu.cc
--- a/src/cpu/checker/cpu.cc Wed Oct 29 23:18:24 2014 -0500
+++ b/src/cpu/checker/cpu.cc Wed Oct 29 23:18:24 2014 -0500
@@ -231,6 +231,7 @@
bool checked_flags = false;
bool flags_match = true;
Addr pAddr = 0x0;
+ static uint8_t zero_data[64] = {};
int fullSize = size;
@@ -304,6 +305,15 @@
unverifiedReq->getExtraData() : true;
}
+ // If the request is to ZERO a cache block, there is no data to check
+ // against, but it's all zero. We need something to compare to, so use a
+ // const set of zeros.
+ if (flags & Request::CACHE_BLOCK_ZERO) {
+ assert(!data);
+ assert(sizeof(zero_data) <= fullSize);
+ data = zero_data;
+ }
+
if (unverifiedReq && unverifiedMemData &&
memcmp(data, unverifiedMemData, fullSize) && extraData) {
warn("%lli: Store value does not match value sent to memory! "
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev