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
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to