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 ---