iew_impl.hh (2674:6d4afef73a20) iew_impl.hh (2698:d5f35d41e017)
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
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
373template <class Impl>
374void
375DefaultIEW<Impl>::switchOut()
376{
377 // IEW is ready to switch out at any time.
378 cpu->signalSwitched();
379}
380

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

1168
1169 list<unsigned>::iterator threads = (*activeThreads).begin();
1170
1171 while (threads != (*activeThreads).end()) {
1172 unsigned tid = *threads++;
1173 fetchRedirect[tid] = false;
1174 }
1175
1185#if 0
1186 printAvailableInsts();
1187#endif
1176 // Uncomment this if you want to see all available instructions.
1177// printAvailableInsts();
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
1178
1179 // Execute/writeback any instructions that are available.
1180 int insts_to_execute = fromIssue->size;
1181 int inst_num = 0;
1182 for (; inst_num < insts_to_execute;
1183 ++inst_num) {
1184
1185 DPRINTF(IEW, "Execute: Executing instructions from IQ.\n");

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

1334 // mark scoreboard that this instruction is finally complete.
1335 // Either have IEW have direct access to scoreboard, or have this
1336 // as part of backwards communication.
1337 for (int inst_num = 0; inst_num < issueWidth &&
1338 toCommit->insts[inst_num]; inst_num++) {
1339 DynInstPtr inst = toCommit->insts[inst_num];
1340 int tid = inst->threadNumber;
1341
1352 DPRINTF(IEW, "Sending instructions to commit, PC %#x.\n",
1353 inst->readPC());
1342 DPRINTF(IEW, "Sending instructions to commit, [sn:%lli] PC %#x.\n",
1343 inst->seqNum, 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 ---
1344
1345 iewInstsToCommit[tid]++;
1346
1347 // Some instructions will be sent to commit without having
1348 // executed because they need commit to handle them.
1349 // E.g. Uncached loads have not actually executed when they
1350 // are first sent to commit. Instead commit must tell the LSQ
1351 // when it's ready to execute the uncached load.

--- 176 unchanged lines hidden ---