cpu: Move packet deallocation to recvTimingResp in the O3 CPU

Move the packet deallocations in the O3 CPU so that the completeDataAccess
deals only with the LSQ specific parts and the generic recvTimingResp frees the
packet in all other cases.
This commit is contained in:
Stephan Diestelhorst
2014-12-02 06:07:58 -05:00
parent 5c84157c29
commit 810349a8a7
2 changed files with 2 additions and 6 deletions

View File

@@ -347,6 +347,8 @@ LSQ<Impl>::recvTimingResp(PacketPtr pkt)
DPRINTF(LSQ, "Got error packet back for address: %#X\n",
pkt->getAddr());
thread[pkt->req->threadId()].completeDataAccess(pkt);
delete pkt->req;
delete pkt;
return true;
}

View File

@@ -105,15 +105,11 @@ LSQUnit<Impl>::completeDataAccess(PacketPtr pkt)
DPRINTF(IEW, "[sn:%lli]: Response from first half of earlier "
"blocked split load recieved. Ignoring.\n", inst->seqNum);
delete state;
delete pkt->req;
delete pkt;
return;
}
// If this is a split access, wait until all packets are received.
if (TheISA::HasUnalignedMemAcc && !state->complete()) {
delete pkt->req;
delete pkt;
return;
}
@@ -142,8 +138,6 @@ LSQUnit<Impl>::completeDataAccess(PacketPtr pkt)
cpu->ppDataAccessComplete->notify(std::make_pair(inst, pkt));
delete state;
delete pkt->req;
delete pkt;
}
template <class Impl>