lsq_unit_impl.hh (12216:70bb3ae0fbfc) | lsq_unit_impl.hh (12217:0a16f4c03c02) |
---|---|
1 2/* 3 * Copyright (c) 2010-2014, 2017 ARM Limited 4 * Copyright (c) 2013 Advanced Micro Devices, Inc. 5 * All rights reserved 6 * 7 * The license below extends only to copyright in the software and shall 8 * not be construed as granting a license to any other intellectual --- 665 unchanged lines hidden (view full) --- 674 int load_idx = store_inst->lqIdx; 675 676 Fault store_fault = store_inst->initiateAcc(); 677 678 if (store_inst->isTranslationDelayed() && 679 store_fault == NoFault) 680 return store_fault; 681 | 1 2/* 3 * Copyright (c) 2010-2014, 2017 ARM Limited 4 * Copyright (c) 2013 Advanced Micro Devices, Inc. 5 * All rights reserved 6 * 7 * The license below extends only to copyright in the software and shall 8 * not be construed as granting a license to any other intellectual --- 665 unchanged lines hidden (view full) --- 674 int load_idx = store_inst->lqIdx; 675 676 Fault store_fault = store_inst->initiateAcc(); 677 678 if (store_inst->isTranslationDelayed() && 679 store_fault == NoFault) 680 return store_fault; 681 |
682 if (!store_inst->readPredicate()) | 682 if (!store_inst->readPredicate()) { 683 DPRINTF(LSQUnit, "Store [sn:%lli] not executed from predication\n", 684 store_inst->seqNum); |
683 store_inst->forwardOldRegs(); | 685 store_inst->forwardOldRegs(); |
686 return store_fault; 687 } |
|
684 685 if (storeQueue[store_idx].size == 0) { 686 DPRINTF(LSQUnit,"Fault on Store PC %s, [sn:%lli], Size = 0\n", 687 store_inst->pcState(), store_inst->seqNum); 688 689 return store_fault; | 688 689 if (storeQueue[store_idx].size == 0) { 690 DPRINTF(LSQUnit,"Fault on Store PC %s, [sn:%lli], Size = 0\n", 691 store_inst->pcState(), store_inst->seqNum); 692 693 return store_fault; |
690 } else if (!store_inst->readPredicate()) { 691 DPRINTF(LSQUnit, "Store [sn:%lli] not executed from predication\n", 692 store_inst->seqNum); 693 return store_fault; | |
694 } 695 696 assert(store_fault == NoFault); 697 698 if (store_inst->isStoreConditional()) { 699 // Store conditionals need to set themselves as able to 700 // writeback if we haven't had a fault by here. 701 storeQueue[store_idx].canWB = true; --- 634 unchanged lines hidden --- | 694 } 695 696 assert(store_fault == NoFault); 697 698 if (store_inst->isStoreConditional()) { 699 // Store conditionals need to set themselves as able to 700 // writeback if we haven't had a fault by here. 701 storeQueue[store_idx].canWB = true; --- 634 unchanged lines hidden --- |