cpu: Add support to checker for CACHE_BLOCK_ZERO commands.
The checker didn't know how to properly validate these new commands.
This commit is contained in:
@@ -231,6 +231,7 @@ CheckerCPU::writeMem(uint8_t *data, unsigned size,
|
||||
bool checked_flags = false;
|
||||
bool flags_match = true;
|
||||
Addr pAddr = 0x0;
|
||||
static uint8_t zero_data[64] = {};
|
||||
|
||||
int fullSize = size;
|
||||
|
||||
@@ -304,6 +305,15 @@ CheckerCPU::writeMem(uint8_t *data, unsigned size,
|
||||
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! "
|
||||
|
||||
Reference in New Issue
Block a user