miscregs.hh (13019:3fa5ab820fa8) miscregs.hh (13115:e056f29e1994)
1/*
2 * Copyright (c) 2010-2018 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

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

41 * Giacomo Gabrielli
42 */
43#ifndef __ARCH_ARM_MISCREGS_HH__
44#define __ARCH_ARM_MISCREGS_HH__
45
46#include <bitset>
47#include <tuple>
48
1/*
2 * Copyright (c) 2010-2018 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

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

41 * Giacomo Gabrielli
42 */
43#ifndef __ARCH_ARM_MISCREGS_HH__
44#define __ARCH_ARM_MISCREGS_HH__
45
46#include <bitset>
47#include <tuple>
48
49#include "base/bitunion.hh"
49#include "arch/arm/miscregs_types.hh"
50#include "base/compiler.hh"
51
52class ThreadContext;
53
54
55namespace ArmISA
56{
57 enum MiscRegIndex {

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

1411 "disr_el1",
1412 "vsesr_el2",
1413 "vdisr_el2",
1414 };
1415
1416 static_assert(sizeof(miscRegName) / sizeof(*miscRegName) == NUM_MISCREGS,
1417 "The miscRegName array and NUM_MISCREGS are inconsistent.");
1418
50#include "base/compiler.hh"
51
52class ThreadContext;
53
54
55namespace ArmISA
56{
57 enum MiscRegIndex {

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

1411 "disr_el1",
1412 "vsesr_el2",
1413 "vdisr_el2",
1414 };
1415
1416 static_assert(sizeof(miscRegName) / sizeof(*miscRegName) == NUM_MISCREGS,
1417 "The miscRegName array and NUM_MISCREGS are inconsistent.");
1418
1419 BitUnion32(CPSR)
1420 Bitfield<31, 30> nz;
1421 Bitfield<29> c;
1422 Bitfield<28> v;
1423 Bitfield<27> q;
1424 Bitfield<26, 25> it1;
1425 Bitfield<24> j;
1426 Bitfield<23, 22> res0_23_22;
1427 Bitfield<21> ss; // AArch64
1428 Bitfield<20> il; // AArch64
1429 Bitfield<19, 16> ge;
1430 Bitfield<15, 10> it2;
1431 Bitfield<9> d; // AArch64
1432 Bitfield<9> e;
1433 Bitfield<8> a;
1434 Bitfield<7> i;
1435 Bitfield<6> f;
1436 Bitfield<8, 6> aif;
1437 Bitfield<9, 6> daif; // AArch64
1438 Bitfield<5> t;
1439 Bitfield<4> width; // AArch64
1440 Bitfield<3, 2> el; // AArch64
1441 Bitfield<4, 0> mode;
1442 Bitfield<0> sp; // AArch64
1443 EndBitUnion(CPSR)
1444
1445 // This mask selects bits of the CPSR that actually go in the CondCodes
1446 // integer register to allow renaming.
1447 static const uint32_t CondCodesMask = 0xF00F0000;
1448 static const uint32_t CpsrMaskQ = 0x08000000;
1449
1450 // APSR (Application Program Status Register Mask). It is the user level
1451 // alias for the CPSR. The APSR is a subset of the CPSR. Although
1452 // bits[15:0] are UNKNOWN on reads, it is permitted that, on a read of
1453 // APSR:
1454 // Bit[9] returns the value of CPSR.E.
1455 // Bits[8:6] return the value of CPSR.{A,I, F}, the mask bits.
1456 static const uint32_t ApsrMask = CpsrMaskQ | CondCodesMask | 0x000001D0;
1457
1458 // CPSR (Current Program Status Register Mask).
1459 static const uint32_t CpsrMask = ApsrMask | 0x00F003DF;
1460
1419 // This mask selects bits of the CPSR that actually go in the CondCodes
1420 // integer register to allow renaming.
1421 static const uint32_t CondCodesMask = 0xF00F0000;
1422 static const uint32_t CpsrMaskQ = 0x08000000;
1423
1424 // APSR (Application Program Status Register Mask). It is the user level
1425 // alias for the CPSR. The APSR is a subset of the CPSR. Although
1426 // bits[15:0] are UNKNOWN on reads, it is permitted that, on a read of
1427 // APSR:
1428 // Bit[9] returns the value of CPSR.E.
1429 // Bits[8:6] return the value of CPSR.{A,I, F}, the mask bits.
1430 static const uint32_t ApsrMask = CpsrMaskQ | CondCodesMask | 0x000001D0;
1431
1432 // CPSR (Current Program Status Register Mask).
1433 static const uint32_t CpsrMask = ApsrMask | 0x00F003DF;
1434
1461 BitUnion32(HDCR)
1462 Bitfield<11> tdra;
1463 Bitfield<10> tdosa;
1464 Bitfield<9> tda;
1465 Bitfield<8> tde;
1466 Bitfield<7> hpme;
1467 Bitfield<6> tpm;
1468 Bitfield<5> tpmcr;
1469 Bitfield<4, 0> hpmn;
1470 EndBitUnion(HDCR)
1471
1472 BitUnion32(HCPTR)
1473 Bitfield<31> tcpac;
1474 Bitfield<20> tta;
1475 Bitfield<15> tase;
1476 Bitfield<13> tcp13;
1477 Bitfield<12> tcp12;
1478 Bitfield<11> tcp11;
1479 Bitfield<10> tcp10;
1480 Bitfield<10> tfp; // AArch64
1481 Bitfield<9> tcp9;
1482 Bitfield<8> tcp8;
1483 Bitfield<7> tcp7;
1484 Bitfield<6> tcp6;
1485 Bitfield<5> tcp5;
1486 Bitfield<4> tcp4;
1487 Bitfield<3> tcp3;
1488 Bitfield<2> tcp2;
1489 Bitfield<1> tcp1;
1490 Bitfield<0> tcp0;
1491 EndBitUnion(HCPTR)
1492
1493 BitUnion32(HSTR)
1494 Bitfield<17> tjdbx;
1495 Bitfield<16> ttee;
1496 Bitfield<15> t15;
1497 Bitfield<13> t13;
1498 Bitfield<12> t12;
1499 Bitfield<11> t11;
1500 Bitfield<10> t10;
1501 Bitfield<9> t9;
1502 Bitfield<8> t8;
1503 Bitfield<7> t7;
1504 Bitfield<6> t6;
1505 Bitfield<5> t5;
1506 Bitfield<4> t4;
1507 Bitfield<3> t3;
1508 Bitfield<2> t2;
1509 Bitfield<1> t1;
1510 Bitfield<0> t0;
1511 EndBitUnion(HSTR)
1512
1513 BitUnion64(HCR)
1514 Bitfield<34> e2h; // AArch64
1515 Bitfield<33> id; // AArch64
1516 Bitfield<32> cd; // AArch64
1517 Bitfield<31> rw; // AArch64
1518 Bitfield<30> trvm; // AArch64
1519 Bitfield<29> hcd; // AArch64
1520 Bitfield<28> tdz; // AArch64
1521
1522 Bitfield<27> tge;
1523 Bitfield<26> tvm;
1524 Bitfield<25> ttlb;
1525 Bitfield<24> tpu;
1526 Bitfield<23> tpc;
1527 Bitfield<22> tsw;
1528 Bitfield<21> tac;
1529 Bitfield<21> tacr; // AArch64
1530 Bitfield<20> tidcp;
1531 Bitfield<19> tsc;
1532 Bitfield<18> tid3;
1533 Bitfield<17> tid2;
1534 Bitfield<16> tid1;
1535 Bitfield<15> tid0;
1536 Bitfield<14> twe;
1537 Bitfield<13> twi;
1538 Bitfield<12> dc;
1539 Bitfield<11, 10> bsu;
1540 Bitfield<9> fb;
1541 Bitfield<8> va;
1542 Bitfield<8> vse; // AArch64
1543 Bitfield<7> vi;
1544 Bitfield<6> vf;
1545 Bitfield<5> amo;
1546 Bitfield<4> imo;
1547 Bitfield<3> fmo;
1548 Bitfield<2> ptw;
1549 Bitfield<1> swio;
1550 Bitfield<0> vm;
1551 EndBitUnion(HCR)
1552
1553 BitUnion32(NSACR)
1554 Bitfield<20> nstrcdis;
1555 Bitfield<19> rfr;
1556 Bitfield<15> nsasedis;
1557 Bitfield<14> nsd32dis;
1558 Bitfield<13> cp13;
1559 Bitfield<12> cp12;
1560 Bitfield<11> cp11;
1561 Bitfield<10> cp10;
1562 Bitfield<9> cp9;
1563 Bitfield<8> cp8;
1564 Bitfield<7> cp7;
1565 Bitfield<6> cp6;
1566 Bitfield<5> cp5;
1567 Bitfield<4> cp4;
1568 Bitfield<3> cp3;
1569 Bitfield<2> cp2;
1570 Bitfield<1> cp1;
1571 Bitfield<0> cp0;
1572 EndBitUnion(NSACR)
1573
1574 BitUnion32(SCR)
1575 Bitfield<13> twe;
1576 Bitfield<12> twi;
1577 Bitfield<11> st; // AArch64
1578 Bitfield<10> rw; // AArch64
1579 Bitfield<9> sif;
1580 Bitfield<8> hce;
1581 Bitfield<7> scd;
1582 Bitfield<7> smd; // AArch64
1583 Bitfield<6> nEt;
1584 Bitfield<5> aw;
1585 Bitfield<4> fw;
1586 Bitfield<3> ea;
1587 Bitfield<2> fiq;
1588 Bitfield<1> irq;
1589 Bitfield<0> ns;
1590 EndBitUnion(SCR)
1591
1592 BitUnion32(SCTLR)
1593 Bitfield<30> te; // Thumb Exception Enable (AArch32 only)
1594 Bitfield<29> afe; // Access flag enable (AArch32 only)
1595 Bitfield<28> tre; // TEX remap enable (AArch32 only)
1596 Bitfield<27> nmfi; // Non-maskable FIQ support (ARMv7 only)
1597 Bitfield<26> uci; // Enable EL0 access to DC CVAU, DC CIVAC,
1598 // DC CVAC and IC IVAU instructions
1599 // (AArch64 SCTLR_EL1 only)
1600 Bitfield<25> ee; // Exception Endianness
1601 Bitfield<24> ve; // Interrupt Vectors Enable (ARMv7 only)
1602 Bitfield<24> e0e; // Endianness of explicit data accesses at EL0
1603 // (AArch64 SCTLR_EL1 only)
1604 Bitfield<23> xp; // Extended page table enable (dropped in ARMv7)
1605 Bitfield<22> u; // Alignment (dropped in ARMv7)
1606 Bitfield<21> fi; // Fast interrupts configuration enable
1607 // (ARMv7 only)
1608 Bitfield<20> uwxn; // Unprivileged write permission implies EL1 XN
1609 // (AArch32 only)
1610 Bitfield<19> dz; // Divide by Zero fault enable
1611 // (dropped in ARMv7)
1612 Bitfield<19> wxn; // Write permission implies XN
1613 Bitfield<18> ntwe; // Not trap WFE
1614 // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only)
1615 Bitfield<18> rao2; // Read as one
1616 Bitfield<16> ntwi; // Not trap WFI
1617 // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only)
1618 Bitfield<16> rao3; // Read as one
1619 Bitfield<15> uct; // Enable EL0 access to CTR_EL0
1620 // (AArch64 SCTLR_EL1 only)
1621 Bitfield<14> rr; // Round Robin select (ARMv7 only)
1622 Bitfield<14> dze; // Enable EL0 access to DC ZVA
1623 // (AArch64 SCTLR_EL1 only)
1624 Bitfield<13> v; // Vectors bit (AArch32 only)
1625 Bitfield<12> i; // Instruction cache enable
1626 Bitfield<11> z; // Branch prediction enable (ARMv7 only)
1627 Bitfield<10> sw; // SWP/SWPB enable (ARMv7 only)
1628 Bitfield<9, 8> rs; // Deprecated protection bits (dropped in ARMv7)
1629 Bitfield<9> uma; // User mask access (AArch64 SCTLR_EL1 only)
1630 Bitfield<8> sed; // SETEND disable
1631 // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only)
1632 Bitfield<7> b; // Endianness support (dropped in ARMv7)
1633 Bitfield<7> itd; // IT disable
1634 // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only)
1635 Bitfield<6, 3> rao4; // Read as one
1636 Bitfield<6> thee; // ThumbEE enable
1637 // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only)
1638 Bitfield<5> cp15ben; // CP15 barrier enable
1639 // (AArch32 and AArch64 SCTLR_EL1 only)
1640 Bitfield<4> sa0; // Stack Alignment Check Enable for EL0
1641 // (AArch64 SCTLR_EL1 only)
1642 Bitfield<3> sa; // Stack Alignment Check Enable (AArch64 only)
1643 Bitfield<2> c; // Cache enable
1644 Bitfield<1> a; // Alignment check enable
1645 Bitfield<0> m; // MMU enable
1646 EndBitUnion(SCTLR)
1647
1648 BitUnion32(CPACR)
1649 Bitfield<1, 0> cp0;
1650 Bitfield<3, 2> cp1;
1651 Bitfield<5, 4> cp2;
1652 Bitfield<7, 6> cp3;
1653 Bitfield<9, 8> cp4;
1654 Bitfield<11, 10> cp5;
1655 Bitfield<13, 12> cp6;
1656 Bitfield<15, 14> cp7;
1657 Bitfield<17, 16> cp8;
1658 Bitfield<19, 18> cp9;
1659 Bitfield<21, 20> cp10;
1660 Bitfield<21, 20> fpen; // AArch64
1661 Bitfield<23, 22> cp11;
1662 Bitfield<25, 24> cp12;
1663 Bitfield<27, 26> cp13;
1664 Bitfield<29, 28> rsvd;
1665 Bitfield<28> tta; // AArch64
1666 Bitfield<30> d32dis;
1667 Bitfield<31> asedis;
1668 EndBitUnion(CPACR)
1669
1670 BitUnion32(FSR)
1671 Bitfield<3, 0> fsLow;
1672 Bitfield<5, 0> status; // LPAE
1673 Bitfield<7, 4> domain;
1674 Bitfield<9> lpae;
1675 Bitfield<10> fsHigh;
1676 Bitfield<11> wnr;
1677 Bitfield<12> ext;
1678 Bitfield<13> cm; // LPAE
1679 EndBitUnion(FSR)
1680
1681 BitUnion32(FPSCR)
1682 Bitfield<0> ioc;
1683 Bitfield<1> dzc;
1684 Bitfield<2> ofc;
1685 Bitfield<3> ufc;
1686 Bitfield<4> ixc;
1687 Bitfield<7> idc;
1688 Bitfield<8> ioe;
1689 Bitfield<9> dze;
1690 Bitfield<10> ofe;
1691 Bitfield<11> ufe;
1692 Bitfield<12> ixe;
1693 Bitfield<15> ide;
1694 Bitfield<18, 16> len;
1695 Bitfield<21, 20> stride;
1696 Bitfield<23, 22> rMode;
1697 Bitfield<24> fz;
1698 Bitfield<25> dn;
1699 Bitfield<26> ahp;
1700 Bitfield<27> qc;
1701 Bitfield<28> v;
1702 Bitfield<29> c;
1703 Bitfield<30> z;
1704 Bitfield<31> n;
1705 EndBitUnion(FPSCR)
1706
1707 // This mask selects bits of the FPSCR that actually go in the FpCondCodes
1708 // integer register to allow renaming.
1709 static const uint32_t FpCondCodesMask = 0xF0000000;
1710 // This mask selects the cumulative FP exception flags of the FPSCR.
1711 static const uint32_t FpscrExcMask = 0x0000009F;
1712 // This mask selects the cumulative saturation flag of the FPSCR.
1713 static const uint32_t FpscrQcMask = 0x08000000;
1714
1435 // This mask selects bits of the FPSCR that actually go in the FpCondCodes
1436 // integer register to allow renaming.
1437 static const uint32_t FpCondCodesMask = 0xF0000000;
1438 // This mask selects the cumulative FP exception flags of the FPSCR.
1439 static const uint32_t FpscrExcMask = 0x0000009F;
1440 // This mask selects the cumulative saturation flag of the FPSCR.
1441 static const uint32_t FpscrQcMask = 0x08000000;
1442
1715 BitUnion32(FPEXC)
1716 Bitfield<31> ex;
1717 Bitfield<30> en;
1718 Bitfield<29, 0> subArchDefined;
1719 EndBitUnion(FPEXC)
1720
1721 BitUnion32(MVFR0)
1722 Bitfield<3, 0> advSimdRegisters;
1723 Bitfield<7, 4> singlePrecision;
1724 Bitfield<11, 8> doublePrecision;
1725 Bitfield<15, 12> vfpExceptionTrapping;
1726 Bitfield<19, 16> divide;
1727 Bitfield<23, 20> squareRoot;
1728 Bitfield<27, 24> shortVectors;
1729 Bitfield<31, 28> roundingModes;
1730 EndBitUnion(MVFR0)
1731
1732 BitUnion32(MVFR1)
1733 Bitfield<3, 0> flushToZero;
1734 Bitfield<7, 4> defaultNaN;
1735 Bitfield<11, 8> advSimdLoadStore;
1736 Bitfield<15, 12> advSimdInteger;
1737 Bitfield<19, 16> advSimdSinglePrecision;
1738 Bitfield<23, 20> advSimdHalfPrecision;
1739 Bitfield<27, 24> vfpHalfPrecision;
1740 Bitfield<31, 28> raz;
1741 EndBitUnion(MVFR1)
1742
1743 BitUnion64(TTBCR)
1744 // Short-descriptor translation table format
1745 Bitfield<2, 0> n;
1746 Bitfield<4> pd0;
1747 Bitfield<5> pd1;
1748 // Long-descriptor translation table format
1749 Bitfield<2, 0> t0sz;
1750 Bitfield<7> epd0;
1751 Bitfield<9, 8> irgn0;
1752 Bitfield<11, 10> orgn0;
1753 Bitfield<13, 12> sh0;
1754 Bitfield<14> tg0;
1755 Bitfield<18, 16> t1sz;
1756 Bitfield<22> a1;
1757 Bitfield<23> epd1;
1758 Bitfield<25, 24> irgn1;
1759 Bitfield<27, 26> orgn1;
1760 Bitfield<29, 28> sh1;
1761 Bitfield<30> tg1;
1762 Bitfield<34, 32> ips;
1763 Bitfield<36> as;
1764 Bitfield<37> tbi0;
1765 Bitfield<38> tbi1;
1766 // Common
1767 Bitfield<31> eae;
1768 // TCR_EL2/3 (AArch64)
1769 Bitfield<18, 16> ps;
1770 Bitfield<20> tbi;
1771 EndBitUnion(TTBCR)
1772
1773 // Fields of TCR_EL{1,2,3} (mostly overlapping)
1774 // TCR_EL1 is natively 64 bits, the others are 32 bits
1775 BitUnion64(TCR)
1776 Bitfield<5, 0> t0sz;
1777 Bitfield<7> epd0; // EL1
1778 Bitfield<9, 8> irgn0;
1779 Bitfield<11, 10> orgn0;
1780 Bitfield<13, 12> sh0;
1781 Bitfield<15, 14> tg0;
1782 Bitfield<18, 16> ps;
1783 Bitfield<20> tbi; // EL2/EL3
1784 Bitfield<21, 16> t1sz; // EL1
1785 Bitfield<22> a1; // EL1
1786 Bitfield<23> epd1; // EL1
1787 Bitfield<25, 24> irgn1; // EL1
1788 Bitfield<27, 26> orgn1; // EL1
1789 Bitfield<29, 28> sh1; // EL1
1790 Bitfield<31, 30> tg1; // EL1
1791 Bitfield<34, 32> ips; // EL1
1792 Bitfield<36> as; // EL1
1793 Bitfield<37> tbi0; // EL1
1794 Bitfield<38> tbi1; // EL1
1795 EndBitUnion(TCR)
1796
1797 BitUnion32(HTCR)
1798 Bitfield<2, 0> t0sz;
1799 Bitfield<9, 8> irgn0;
1800 Bitfield<11, 10> orgn0;
1801 Bitfield<13, 12> sh0;
1802 EndBitUnion(HTCR)
1803
1804 BitUnion32(VTCR_t)
1805 Bitfield<3, 0> t0sz;
1806 Bitfield<4> s;
1807 Bitfield<5, 0> t0sz64;
1808 Bitfield<7, 6> sl0;
1809 Bitfield<9, 8> irgn0;
1810 Bitfield<11, 10> orgn0;
1811 Bitfield<13, 12> sh0;
1812 Bitfield<15, 14> tg0;
1813 Bitfield<18, 16> ps; // Only defined for VTCR_EL2
1814 EndBitUnion(VTCR_t)
1815
1816 BitUnion32(PRRR)
1817 Bitfield<1,0> tr0;
1818 Bitfield<3,2> tr1;
1819 Bitfield<5,4> tr2;
1820 Bitfield<7,6> tr3;
1821 Bitfield<9,8> tr4;
1822 Bitfield<11,10> tr5;
1823 Bitfield<13,12> tr6;
1824 Bitfield<15,14> tr7;
1825 Bitfield<16> ds0;
1826 Bitfield<17> ds1;
1827 Bitfield<18> ns0;
1828 Bitfield<19> ns1;
1829 Bitfield<24> nos0;
1830 Bitfield<25> nos1;
1831 Bitfield<26> nos2;
1832 Bitfield<27> nos3;
1833 Bitfield<28> nos4;
1834 Bitfield<29> nos5;
1835 Bitfield<30> nos6;
1836 Bitfield<31> nos7;
1837 EndBitUnion(PRRR)
1838
1839 BitUnion32(NMRR)
1840 Bitfield<1,0> ir0;
1841 Bitfield<3,2> ir1;
1842 Bitfield<5,4> ir2;
1843 Bitfield<7,6> ir3;
1844 Bitfield<9,8> ir4;
1845 Bitfield<11,10> ir5;
1846 Bitfield<13,12> ir6;
1847 Bitfield<15,14> ir7;
1848 Bitfield<17,16> or0;
1849 Bitfield<19,18> or1;
1850 Bitfield<21,20> or2;
1851 Bitfield<23,22> or3;
1852 Bitfield<25,24> or4;
1853 Bitfield<27,26> or5;
1854 Bitfield<29,28> or6;
1855 Bitfield<31,30> or7;
1856 EndBitUnion(NMRR)
1857
1858 BitUnion32(CONTEXTIDR)
1859 Bitfield<7,0> asid;
1860 Bitfield<31,8> procid;
1861 EndBitUnion(CONTEXTIDR)
1862
1863 BitUnion32(L2CTLR)
1864 Bitfield<2,0> sataRAMLatency;
1865 Bitfield<4,3> reserved_4_3;
1866 Bitfield<5> dataRAMSetup;
1867 Bitfield<8,6> tagRAMLatency;
1868 Bitfield<9> tagRAMSetup;
1869 Bitfield<11,10> dataRAMSlice;
1870 Bitfield<12> tagRAMSlice;
1871 Bitfield<20,13> reserved_20_13;
1872 Bitfield<21> eccandParityEnable;
1873 Bitfield<22> reserved_22;
1874 Bitfield<23> interptCtrlPresent;
1875 Bitfield<25,24> numCPUs;
1876 Bitfield<30,26> reserved_30_26;
1877 Bitfield<31> l2rstDISABLE_monitor;
1878 EndBitUnion(L2CTLR)
1879
1880 BitUnion32(CTR)
1881 Bitfield<3,0> iCacheLineSize;
1882 Bitfield<13,4> raz_13_4;
1883 Bitfield<15,14> l1IndexPolicy;
1884 Bitfield<19,16> dCacheLineSize;
1885 Bitfield<23,20> erg;
1886 Bitfield<27,24> cwg;
1887 Bitfield<28> raz_28;
1888 Bitfield<31,29> format;
1889 EndBitUnion(CTR)
1890
1891 BitUnion32(PMSELR)
1892 Bitfield<4, 0> sel;
1893 EndBitUnion(PMSELR)
1894
1895 BitUnion64(PAR)
1896 // 64-bit format
1897 Bitfield<63, 56> attr;
1898 Bitfield<39, 12> pa;
1899 Bitfield<11> lpae;
1900 Bitfield<9> ns;
1901 Bitfield<8, 7> sh;
1902 Bitfield<0> f;
1903 EndBitUnion(PAR)
1904
1905 BitUnion32(ESR)
1906 Bitfield<31, 26> ec;
1907 Bitfield<25> il;
1908 Bitfield<15, 0> imm16;
1909 EndBitUnion(ESR)
1910
1911 BitUnion32(CPTR)
1912 Bitfield<31> tcpac;
1913 Bitfield<20> tta;
1914 Bitfield<13, 12> res1_13_12_el2;
1915 Bitfield<10> tfp;
1916 Bitfield<9, 0> res1_9_0_el2;
1917 EndBitUnion(CPTR)
1918
1919
1920 /**
1921 * Check for permission to read coprocessor registers.
1922 *
1923 * Checks whether an instruction at the current program mode has
1924 * permissions to read the coprocessor registers. This function
1925 * returns whether the check is undefined and if not whether the
1926 * read access is permitted.
1927 *

--- 55 unchanged lines hidden ---
1443 /**
1444 * Check for permission to read coprocessor registers.
1445 *
1446 * Checks whether an instruction at the current program mode has
1447 * permissions to read the coprocessor registers. This function
1448 * returns whether the check is undefined and if not whether the
1449 * read access is permitted.
1450 *

--- 55 unchanged lines hidden ---