lsq_impl.hh (8850:ed91b534ed04) | lsq_impl.hh (8948:e95ee70f876c) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2011 ARM Limited | 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 305 unchanged lines hidden (view full) --- 316 retryTid = -1; 317 thread[curr_retry_tid].recvRetry(); 318} 319 320template <class Impl> 321bool 322LSQ<Impl>::recvTiming(PacketPtr pkt) 323{ | 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 --- 305 unchanged lines hidden (view full) --- 316 retryTid = -1; 317 thread[curr_retry_tid].recvRetry(); 318} 319 320template <class Impl> 321bool 322LSQ<Impl>::recvTiming(PacketPtr pkt) 323{ |
324 assert(pkt->isResponse()); |
|
324 if (pkt->isError()) 325 DPRINTF(LSQ, "Got error packet back for address: %#X\n", 326 pkt->getAddr()); | 325 if (pkt->isError()) 326 DPRINTF(LSQ, "Got error packet back for address: %#X\n", 327 pkt->getAddr()); |
327 if (pkt->isResponse()) { 328 thread[pkt->req->threadId()].completeDataAccess(pkt); 329 } else { 330 DPRINTF(LSQ, "received pkt for addr:%#x %s\n", pkt->getAddr(), 331 pkt->cmdString()); | 328 thread[pkt->req->threadId()].completeDataAccess(pkt); 329 return true; 330} |
332 | 331 |
333 // must be a snoop 334 if (pkt->isInvalidate()) { 335 DPRINTF(LSQ, "received invalidation for addr:%#x\n", 336 pkt->getAddr()); 337 for (ThreadID tid = 0; tid < numThreads; tid++) { 338 thread[tid].checkSnoop(pkt); 339 } | 332template <class Impl> 333bool 334LSQ<Impl>::recvTimingSnoop(PacketPtr pkt) 335{ 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); |
340 } | 346 } |
341 // to provide stronger consistency model | |
342 } | 347 } |
348 349 // to provide stronger consistency model |
|
343 return true; 344} 345 346template<class Impl> 347int 348LSQ<Impl>::getCount() 349{ 350 unsigned total = 0; --- 256 unchanged lines hidden --- | 350 return true; 351} 352 353template<class Impl> 354int 355LSQ<Impl>::getCount() 356{ 357 unsigned total = 0; --- 256 unchanged lines hidden --- |