1 2/* 3 * Copyright (c) 2010-2013 ARM Limited 4 * All rights reserved 5 * 6 * The license below extends only to copyright in the software and shall 7 * not be construed as granting a license to any other intellectual 8 * property including but not limited to intellectual property relating --- 598 unchanged lines hidden (view full) --- 607 load_fault = inst->initiateAcc(); 608 609 if (inst->isTranslationDelayed() && 610 load_fault == NoFault) 611 return load_fault; 612 613 // If the instruction faulted or predicated false, then we need to send it 614 // along to commit without the instruction completing. |
615 if (load_fault != NoFault || !inst->readPredicate()) { |
616 // Send this instruction to commit, also make sure iew stage 617 // realizes there is activity. 618 // Mark it as executed unless it is an uncached load that 619 // needs to hit the head of commit. |
620 if (!inst->readPredicate()) |
621 inst->forwardOldRegs(); 622 DPRINTF(LSQUnit, "Load [sn:%lli] not executed from %s\n", 623 inst->seqNum, 624 (load_fault != NoFault ? "fault" : "predication")); 625 if (!(inst->hasRequest() && inst->uncacheable()) || 626 inst->isAtCommit()) { 627 inst->setExecuted(); 628 } --- 31 unchanged lines hidden (view full) --- 660 int load_idx = store_inst->lqIdx; 661 662 Fault store_fault = store_inst->initiateAcc(); 663 664 if (store_inst->isTranslationDelayed() && 665 store_fault == NoFault) 666 return store_fault; 667 |
668 if (!store_inst->readPredicate()) |
669 store_inst->forwardOldRegs(); 670 671 if (storeQueue[store_idx].size == 0) { 672 DPRINTF(LSQUnit,"Fault on Store PC %s, [sn:%lli], Size = 0\n", 673 store_inst->pcState(), store_inst->seqNum); 674 675 return store_fault; |
676 } else if (!store_inst->readPredicate()) { |
677 DPRINTF(LSQUnit, "Store [sn:%lli] not executed from predication\n", 678 store_inst->seqNum); 679 return store_fault; 680 } 681 682 assert(store_fault == NoFault); 683 684 if (store_inst->isStoreConditional()) { --- 647 unchanged lines hidden --- |