timing.cc (10024:fc10e1f9f124) | timing.cc (10030:b531e328342d) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2010-2012 ARM Limited | 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 80 unchanged lines hidden (view full) --- 91 fetchEvent(this), drainManager(NULL) 92{ 93 _status = Idle; 94 95 system->totalNumInsts = 0; 96} 97 98 | 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 80 unchanged lines hidden (view full) --- 91 fetchEvent(this), drainManager(NULL) 92{ 93 _status = Idle; 94 95 system->totalNumInsts = 0; 96} 97 98 |
99 |
|
99TimingSimpleCPU::~TimingSimpleCPU() 100{ 101} 102 103unsigned int 104TimingSimpleCPU::drain(DrainManager *drain_manager) 105{ 106 assert(!drainManager); --- 161 unchanged lines hidden (view full) --- 268 pkt->makeResponse(); 269 completeDataAccess(pkt); 270 } else if (read) { 271 handleReadPacket(pkt); 272 } else { 273 bool do_access = true; // flag to suppress cache access 274 275 if (req->isLLSC()) { | 100TimingSimpleCPU::~TimingSimpleCPU() 101{ 102} 103 104unsigned int 105TimingSimpleCPU::drain(DrainManager *drain_manager) 106{ 107 assert(!drainManager); --- 161 unchanged lines hidden (view full) --- 269 pkt->makeResponse(); 270 completeDataAccess(pkt); 271 } else if (read) { 272 handleReadPacket(pkt); 273 } else { 274 bool do_access = true; // flag to suppress cache access 275 276 if (req->isLLSC()) { |
276 do_access = TheISA::handleLockedWrite(thread, req); | 277 do_access = TheISA::handleLockedWrite(thread, req, dcachePort.cacheBlockMask); |
277 } else if (req->isCondSwap()) { 278 assert(res); 279 req->setExtraData(*res); 280 } 281 282 if (do_access) { 283 dcache_pkt = pkt; 284 handleWritePacket(); --- 523 unchanged lines hidden (view full) --- 808 delete pkt->req; 809 delete pkt; 810 811 postExecute(); 812 813 advanceInst(fault); 814} 815 | 278 } else if (req->isCondSwap()) { 279 assert(res); 280 req->setExtraData(*res); 281 } 282 283 if (do_access) { 284 dcache_pkt = pkt; 285 handleWritePacket(); --- 523 unchanged lines hidden (view full) --- 809 delete pkt->req; 810 delete pkt; 811 812 postExecute(); 813 814 advanceInst(fault); 815} 816 |
817void 818TimingSimpleCPU::DcachePort::recvTimingSnoopReq(PacketPtr pkt) 819{ 820 TheISA::handleLockedSnoop(cpu->thread, pkt, cacheBlockMask); 821} 822 823 |
|
816bool 817TimingSimpleCPU::DcachePort::recvTimingResp(PacketPtr pkt) 818{ 819 // delay processing of returned data until next CPU clock edge 820 Tick next_tick = cpu->clockEdge(); 821 822 if (next_tick == curTick()) { 823 cpu->completeDataAccess(pkt); --- 105 unchanged lines hidden --- | 824bool 825TimingSimpleCPU::DcachePort::recvTimingResp(PacketPtr pkt) 826{ 827 // delay processing of returned data until next CPU clock edge 828 Tick next_tick = cpu->clockEdge(); 829 830 if (next_tick == curTick()) { 831 cpu->completeDataAccess(pkt); --- 105 unchanged lines hidden --- |