int numStores(ThreadID tid)
{ return thread[tid].numStores(); }
- /** Returns the total number of loads that are ready. */
- int numLoadsReady();
- /** Returns the number of loads that are ready for a single thread. */
- int numLoadsReady(ThreadID tid)
- { return thread[tid].numLoadsReady(); }
-
/** Returns the number of free entries. */
unsigned numFreeEntries();
/** Returns the number of free entries for a specific thread. */
return total;
}
-template<class Impl>
-int
-LSQ<Impl>::numLoadsReady()
-{
- unsigned total = 0;
-
- list<ThreadID>::iterator threads = activeThreads->begin();
- list<ThreadID>::iterator end = activeThreads->end();
-
- while (threads != end) {
- ThreadID tid = *threads++;
-
- total += thread[tid].numLoadsReady();
- }
-
- return total;
-}
-
template<class Impl>
unsigned
LSQ<Impl>::numFreeEntries()
/** Returns the number of free entries (min of free LQ and SQ entries). */
unsigned numFreeEntries();
- /** Returns the number of loads ready to execute. */
- int numLoadsReady();
-
/** Returns the number of loads in the LQ. */
int numLoads() { return loads; }
}
}
-template <class Impl>
-int
-LSQUnit<Impl>::numLoadsReady()
-{
- int load_idx = loadHead;
- int retval = 0;
-
- while (load_idx != loadTail) {
- assert(loadQueue[load_idx]);
-
- if (loadQueue[load_idx]->readyToIssue()) {
- ++retval;
- }
- }
-
- return retval;
-}
-
template <class Impl>
void
LSQUnit<Impl>::checkSnoop(PacketPtr pkt)