fetch.hh (2840:227f7c4f8c81) fetch.hh (2843:19c4c6c2b5b1)
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;

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

175 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr);
176
177 /** Initialize stage. */
178 void initStage();
179
180 /** Processes cache completion event. */
181 void processCacheCompletion(PacketPtr pkt);
182
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;

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

175 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr);
176
177 /** Initialize stage. */
178 void initStage();
179
180 /** Processes cache completion event. */
181 void processCacheCompletion(PacketPtr pkt);
182
183 /** Begins the switch out of the fetch stage. */
184 void switchOut();
183 /** Begins the drain of the fetch stage. */
184 void drain();
185
185
186 /** Completes the switch out of the fetch stage. */
187 void doSwitchOut();
186 /** Resumes execution after a drain. */
187 void resume();
188
188
189 /** Tells fetch stage to prepare to be switched out. */
190 void switchOut();
191
189 /** Takes over from another CPU's thread. */
190 void takeOverFrom();
191
192 /** Checks if the fetch stage is switched out. */
193 bool isSwitchedOut() { return switchedOut; }
194
195 /** Tells fetch to wake up from a quiesce instruction. */
196 void wakeFromQuiesce();

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

416 /** Thread ID being fetched. */
417 int threadFetched;
418
419 /** Checks if there is an interrupt pending. If there is, fetch
420 * must stop once it is not fetching PAL instructions.
421 */
422 bool interruptPending;
423
192 /** Takes over from another CPU's thread. */
193 void takeOverFrom();
194
195 /** Checks if the fetch stage is switched out. */
196 bool isSwitchedOut() { return switchedOut; }
197
198 /** Tells fetch to wake up from a quiesce instruction. */
199 void wakeFromQuiesce();

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

419 /** Thread ID being fetched. */
420 int threadFetched;
421
422 /** Checks if there is an interrupt pending. If there is, fetch
423 * must stop once it is not fetching PAL instructions.
424 */
425 bool interruptPending;
426
427 /** Is there a drain pending. */
428 bool drainPending;
429
424 /** Records if fetch is switched out. */
425 bool switchedOut;
426
427 // @todo: Consider making these vectors and tracking on a per thread basis.
428 /** Stat for total number of cycles stalled due to an icache miss. */
429 Stats::Scalar<> icacheStallCycles;
430 /** Stat for total number of fetched instructions. */
431 Stats::Scalar<> fetchedInsts;

--- 33 unchanged lines hidden ---
430 /** Records if fetch is switched out. */
431 bool switchedOut;
432
433 // @todo: Consider making these vectors and tracking on a per thread basis.
434 /** Stat for total number of cycles stalled due to an icache miss. */
435 Stats::Scalar<> icacheStallCycles;
436 /** Stat for total number of fetched instructions. */
437 Stats::Scalar<> fetchedInsts;

--- 33 unchanged lines hidden ---