lsq_impl.hh (8948:e95ee70f876c) | lsq_impl.hh (8975:7f36d4436074) |
---|---|
1/* 2 * Copyright (c) 2011-2012 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 --- 305 unchanged lines hidden (view full) --- 314 // Speculatively clear the retry Tid. This will get set again if 315 // the LSQUnit was unable to complete its access. 316 retryTid = -1; 317 thread[curr_retry_tid].recvRetry(); 318} 319 320template <class Impl> 321bool | 1/* 2 * Copyright (c) 2011-2012 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 --- 305 unchanged lines hidden (view full) --- 314 // Speculatively clear the retry Tid. This will get set again if 315 // the LSQUnit was unable to complete its access. 316 retryTid = -1; 317 thread[curr_retry_tid].recvRetry(); 318} 319 320template <class Impl> 321bool |
322LSQ | 322LSQ<Impl>::recvTimingResp(PacketPtr pkt) |
323{ | 323{ |
324 assert(pkt->isResponse()); | |
325 if (pkt->isError()) 326 DPRINTF(LSQ, "Got error packet back for address: %#X\n", 327 pkt->getAddr()); 328 thread[pkt->req->threadId()].completeDataAccess(pkt); 329 return true; 330} 331 332template <class Impl> | 324 if (pkt->isError()) 325 DPRINTF(LSQ, "Got error packet back for address: %#X\n", 326 pkt->getAddr()); 327 thread[pkt->req->threadId()].completeDataAccess(pkt); 328 return true; 329} 330 331template <class Impl> |
333bool 334LSQ | 332void 333LSQ<Impl>::recvTimingSnoopReq(PacketPtr pkt) |
335{ | 334{ |
336 assert(pkt->isRequest()); | |
337 DPRINTF(LSQ, "received pkt for addr:%#x %s\n", pkt->getAddr(), 338 pkt->cmdString()); 339 340 // must be a snoop 341 if (pkt->isInvalidate()) { 342 DPRINTF(LSQ, "received invalidation for addr:%#x\n", 343 pkt->getAddr()); 344 for (ThreadID tid = 0; tid < numThreads; tid++) { 345 thread[tid].checkSnoop(pkt); 346 } 347 } | 335 DPRINTF(LSQ, "received pkt for addr:%#x %s\n", pkt->getAddr(), 336 pkt->cmdString()); 337 338 // must be a snoop 339 if (pkt->isInvalidate()) { 340 DPRINTF(LSQ, "received invalidation for addr:%#x\n", 341 pkt->getAddr()); 342 for (ThreadID tid = 0; tid < numThreads; tid++) { 343 thread[tid].checkSnoop(pkt); 344 } 345 } |
348 349 // to provide stronger consistency model 350 return true; | |
351} 352 353template<class Impl> 354int 355LSQ<Impl>::getCount() 356{ 357 unsigned total = 0; 358 --- 255 unchanged lines hidden --- | 346} 347 348template<class Impl> 349int 350LSQ<Impl>::getCount() 351{ 352 unsigned total = 0; 353 --- 255 unchanged lines hidden --- |