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 ---