diff options
author | Steve Reinhardt <steve.reinhardt@amd.com> | 2009-08-01 22:50:14 -0700 |
---|---|---|
committer | Steve Reinhardt <steve.reinhardt@amd.com> | 2009-08-01 22:50:14 -0700 |
commit | a13a706a207296b40dbe43576fad423cf5f4679a (patch) | |
tree | 119bd1bd09542130d603c8f30c0494313180753a /src/mem | |
parent | 1c2800465480993040e3058ef94ce30efbe982ec (diff) | |
download | gem5-a13a706a207296b40dbe43576fad423cf5f4679a.tar.xz |
Fix setting of INST_FETCH flag for O3 CPU.
It's still broken in inorder.
Also enhance DPRINTFs in cache and physical memory so we
can see more easily whether it's getting set or not.
Diffstat (limited to 'src/mem')
-rw-r--r-- | src/mem/cache/cache_impl.hh | 5 | ||||
-rw-r--r-- | src/mem/physical.cc | 12 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh index 0940893bc..80b7c545c 100644 --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -268,8 +268,9 @@ Cache<TagStore>::access(PacketPtr pkt, BlkType *&blk, blk = tags->accessBlock(pkt->getAddr(), lat); - DPRINTF(Cache, "%s %x %s\n", pkt->cmdString(), pkt->getAddr(), - (blk) ? "hit" : "miss"); + DPRINTF(Cache, "%s%s %x %s\n", pkt->cmdString(), + pkt->req->isInstFetch() ? " (ifetch)" : "", + pkt->getAddr(), (blk) ? "hit" : "miss"); if (blk != NULL) { diff --git a/src/mem/physical.cc b/src/mem/physical.cc index 5680fd970..d87ad3b22 100644 --- a/src/mem/physical.cc +++ b/src/mem/physical.cc @@ -211,8 +211,8 @@ PhysicalMemory::checkLockedAddrList(PacketPtr pkt) #define CASE(A, T) \ case sizeof(T): \ - DPRINTF(MemoryAccess, A " of size %i on address 0x%x data 0x%x\n", \ - pkt->getSize(), pkt->getAddr(), pkt->get<T>()); \ + DPRINTF(MemoryAccess,"%s of size %i on address 0x%x data 0x%x\n", \ + A, pkt->getSize(), pkt->getAddr(), pkt->get<T>()); \ break @@ -224,8 +224,8 @@ PhysicalMemory::checkLockedAddrList(PacketPtr pkt) CASE(A, uint16_t); \ CASE(A, uint8_t); \ default: \ - DPRINTF(MemoryAccess, A " of size %i on address 0x%x\n", \ - pkt->getSize(), pkt->getAddr()); \ + DPRINTF(MemoryAccess, "%s of size %i on address 0x%x\n", \ + A, pkt->getSize(), pkt->getAddr()); \ } \ } while (0) @@ -281,6 +281,7 @@ PhysicalMemory::doAtomicAccess(PacketPtr pkt) if (overwrite_mem) std::memcpy(hostAddr, &overwrite_val, pkt->getSize()); + assert(!pkt->req->isInstFetch()); TRACE_PACKET("Read/Write"); } else if (pkt->isRead()) { assert(!pkt->isWrite()); @@ -289,11 +290,12 @@ PhysicalMemory::doAtomicAccess(PacketPtr pkt) } if (pmemAddr) memcpy(pkt->getPtr<uint8_t>(), hostAddr, pkt->getSize()); - TRACE_PACKET("Read"); + TRACE_PACKET(pkt->req->isInstFetch() ? "IFetch" : "Read"); } else if (pkt->isWrite()) { if (writeOK(pkt)) { if (pmemAddr) memcpy(hostAddr, pkt->getPtr<uint8_t>(), pkt->getSize()); + assert(!pkt->req->isInstFetch()); TRACE_PACKET("Write"); } } else if (pkt->isInvalidate()) { |