tlb.cc (13889:b329d40d4e78) tlb.cc (13968:55d001a9732d)
1/*
2 * Copyright (c) 2010-2013, 2016-2019 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

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

581 else
582 vaddr = vaddr_tainted;
583 Request::Flags flags = req->getFlags();
584
585 bool is_fetch = (mode == Execute);
586 bool is_write = (mode == Write);
587
588 if (!is_fetch) {
1/*
2 * Copyright (c) 2010-2013, 2016-2019 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

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

581 else
582 vaddr = vaddr_tainted;
583 Request::Flags flags = req->getFlags();
584
585 bool is_fetch = (mode == Execute);
586 bool is_write = (mode == Write);
587
588 if (!is_fetch) {
589 assert(flags & MustBeOne);
589 assert(flags & MustBeOne || req->isPrefetch());
590 if (sctlr.a || !(flags & AllowUnaligned)) {
591 if (vaddr & mask(flags & AlignmentMask)) {
592 // LPAE is always disabled in SE mode
593 return std::make_shared<DataAbort>(
594 vaddr_tainted,
595 TlbEntry::DomainType::NoAccess, is_write,
596 ArmFault::AlignmentFault, isStage2,
597 ArmFault::VmsaTran);

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

1033 if ((req->isInstFetch() && (!sctlr.i)) ||
1034 ((!req->isInstFetch()) && (!sctlr.c))){
1035 if (!req->isCacheMaintenance()) {
1036 req->setFlags(Request::UNCACHEABLE);
1037 }
1038 req->setFlags(Request::STRICT_ORDER);
1039 }
1040 if (!is_fetch) {
590 if (sctlr.a || !(flags & AllowUnaligned)) {
591 if (vaddr & mask(flags & AlignmentMask)) {
592 // LPAE is always disabled in SE mode
593 return std::make_shared<DataAbort>(
594 vaddr_tainted,
595 TlbEntry::DomainType::NoAccess, is_write,
596 ArmFault::AlignmentFault, isStage2,
597 ArmFault::VmsaTran);

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

1033 if ((req->isInstFetch() && (!sctlr.i)) ||
1034 ((!req->isInstFetch()) && (!sctlr.c))){
1035 if (!req->isCacheMaintenance()) {
1036 req->setFlags(Request::UNCACHEABLE);
1037 }
1038 req->setFlags(Request::STRICT_ORDER);
1039 }
1040 if (!is_fetch) {
1041 assert(flags & MustBeOne);
1041 assert(flags & MustBeOne || req->isPrefetch());
1042 if (sctlr.a || !(flags & AllowUnaligned)) {
1043 if (vaddr & mask(flags & AlignmentMask)) {
1044 alignFaults++;
1045 return std::make_shared<DataAbort>(
1046 vaddr_tainted,
1047 TlbEntry::DomainType::NoAccess, is_write,
1048 ArmFault::AlignmentFault, isStage2,
1049 tranMethod);

--- 542 unchanged lines hidden ---
1042 if (sctlr.a || !(flags & AllowUnaligned)) {
1043 if (vaddr & mask(flags & AlignmentMask)) {
1044 alignFaults++;
1045 return std::make_shared<DataAbort>(
1046 vaddr_tainted,
1047 TlbEntry::DomainType::NoAccess, is_write,
1048 ArmFault::AlignmentFault, isStage2,
1049 tranMethod);

--- 542 unchanged lines hidden ---