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 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 |
387 return drained; 388} 389 390template <class Impl> 391void 392DefaultIEW<Impl>::drainSanityCheck() const 393{ 394 assert(isDrained()); 395 396 instQueue.drainSanityCheck(); 397 ldstQueue.drainSanityCheck(); |
398} 399 400template <class Impl> 401void 402DefaultIEW<Impl>::takeOverFrom() 403{ 404 // Reset all state. 405 _status = Active; --- 1269 unchanged lines hidden --- |