Deleted Added
sdiff udiff text old ( 3967:1f1dff08a596 ) new ( 3970:d54945bab95d )
full compact
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 414 unchanged lines hidden (view full) ---

423 // fetch past its skidbuffer
424 assert(skidBuffer[tid].size() <= skidBufferMax);
425}
426
427template<class Impl>
428bool
429DefaultDecode<Impl>::skidsEmpty()
430{
431 std::list<unsigned>::iterator threads = (*activeThreads).begin();
432
433 while (threads != (*activeThreads).end()) {
434 if (!skidBuffer[*threads++].empty())
435 return false;
436 }
437
438 return true;
439}
440
441template<class Impl>
442void
443DefaultDecode<Impl>::updateStatus()
444{
445 bool any_unblocking = false;
446
447 std::list<unsigned>::iterator threads = (*activeThreads).begin();
448
449 threads = (*activeThreads).begin();
450
451 while (threads != (*activeThreads).end()) {
452 unsigned tid = *threads++;
453
454 if (decodeStatus[tid] == Unblocking) {
455 any_unblocking = true;
456 break;
457 }
458 }
459

--- 136 unchanged lines hidden (view full) ---

596DefaultDecode<Impl>::tick()
597{
598 wroteToTimeBuffer = false;
599
600 bool status_change = false;
601
602 toRenameIndex = 0;
603
604 std::list<unsigned>::iterator threads = (*activeThreads).begin();
605
606 sortInsts();
607
608 //Check stall and squash signals.
609 while (threads != (*activeThreads).end()) {
610 unsigned tid = *threads++;
611
612 DPRINTF(Decode,"Processing [tid:%i]\n",tid);
613 status_change = checkSignalsAndUpdate(tid) || status_change;
614
615 decode(status_change, tid);
616 }
617
618 if (status_change) {

--- 209 unchanged lines hidden ---