summaryrefslogtreecommitdiff
path: root/cpu/ozone/lw_lsq_impl.hh
diff options
context:
space:
mode:
authorKevin Lim <ktlim@umich.edu>2006-05-16 14:09:04 -0400
committerKevin Lim <ktlim@umich.edu>2006-05-16 14:09:04 -0400
commit52383ca7cc2b4698109b71a968cde16e9f7dc6e0 (patch)
tree354833a7b623d42870366f6176d662356ce62d19 /cpu/ozone/lw_lsq_impl.hh
parentef6e2eb3c4dbf337df7380ae93360c13140f11f6 (diff)
downloadgem5-52383ca7cc2b4698109b71a968cde16e9f7dc6e0.tar.xz
Sampler updates.
cpu/ozone/cpu.hh: Updates for sampler. cpu/ozone/cpu_impl.hh: Updates for sampler, checker. cpu/ozone/inorder_back_end.hh: Sampler updates. Also support old memory system. --HG-- extra : convert_revision : 33ebe38e4c08d49c6af84032b819533b784b4fe8
Diffstat (limited to 'cpu/ozone/lw_lsq_impl.hh')
-rw-r--r--cpu/ozone/lw_lsq_impl.hh9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpu/ozone/lw_lsq_impl.hh b/cpu/ozone/lw_lsq_impl.hh
index 9b7e48f96..fdf6bff07 100644
--- a/cpu/ozone/lw_lsq_impl.hh
+++ b/cpu/ozone/lw_lsq_impl.hh
@@ -791,6 +791,8 @@ template <class Impl>
void
OzoneLWLSQ<Impl>::switchOut()
{
+// assert(loads == 0);
+ assert(storesToWB == 0);
switchedOut = true;
SQIt sq_it = --(storeQueue.end());
while (storesToWB > 0 &&
@@ -810,9 +812,12 @@ OzoneLWLSQ<Impl>::switchOut()
// Store conditionals don't complete until *after* they have written
// back. If it's here and not yet sent to memory, then don't bother
// as it's not part of committed state.
- if (inst->isDataPrefetch() || (*sq_it).committed ||
- (*sq_it).req->flags & LOCKED) {
+ if (inst->isDataPrefetch() || (*sq_it).committed) {
+ sq_it--;
+ continue;
+ } else if ((*sq_it).req->flags & LOCKED) {
sq_it--;
+ assert(!(*sq_it).canWB || ((*sq_it).canWB && (*sq_it).req->flags & LOCKED));
continue;
}