isa.cc (12639:c133e5b397a4) | isa.cc (12666:bea22b5e6cf7) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2010-2016 ARM Limited | 2 * Copyright (c) 2010-2017 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 1679 unchanged lines hidden (view full) --- 1690 if (haveLPAE) 1691 ttbcrMask.eae = ones; 1692 1693 if (haveLPAE && ttbcrNew.eae) { 1694 newVal = newVal & ttbcrMask; 1695 } else { 1696 newVal = (newVal & ttbcrMask) | (ttbcr & (~ttbcrMask)); 1697 } | 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 1679 unchanged lines hidden (view full) --- 1690 if (haveLPAE) 1691 ttbcrMask.eae = ones; 1692 1693 if (haveLPAE && ttbcrNew.eae) { 1694 newVal = newVal & ttbcrMask; 1695 } else { 1696 newVal = (newVal & ttbcrMask) | (ttbcr & (~ttbcrMask)); 1697 } |
1698 // Invalidate TLB MiscReg 1699 getITBPtr(tc)->invalidateMiscReg(); 1700 getDTBPtr(tc)->invalidateMiscReg(); 1701 break; |
|
1698 } | 1702 } |
1699 M5_FALLTHROUGH; | |
1700 case MISCREG_TTBR0: 1701 case MISCREG_TTBR1: 1702 { 1703 TTBCR ttbcr = readMiscRegNoEffect(MISCREG_TTBCR); 1704 if (haveLPAE) { 1705 if (ttbcr.eae) { 1706 // ARMv7 bit 63-56, 47-40 reserved, UNK/SBZP 1707 // ARMv8 AArch32 bit 63-56 only 1708 uint64_t ttbrMask = mask(63,56) | mask(47,40); 1709 newVal = (newVal & (~ttbrMask)); 1710 } 1711 } | 1703 case MISCREG_TTBR0: 1704 case MISCREG_TTBR1: 1705 { 1706 TTBCR ttbcr = readMiscRegNoEffect(MISCREG_TTBCR); 1707 if (haveLPAE) { 1708 if (ttbcr.eae) { 1709 // ARMv7 bit 63-56, 47-40 reserved, UNK/SBZP 1710 // ARMv8 AArch32 bit 63-56 only 1711 uint64_t ttbrMask = mask(63,56) | mask(47,40); 1712 newVal = (newVal & (~ttbrMask)); 1713 } 1714 } |
1712 } 1713 M5_FALLTHROUGH; 1714 case MISCREG_SCTLR_EL1: 1715 { | 1715 // Invalidate TLB MiscReg |
1716 getITBPtr(tc)->invalidateMiscReg(); 1717 getDTBPtr(tc)->invalidateMiscReg(); | 1716 getITBPtr(tc)->invalidateMiscReg(); 1717 getDTBPtr(tc)->invalidateMiscReg(); |
1718 setMiscRegNoEffect(misc_reg, newVal); | 1718 break; |
1719 } | 1719 } |
1720 M5_FALLTHROUGH; | 1720 case MISCREG_SCTLR_EL1: |
1721 case MISCREG_CONTEXTIDR: 1722 case MISCREG_PRRR: 1723 case MISCREG_NMRR: 1724 case MISCREG_MAIR0: 1725 case MISCREG_MAIR1: 1726 case MISCREG_DACR: 1727 case MISCREG_VTTBR: 1728 case MISCREG_SCR_EL3: --- 241 unchanged lines hidden --- | 1721 case MISCREG_CONTEXTIDR: 1722 case MISCREG_PRRR: 1723 case MISCREG_NMRR: 1724 case MISCREG_MAIR0: 1725 case MISCREG_MAIR1: 1726 case MISCREG_DACR: 1727 case MISCREG_VTTBR: 1728 case MISCREG_SCR_EL3: --- 241 unchanged lines hidden --- |