lsq_unit_impl.hh (8587:acce52081b45) | lsq_unit_impl.hh (8591:8f23aeaf6a91) |
---|---|
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 --- 27 unchanged lines hidden (view full) --- 36 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 * 40 * Authors: Kevin Lim 41 * Korey Sewell 42 */ 43 | 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 --- 27 unchanged lines hidden (view full) --- 36 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 * 40 * Authors: Kevin Lim 41 * Korey Sewell 42 */ 43 |
44#include "arch/generic/debugfaults.hh" |
|
44#include "arch/locked_mem.hh" 45#include "base/str.hh" 46#include "config/the_isa.hh" 47#include "config/use_checker.hh" 48#include "cpu/o3/lsq.hh" 49#include "cpu/o3/lsq_unit.hh" 50#include "debug/Activity.hh" 51#include "debug/IEW.hh" --- 482 unchanged lines hidden (view full) --- 534 ld_inst->seqNum < memDepViolator->seqNum) { 535 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] " 536 " and [sn:%lli] at address %#x\n", inst->seqNum, 537 ld_inst->seqNum, ld_eff_addr1); 538 memDepViolator = ld_inst; 539 540 ++lsqMemOrderViolation; 541 | 45#include "arch/locked_mem.hh" 46#include "base/str.hh" 47#include "config/the_isa.hh" 48#include "config/use_checker.hh" 49#include "cpu/o3/lsq.hh" 50#include "cpu/o3/lsq_unit.hh" 51#include "debug/Activity.hh" 52#include "debug/IEW.hh" --- 482 unchanged lines hidden (view full) --- 535 ld_inst->seqNum < memDepViolator->seqNum) { 536 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] " 537 " and [sn:%lli] at address %#x\n", inst->seqNum, 538 ld_inst->seqNum, ld_eff_addr1); 539 memDepViolator = ld_inst; 540 541 ++lsqMemOrderViolation; 542 |
542 return TheISA::genMachineCheckFault(); | 543 return new GenericISA::M5PanicFault( 544 "Detected fault with inst [sn:%lli] and " 545 "[sn:%lli] at address %#x\n", 546 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); |
543 } 544 } 545 546 // Otherwise, mark the load has a possible load violation 547 // and if we see a snoop before it's commited, we need to squash 548 ld_inst->possibleLoadViolation = true; 549 DPRINTF(LSQUnit, "Found possible load violaiton at addr: %#x" 550 " between instructions [sn:%lli] and [sn:%lli]\n", --- 7 unchanged lines hidden (view full) --- 558 559 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] and [sn:%lli]" 560 " at address %#x\n", inst->seqNum, ld_inst->seqNum, 561 ld_eff_addr1); 562 memDepViolator = ld_inst; 563 564 ++lsqMemOrderViolation; 565 | 547 } 548 } 549 550 // Otherwise, mark the load has a possible load violation 551 // and if we see a snoop before it's commited, we need to squash 552 ld_inst->possibleLoadViolation = true; 553 DPRINTF(LSQUnit, "Found possible load violaiton at addr: %#x" 554 " between instructions [sn:%lli] and [sn:%lli]\n", --- 7 unchanged lines hidden (view full) --- 562 563 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] and [sn:%lli]" 564 " at address %#x\n", inst->seqNum, ld_inst->seqNum, 565 ld_eff_addr1); 566 memDepViolator = ld_inst; 567 568 ++lsqMemOrderViolation; 569 |
566 return TheISA::genMachineCheckFault(); | 570 return new GenericISA::M5PanicFault("Detected fault with " 571 "inst [sn:%lli] and [sn:%lli] at address %#x\n", 572 inst->seqNum, ld_inst->seqNum, ld_eff_addr1); |
567 } 568 } 569 570 incrLdIdx(load_idx); 571 } 572 return NoFault; 573} 574 --- 714 unchanged lines hidden --- | 573 } 574 } 575 576 incrLdIdx(load_idx); 577 } 578 return NoFault; 579} 580 --- 714 unchanged lines hidden --- |