diff --git a/src/cpu/o3/lsq_impl.hh b/src/cpu/o3/lsq_impl.hh index 10c0afd381..c71a0ad9d2 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 8b2e82d8ea..4ab149cee6 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)) {