iew_impl.hh (9527:68154bc0e0ea) | iew_impl.hh (9783:8d327ffdba62) |
---|---|
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 --- 360 unchanged lines hidden (view full) --- 371 drained = false; 372 } 373 if (!skidBuffer[tid].empty()) { 374 DPRINTF(Drain, "%i: Skid buffer not empty.\n", tid); 375 drained = false; 376 } 377 } 378 | 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 --- 360 unchanged lines hidden (view full) --- 371 drained = false; 372 } 373 if (!skidBuffer[tid].empty()) { 374 DPRINTF(Drain, "%i: Skid buffer not empty.\n", tid); 375 drained = false; 376 } 377 } 378 |
379 // Also check the FU pool as instructions are "stored" in FU 380 // completion events until they are done and not accounted for 381 // above 382 if (drained && !fuPool->isDrained()) { 383 DPRINTF(Drain, "FU pool still busy.\n"); 384 drained = false; 385 } 386 |
|
379 return drained; 380} 381 382template <class Impl> 383void 384DefaultIEW<Impl>::drainSanityCheck() const 385{ 386 assert(isDrained()); 387 388 instQueue.drainSanityCheck(); 389 ldstQueue.drainSanityCheck(); | 387 return drained; 388} 389 390template <class Impl> 391void 392DefaultIEW<Impl>::drainSanityCheck() const 393{ 394 assert(isDrained()); 395 396 instQueue.drainSanityCheck(); 397 ldstQueue.drainSanityCheck(); |
390 fuPool->drainSanityCheck(); | |
391} 392 393template <class Impl> 394void 395DefaultIEW<Impl>::takeOverFrom() 396{ 397 // Reset all state. 398 _status = Active; --- 1269 unchanged lines hidden --- | 398} 399 400template <class Impl> 401void 402DefaultIEW<Impl>::takeOverFrom() 403{ 404 // Reset all state. 405 _status = Active; --- 1269 unchanged lines hidden --- |