cpu.cc (2935:d1223a6c9156) | cpu.cc (3093:b09c33e66bce) |
---|---|
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; --- 167 unchanged lines hidden (view full) --- 176 decodeQueue(params->backComSize, params->forwardComSize), 177 renameQueue(params->backComSize, params->forwardComSize), 178 iewQueue(params->backComSize, params->forwardComSize), 179 activityRec(NumStages, 180 params->backComSize + params->forwardComSize, 181 params->activity), 182 183 globalSeqNum(1), | 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; --- 167 unchanged lines hidden (view full) --- 176 decodeQueue(params->backComSize, params->forwardComSize), 177 renameQueue(params->backComSize, params->forwardComSize), 178 iewQueue(params->backComSize, params->forwardComSize), 179 activityRec(NumStages, 180 params->backComSize + params->forwardComSize, 181 params->activity), 182 183 globalSeqNum(1), |
184 | |
185#if FULL_SYSTEM 186 system(params->system), 187 physmem(system->physmem), 188#endif // FULL_SYSTEM 189 mem(params->mem), 190 drainCount(0), 191 deferRegistration(params->deferRegistration), 192 numThreads(number_of_threads) --- 124 unchanged lines hidden (view full) --- 317 318 // Setup the ROB for whichever stages need it. 319 commit.setROB(&rob); 320 321 lastRunningCycle = curTick; 322 323 lastActivatedCycle = -1; 324 | 184#if FULL_SYSTEM 185 system(params->system), 186 physmem(system->physmem), 187#endif // FULL_SYSTEM 188 mem(params->mem), 189 drainCount(0), 190 deferRegistration(params->deferRegistration), 191 numThreads(number_of_threads) --- 124 unchanged lines hidden (view full) --- 316 317 // Setup the ROB for whichever stages need it. 318 commit.setROB(&rob); 319 320 lastRunningCycle = curTick; 321 322 lastActivatedCycle = -1; 323 |
324 // Give renameMap & rename stage access to the freeList; 325 //for (int i=0; i < numThreads; i++) { 326 //globalSeqNum[i] = 1; 327 //} 328 |
|
325 contextSwitch = false; 326} 327 328template <class Impl> 329FullO3CPU<Impl>::~FullO3CPU() 330{ 331} 332 --- 289 unchanged lines hidden (view full) --- 622 } 623 624 //Copy Thread Data Into RegFile 625 //this->copyFromTC(tid); 626 627 //Set PC/NPC/NNPC 628 setPC(src_tc->readPC(), tid); 629 setNextPC(src_tc->readNextPC(), tid); | 329 contextSwitch = false; 330} 331 332template <class Impl> 333FullO3CPU<Impl>::~FullO3CPU() 334{ 335} 336 --- 289 unchanged lines hidden (view full) --- 626 } 627 628 //Copy Thread Data Into RegFile 629 //this->copyFromTC(tid); 630 631 //Set PC/NPC/NNPC 632 setPC(src_tc->readPC(), tid); 633 setNextPC(src_tc->readNextPC(), tid); |
630#if THE_ISA != ALPHA_ISA | 634#if ISA_HAS_DELAY_SLOT |
631 setNextNPC(src_tc->readNextNPC(), tid); 632#endif 633 634 src_tc->setStatus(ThreadContext::Active); 635 636 activateContext(tid,1); 637 638 //Reset ROB/IQ/LSQ Entries --- 553 unchanged lines hidden (view full) --- 1192 1193 inst_it--; 1194 1195 // Walk through the instruction list, removing any instructions 1196 // that were inserted after the given instruction iterator, end_it. 1197 while (inst_it != end_it) { 1198 assert(!instList.empty()); 1199 | 635 setNextNPC(src_tc->readNextNPC(), tid); 636#endif 637 638 src_tc->setStatus(ThreadContext::Active); 639 640 activateContext(tid,1); 641 642 //Reset ROB/IQ/LSQ Entries --- 553 unchanged lines hidden (view full) --- 1196 1197 inst_it--; 1198 1199 // Walk through the instruction list, removing any instructions 1200 // that were inserted after the given instruction iterator, end_it. 1201 while (inst_it != end_it) { 1202 assert(!instList.empty()); 1203 |
1200#if THE_ISA != ALPHA_ISA | 1204#if ISA_HAS_DELAY_SLOT |
1201 if(!squash_delay_slot && 1202 delay_slot_seq_num >= (*inst_it)->seqNum) { 1203 break; 1204 } 1205#endif 1206 squashInstIt(inst_it, tid); 1207 1208 inst_it--; --- 182 unchanged lines hidden --- | 1205 if(!squash_delay_slot && 1206 delay_slot_seq_num >= (*inst_it)->seqNum) { 1207 break; 1208 } 1209#endif 1210 squashInstIt(inst_it, tid); 1211 1212 inst_it--; --- 182 unchanged lines hidden --- |