rob.hh (2670:9107b8bd08cd) rob.hh (2674:6d4afef73a20)
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
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. */
100 void switchOut();
101
101 void switchOut();
102
103 /** Takes over another CPU's thread. */
102 void takeOverFrom();
103
104 /** Function to insert an instruction into the ROB. Note that whatever
105 * calls this function must ensure that there is enough space within the
106 * ROB for the new instruction.
107 * @param inst The instruction being inserted into the ROB.
108 */
109 void insertInst(DynInstPtr &inst);

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

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