lsq_unit_impl.hh (8591:8f23aeaf6a91) lsq_unit_impl.hh (8592:30a97c4198df)
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

--- 520 unchanged lines hidden (view full) ---

529 if (inst->isLoad()) {
530 // If this load is to the same block as an external snoop
531 // invalidate that we've observed then the load needs to be
532 // squashed as it could have newer data
533 if (ld_inst->hitExternalSnoop) {
534 if (!memDepViolator ||
535 ld_inst->seqNum < memDepViolator->seqNum) {
536 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] "
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

--- 520 unchanged lines hidden (view full) ---

529 if (inst->isLoad()) {
530 // If this load is to the same block as an external snoop
531 // invalidate that we've observed then the load needs to be
532 // squashed as it could have newer data
533 if (ld_inst->hitExternalSnoop) {
534 if (!memDepViolator ||
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);
537 "and [sn:%lli] at address %#x\n",
538 inst->seqNum, ld_inst->seqNum, ld_eff_addr1);
539 memDepViolator = ld_inst;
540
541 ++lsqMemOrderViolation;
542
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);

--- 8 unchanged lines hidden (view full) ---

555 inst_eff_addr1, inst->seqNum, ld_inst->seqNum);
556 } else {
557 // A load/store incorrectly passed this store.
558 // Check if we already have a violator, or if it's newer
559 // squash and refetch.
560 if (memDepViolator && ld_inst->seqNum > memDepViolator->seqNum)
561 break;
562
539 memDepViolator = ld_inst;
540
541 ++lsqMemOrderViolation;
542
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);

--- 8 unchanged lines hidden (view full) ---

555 inst_eff_addr1, inst->seqNum, ld_inst->seqNum);
556 } else {
557 // A load/store incorrectly passed this store.
558 // Check if we already have a violator, or if it's newer
559 // squash and refetch.
560 if (memDepViolator && ld_inst->seqNum > memDepViolator->seqNum)
561 break;
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);
563 DPRINTF(LSQUnit, "Detected fault with inst [sn:%lli] and "
564 "[sn:%lli] at address %#x\n",
565 inst->seqNum, ld_inst->seqNum, ld_eff_addr1);
566 memDepViolator = ld_inst;
567
568 ++lsqMemOrderViolation;
569
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);
573 }

--- 721 unchanged lines hidden ---
566 memDepViolator = ld_inst;
567
568 ++lsqMemOrderViolation;
569
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);
573 }

--- 721 unchanged lines hidden ---