diff options
author | Kevin Lim <ktlim@umich.edu> | 2006-05-16 14:09:04 -0400 |
---|---|---|
committer | Kevin Lim <ktlim@umich.edu> | 2006-05-16 14:09:04 -0400 |
commit | 52383ca7cc2b4698109b71a968cde16e9f7dc6e0 (patch) | |
tree | 354833a7b623d42870366f6176d662356ce62d19 /cpu/ozone/lw_lsq_impl.hh | |
parent | ef6e2eb3c4dbf337df7380ae93360c13140f11f6 (diff) | |
download | gem5-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.hh | 9 |
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; } |