From f72a9993931c7b986df771878e22cada0028955f Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Mon, 12 Feb 2007 18:40:08 -0500 Subject: some forgotten commits --HG-- extra : convert_revision : 213440066c700ed5891a6d4568928b7f3f2fe750 --- src/mem/physical.cc | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'src/mem/physical.cc') diff --git a/src/mem/physical.cc b/src/mem/physical.cc index 381669d4d..5d7d7382a 100644 --- a/src/mem/physical.cc +++ b/src/mem/physical.cc @@ -265,33 +265,31 @@ PhysicalMemory::doFunctionalAccess(PacketPtr pkt) bool overwrite_mem; uint64_t condition_val64; uint32_t condition_val32; - uint64_t test_val64; - uint32_t test_val32; assert(sizeof(IntReg) >= pkt->getSize()); overwrite_mem = true; // keep a copy of our possible write value, and copy what is at the // memory address into the packet - memcpy(&overwrite_val, pkt->getPtr(), pkt->getSize()); - memcpy(pkt->getPtr(), pmemAddr + pkt->getAddr() - start(), + std::memcpy(&overwrite_val, pkt->getPtr(), pkt->getSize()); + std::memcpy(pkt->getPtr(), pmemAddr + pkt->getAddr() - start(), pkt->getSize()); if (pkt->req->isCondSwap()) { if (pkt->getSize() == sizeof(uint64_t)) { - condition_val64 = htog(pkt->req->getExtraData()); - memcpy(&test_val64, pmemAddr + pkt->getAddr() - start(), sizeof(uint64_t)); - overwrite_mem = test_val64 == condition_val64; + condition_val64 = pkt->req->getExtraData(); + overwrite_mem = !std::memcmp(&condition_val64, pmemAddr + + pkt->getAddr() - start(), sizeof(uint64_t)); } else if (pkt->getSize() == sizeof(uint32_t)) { - condition_val32 = htog((uint32_t)pkt->req->getExtraData()); - memcpy(&test_val32, pmemAddr + pkt->getAddr() - start(), sizeof(uint32_t)); - overwrite_mem = test_val32 == condition_val32; + condition_val32 = (uint32_t)pkt->req->getExtraData(); + overwrite_mem = !std::memcmp(&condition_val32, pmemAddr + + pkt->getAddr() - start(), sizeof(uint32_t)); } else panic("Invalid size for conditional read/write\n"); } if (overwrite_mem) - memcpy(pmemAddr + pkt->getAddr() - start(), + std::memcpy(pmemAddr + pkt->getAddr() - start(), &overwrite_val, pkt->getSize()); #if TRACING_ON -- cgit v1.2.3