commit_impl.hh (10231:cb2e6950956d) | commit_impl.hh (10328:867b536a68be) |
---|---|
1/* 2 * Copyright (c) 2010-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 1321 unchanged lines hidden (view full) --- 1330 "squashed, skipping.\n", 1331 inst->pcState(), inst->seqNum, tid); 1332 } 1333 } 1334} 1335 1336template <class Impl> 1337void | 1/* 2 * Copyright (c) 2010-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 1321 unchanged lines hidden (view full) --- 1330 "squashed, skipping.\n", 1331 inst->pcState(), inst->seqNum, tid); 1332 } 1333 } 1334} 1335 1336template <class Impl> 1337void |
1338DefaultCommit<Impl>::skidInsert() 1339{ 1340 DPRINTF(Commit, "Attempting to any instructions from rename into " 1341 "skidBuffer.\n"); 1342 1343 for (int inst_num = 0; inst_num < fromRename->size; ++inst_num) { 1344 DynInstPtr inst = fromRename->insts[inst_num]; 1345 1346 if (!inst->isSquashed()) { 1347 DPRINTF(Commit, "Inserting PC %s [sn:%i] [tid:%i] into ", 1348 "skidBuffer.\n", inst->pcState(), inst->seqNum, 1349 inst->threadNumber); 1350 skidBuffer.push(inst); 1351 } else { 1352 DPRINTF(Commit, "Instruction PC %s [sn:%i] [tid:%i] was " 1353 "squashed, skipping.\n", 1354 inst->pcState(), inst->seqNum, inst->threadNumber); 1355 } 1356 } 1357} 1358 1359template <class Impl> 1360void | |
1361DefaultCommit<Impl>::markCompletedInsts() 1362{ 1363 // Grab completed insts out of the IEW instruction queue, and mark 1364 // instructions completed within the ROB. 1365 for (int inst_num = 0; 1366 inst_num < fromIEW->size && fromIEW->insts[inst_num]; 1367 ++inst_num) 1368 { --- 6 unchanged lines hidden (view full) --- 1375 1376 // Mark the instruction as ready to commit. 1377 fromIEW->insts[inst_num]->setCanCommit(); 1378 } 1379 } 1380} 1381 1382template <class Impl> | 1338DefaultCommit<Impl>::markCompletedInsts() 1339{ 1340 // Grab completed insts out of the IEW instruction queue, and mark 1341 // instructions completed within the ROB. 1342 for (int inst_num = 0; 1343 inst_num < fromIEW->size && fromIEW->insts[inst_num]; 1344 ++inst_num) 1345 { --- 6 unchanged lines hidden (view full) --- 1352 1353 // Mark the instruction as ready to commit. 1354 fromIEW->insts[inst_num]->setCanCommit(); 1355 } 1356 } 1357} 1358 1359template <class Impl> |
1383bool 1384DefaultCommit<Impl>::robDoneSquashing() 1385{ 1386 list<ThreadID>::iterator threads = activeThreads->begin(); 1387 list<ThreadID>::iterator end = activeThreads->end(); 1388 1389 while (threads != end) { 1390 ThreadID tid = *threads++; 1391 1392 if (!rob->isDoneSquashing(tid)) 1393 return false; 1394 } 1395 1396 return true; 1397} 1398 1399template <class Impl> | |
1400void 1401DefaultCommit<Impl>::updateComInstStats(DynInstPtr &inst) 1402{ 1403 ThreadID tid = inst->threadNumber; 1404 1405 if (!inst->isMicroop() || inst->isLastMicroop()) 1406 instsCommitted[tid]++; 1407 opsCommitted[tid]++; --- 151 unchanged lines hidden --- | 1360void 1361DefaultCommit<Impl>::updateComInstStats(DynInstPtr &inst) 1362{ 1363 ThreadID tid = inst->threadNumber; 1364 1365 if (!inst->isMicroop() || inst->isLastMicroop()) 1366 instsCommitted[tid]++; 1367 opsCommitted[tid]++; --- 151 unchanged lines hidden --- |