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
This commit is contained in:
Kevin Lim
2007-08-21 16:16:56 -07:00
parent 3555b2aecc
commit e1054170b5
2 changed files with 3 additions and 1 deletions

View File

@@ -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>

View File

@@ -928,6 +928,7 @@ void
LSQUnit<Impl>::recvRetry()
{
if (isStoreBlocked) {
DPRINTF(LSQUnit, "Receiving retry: store blocked\n");
assert(retryPkt != NULL);
if (dcachePort->sendTiming(retryPkt)) {