From e1054170b54c37043d768d454f7b0eafcf1c119e Mon Sep 17 00:00:00 2001 From: Kevin Lim Date: Tue, 21 Aug 2007 16:16:56 -0700 Subject: 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 --- src/cpu/o3/lsq_impl.hh | 3 ++- src/cpu/o3/lsq_unit_impl.hh | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src/cpu/o3') 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::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 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::recvRetry() { if (isStoreBlocked) { + DPRINTF(LSQUnit, "Receiving retry: store blocked\n"); assert(retryPkt != NULL); if (dcachePort->sendTiming(retryPkt)) { -- cgit v1.2.3