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