cpu-o3: Prevent SW prefetches from forwarding from STQ

The store-to-load forwarding (STLDF) code will consider a SW prefetch hitting
on an older store as a succesful case of STLDF, which is incorrect as SW
prefetches do not return data, and eventually leads to an assert firing.

Jira Issue: https://gem5.atlassian.net/browse/GEM5-934

Change-Id: I4c26f13642dc0b5101914109288614010f8f9978
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/46261
Reviewed-by: Nathanael Premillieu <nathanael.premillieu@huawei.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Arthur Perais
2021-06-01 11:51:24 +02:00
committed by Arthur Perais
parent 93e5734685
commit e2edde5cd5

View File

@@ -1380,7 +1380,7 @@ LSQUnit::read(LSQRequest *req, int load_idx)
auto store_it = load_inst->sqIt;
assert (store_it >= storeWBIt);
// End once we've reached the top of the LSQ
while (store_it != storeWBIt) {
while (store_it != storeWBIt && !load_inst->isDataPrefetch()) {
// Move the index to one younger
store_it--;
assert(store_it->valid());