summaryrefslogtreecommitdiff
path: root/src/mem/physical.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2009-08-01 22:50:14 -0700
committerSteve Reinhardt <steve.reinhardt@amd.com>2009-08-01 22:50:14 -0700
commita13a706a207296b40dbe43576fad423cf5f4679a (patch)
tree119bd1bd09542130d603c8f30c0494313180753a /src/mem/physical.cc
parent1c2800465480993040e3058ef94ce30efbe982ec (diff)
downloadgem5-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/physical.cc')
-rw-r--r--src/mem/physical.cc12
1 files changed, 7 insertions, 5 deletions
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()) {