summaryrefslogtreecommitdiff
path: root/src/cpu/o3
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3')
-rw-r--r--src/cpu/o3/lsq_unit.hh5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cpu/o3/lsq_unit.hh b/src/cpu/o3/lsq_unit.hh
index 7c3e0e026..e15d01b26 100644
--- a/src/cpu/o3/lsq_unit.hh
+++ b/src/cpu/o3/lsq_unit.hh
@@ -725,7 +725,10 @@ LSQUnit<Impl>::read(LSQRequest *req, int load_idx)
store_has_lower_limit && store_has_upper_limit &&
!req->mainRequest()->isLLSC()) {
- coverage = AddrRangeCoverage::FullAddrRangeCoverage;
+ const auto& store_req = store_it->request()->mainRequest();
+ coverage = store_req->isMasked() ?
+ AddrRangeCoverage::PartialAddrRangeCoverage :
+ AddrRangeCoverage::FullAddrRangeCoverage;
} else if (
// This is the partial store-load forwarding case where a store
// has only part of the load's data and the load isn't LLSC