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__ |