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;

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

92 */
93 void setCPU(FullCPU *cpu_ptr);
94
95 /** Sets pointer to the list of active threads.
96 * @param at_ptr Pointer to the list of active threads.
97 */
98 void setActiveThreads(std::list<unsigned>* at_ptr);
99
100 /** Switches out the ROB. */
101 void switchOut();
102
103 /** Takes over another CPU's thread. */
104 void takeOverFrom();
105
106 /** Function to insert an instruction into the ROB. Note that whatever
107 * calls this function must ensure that there is enough space within the
108 * ROB for the new instruction.
109 * @param inst The instruction being inserted into the ROB.
110 */
111 void insertInst(DynInstPtr &inst);

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

297 * This will always be set to cpu->instList.end() if it is invalid.
298 */
299 InstIt squashIt[Impl::MaxThreads];
300
301 public:
302 /** Number of instructions in the ROB. */
303 int numInstsInROB;
304
305 /** Dummy instruction returned if there are no insts left. */
306 DynInstPtr dummyInst;
307
308 private:
309 /** The sequence number of the squashed instruction. */
310 InstSeqNum squashedSeqNum;
311
312 /** Is the ROB done squashing. */
313 bool doneSquashing[Impl::MaxThreads];
314
315 /** Number of active threads. */
316 unsigned numThreads;
317};
318
319#endif //__CPU_O3_ROB_HH__