1/* 2 * Copyright (c) 2010 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 --- 442 unchanged lines hidden (view full) --- 451{ 452 DPRINTF(IEW, "[tid:%i]: Squashing from a specific instruction, PC: %s " 453 "[sn:%i].\n", tid, inst->pcState(), inst->seqNum); 454 455 if (toCommit->squash[tid] == false || 456 inst->seqNum < toCommit->squashedSeqNum[tid]) { 457 toCommit->squash[tid] = true; 458 toCommit->squashedSeqNum[tid] = inst->seqNum; |
459 toCommit->branchTaken[tid] = inst->pcState().branching(); 460 461 TheISA::PCState pc = inst->pcState(); 462 TheISA::advancePC(pc, inst->staticInst); 463 464 toCommit->pc[tid] = pc; 465 toCommit->mispredictInst[tid] = inst; 466 toCommit->includeSquashInst[tid] = false; --- 12 unchanged lines hidden (view full) --- 479 480 if (toCommit->squash[tid] == false || 481 inst->seqNum < toCommit->squashedSeqNum[tid]) { 482 toCommit->squash[tid] = true; 483 toCommit->squashedSeqNum[tid] = inst->seqNum; 484 TheISA::PCState pc = inst->pcState(); 485 TheISA::advancePC(pc, inst->staticInst); 486 toCommit->pc[tid] = pc; |
487 toCommit->mispredictInst[tid] = NULL; |
488 489 toCommit->includeSquashInst[tid] = false; 490 491 wroteToTimeBuffer = true; 492 } 493} 494 495template<class Impl> 496void 497DefaultIEW<Impl>::squashDueToMemBlocked(DynInstPtr &inst, ThreadID tid) 498{ 499 DPRINTF(IEW, "[tid:%i]: Memory blocked, squashing load and younger insts, " 500 "PC: %s [sn:%i].\n", tid, inst->pcState(), inst->seqNum); 501 if (toCommit->squash[tid] == false || 502 inst->seqNum < toCommit->squashedSeqNum[tid]) { 503 toCommit->squash[tid] = true; 504 505 toCommit->squashedSeqNum[tid] = inst->seqNum; 506 toCommit->pc[tid] = inst->pcState(); |
507 toCommit->mispredictInst[tid] = NULL; |
508 509 // Must include the broadcasted SN in the squash. 510 toCommit->includeSquashInst[tid] = true; 511 512 ldstQueue.setLoadBlockedHandled(tid); 513 514 wroteToTimeBuffer = true; 515 } --- 1140 unchanged lines hidden --- |