diff options
author | Kevin Lim <ktlim@umich.edu> | 2007-08-21 16:16:56 -0700 |
---|---|---|
committer | Kevin Lim <ktlim@umich.edu> | 2007-08-21 16:16:56 -0700 |
commit | e1054170b54c37043d768d454f7b0eafcf1c119e (patch) | |
tree | 73ec058e2ad1a9dd4ac24cce32e1ac422c5b408f | |
parent | 3555b2aecca85457d4ce5899ebafd2a7cde08e53 (diff) | |
download | gem5-e1054170b54c37043d768d454f7b0eafcf1c119e.tar.xz |
o3: Fix for retry ID bug.
It should be cleared prior to the call to recvRetry.
Add extra DPRINTF statement for clearer debugging output.
--HG--
extra : convert_revision : e2332754743f42d60e159ac89f6fb0fd8b7f57f8
-rw-r--r-- | src/cpu/o3/lsq_impl.hh | 3 | ||||
-rw-r--r-- | src/cpu/o3/lsq_unit_impl.hh | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/cpu/o3/lsq_impl.hh b/src/cpu/o3/lsq_impl.hh index 10c0afd38..c71a0ad9d 100644 --- a/src/cpu/o3/lsq_impl.hh +++ b/src/cpu/o3/lsq_impl.hh @@ -101,10 +101,11 @@ LSQ<Impl>::DcachePort::recvRetry() //Squashed, so drop it return; } - lsq->thread[lsq->retryTid].recvRetry(); + int curr_retry_tid = lsq->retryTid; // Speculatively clear the retry Tid. This will get set again if // the LSQUnit was unable to complete its access. lsq->retryTid = -1; + lsq->thread[curr_retry_tid].recvRetry(); } template <class Impl> diff --git a/src/cpu/o3/lsq_unit_impl.hh b/src/cpu/o3/lsq_unit_impl.hh index 8b2e82d8e..4ab149cee 100644 --- a/src/cpu/o3/lsq_unit_impl.hh +++ b/src/cpu/o3/lsq_unit_impl.hh @@ -928,6 +928,7 @@ void LSQUnit<Impl>::recvRetry() { if (isStoreBlocked) { + DPRINTF(LSQUnit, "Receiving retry: store blocked\n"); assert(retryPkt != NULL); if (dcachePort->sendTiming(retryPkt)) { |