rob_impl.hh (7717:f166f8bd8818) | rob_impl.hh (7720:65d338a8dba4) |
---|---|
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; --- 190 unchanged lines hidden (view full) --- 199} 200 201template <class Impl> 202void 203ROB<Impl>::insertInst(DynInstPtr &inst) 204{ 205 assert(inst); 206 | 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; --- 190 unchanged lines hidden (view full) --- 199} 200 201template <class Impl> 202void 203ROB<Impl>::insertInst(DynInstPtr &inst) 204{ 205 assert(inst); 206 |
207 DPRINTF(ROB, "Adding inst PC %#x to the ROB.\n", inst->readPC()); | 207 DPRINTF(ROB, "Adding inst PC %s to the ROB.\n", inst->pcState()); |
208 209 assert(numInstsInROB != numEntries); 210 211 ThreadID tid = inst->threadNumber; 212 213 instList[tid].push_back(inst); 214 215 //Set Up head iterator if this is the 1st instruction in the ROB --- 26 unchanged lines hidden (view full) --- 242 // Get the head ROB instruction. 243 InstIt head_it = instList[tid].begin(); 244 245 DynInstPtr head_inst = (*head_it); 246 247 assert(head_inst->readyToCommit()); 248 249 DPRINTF(ROB, "[tid:%u]: Retiring head instruction, " | 208 209 assert(numInstsInROB != numEntries); 210 211 ThreadID tid = inst->threadNumber; 212 213 instList[tid].push_back(inst); 214 215 //Set Up head iterator if this is the 1st instruction in the ROB --- 26 unchanged lines hidden (view full) --- 242 // Get the head ROB instruction. 243 InstIt head_it = instList[tid].begin(); 244 245 DynInstPtr head_inst = (*head_it); 246 247 assert(head_inst->readyToCommit()); 248 249 DPRINTF(ROB, "[tid:%u]: Retiring head instruction, " |
250 "instruction PC %#x,[sn:%lli]\n", tid, head_inst->readPC(), | 250 "instruction PC %s, [sn:%lli]\n", tid, head_inst->pcState(), |
251 head_inst->seqNum); 252 253 --numInstsInROB; 254 --threadEntries[tid]; 255 256 head_inst->clearInROB(); 257 head_inst->setCommitted(); 258 --- 74 unchanged lines hidden (view full) --- 333 bool robTailUpdate = false; 334 335 for (int numSquashed = 0; 336 numSquashed < squashWidth && 337 squashIt[tid] != instList[tid].end() && 338 (*squashIt[tid])->seqNum > squashedSeqNum[tid]; 339 ++numSquashed) 340 { | 251 head_inst->seqNum); 252 253 --numInstsInROB; 254 --threadEntries[tid]; 255 256 head_inst->clearInROB(); 257 head_inst->setCommitted(); 258 --- 74 unchanged lines hidden (view full) --- 333 bool robTailUpdate = false; 334 335 for (int numSquashed = 0; 336 numSquashed < squashWidth && 337 squashIt[tid] != instList[tid].end() && 338 (*squashIt[tid])->seqNum > squashedSeqNum[tid]; 339 ++numSquashed) 340 { |
341 DPRINTF(ROB, "[tid:%u]: Squashing instruction PC %#x, seq num %i.\n", | 341 DPRINTF(ROB, "[tid:%u]: Squashing instruction PC %s, seq num %i.\n", |
342 (*squashIt[tid])->threadNumber, | 342 (*squashIt[tid])->threadNumber, |
343 (*squashIt[tid])->readPC(), | 343 (*squashIt[tid])->pcState(), |
344 (*squashIt[tid])->seqNum); 345 346 // Mark the instruction as squashed, and ready to commit so that 347 // it can drain out of the pipeline. 348 (*squashIt[tid])->setSquashed(); 349 350 (*squashIt[tid])->setCanCommit(); 351 --- 174 unchanged lines hidden --- | 344 (*squashIt[tid])->seqNum); 345 346 // Mark the instruction as squashed, and ready to commit so that 347 // it can drain out of the pipeline. 348 (*squashIt[tid])->setSquashed(); 349 350 (*squashIt[tid])->setCanCommit(); 351 --- 174 unchanged lines hidden --- |