timing.cc (10529:05b5a6cf3521) | timing.cc (10533:d1dce0b728b6) |
---|---|
1/* 2 * Copyright (c) 2010-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 229 unchanged lines hidden (view full) --- 238 notIdleFraction = 0; 239 _status = Idle; 240} 241 242bool 243TimingSimpleCPU::handleReadPacket(PacketPtr pkt) 244{ 245 RequestPtr req = pkt->req; | 1/* 2 * Copyright (c) 2010-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 229 unchanged lines hidden (view full) --- 238 notIdleFraction = 0; 239 _status = Idle; 240} 241 242bool 243TimingSimpleCPU::handleReadPacket(PacketPtr pkt) 244{ 245 RequestPtr req = pkt->req; |
246 247 // We're about the issues a locked load, so tell the monitor 248 // to start caring about this address 249 if (pkt->isRead() && pkt->req->isLLSC()) { 250 TheISA::handleLockedRead(thread, pkt->req); 251 } |
|
246 if (req->isMmappedIpr()) { 247 Cycles delay = TheISA::handleIprRead(thread->getTC(), pkt); 248 new IprEvent(pkt, this, clockEdge(delay)); 249 _status = DcacheWaitResponse; 250 dcache_pkt = NULL; 251 } else if (!dcachePort.sendTimingReq(pkt)) { 252 _status = DcacheRetry; 253 dcache_pkt = pkt; --- 533 unchanged lines hidden (view full) --- 787 if (fault == NoFault) 788 countInst(); 789 else if (traceData) { 790 // If there was a fault, we shouldn't trace this instruction. 791 delete traceData; 792 traceData = NULL; 793 } 794 | 252 if (req->isMmappedIpr()) { 253 Cycles delay = TheISA::handleIprRead(thread->getTC(), pkt); 254 new IprEvent(pkt, this, clockEdge(delay)); 255 _status = DcacheWaitResponse; 256 dcache_pkt = NULL; 257 } else if (!dcachePort.sendTimingReq(pkt)) { 258 _status = DcacheRetry; 259 dcache_pkt = pkt; --- 533 unchanged lines hidden (view full) --- 793 if (fault == NoFault) 794 countInst(); 795 else if (traceData) { 796 // If there was a fault, we shouldn't trace this instruction. 797 delete traceData; 798 traceData = NULL; 799 } 800 |
795 // the locked flag may be cleared on the response packet, so check 796 // pkt->req and not pkt to see if it was a load-locked 797 if (pkt->isRead() && pkt->req->isLLSC()) { 798 TheISA::handleLockedRead(thread, pkt->req); 799 } 800 | |
801 delete pkt->req; 802 delete pkt; 803 804 postExecute(); 805 806 advanceInst(fault); 807} 808 --- 143 unchanged lines hidden --- | 801 delete pkt->req; 802 delete pkt; 803 804 postExecute(); 805 806 advanceInst(fault); 807} 808 --- 143 unchanged lines hidden --- |