Deleted Added
sdiff udiff text old ( 2674:6d4afef73a20 ) new ( 2698:d5f35d41e017 )
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;

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

365template<class Impl>
366void
367DefaultIEW<Impl>::setScoreboard(Scoreboard *sb_ptr)
368{
369 DPRINTF(IEW, "Setting scoreboard pointer.\n");
370 scoreboard = sb_ptr;
371}
372
373#if 0
374template<class Impl>
375void
376DefaultIEW<Impl>::setPageTable(PageTable *pt_ptr)
377{
378 ldstQueue.setPageTable(pt_ptr);
379}
380#endif
381
382template <class Impl>
383void
384DefaultIEW<Impl>::switchOut()
385{
386 // IEW is ready to switch out at any time.
387 cpu->signalSwitched();
388}
389

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

1177
1178 list<unsigned>::iterator threads = (*activeThreads).begin();
1179
1180 while (threads != (*activeThreads).end()) {
1181 unsigned tid = *threads++;
1182 fetchRedirect[tid] = false;
1183 }
1184
1185#if 0
1186 printAvailableInsts();
1187#endif
1188
1189 // Execute/writeback any instructions that are available.
1190 int insts_to_execute = fromIssue->size;
1191 int inst_num = 0;
1192 for (; inst_num < insts_to_execute;
1193 ++inst_num) {
1194
1195 DPRINTF(IEW, "Execute: Executing instructions from IQ.\n");

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

1344 // mark scoreboard that this instruction is finally complete.
1345 // Either have IEW have direct access to scoreboard, or have this
1346 // as part of backwards communication.
1347 for (int inst_num = 0; inst_num < issueWidth &&
1348 toCommit->insts[inst_num]; inst_num++) {
1349 DynInstPtr inst = toCommit->insts[inst_num];
1350 int tid = inst->threadNumber;
1351
1352 DPRINTF(IEW, "Sending instructions to commit, PC %#x.\n",
1353 inst->readPC());
1354
1355 iewInstsToCommit[tid]++;
1356
1357 // Some instructions will be sent to commit without having
1358 // executed because they need commit to handle them.
1359 // E.g. Uncached loads have not actually executed when they
1360 // are first sent to commit. Instead commit must tell the LSQ
1361 // when it's ready to execute the uncached load.

--- 176 unchanged lines hidden ---