Fix ordering issue with squashed Icache Fetches and Static data in packet.

Now hello world works with 2 levels of cache with O3 CPU(multiple outstanding requests).

src/cpu/o3/fetch_impl.hh:
    Fix ordering issue with squashed Icache Fetches and Static data in packet.

--HG--
extra : convert_revision : a6adb87540b007ead0b4982cb3f31da8199fb5ca
This commit is contained in:
Ron Dreslinski 2006-07-11 15:42:31 -04:00
parent ad4374e0cd
commit 6bcc65c1f8

View file

@ -357,6 +357,8 @@ DefaultFetch<Impl>::processCacheCompletion(PacketPtr pkt)
return;
}
memcpy(cacheData[tid], pkt->getPtr<uint8_t *>(), cacheBlkSize);
if (!drainPending) {
// Wake up the CPU (if it went to sleep and was waiting on
// this completion event).
@ -548,7 +550,7 @@ DefaultFetch<Impl>::fetchCacheLine(Addr fetch_PC, Fault &ret_fault, unsigned tid
// Build packet here.
PacketPtr data_pkt = new Packet(mem_req,
Packet::ReadReq, Packet::Broadcast);
data_pkt->dataStatic(cacheData[tid]);
data_pkt->dataDynamic(new uint8_t[cacheBlkSize]);
DPRINTF(Fetch, "Fetch: Doing instruction read.\n");