decode_impl.hh (3967:1f1dff08a596) | decode_impl.hh (3970:d54945bab95d) |
---|---|
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{ | 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(); | 431 std::list<unsigned>::iterator threads = activeThreads->begin(); 432 std::list<unsigned>::iterator end = activeThreads->end(); |
432 | 433 |
433 while (threads != (*activeThreads).end()) { 434 if (!skidBuffer[*threads++].empty()) | 434 while (threads != end) { 435 unsigned tid = *threads++; 436 if (!skidBuffer[tid].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 | 437 return false; 438 } 439 440 return true; 441} 442 443template<class Impl> 444void 445DefaultDecode<Impl>::updateStatus() 446{ 447 bool any_unblocking = false; 448 |
447 std::list<unsigned>::iterator threads = (*activeThreads).begin(); | 449 std::list<unsigned>::iterator threads = activeThreads->begin(); 450 std::list<unsigned>::iterator end = activeThreads->end(); |
448 | 451 |
449 threads = (*activeThreads).begin(); 450 451 while (threads != (*activeThreads).end()) { | 452 while (threads != 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 | 453 unsigned tid = *threads++; 454 455 if (decodeStatus[tid] == Unblocking) { 456 any_unblocking = true; 457 break; 458 } 459 } 460 --- 136 unchanged lines hidden (view full) --- 597DefaultDecode<Impl>::tick() 598{ 599 wroteToTimeBuffer = false; 600 601 bool status_change = false; 602 603 toRenameIndex = 0; 604 |
604 std::list<unsigned>::iterator threads = (*activeThreads).begin(); | 605 std::list<unsigned>::iterator threads = activeThreads->begin(); 606 std::list<unsigned>::iterator end = activeThreads->end(); |
605 606 sortInsts(); 607 608 //Check stall and squash signals. | 607 608 sortInsts(); 609 610 //Check stall and squash signals. |
609 while (threads != (*activeThreads).end()) { 610 unsigned tid = *threads++; | 611 while (threads != end) { 612 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 --- | 613 614 DPRINTF(Decode,"Processing [tid:%i]\n",tid); 615 status_change = checkSignalsAndUpdate(tid) || status_change; 616 617 decode(status_change, tid); 618 } 619 620 if (status_change) { --- 209 unchanged lines hidden --- |