gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
misc.hh
Go to the documentation of this file.
1/*
2 * Copyright (c) 2010-2024 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
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
13 *
14 * Copyright (c) 2009 The Regents of The University of Michigan
15 * All rights reserved.
16 *
17 * Redistribution and use in source and binary forms, with or without
18 * modification, are permitted provided that the following conditions are
19 * met: redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer;
21 * redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the distribution;
24 * neither the name of the copyright holders nor the names of its
25 * contributors may be used to endorse or promote products derived from
26 * this software without specific prior written permission.
27 *
28 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
31 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
32 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
34 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
35 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
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
41#ifndef __ARCH_ARM_REGS_MISC_HH__
42#define __ARCH_ARM_REGS_MISC_HH__
43
44#include <array>
45#include <bitset>
46#include <optional>
47#include <tuple>
48
50#include "arch/arm/types.hh"
51#include "base/compiler.hh"
52#include "cpu/reg_class.hh"
53#include "debug/MiscRegs.hh"
55
56#define TLBI_VARIANTS(TLBI) \
57 TLBI, \
58 TLBI##NXS
59
60#define TLBI_CASE_VARIANTS(TLBI) \
61 case TLBI: \
62 case TLBI##NXS:
63
64#define TLBI_STR_VARIANTS(TLBI) \
65 #TLBI, \
66 #TLBI"nxs"
67
68namespace gem5
69{
70
71class ArmSystem;
72class ThreadContext;
73class MiscRegOp64;
74
75namespace ArmISA
76{
78 {
94
95 // Helper registers
111
112 // AArch32 CP14 registers (debug/trace control)
216 MISCREG_TEECR, // not in ARM DDI 0487A.b+
218 MISCREG_TEEHBR, // not in ARM DDI 0487A.b+
221
222 // AArch32 CP15 registers (system control)
442 // BEGIN Generic Timer (AArch32)
464 // END Generic Timer (AArch32)
481
482 // AArch64 registers (Op0=2)
565 MISCREG_TEECR32_EL1, // not in ARM DDI 0487A.b+
566 MISCREG_TEEHBR32_EL1, // not in ARM DDI 0487A.b+
567
568 // AArch64 registers (Op0=1,3)
716 TLBI_VARIANTS(MISCREG_TLBI_VMALLE1IS),
717 TLBI_VARIANTS(MISCREG_TLBI_VMALLE1OS),
718 TLBI_VARIANTS(MISCREG_TLBI_VAE1IS),
719 TLBI_VARIANTS(MISCREG_TLBI_VAE1OS),
720 TLBI_VARIANTS(MISCREG_TLBI_ASIDE1IS),
721 TLBI_VARIANTS(MISCREG_TLBI_ASIDE1OS),
722 TLBI_VARIANTS(MISCREG_TLBI_VAAE1IS),
723 TLBI_VARIANTS(MISCREG_TLBI_VAAE1OS),
724 TLBI_VARIANTS(MISCREG_TLBI_VALE1IS),
725 TLBI_VARIANTS(MISCREG_TLBI_VALE1OS),
726 TLBI_VARIANTS(MISCREG_TLBI_VAALE1IS),
727 TLBI_VARIANTS(MISCREG_TLBI_VAALE1OS),
728 TLBI_VARIANTS(MISCREG_TLBI_VMALLE1),
729 TLBI_VARIANTS(MISCREG_TLBI_VAE1),
730 TLBI_VARIANTS(MISCREG_TLBI_ASIDE1),
731 TLBI_VARIANTS(MISCREG_TLBI_VAAE1),
732 TLBI_VARIANTS(MISCREG_TLBI_VALE1),
733 TLBI_VARIANTS(MISCREG_TLBI_VAALE1),
734 TLBI_VARIANTS(MISCREG_TLBI_IPAS2E1IS),
735 TLBI_VARIANTS(MISCREG_TLBI_IPAS2E1OS),
736 TLBI_VARIANTS(MISCREG_TLBI_IPAS2LE1IS),
737 TLBI_VARIANTS(MISCREG_TLBI_IPAS2LE1OS),
738 TLBI_VARIANTS(MISCREG_TLBI_ALLE2IS),
739 TLBI_VARIANTS(MISCREG_TLBI_ALLE2OS),
740 TLBI_VARIANTS(MISCREG_TLBI_VAE2IS),
741 TLBI_VARIANTS(MISCREG_TLBI_VAE2OS),
742 TLBI_VARIANTS(MISCREG_TLBI_ALLE1IS),
743 TLBI_VARIANTS(MISCREG_TLBI_ALLE1OS),
744 TLBI_VARIANTS(MISCREG_TLBI_VALE2IS),
745 TLBI_VARIANTS(MISCREG_TLBI_VALE2OS),
746 TLBI_VARIANTS(MISCREG_TLBI_VMALLS12E1IS),
747 TLBI_VARIANTS(MISCREG_TLBI_VMALLS12E1OS),
748 TLBI_VARIANTS(MISCREG_TLBI_IPAS2E1),
749 TLBI_VARIANTS(MISCREG_TLBI_IPAS2LE1),
750 TLBI_VARIANTS(MISCREG_TLBI_ALLE2),
751 TLBI_VARIANTS(MISCREG_TLBI_VAE2),
752 TLBI_VARIANTS(MISCREG_TLBI_ALLE1),
753 TLBI_VARIANTS(MISCREG_TLBI_VALE2),
754 TLBI_VARIANTS(MISCREG_TLBI_VMALLS12E1),
755 TLBI_VARIANTS(MISCREG_TLBI_ALLE3IS),
756 TLBI_VARIANTS(MISCREG_TLBI_ALLE3OS),
757 TLBI_VARIANTS(MISCREG_TLBI_VAE3IS),
758 TLBI_VARIANTS(MISCREG_TLBI_VAE3OS),
759 TLBI_VARIANTS(MISCREG_TLBI_VALE3IS),
760 TLBI_VARIANTS(MISCREG_TLBI_VALE3OS),
761 TLBI_VARIANTS(MISCREG_TLBI_ALLE3),
762 TLBI_VARIANTS(MISCREG_TLBI_VAE3),
763 TLBI_VARIANTS(MISCREG_TLBI_VALE3),
764 TLBI_VARIANTS(MISCREG_TLBI_RVAE1),
765 TLBI_VARIANTS(MISCREG_TLBI_RVAAE1),
766 TLBI_VARIANTS(MISCREG_TLBI_RVALE1),
767 TLBI_VARIANTS(MISCREG_TLBI_RVAALE1),
768 TLBI_VARIANTS(MISCREG_TLBI_RIPAS2E1),
769 TLBI_VARIANTS(MISCREG_TLBI_RIPAS2LE1),
770 TLBI_VARIANTS(MISCREG_TLBI_RVAE2),
771 TLBI_VARIANTS(MISCREG_TLBI_RVALE2),
772 TLBI_VARIANTS(MISCREG_TLBI_RVAE3),
773 TLBI_VARIANTS(MISCREG_TLBI_RVALE3),
774 TLBI_VARIANTS(MISCREG_TLBI_RVAE1IS),
775 TLBI_VARIANTS(MISCREG_TLBI_RVAAE1IS),
776 TLBI_VARIANTS(MISCREG_TLBI_RVALE1IS),
777 TLBI_VARIANTS(MISCREG_TLBI_RVAALE1IS),
778 TLBI_VARIANTS(MISCREG_TLBI_RIPAS2E1IS),
779 TLBI_VARIANTS(MISCREG_TLBI_RIPAS2LE1IS),
780 TLBI_VARIANTS(MISCREG_TLBI_RVAE2IS),
781 TLBI_VARIANTS(MISCREG_TLBI_RVALE2IS),
782 TLBI_VARIANTS(MISCREG_TLBI_RVAE3IS),
783 TLBI_VARIANTS(MISCREG_TLBI_RVALE3IS),
784 TLBI_VARIANTS(MISCREG_TLBI_RVAE1OS),
785 TLBI_VARIANTS(MISCREG_TLBI_RVAAE1OS),
786 TLBI_VARIANTS(MISCREG_TLBI_RVALE1OS),
787 TLBI_VARIANTS(MISCREG_TLBI_RVAALE1OS),
788 TLBI_VARIANTS(MISCREG_TLBI_RIPAS2E1OS),
789 TLBI_VARIANTS(MISCREG_TLBI_RIPAS2LE1OS),
790 TLBI_VARIANTS(MISCREG_TLBI_RVAE2OS),
791 TLBI_VARIANTS(MISCREG_TLBI_RVALE2OS),
792 TLBI_VARIANTS(MISCREG_TLBI_RVAE3OS),
793 TLBI_VARIANTS(MISCREG_TLBI_RVALE3OS),
836 // BEGIN Generic Timer (AArch64)
864 // IF Armv8.1-VHE
871 // ENDIF Armv8.1-VHE
873 // END Generic Timer (AArch64)
902
903 // Introduced in ARMv8.1
905
908
909 //PAuth Key Regsiters
920
921 // GICv3, CPU interface
968
969 // GICv3, CPU interface, virtualization
1000
1043
1090
1137
1138 // SVE
1144
1145 // SME
1157
1158 // FEAT_RNG
1161
1162 // FEAT_FGT
1169
1170 // FEAT_MPAM
1187
1188 // S1PIE
1196
1197 // NUM_PHYS_MISCREGS specifies the number of actual physical
1198 // registers, not considering the following pseudo-registers
1199 // (dummy registers), like MISCREG_UNKNOWN, MISCREG_IMPDEF_UNIMPL.
1200 // Checkpointing should use this physical index when
1201 // saving/restoring register values.
1203
1204 // Dummy registers
1208
1209 // Implementation defined register: this represent
1210 // a pool of unimplemented registers whose access can throw
1211 // either UNDEFINED or hypervisor trap exception.
1213
1214 // RAS extension (unimplemented)
1226
1227 // PSTATE
1230
1231 // Total number of Misc Registers: Physical + Dummy
1233 };
1234
1236 {
1238 MISCREG_UNVERIFIABLE, // Does the value change on every read (e.g. a
1239 // arch generic counter)
1240 MISCREG_UNSERIALIZE, // Should the checkpointed value be restored?
1241 MISCREG_WARN_NOT_FAIL, // If MISCREG_IMPLEMENTED is deasserted, it
1242 // tells whether the instruction should raise a
1243 // warning or fail
1244 MISCREG_MUTEX, // True if the register corresponds to a pair of
1245 // mutually exclusive registers
1246 MISCREG_BANKED, // True if the register is banked between the two
1247 // security states, and this is the parent node of the
1248 // two banked registers
1249 MISCREG_BANKED64, // True if the register is banked between the two
1250 // security states, and this is the parent node of
1251 // the two banked registers. Used in AA64 only.
1252 MISCREG_BANKED_CHILD, // The entry is one of the child registers that
1253 // forms a banked set of regs (along with the
1254 // other child regs)
1255
1256 // Access permissions
1257 // User mode
1262 // Privileged modes other than hypervisor or monitor
1267 // Hypervisor mode
1272 // Monitor mode, SCR.NS == 0
1275 // Monitor mode, SCR.NS == 1
1278
1280 };
1281
1284 {
1285 uint32_t lower; // Lower half mapped to this register
1286 uint32_t upper; // Upper half mapped to this register
1287 uint64_t _reset; // value taken on reset (i.e. initialization)
1288 uint64_t _res0; // reserved
1289 uint64_t _res1; // reserved
1290 uint64_t _raz; // read as zero (fixed at 0)
1291 uint64_t _rao; // read as one (fixed at 1)
1292 std::bitset<NUM_MISCREG_INFOS> info;
1293
1294 using FaultCB = std::function<
1295 Fault(const MiscRegLUTEntry &entry, ThreadContext *tc,
1296 const MiscRegOp64 &inst)
1297 >;
1298
1299 std::array<FaultCB, EL3 + 1> faultRead;
1300 std::array<FaultCB, EL3 + 1> faultWrite;
1301
1302 Fault checkFault(ThreadContext *tc, const MiscRegOp64 &inst,
1304
1305 protected:
1306 template <MiscRegInfo Sec, MiscRegInfo NonSec>
1307 static Fault defaultFault(const MiscRegLUTEntry &entry,
1308 ThreadContext *tc, const MiscRegOp64 &inst);
1309
1310 public:
1323 uint64_t reset() const { return _reset; }
1324 uint64_t res0() const { return _res0; }
1325 uint64_t res1() const { return _res1; }
1326 uint64_t raz() const { return _raz; }
1327 uint64_t rao() const { return _rao; }
1328 // raz/rao implies writes ignored
1329 uint64_t wi() const { return _raz | _rao; }
1330 };
1331
1334 {
1337 public:
1338 chain
1339 mapsTo(uint32_t l, uint32_t u = 0) const
1340 {
1341 entry.lower = l;
1342 entry.upper = u;
1343 return *this;
1344 }
1345 chain
1346 reset(uint64_t res_val) const
1347 {
1348 entry._reset = res_val;
1349 return *this;
1350 }
1351 chain
1352 res0(uint64_t mask) const
1353 {
1354 entry._res0 = mask;
1355 return *this;
1356 }
1357 chain
1358 res1(uint64_t mask) const
1359 {
1360 entry._res1 = mask;
1361 return *this;
1362 }
1363 chain
1364 raz(uint64_t mask = (uint64_t)-1) const
1365 {
1366 entry._raz = mask;
1367 return *this;
1368 }
1369 chain
1370 rao(uint64_t mask = (uint64_t)-1) const
1371 {
1372 entry._rao = mask;
1373 return *this;
1374 }
1375 chain
1376 implemented(bool v = true) const
1377 {
1378 entry.info[MISCREG_IMPLEMENTED] = v;
1379 return *this;
1380 }
1381 chain
1383 {
1384 return implemented(false);
1385 }
1386 chain
1387 unverifiable(bool v = true) const
1388 {
1390 return *this;
1391 }
1392 chain
1393 unserialize(bool v = true) const
1394 {
1395 entry.info[MISCREG_UNSERIALIZE] = v;
1396 return *this;
1397 }
1398 chain
1399 warnNotFail(bool v = true) const
1400 {
1402 return *this;
1403 }
1404 chain
1405 mutex(bool v = true) const
1406 {
1407 entry.info[MISCREG_MUTEX] = v;
1408 return *this;
1409 }
1410 chain
1411 banked(bool v = true) const
1412 {
1413 entry.info[MISCREG_BANKED] = v;
1414 return *this;
1415 }
1416 chain
1417 banked64(bool v = true) const
1418 {
1419 entry.info[MISCREG_BANKED64] = v;
1420 return *this;
1421 }
1422 chain
1423 bankedChild(bool v = true) const
1424 {
1426 return *this;
1427 }
1428 chain
1429 userNonSecureRead(bool v = true) const
1430 {
1431 entry.info[MISCREG_USR_NS_RD] = v;
1432 return *this;
1433 }
1434 chain
1435 userNonSecureWrite(bool v = true) const
1436 {
1437 entry.info[MISCREG_USR_NS_WR] = v;
1438 return *this;
1439 }
1440 chain
1441 userSecureRead(bool v = true) const
1442 {
1443 entry.info[MISCREG_USR_S_RD] = v;
1444 return *this;
1445 }
1446 chain
1447 userSecureWrite(bool v = true) const
1448 {
1449 entry.info[MISCREG_USR_S_WR] = v;
1450 return *this;
1451 }
1452 chain
1453 user(bool v = true) const
1454 {
1459 return *this;
1460 }
1461 chain
1462 privNonSecureRead(bool v = true) const
1463 {
1464 entry.info[MISCREG_PRI_NS_RD] = v;
1465 return *this;
1466 }
1467 chain
1468 privNonSecureWrite(bool v = true) const
1469 {
1470 entry.info[MISCREG_PRI_NS_WR] = v;
1471 return *this;
1472 }
1473 chain
1474 privNonSecure(bool v = true) const
1475 {
1478 return *this;
1479 }
1480 chain
1481 privSecureRead(bool v = true) const
1482 {
1483 entry.info[MISCREG_PRI_S_RD] = v;
1484 return *this;
1485 }
1486 chain
1487 privSecureWrite(bool v = true) const
1488 {
1489 entry.info[MISCREG_PRI_S_WR] = v;
1490 return *this;
1491 }
1492 chain
1493 privSecure(bool v = true) const
1494 {
1497 return *this;
1498 }
1499 chain
1500 priv(bool v = true) const
1501 {
1502 privSecure(v);
1504 return *this;
1505 }
1506 chain
1507 privRead(bool v = true) const
1508 {
1511 return *this;
1512 }
1513 chain
1514 hypSecureRead(bool v = true) const
1515 {
1516 entry.info[MISCREG_HYP_S_RD] = v;
1517 return *this;
1518 }
1519 chain
1520 hypNonSecureRead(bool v = true) const
1521 {
1522 entry.info[MISCREG_HYP_NS_RD] = v;
1523 return *this;
1524 }
1525 chain
1526 hypRead(bool v = true) const
1527 {
1530 return *this;
1531 }
1532 chain
1533 hypSecureWrite(bool v = true) const
1534 {
1535 entry.info[MISCREG_HYP_S_WR] = v;
1536 return *this;
1537 }
1538 chain
1539 hypNonSecureWrite(bool v = true) const
1540 {
1541 entry.info[MISCREG_HYP_NS_WR] = v;
1542 return *this;
1543 }
1544 chain
1545 hypWrite(bool v = true) const
1546 {
1549 return *this;
1550 }
1551 chain
1552 hypSecure(bool v = true) const
1553 {
1556 return *this;
1557 }
1558 chain
1559 hyp(bool v = true) const
1560 {
1561 hypRead(v);
1562 hypWrite(v);
1563 return *this;
1564 }
1565 chain
1566 monSecureRead(bool v = true) const
1567 {
1568 entry.info[MISCREG_MON_NS0_RD] = v;
1569 return *this;
1570 }
1571 chain
1572 monSecureWrite(bool v = true) const
1573 {
1574 entry.info[MISCREG_MON_NS0_WR] = v;
1575 return *this;
1576 }
1577 chain
1578 monNonSecureRead(bool v = true) const
1579 {
1580 entry.info[MISCREG_MON_NS1_RD] = v;
1581 return *this;
1582 }
1583 chain
1584 monNonSecureWrite(bool v = true) const
1585 {
1586 entry.info[MISCREG_MON_NS1_WR] = v;
1587 return *this;
1588 }
1589 chain
1590 mon(bool v = true) const
1591 {
1596 return *this;
1597 }
1598 chain
1599 monWrite(bool v = true) const
1600 {
1603 return *this;
1604 }
1605 chain
1606 monSecure(bool v = true) const
1607 {
1610 return *this;
1611 }
1612 chain
1613 monNonSecure(bool v = true) const
1614 {
1617 return *this;
1618 }
1619 chain
1620 allPrivileges(bool v = true) const
1621 {
1630 hypRead(v);
1631 hypWrite(v);
1636 return *this;
1637 }
1638 chain
1639 nonSecure(bool v = true) const
1640 {
1645 hypRead(v);
1646 hypWrite(v);
1649 return *this;
1650 }
1651 chain
1652 secure(bool v = true) const
1653 {
1660 return *this;
1661 }
1662 chain
1663 reads(bool v) const
1664 {
1669 hypRead(v);
1672 return *this;
1673 }
1674 chain
1675 writes(bool v) const
1676 {
1681 hypWrite(v);
1684 return *this;
1685 }
1686 chain
1688 {
1689 user(0);
1690 return *this;
1691 }
1692 chain highest(ArmSystem *const sys) const;
1693
1694 chain
1696 {
1697 entry.faultRead[el] = cb;
1698 return *this;
1699 }
1700
1701 chain
1703 {
1704 entry.faultWrite[el] = cb;
1705 return *this;
1706 }
1707
1708 chain
1710 {
1711 return faultRead(el, cb).faultWrite(el, cb);
1712 }
1713
1714 chain
1716 {
1717 return fault(EL0, cb).fault(EL1, cb).fault(EL2, cb).fault(EL3, cb);
1718 }
1719
1721 : entry(e)
1722 {
1723 // force unimplemented registers to be thusly declared
1725 }
1726 };
1727
1729
1731 {
1732 MiscRegNum32(unsigned _coproc, unsigned _opc1,
1733 unsigned _crn, unsigned _crm,
1734 unsigned _opc2)
1735 : reg64(0), coproc(_coproc), opc1(_opc1), crn(_crn),
1736 crm(_crm), opc2(_opc2)
1737 {
1738 // MCR/MRC CP14 or CP15 register
1739 assert(coproc == 0b1110 || coproc == 0b1111);
1740 assert(opc1 < 8 && crn < 16 && crm < 16 && opc2 < 8);
1741 }
1742
1743 MiscRegNum32(unsigned _coproc, unsigned _opc1,
1744 unsigned _crm)
1745 : reg64(1), coproc(_coproc), opc1(_opc1), crn(0),
1746 crm(_crm), opc2(0)
1747 {
1748 // MCRR/MRRC CP14 or CP15 register
1749 assert(coproc == 0b1110 || coproc == 0b1111);
1750 assert(opc1 < 16 && crm < 16);
1751 }
1752
1753 MiscRegNum32(const MiscRegNum32& rhs) = default;
1754
1755 bool
1756 operator==(const MiscRegNum32 &other) const
1757 {
1758 return reg64 == other.reg64 &&
1759 coproc == other.coproc &&
1760 opc1 == other.opc1 &&
1761 crn == other.crn &&
1762 crm == other.crm &&
1763 opc2 == other.opc2;
1764 }
1765
1766 uint32_t
1767 packed() const
1768 {
1769 return reg64 << 19 |
1770 coproc << 15 |
1771 opc1 << 11 |
1772 crn << 7 |
1773 crm << 3 |
1774 opc2;
1775 }
1776
1777 // 1 if the register is 64bit wide (accessed through MCRR/MRCC)
1778 // 0 otherwise. We need this when generating the hash as there
1779 // might be collisions between 32 and 64 bit registers
1780 const unsigned reg64;
1781
1782 unsigned coproc;
1783 unsigned opc1;
1784 unsigned crn;
1785 unsigned crm;
1786 unsigned opc2;
1787 };
1788
1790 {
1791 MiscRegNum64(unsigned _op0, unsigned _op1,
1792 unsigned _crn, unsigned _crm,
1793 unsigned _op2)
1794 : op0(_op0), op1(_op1), crn(_crn),
1795 crm(_crm), op2(_op2)
1796 {
1797 assert(op0 < 4 && op1 < 8 && crn < 16 && crm < 16 && op2 < 8);
1798 }
1799
1800 MiscRegNum64(const MiscRegNum64& rhs) = default;
1801
1802 bool
1803 operator==(const MiscRegNum64 &other) const
1804 {
1805 return op0 == other.op0 &&
1806 op1 == other.op1 &&
1807 crn == other.crn &&
1808 crm == other.crm &&
1809 op2 == other.op2;
1810 }
1811
1812 uint32_t
1813 packed() const
1814 {
1815 return op0 << 14 |
1816 op1 << 11 |
1817 crn << 7 |
1818 crm << 3 |
1819 op2;
1820 }
1821
1822 unsigned op0;
1823 unsigned op1;
1824 unsigned crn;
1825 unsigned crm;
1826 unsigned op2;
1827 };
1828
1829 // Decodes 32-bit CP14 registers accessible through MCR/MRC instructions
1830 MiscRegIndex decodeCP14Reg(unsigned crn, unsigned opc1,
1831 unsigned crm, unsigned opc2);
1832 MiscRegIndex decodeAArch64SysReg(unsigned op0, unsigned op1,
1833 unsigned crn, unsigned crm,
1834 unsigned op2);
1836 std::optional<MiscRegNum64> encodeAArch64SysReg(MiscRegIndex misc_reg);
1837
1838 // Whether a particular AArch64 system register is -always- read only.
1840
1841 // Decodes 32-bit CP15 registers accessible through MCR/MRC instructions
1842 MiscRegIndex decodeCP15Reg(unsigned crn, unsigned opc1,
1843 unsigned crm, unsigned opc2);
1844
1845 // Decodes 64-bit CP15 registers accessible through MCRR/MRRC instructions
1846 MiscRegIndex decodeCP15Reg64(unsigned crm, unsigned opc1);
1847
1848
1849 const char * const miscRegName[] = {
1850 "cpsr",
1851 "spsr",
1852 "spsr_fiq",
1853 "spsr_irq",
1854 "spsr_svc",
1855 "spsr_mon",
1856 "spsr_abt",
1857 "spsr_hyp",
1858 "spsr_und",
1859 "elr_hyp",
1860 "fpsid",
1861 "fpscr",
1862 "mvfr1",
1863 "mvfr0",
1864 "fpexc",
1865
1866 // Helper registers
1867 "cpsr_mode",
1868 "cpsr_q",
1869 "fpscr_exc",
1870 "fpscr_qc",
1871 "lockaddr",
1872 "lockflag",
1873 "prrr_mair0",
1874 "prrr_mair0_ns",
1875 "prrr_mair0_s",
1876 "nmrr_mair1",
1877 "nmrr_mair1_ns",
1878 "nmrr_mair1_s",
1879 "pmxevtyper_pmccfiltr",
1880 "sev_mailbox",
1881 "tlbi_needsync",
1882
1883 // AArch32 CP14 registers
1884 "dbgdidr",
1885 "dbgdscrint",
1886 "dbgdccint",
1887 "dbgdtrtxint",
1888 "dbgdtrrxint",
1889 "dbgwfar",
1890 "dbgvcr",
1891 "dbgdtrrxext",
1892 "dbgdscrext",
1893 "dbgdtrtxext",
1894 "dbgoseccr",
1895 "dbgbvr0",
1896 "dbgbvr1",
1897 "dbgbvr2",
1898 "dbgbvr3",
1899 "dbgbvr4",
1900 "dbgbvr5",
1901 "dbgbvr6",
1902 "dbgbvr7",
1903 "dbgbvr8",
1904 "dbgbvr9",
1905 "dbgbvr10",
1906 "dbgbvr11",
1907 "dbgbvr12",
1908 "dbgbvr13",
1909 "dbgbvr14",
1910 "dbgbvr15",
1911 "dbgbcr0",
1912 "dbgbcr1",
1913 "dbgbcr2",
1914 "dbgbcr3",
1915 "dbgbcr4",
1916 "dbgbcr5",
1917 "dbgbcr6",
1918 "dbgbcr7",
1919 "dbgbcr8",
1920 "dbgbcr9",
1921 "dbgbcr10",
1922 "dbgbcr11",
1923 "dbgbcr12",
1924 "dbgbcr13",
1925 "dbgbcr14",
1926 "dbgbcr15",
1927 "dbgwvr0",
1928 "dbgwvr1",
1929 "dbgwvr2",
1930 "dbgwvr3",
1931 "dbgwvr4",
1932 "dbgwvr5",
1933 "dbgwvr6",
1934 "dbgwvr7",
1935 "dbgwvr8",
1936 "dbgwvr9",
1937 "dbgwvr10",
1938 "dbgwvr11",
1939 "dbgwvr12",
1940 "dbgwvr13",
1941 "dbgwvr14",
1942 "dbgwvr15",
1943 "dbgwcr0",
1944 "dbgwcr1",
1945 "dbgwcr2",
1946 "dbgwcr3",
1947 "dbgwcr4",
1948 "dbgwcr5",
1949 "dbgwcr6",
1950 "dbgwcr7",
1951 "dbgwcr8",
1952 "dbgwcr9",
1953 "dbgwcr10",
1954 "dbgwcr11",
1955 "dbgwcr12",
1956 "dbgwcr13",
1957 "dbgwcr14",
1958 "dbgwcr15",
1959 "dbgdrar",
1960 "dbgbxvr0",
1961 "dbgbxvr1",
1962 "dbgbxvr2",
1963 "dbgbxvr3",
1964 "dbgbxvr4",
1965 "dbgbxvr5",
1966 "dbgbxvr6",
1967 "dbgbxvr7",
1968 "dbgbxvr8",
1969 "dbgbxvr9",
1970 "dbgbxvr10",
1971 "dbgbxvr11",
1972 "dbgbxvr12",
1973 "dbgbxvr13",
1974 "dbgbxvr14",
1975 "dbgbxvr15",
1976 "dbgoslar",
1977 "dbgoslsr",
1978 "dbgosdlr",
1979 "dbgprcr",
1980 "dbgdsar",
1981 "dbgclaimset",
1982 "dbgclaimclr",
1983 "dbgauthstatus",
1984 "dbgdevid2",
1985 "dbgdevid1",
1986 "dbgdevid0",
1987 "teecr",
1988 "jidr",
1989 "teehbr",
1990 "joscr",
1991 "jmcr",
1992
1993 // AArch32 CP15 registers
1994 "midr",
1995 "ctr",
1996 "tcmtr",
1997 "tlbtr",
1998 "mpidr",
1999 "revidr",
2000 "id_pfr0",
2001 "id_pfr1",
2002 "id_dfr0",
2003 "id_afr0",
2004 "id_mmfr0",
2005 "id_mmfr1",
2006 "id_mmfr2",
2007 "id_mmfr3",
2008 "id_mmfr4",
2009 "id_isar0",
2010 "id_isar1",
2011 "id_isar2",
2012 "id_isar3",
2013 "id_isar4",
2014 "id_isar5",
2015 "id_isar6",
2016 "ccsidr",
2017 "clidr",
2018 "aidr",
2019 "csselr",
2020 "csselr_ns",
2021 "csselr_s",
2022 "vpidr",
2023 "vmpidr",
2024 "sctlr",
2025 "sctlr_ns",
2026 "sctlr_s",
2027 "actlr",
2028 "actlr_ns",
2029 "actlr_s",
2030 "cpacr",
2031 "sdcr",
2032 "scr",
2033 "sder",
2034 "nsacr",
2035 "hsctlr",
2036 "hactlr",
2037 "hcr",
2038 "hcr2",
2039 "hdcr",
2040 "hcptr",
2041 "hstr",
2042 "hacr",
2043 "ttbr0",
2044 "ttbr0_ns",
2045 "ttbr0_s",
2046 "ttbr1",
2047 "ttbr1_ns",
2048 "ttbr1_s",
2049 "ttbcr",
2050 "ttbcr_ns",
2051 "ttbcr_s",
2052 "htcr",
2053 "vtcr",
2054 "dacr",
2055 "dacr_ns",
2056 "dacr_s",
2057 "dfsr",
2058 "dfsr_ns",
2059 "dfsr_s",
2060 "ifsr",
2061 "ifsr_ns",
2062 "ifsr_s",
2063 "adfsr",
2064 "adfsr_ns",
2065 "adfsr_s",
2066 "aifsr",
2067 "aifsr_ns",
2068 "aifsr_s",
2069 "hadfsr",
2070 "haifsr",
2071 "hsr",
2072 "dfar",
2073 "dfar_ns",
2074 "dfar_s",
2075 "ifar",
2076 "ifar_ns",
2077 "ifar_s",
2078 "hdfar",
2079 "hifar",
2080 "hpfar",
2081 "icialluis",
2082 "bpiallis",
2083 "par",
2084 "par_ns",
2085 "par_s",
2086 "iciallu",
2087 "icimvau",
2088 "cp15isb",
2089 "bpiall",
2090 "bpimva",
2091 "dcimvac",
2092 "dcisw",
2093 "ats1cpr",
2094 "ats1cpw",
2095 "ats1cur",
2096 "ats1cuw",
2097 "ats12nsopr",
2098 "ats12nsopw",
2099 "ats12nsour",
2100 "ats12nsouw",
2101 "dccmvac",
2102 "dccsw",
2103 "cp15dsb",
2104 "cp15dmb",
2105 "dccmvau",
2106 "dccimvac",
2107 "dccisw",
2108 "ats1hr",
2109 "ats1hw",
2110 "tlbiallis",
2111 "tlbimvais",
2112 "tlbiasidis",
2113 "tlbimvaais",
2114 "tlbimvalis",
2115 "tlbimvaalis",
2116 "itlbiall",
2117 "itlbimva",
2118 "itlbiasid",
2119 "dtlbiall",
2120 "dtlbimva",
2121 "dtlbiasid",
2122 "tlbiall",
2123 "tlbimva",
2124 "tlbiasid",
2125 "tlbimvaa",
2126 "tlbimval",
2127 "tlbimvaal",
2128 "tlbiipas2is",
2129 "tlbiipas2lis",
2130 "tlbiallhis",
2131 "tlbimvahis",
2132 "tlbiallnsnhis",
2133 "tlbimvalhis",
2134 "tlbiipas2",
2135 "tlbiipas2l",
2136 "tlbiallh",
2137 "tlbimvah",
2138 "tlbiallnsnh",
2139 "tlbimvalh",
2140 "pmcr",
2141 "pmcntenset",
2142 "pmcntenclr",
2143 "pmovsr",
2144 "pmswinc",
2145 "pmselr",
2146 "pmceid0",
2147 "pmceid1",
2148 "pmccntr",
2149 "pmxevtyper",
2150 "pmevcntr0",
2151 "pmevcntr1",
2152 "pmevcntr2",
2153 "pmevcntr3",
2154 "pmevcntr4",
2155 "pmevcntr5",
2156 "pmevtyper0",
2157 "pmevtyper1",
2158 "pmevtyper2",
2159 "pmevtyper3",
2160 "pmevtyper4",
2161 "pmevtyper5",
2162 "pmccfiltr",
2163 "pmxevcntr",
2164 "pmuserenr",
2165 "pmintenset",
2166 "pmintenclr",
2167 "pmovsset",
2168 "l2ctlr",
2169 "l2ectlr",
2170 "prrr",
2171 "prrr_ns",
2172 "prrr_s",
2173 "mair0",
2174 "mair0_ns",
2175 "mair0_s",
2176 "nmrr",
2177 "nmrr_ns",
2178 "nmrr_s",
2179 "mair1",
2180 "mair1_ns",
2181 "mair1_s",
2182 "amair0",
2183 "amair0_ns",
2184 "amair0_s",
2185 "amair1",
2186 "amair1_ns",
2187 "amair1_s",
2188 "hmair0",
2189 "hmair1",
2190 "hamair0",
2191 "hamair1",
2192 "vbar",
2193 "vbar_ns",
2194 "vbar_s",
2195 "mvbar",
2196 "rmr",
2197 "isr",
2198 "hvbar",
2199 "fcseidr",
2200 "contextidr",
2201 "contextidr_ns",
2202 "contextidr_s",
2203 "tpidrurw",
2204 "tpidrurw_ns",
2205 "tpidrurw_s",
2206 "tpidruro",
2207 "tpidruro_ns",
2208 "tpidruro_s",
2209 "tpidrprw",
2210 "tpidrprw_ns",
2211 "tpidrprw_s",
2212 "htpidr",
2213 "cntfrq",
2214 "cntpct",
2215 "cntvct",
2216 "cntp_ctl",
2217 "cntp_ctl_ns",
2218 "cntp_ctl_s",
2219 "cntp_cval",
2220 "cntp_cval_ns",
2221 "cntp_cval_s",
2222 "cntp_tval",
2223 "cntp_tval_ns",
2224 "cntp_tval_s",
2225 "cntv_ctl",
2226 "cntv_cval",
2227 "cntv_tval",
2228 "cntkctl",
2229 "cnthctl",
2230 "cnthp_ctl",
2231 "cnthp_cval",
2232 "cnthp_tval",
2233 "cntvoff",
2234 "il1data0",
2235 "il1data1",
2236 "il1data2",
2237 "il1data3",
2238 "dl1data0",
2239 "dl1data1",
2240 "dl1data2",
2241 "dl1data3",
2242 "dl1data4",
2243 "ramindex",
2244 "l2actlr",
2245 "cbar",
2246 "httbr",
2247 "vttbr",
2248 "cpumerrsr",
2249 "l2merrsr",
2250
2251 // AArch64 registers (Op0=2)
2252 "mdccint_el1",
2253 "osdtrrx_el1",
2254 "mdscr_el1",
2255 "osdtrtx_el1",
2256 "oseccr_el1",
2257 "dbgbvr0_el1",
2258 "dbgbvr1_el1",
2259 "dbgbvr2_el1",
2260 "dbgbvr3_el1",
2261 "dbgbvr4_el1",
2262 "dbgbvr5_el1",
2263 "dbgbvr6_el1",
2264 "dbgbvr7_el1",
2265 "dbgbvr8_el1",
2266 "dbgbvr9_el1",
2267 "dbgbvr10_el1",
2268 "dbgbvr11_el1",
2269 "dbgbvr12_el1",
2270 "dbgbvr13_el1",
2271 "dbgbvr14_el1",
2272 "dbgbvr15_el1",
2273 "dbgbcr0_el1",
2274 "dbgbcr1_el1",
2275 "dbgbcr2_el1",
2276 "dbgbcr3_el1",
2277 "dbgbcr4_el1",
2278 "dbgbcr5_el1",
2279 "dbgbcr6_el1",
2280 "dbgbcr7_el1",
2281 "dbgbcr8_el1",
2282 "dbgbcr9_el1",
2283 "dbgbcr10_el1",
2284 "dbgbcr11_el1",
2285 "dbgbcr12_el1",
2286 "dbgbcr13_el1",
2287 "dbgbcr14_el1",
2288 "dbgbcr15_el1",
2289 "dbgwvr0_el1",
2290 "dbgwvr1_el1",
2291 "dbgwvr2_el1",
2292 "dbgwvr3_el1",
2293 "dbgwvr4_el1",
2294 "dbgwvr5_el1",
2295 "dbgwvr6_el1",
2296 "dbgwvr7_el1",
2297 "dbgwvr8_el1",
2298 "dbgwvr9_el1",
2299 "dbgwvr10_el1",
2300 "dbgwvr11_el1",
2301 "dbgwvr12_el1",
2302 "dbgwvr13_el1",
2303 "dbgwvr14_el1",
2304 "dbgwvr15_el1",
2305 "dbgwcr0_el1",
2306 "dbgwcr1_el1",
2307 "dbgwcr2_el1",
2308 "dbgwcr3_el1",
2309 "dbgwcr4_el1",
2310 "dbgwcr5_el1",
2311 "dbgwcr6_el1",
2312 "dbgwcr7_el1",
2313 "dbgwcr8_el1",
2314 "dbgwcr9_el1",
2315 "dbgwcr10_el1",
2316 "dbgwcr11_el1",
2317 "dbgwcr12_el1",
2318 "dbgwcr13_el1",
2319 "dbgwcr14_el1",
2320 "dbgwcr15_el1",
2321 "mdccsr_el0",
2322 "mddtr_el0",
2323 "mddtrtx_el0",
2324 "mddtrrx_el0",
2325 "dbgvcr32_el2",
2326 "mdrar_el1",
2327 "oslar_el1",
2328 "oslsr_el1",
2329 "osdlr_el1",
2330 "dbgprcr_el1",
2331 "dbgclaimset_el1",
2332 "dbgclaimclr_el1",
2333 "dbgauthstatus_el1",
2334 "teecr32_el1",
2335 "teehbr32_el1",
2336
2337 // AArch64 registers (Op0=1,3)
2338 "midr_el1",
2339 "mpidr_el1",
2340 "revidr_el1",
2341 "id_pfr0_el1",
2342 "id_pfr1_el1",
2343 "id_dfr0_el1",
2344 "id_afr0_el1",
2345 "id_mmfr0_el1",
2346 "id_mmfr1_el1",
2347 "id_mmfr2_el1",
2348 "id_mmfr3_el1",
2349 "id_mmfr4_el1",
2350 "id_isar0_el1",
2351 "id_isar1_el1",
2352 "id_isar2_el1",
2353 "id_isar3_el1",
2354 "id_isar4_el1",
2355 "id_isar5_el1",
2356 "id_isar6_el1",
2357 "mvfr0_el1",
2358 "mvfr1_el1",
2359 "mvfr2_el1",
2360 "id_aa64pfr0_el1",
2361 "id_aa64pfr1_el1",
2362 "id_aa64dfr0_el1",
2363 "id_aa64dfr1_el1",
2364 "id_aa64afr0_el1",
2365 "id_aa64afr1_el1",
2366 "id_aa64isar0_el1",
2367 "id_aa64isar1_el1",
2368 "id_aa64mmfr0_el1",
2369 "id_aa64mmfr1_el1",
2370 "ccsidr_el1",
2371 "clidr_el1",
2372 "aidr_el1",
2373 "csselr_el1",
2374 "ctr_el0",
2375 "dczid_el0",
2376 "vpidr_el2",
2377 "vmpidr_el2",
2378 "sctlr_el1",
2379 "sctlr_el12",
2380 "sctlr2_el1",
2381 "sctlr2_el12",
2382 "actlr_el1",
2383 "cpacr_el1",
2384 "cpacr_el12",
2385 "sctlr_el2",
2386 "sctlr2_el2",
2387 "actlr_el2",
2388 "hcr_el2",
2389 "hcrx_el2",
2390 "mdcr_el2",
2391 "cptr_el2",
2392 "hstr_el2",
2393 "hacr_el2",
2394 "sctlr_el3",
2395 "sctlr2_el3",
2396 "actlr_el3",
2397 "scr_el3",
2398 "sder32_el3",
2399 "cptr_el3",
2400 "mdcr_el3",
2401 "ttbr0_el1",
2402 "ttbr0_el12",
2403 "ttbr1_el1",
2404 "ttbr1_el12",
2405 "tcr_el1",
2406 "tcr_el12",
2407 "tcr2_el1",
2408 "tcr2_el12",
2409 "ttbr0_el2",
2410 "tcr_el2",
2411 "tcr2_el2",
2412 "vttbr_el2",
2413 "vtcr_el2",
2414 "vsttbr_el2",
2415 "vstcr_el2",
2416 "ttbr0_el3",
2417 "tcr_el3",
2418 "dacr32_el2",
2419 "spsr_el1",
2420 "spsr_el12",
2421 "elr_el1",
2422 "elr_el12",
2423 "sp_el0",
2424 "spsel",
2425 "currentel",
2426 "nzcv",
2427 "daif",
2428 "fpcr",
2429 "fpsr",
2430 "dspsr_el0",
2431 "dlr_el0",
2432 "spsr_el2",
2433 "elr_el2",
2434 "sp_el1",
2435 "spsr_irq_aa64",
2436 "spsr_abt_aa64",
2437 "spsr_und_aa64",
2438 "spsr_fiq_aa64",
2439 "spsr_el3",
2440 "elr_el3",
2441 "sp_el2",
2442 "afsr0_el1",
2443 "afsr0_el12",
2444 "afsr1_el1",
2445 "afsr1_el12",
2446 "esr_el1",
2447 "esr_el12",
2448 "ifsr32_el2",
2449 "afsr0_el2",
2450 "afsr1_el2",
2451 "esr_el2",
2452 "fpexc32_el2",
2453 "afsr0_el3",
2454 "afsr1_el3",
2455 "esr_el3",
2456 "far_el1",
2457 "far_el12",
2458 "far_el2",
2459 "hpfar_el2",
2460 "far_el3",
2461 "ic_ialluis",
2462 "par_el1",
2463 "ic_iallu",
2464 "dc_ivac_xt",
2465 "dc_isw_xt",
2466 "at_s1e1r_xt",
2467 "at_s1e1w_xt",
2468 "at_s1e0r_xt",
2469 "at_s1e0w_xt",
2470 "dc_csw_xt",
2471 "dc_cisw_xt",
2472 "dc_zva_xt",
2473 "ic_ivau_xt",
2474 "dc_cvac_xt",
2475 "dc_cvau_xt",
2476 "dc_civac_xt",
2477 "at_s1e2r_xt",
2478 "at_s1e2w_xt",
2479 "at_s12e1r_xt",
2480 "at_s12e1w_xt",
2481 "at_s12e0r_xt",
2482 "at_s12e0w_xt",
2483 "at_s1e3r_xt",
2484 "at_s1e3w_xt",
2485 TLBI_STR_VARIANTS(tlbi_vmalle1is),
2486 TLBI_STR_VARIANTS(tlbi_vmalle1os),
2487 TLBI_STR_VARIANTS(tlbi_vae1is),
2488 TLBI_STR_VARIANTS(tlbi_vae1os),
2489 TLBI_STR_VARIANTS(lbi_aside1is_xt),
2490 TLBI_STR_VARIANTS(tlbi_aside1os),
2491 TLBI_STR_VARIANTS(tlbi_vaae1is),
2492 TLBI_STR_VARIANTS(tlbi_vaae1os),
2493 TLBI_STR_VARIANTS(tlbi_vale1is),
2494 TLBI_STR_VARIANTS(tlbi_vale1os),
2495 TLBI_STR_VARIANTS(tlbi_vaale1is),
2496 TLBI_STR_VARIANTS(tlbi_vaale1os),
2497 TLBI_STR_VARIANTS(tlbi_vmalle1),
2498 TLBI_STR_VARIANTS(tlbi_vae1),
2499 TLBI_STR_VARIANTS(tlbi_aside1),
2500 TLBI_STR_VARIANTS(tlbi_vaae1),
2501 TLBI_STR_VARIANTS(tlbi_vale1),
2502 TLBI_STR_VARIANTS(tlbi_vaale1),
2503 TLBI_STR_VARIANTS(tlbi_ipas2e1is),
2504 TLBI_STR_VARIANTS(tlbi_ipas2e1os),
2505 TLBI_STR_VARIANTS(tlbi_ipas2le1is),
2506 TLBI_STR_VARIANTS(tlbi_ipas2le1os),
2507 TLBI_STR_VARIANTS(tlbi_alle2is),
2508 TLBI_STR_VARIANTS(tlbi_alle2os),
2509 TLBI_STR_VARIANTS(tlbi_vae2is),
2510 TLBI_STR_VARIANTS(tlbi_vae2os),
2511 TLBI_STR_VARIANTS(tlbi_alle1is),
2512 TLBI_STR_VARIANTS(tlbi_alle1os),
2513 TLBI_STR_VARIANTS(tlbi_vale2is),
2514 TLBI_STR_VARIANTS(tlbi_vale2os),
2515 TLBI_STR_VARIANTS(tlbi_vmalls12e1is),
2516 TLBI_STR_VARIANTS(tlbi_vmalls12e1os),
2517 TLBI_STR_VARIANTS(tlbi_ipas2e1),
2518 TLBI_STR_VARIANTS(tlbi_ipas2le1),
2519 TLBI_STR_VARIANTS(tlbi_alle2),
2520 TLBI_STR_VARIANTS(tlbi_vae2),
2521 TLBI_STR_VARIANTS(tlbi_alle1),
2522 TLBI_STR_VARIANTS(tlbi_vale2),
2523 TLBI_STR_VARIANTS(tlbi_vmalls12e1),
2524 TLBI_STR_VARIANTS(tlbi_alle3is),
2525 TLBI_STR_VARIANTS(tlbi_alle3os),
2526 TLBI_STR_VARIANTS(tlbi_vae3is),
2527 TLBI_STR_VARIANTS(tlbi_vae3os),
2528 TLBI_STR_VARIANTS(tlbi_vale3is),
2529 TLBI_STR_VARIANTS(tlbi_vale3os),
2530 TLBI_STR_VARIANTS(tlbi_alle3),
2531 TLBI_STR_VARIANTS(tlbi_vae3),
2532 TLBI_STR_VARIANTS(tlbi_vale3),
2533 TLBI_STR_VARIANTS(tlbi_rvae1),
2534 TLBI_STR_VARIANTS(tlbi_rvaae1),
2535 TLBI_STR_VARIANTS(tlbi_rvale1),
2536 TLBI_STR_VARIANTS(tlbi_rvaale1),
2537 TLBI_STR_VARIANTS(tlbi_ripas2e1),
2538 TLBI_STR_VARIANTS(tlbi_ripas2le1),
2539 TLBI_STR_VARIANTS(tlbi_rvae2),
2540 TLBI_STR_VARIANTS(tlbi_rvale2),
2541 TLBI_STR_VARIANTS(tlbi_rvae3),
2542 TLBI_STR_VARIANTS(tlbi_rvale3),
2543 TLBI_STR_VARIANTS(tlbi_rvae1is),
2544 TLBI_STR_VARIANTS(tlbi_rvaae1is),
2545 TLBI_STR_VARIANTS(tlbi_rvale1is),
2546 TLBI_STR_VARIANTS(tlbi_rvaale1is),
2547 TLBI_STR_VARIANTS(tlbi_ripas2e1is),
2548 TLBI_STR_VARIANTS(tlbi_ripas2le1is),
2549 TLBI_STR_VARIANTS(tlbi_rvae2is),
2550 TLBI_STR_VARIANTS(tlbi_rvale2is),
2551 TLBI_STR_VARIANTS(tlbi_rvae3is),
2552 TLBI_STR_VARIANTS(tlbi_rvale3is),
2553 TLBI_STR_VARIANTS(tlbi_rvae1os),
2554 TLBI_STR_VARIANTS(tlbi_rvaae1os),
2555 TLBI_STR_VARIANTS(tlbi_rvale1os),
2556 TLBI_STR_VARIANTS(tlbi_rvaale1os),
2557 TLBI_STR_VARIANTS(tlbi_ripas2e1os),
2558 TLBI_STR_VARIANTS(tlbi_ripas2le1os),
2559 TLBI_STR_VARIANTS(tlbi_rvae2os),
2560 TLBI_STR_VARIANTS(tlbi_rvale2os),
2561 TLBI_STR_VARIANTS(tlbi_rvae3os),
2562 TLBI_STR_VARIANTS(tlbi_rvale3os),
2563 "pmintenset_el1",
2564 "pmintenclr_el1",
2565 "pmcr_el0",
2566 "pmcntenset_el0",
2567 "pmcntenclr_el0",
2568 "pmovsclr_el0",
2569 "pmswinc_el0",
2570 "pmselr_el0",
2571 "pmceid0_el0",
2572 "pmceid1_el0",
2573 "pmccntr_el0",
2574 "pmxevtyper_el0",
2575 "pmccfiltr_el0",
2576 "pmxevcntr_el0",
2577 "pmuserenr_el0",
2578 "pmovsset_el0",
2579 "mair_el1",
2580 "mair_el12",
2581 "amair_el1",
2582 "amair_el12",
2583 "mair_el2",
2584 "amair_el2",
2585 "mair_el3",
2586 "amair_el3",
2587 "l2ctlr_el1",
2588 "l2ectlr_el1",
2589 "vbar_el1",
2590 "vbar_el12",
2591 "rvbar_el1",
2592 "isr_el1",
2593 "vbar_el2",
2594 "rvbar_el2",
2595 "vbar_el3",
2596 "rvbar_el3",
2597 "rmr_el3",
2598 "contextidr_el1",
2599 "contextidr_el12",
2600 "tpidr_el1",
2601 "tpidr_el0",
2602 "tpidrro_el0",
2603 "tpidr_el2",
2604 "tpidr_el3",
2605 "cntfrq_el0",
2606 "cntpct_el0",
2607 "cntvct_el0",
2608 "cntp_ctl_el0",
2609 "cntp_cval_el0",
2610 "cntp_tval_el0",
2611 "cntv_ctl_el0",
2612 "cntv_cval_el0",
2613 "cntv_tval_el0",
2614 "cntp_ctl_el02",
2615 "cntp_cval_el02",
2616 "cntp_tval_el02",
2617 "cntv_ctl_el02",
2618 "cntv_cval_el02",
2619 "cntv_tval_el02",
2620 "cntkctl_el1",
2621 "cntkctl_el12",
2622 "cntps_ctl_el1",
2623 "cntps_cval_el1",
2624 "cntps_tval_el1",
2625 "cnthctl_el2",
2626 "cnthp_ctl_el2",
2627 "cnthp_cval_el2",
2628 "cnthp_tval_el2",
2629 "cnthps_ctl_el2",
2630 "cnthps_cval_el2",
2631 "cnthps_tval_el2",
2632 "cnthv_ctl_el2",
2633 "cnthv_cval_el2",
2634 "cnthv_tval_el2",
2635 "cnthvs_ctl_el2",
2636 "cnthvs_cval_el2",
2637 "cnthvs_tval_el2",
2638 "cntvoff_el2",
2639 "pmevcntr0_el0",
2640 "pmevcntr1_el0",
2641 "pmevcntr2_el0",
2642 "pmevcntr3_el0",
2643 "pmevcntr4_el0",
2644 "pmevcntr5_el0",
2645 "pmevtyper0_el0",
2646 "pmevtyper1_el0",
2647 "pmevtyper2_el0",
2648 "pmevtyper3_el0",
2649 "pmevtyper4_el0",
2650 "pmevtyper5_el0",
2651 "il1data0_el1",
2652 "il1data1_el1",
2653 "il1data2_el1",
2654 "il1data3_el1",
2655 "dl1data0_el1",
2656 "dl1data1_el1",
2657 "dl1data2_el1",
2658 "dl1data3_el1",
2659 "dl1data4_el1",
2660 "l2actlr_el1",
2661 "cpuactlr_el1",
2662 "cpuectlr_el1",
2663 "cpumerrsr_el1",
2664 "l2merrsr_el1",
2665 "cbar_el1",
2666 "contextidr_el2",
2667
2668 "ttbr1_el2",
2669 "id_aa64mmfr2_el1",
2670 "id_aa64mmfr3_el1",
2671
2672 "apdakeyhi_el1",
2673 "apdakeylo_el1",
2674 "apdbkeyhi_el1",
2675 "apdbkeylo_el1",
2676 "apgakeyhi_el1",
2677 "apgakeylo_el1",
2678 "apiakeyhi_el1",
2679 "apiakeylo_el1",
2680 "apibkeyhi_el1",
2681 "apibkeylo_el1",
2682 // GICv3, CPU interface
2683 "icc_pmr_el1",
2684 "icc_iar0_el1",
2685 "icc_eoir0_el1",
2686 "icc_hppir0_el1",
2687 "icc_bpr0_el1",
2688 "icc_ap0r0_el1",
2689 "icc_ap0r1_el1",
2690 "icc_ap0r2_el1",
2691 "icc_ap0r3_el1",
2692 "icc_ap1r0_el1",
2693 "icc_ap1r0_el1_ns",
2694 "icc_ap1r0_el1_s",
2695 "icc_ap1r1_el1",
2696 "icc_ap1r1_el1_ns",
2697 "icc_ap1r1_el1_s",
2698 "icc_ap1r2_el1",
2699 "icc_ap1r2_el1_ns",
2700 "icc_ap1r2_el1_s",
2701 "icc_ap1r3_el1",
2702 "icc_ap1r3_el1_ns",
2703 "icc_ap1r3_el1_s",
2704 "icc_dir_el1",
2705 "icc_rpr_el1",
2706 "icc_sgi1r_el1",
2707 "icc_asgi1r_el1",
2708 "icc_sgi0r_el1",
2709 "icc_iar1_el1",
2710 "icc_eoir1_el1",
2711 "icc_hppir1_el1",
2712 "icc_bpr1_el1",
2713 "icc_bpr1_el1_ns",
2714 "icc_bpr1_el1_s",
2715 "icc_ctlr_el1",
2716 "icc_ctlr_el1_ns",
2717 "icc_ctlr_el1_s",
2718 "icc_sre_el1",
2719 "icc_sre_el1_ns",
2720 "icc_sre_el1_s",
2721 "icc_igrpen0_el1",
2722 "icc_igrpen1_el1",
2723 "icc_igrpen1_el1_ns",
2724 "icc_igrpen1_el1_s",
2725 "icc_sre_el2",
2726 "icc_ctlr_el3",
2727 "icc_sre_el3",
2728 "icc_igrpen1_el3",
2729
2730 // GICv3, CPU interface, virtualization
2731 "ich_ap0r0_el2",
2732 "ich_ap0r1_el2",
2733 "ich_ap0r2_el2",
2734 "ich_ap0r3_el2",
2735 "ich_ap1r0_el2",
2736 "ich_ap1r1_el2",
2737 "ich_ap1r2_el2",
2738 "ich_ap1r3_el2",
2739 "ich_hcr_el2",
2740 "ich_vtr_el2",
2741 "ich_misr_el2",
2742 "ich_eisr_el2",
2743 "ich_elrsr_el2",
2744 "ich_vmcr_el2",
2745 "ich_lr0_el2",
2746 "ich_lr1_el2",
2747 "ich_lr2_el2",
2748 "ich_lr3_el2",
2749 "ich_lr4_el2",
2750 "ich_lr5_el2",
2751 "ich_lr6_el2",
2752 "ich_lr7_el2",
2753 "ich_lr8_el2",
2754 "ich_lr9_el2",
2755 "ich_lr10_el2",
2756 "ich_lr11_el2",
2757 "ich_lr12_el2",
2758 "ich_lr13_el2",
2759 "ich_lr14_el2",
2760 "ich_lr15_el2",
2761
2762 "icv_pmr_el1",
2763 "icv_iar0_el1",
2764 "icv_eoir0_el1",
2765 "icv_hppir0_el1",
2766 "icv_bpr0_el1",
2767 "icv_ap0r0_el1",
2768 "icv_ap0r1_el1",
2769 "icv_ap0r2_el1",
2770 "icv_ap0r3_el1",
2771 "icv_ap1r0_el1",
2772 "icv_ap1r0_el1_ns",
2773 "icv_ap1r0_el1_s",
2774 "icv_ap1r1_el1",
2775 "icv_ap1r1_el1_ns",
2776 "icv_ap1r1_el1_s",
2777 "icv_ap1r2_el1",
2778 "icv_ap1r2_el1_ns",
2779 "icv_ap1r2_el1_s",
2780 "icv_ap1r3_el1",
2781 "icv_ap1r3_el1_ns",
2782 "icv_ap1r3_el1_s",
2783 "icv_dir_el1",
2784 "icv_rpr_el1",
2785 "icv_sgi1r_el1",
2786 "icv_asgi1r_el1",
2787 "icv_sgi0r_el1",
2788 "icv_iar1_el1",
2789 "icv_eoir1_el1",
2790 "icv_hppir1_el1",
2791 "icv_bpr1_el1",
2792 "icv_bpr1_el1_ns",
2793 "icv_bpr1_el1_s",
2794 "icv_ctlr_el1",
2795 "icv_ctlr_el1_ns",
2796 "icv_ctlr_el1_s",
2797 "icv_sre_el1",
2798 "icv_sre_el1_ns",
2799 "icv_sre_el1_s",
2800 "icv_igrpen0_el1",
2801 "icv_igrpen1_el1",
2802 "icv_igrpen1_el1_ns",
2803 "icv_igrpen1_el1_s",
2804
2805 "icc_ap0r0",
2806 "icc_ap0r1",
2807 "icc_ap0r2",
2808 "icc_ap0r3",
2809 "icc_ap1r0",
2810 "icc_ap1r0_ns",
2811 "icc_ap1r0_s",
2812 "icc_ap1r1",
2813 "icc_ap1r1_ns",
2814 "icc_ap1r1_s",
2815 "icc_ap1r2",
2816 "icc_ap1r2_ns",
2817 "icc_ap1r2_s",
2818 "icc_ap1r3",
2819 "icc_ap1r3_ns",
2820 "icc_ap1r3_s",
2821 "icc_asgi1r",
2822 "icc_bpr0",
2823 "icc_bpr1",
2824 "icc_bpr1_ns",
2825 "icc_bpr1_s",
2826 "icc_ctlr",
2827 "icc_ctlr_ns",
2828 "icc_ctlr_s",
2829 "icc_dir",
2830 "icc_eoir0",
2831 "icc_eoir1",
2832 "icc_hppir0",
2833 "icc_hppir1",
2834 "icc_hsre",
2835 "icc_iar0",
2836 "icc_iar1",
2837 "icc_igrpen0",
2838 "icc_igrpen1",
2839 "icc_igrpen1_ns",
2840 "icc_igrpen1_s",
2841 "icc_mctlr",
2842 "icc_mgrpen1",
2843 "icc_msre",
2844 "icc_pmr",
2845 "icc_rpr",
2846 "icc_sgi0r",
2847 "icc_sgi1r",
2848 "icc_sre",
2849 "icc_sre_ns",
2850 "icc_sre_s",
2851
2852 "ich_ap0r0",
2853 "ich_ap0r1",
2854 "ich_ap0r2",
2855 "ich_ap0r3",
2856 "ich_ap1r0",
2857 "ich_ap1r1",
2858 "ich_ap1r2",
2859 "ich_ap1r3",
2860 "ich_hcr",
2861 "ich_vtr",
2862 "ich_misr",
2863 "ich_eisr",
2864 "ich_elrsr",
2865 "ich_vmcr",
2866 "ich_lr0",
2867 "ich_lr1",
2868 "ich_lr2",
2869 "ich_lr3",
2870 "ich_lr4",
2871 "ich_lr5",
2872 "ich_lr6",
2873 "ich_lr7",
2874 "ich_lr8",
2875 "ich_lr9",
2876 "ich_lr10",
2877 "ich_lr11",
2878 "ich_lr12",
2879 "ich_lr13",
2880 "ich_lr14",
2881 "ich_lr15",
2882 "ich_lrc0",
2883 "ich_lrc1",
2884 "ich_lrc2",
2885 "ich_lrc3",
2886 "ich_lrc4",
2887 "ich_lrc5",
2888 "ich_lrc6",
2889 "ich_lrc7",
2890 "ich_lrc8",
2891 "ich_lrc9",
2892 "ich_lrc10",
2893 "ich_lrc11",
2894 "ich_lrc12",
2895 "ich_lrc13",
2896 "ich_lrc14",
2897 "ich_lrc15",
2898
2899 "id_aa64zfr0_el1",
2900 "zcr_el3",
2901 "zcr_el2",
2902 "zcr_el12",
2903 "zcr_el1",
2904
2905 "id_aa64smfr0_el1",
2906 "svcr",
2907 "smidr_el1",
2908 "smpri_el1",
2909 "smprimap_el2",
2910 "smcr_el3",
2911 "smcr_el2",
2912 "smcr_el12",
2913 "smcr_el1",
2914 "tpidr2_el0",
2915 "mpamsm_el1",
2916
2917 "rndr",
2918 "rndrrs",
2919
2920 "hfgitr_el2",
2921 "hfgrtr_el2",
2922 "hfgwtr_el2",
2923 "hdfgrtr_el2",
2924 "hdfgwtr_el2",
2925 "hafgrtr_el2",
2926
2927 // FEAT_MPAM
2928 "mpamidr_el1",
2929 "mpam0_el1",
2930 "mpam1_el1",
2931 "mpam2_el2",
2932 "mpam3_el3",
2933 "mpam1_el12",
2934 "mpamhcr_el2",
2935 "mpamvpmv_el2",
2936 "mpamvpm0_el2",
2937 "mpamvpm1_el2",
2938 "mpamvpm2_el2",
2939 "mpamvpm3_el2",
2940 "mpamvpm4_el2",
2941 "mpamvpm5_el2",
2942 "mpamvpm6_el2",
2943 "mpamvpm7_el2",
2944
2945 "pire0_el1",
2946 "pire0_el2",
2947 "pire0_el12",
2948 "pir_el1",
2949 "pir_el2",
2950 "pir_el3",
2951 "pir_el12",
2952
2953 "num_phys_regs",
2954
2955 // Dummy registers
2956 "nop",
2957 "raz",
2958 "unknown",
2959 "impl_defined",
2960 "erridr_el1",
2961 "errselr_el1",
2962 "erxfr_el1",
2963 "erxctlr_el1",
2964 "erxstatus_el1",
2965 "erxaddr_el1",
2966 "erxmisc0_el1",
2967 "erxmisc1_el1",
2968 "disr_el1",
2969 "vsesr_el2",
2970 "vdisr_el2",
2971
2972 // PSTATE
2973 "pan",
2974 "uao",
2975 };
2976
2977 static_assert(sizeof(miscRegName) / sizeof(*miscRegName) == NUM_MISCREGS,
2978 "The miscRegName array and NUM_MISCREGS are inconsistent.");
2979
2981 {
2982 public:
2983 std::string
2984 regName(const RegId &id) const override
2985 {
2986 return miscRegName[id.index()];
2987 }
2988 };
2989
2991
2992 inline constexpr RegClass miscRegClass =
2994 debug::MiscRegs).
2995 ops(miscRegClassOps);
2996
2997 // This mask selects bits of the CPSR that actually go in the CondCodes
2998 // integer register to allow renaming.
2999 static const uint32_t CondCodesMask = 0xF00F0000;
3000 static const uint32_t CpsrMaskQ = 0x08000000;
3001
3002 // APSR (Application Program Status Register Mask). It is the user level
3003 // alias for the CPSR. The APSR is a subset of the CPSR. Although
3004 // bits[15:0] are UNKNOWN on reads, it is permitted that, on a read of
3005 // APSR:
3006 // Bit[9] returns the value of CPSR.E.
3007 // Bits[8:6] return the value of CPSR.{A,I, F}, the mask bits.
3008 static const uint32_t ApsrMask = CpsrMaskQ | CondCodesMask | 0x000001D0;
3009
3010 // CPSR (Current Program Status Register Mask).
3011 static const uint32_t CpsrMask = ApsrMask | 0x00F003DF;
3012
3013 // This mask selects bits of the FPSCR that actually go in the FpCondCodes
3014 // integer register to allow renaming.
3015 static const uint32_t FpCondCodesMask = 0xF0000000;
3016 // This mask selects the cumulative saturation flag of the FPSCR.
3017 static const uint32_t FpscrQcMask = 0x08000000;
3018 // This mask selects the AHP bit of the FPSCR.
3019 static const uint32_t FpscrAhpMask = 0x04000000;
3020 // This mask selects the cumulative FP exception flags of the FPSCR.
3021 static const uint32_t FpscrExcMask = 0x0000009F;
3022
3037 std::tuple<bool, bool> canReadCoprocReg(MiscRegIndex reg, SCR scr,
3038 CPSR cpsr, ThreadContext *tc);
3039
3054 std::tuple<bool, bool> canWriteCoprocReg(MiscRegIndex reg, SCR scr,
3055 CPSR cpsr, ThreadContext *tc);
3056
3057 // Checks for UNDEFINED behaviours when accessing AArch32
3058 // Generic Timer system registers
3060
3061 // Checks access permissions to AArch64 system registers
3063 ThreadContext *tc, const MiscRegOp64 &inst);
3064
3065 // Uses just the scr.ns bit to pre flatten the misc regs. This is useful
3066 // for MCR/MRC instructions
3067 int
3069
3070 // Flattens a misc reg index using the specified security state. This is
3071 // used for opperations (eg address translations) where the security
3072 // state of the register access may differ from the current state of the
3073 // processor
3074 int
3076
3077 int
3079
3080 // Takes a misc reg index and returns the root reg if its one of a set of
3081 // banked registers
3082 void
3084
3085 int
3086 unflattenMiscReg(int reg);
3087
3088} // namespace ArmISA
3089} // namespace gem5
3090
3091namespace std
3092{
3093template<>
3094struct hash<gem5::ArmISA::MiscRegNum32>
3095{
3096 size_t
3098 {
3099 return reg.packed();
3100 }
3101};
3102
3103template<>
3104struct hash<gem5::ArmISA::MiscRegNum64>
3105{
3106 size_t
3108 {
3109 return reg.packed();
3110 }
3111};
3112} // namespace std
3113
3114#endif // __ARCH_ARM_REGS_MISC_HH__
#define TLBI_STR_VARIANTS(TLBI)
Definition misc.hh:64
std::string regName(const RegId &id) const override
Print the name of the register specified in id.
Definition misc.hh:2984
chain userNonSecureWrite(bool v=true) const
Definition misc.hh:1435
const MiscRegLUTEntryInitializer & chain
Definition misc.hh:1336
chain userSecureWrite(bool v=true) const
Definition misc.hh:1447
chain warnNotFail(bool v=true) const
Definition misc.hh:1399
chain mapsTo(uint32_t l, uint32_t u=0) const
Definition misc.hh:1339
chain fault(ExceptionLevel el, MiscRegLUTEntry::FaultCB cb) const
Definition misc.hh:1709
chain userSecureRead(bool v=true) const
Definition misc.hh:1441
chain implemented(bool v=true) const
Definition misc.hh:1376
MiscRegLUTEntryInitializer(struct MiscRegLUTEntry &e)
Definition misc.hh:1720
chain highest(ArmSystem *const sys) const
Definition misc.cc:3013
chain secure(bool v=true) const
Definition misc.hh:1652
chain mutex(bool v=true) const
Definition misc.hh:1405
chain hypNonSecureWrite(bool v=true) const
Definition misc.hh:1539
chain priv(bool v=true) const
Definition misc.hh:1500
chain raz(uint64_t mask=(uint64_t) -1) const
Definition misc.hh:1364
chain hypSecureRead(bool v=true) const
Definition misc.hh:1514
chain monSecure(bool v=true) const
Definition misc.hh:1606
chain privSecure(bool v=true) const
Definition misc.hh:1493
chain privSecureRead(bool v=true) const
Definition misc.hh:1481
chain privNonSecure(bool v=true) const
Definition misc.hh:1474
chain hypSecureWrite(bool v=true) const
Definition misc.hh:1533
chain userNonSecureRead(bool v=true) const
Definition misc.hh:1429
chain nonSecure(bool v=true) const
Definition misc.hh:1639
chain privNonSecureRead(bool v=true) const
Definition misc.hh:1462
chain monNonSecureWrite(bool v=true) const
Definition misc.hh:1584
chain reset(uint64_t res_val) const
Definition misc.hh:1346
chain monNonSecureRead(bool v=true) const
Definition misc.hh:1578
chain monWrite(bool v=true) const
Definition misc.hh:1599
chain user(bool v=true) const
Definition misc.hh:1453
chain unverifiable(bool v=true) const
Definition misc.hh:1387
chain hypSecure(bool v=true) const
Definition misc.hh:1552
chain banked(bool v=true) const
Definition misc.hh:1411
chain privRead(bool v=true) const
Definition misc.hh:1507
chain hypRead(bool v=true) const
Definition misc.hh:1526
struct MiscRegLUTEntry & entry
Definition misc.hh:1335
chain banked64(bool v=true) const
Definition misc.hh:1417
chain fault(MiscRegLUTEntry::FaultCB cb) const
Definition misc.hh:1715
chain res0(uint64_t mask) const
Definition misc.hh:1352
chain bankedChild(bool v=true) const
Definition misc.hh:1423
chain hypWrite(bool v=true) const
Definition misc.hh:1545
chain allPrivileges(bool v=true) const
Definition misc.hh:1620
chain monSecureRead(bool v=true) const
Definition misc.hh:1566
chain privSecureWrite(bool v=true) const
Definition misc.hh:1487
chain res1(uint64_t mask) const
Definition misc.hh:1358
chain faultRead(ExceptionLevel el, MiscRegLUTEntry::FaultCB cb) const
Definition misc.hh:1695
chain hypNonSecureRead(bool v=true) const
Definition misc.hh:1520
chain monNonSecure(bool v=true) const
Definition misc.hh:1613
chain monSecureWrite(bool v=true) const
Definition misc.hh:1572
chain rao(uint64_t mask=(uint64_t) -1) const
Definition misc.hh:1370
chain mon(bool v=true) const
Definition misc.hh:1590
chain privNonSecureWrite(bool v=true) const
Definition misc.hh:1468
chain unserialize(bool v=true) const
Definition misc.hh:1393
chain faultWrite(ExceptionLevel el, MiscRegLUTEntry::FaultCB cb) const
Definition misc.hh:1702
chain hyp(bool v=true) const
Definition misc.hh:1559
This class is implementing the Base class for a generic AArch64 instruction which is making use of sy...
Definition misc64.hh:160
Register ID: describe an architectural register with its class and index.
Definition reg_class.hh:94
ThreadContext is the external interface to all thread state for anything outside of the CPU.
STL vector class.
Definition stl.hh:37
Bitfield< 28 > v
Definition misc_types.hh:54
bool AArch32isUndefinedGenericTimer(MiscRegIndex reg, ThreadContext *tc)
Definition misc.cc:674
static const uint32_t FpscrQcMask
Definition misc.hh:3017
static MiscRegClassOps miscRegClassOps
Definition misc.hh:2990
Bitfield< 3, 0 > mask
Definition pcstate.hh:63
bool aarch64SysRegReadOnly(MiscRegIndex miscReg)
static const uint32_t CpsrMask
Definition misc.hh:3011
static const uint32_t FpscrExcMask
Definition misc.hh:3021
MiscRegIndex decodeAArch64SysReg(unsigned op0, unsigned op1, unsigned crn, unsigned crm, unsigned op2)
Definition misc.cc:2931
MiscRegIndex decodeCP15Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2)
Definition misc.cc:549
Fault checkFaultAccessAArch64SysReg(MiscRegIndex reg, CPSR cpsr, ThreadContext *tc, const MiscRegOp64 &inst)
Definition misc.cc:744
static const uint32_t ApsrMask
Definition misc.hh:3008
Bitfield< 7, 5 > opc2
Definition types.hh:106
static const uint32_t CpsrMaskQ
Definition misc.hh:3000
static const uint32_t FpCondCodesMask
Definition misc.hh:3015
Bitfield< 9 > e
Definition misc_types.hh:65
Bitfield< 0 > ns
void preUnflattenMiscReg()
Definition misc.cc:722
Bitfield< 22 > u
static const uint32_t FpscrAhpMask
Definition misc.hh:3019
@ MISCREG_PMXEVTYPER_EL0
Definition misc.hh:805
@ MISCREG_ERXSTATUS_EL1
Definition misc.hh:1219
@ MISCREG_AMAIR_EL3
Definition misc.hh:817
@ MISCREG_PMEVTYPER0
Definition misc.hh:385
@ MISCREG_DBGWVR1_EL1
Definition misc.hh:521
@ MISCREG_DBGDRAR
Definition misc.hh:188
@ MISCREG_NSACR
Definition misc.hh:263
@ MISCREG_DL1DATA1
Definition misc.hh:470
@ MISCREG_ID_AA64PFR0_EL1
Definition misc.hh:591
@ MISCREG_DBGWCR5
Definition misc.hh:177
@ MISCREG_ICH_VMCR
Definition misc.hh:1104
@ MISCREG_CSSELR_NS
Definition misc.hh:249
@ MISCREG_HSTR_EL2
Definition misc.hh:623
@ MISCREG_DBGWVR13_EL1
Definition misc.hh:533
@ MISCREG_PMUSERENR
Definition misc.hh:393
@ MISCREG_DBGBCR15
Definition misc.hh:155
@ MISCREG_DBGOSLSR
Definition misc.hh:206
@ MISCREG_DBGDTRRXext
Definition misc.hh:120
@ MISCREG_ID_MMFR2_EL1
Definition misc.hh:578
@ MISCREG_TTBR1_EL12
Definition misc.hh:635
@ MISCREG_DCCISW
Definition misc.hh:336
@ MISCREG_ERRIDR_EL1
Definition misc.hh:1215
@ MISCREG_DACR_S
Definition misc.hh:285
@ MISCREG_CNTV_CTL_EL0
Definition misc.hh:843
@ MISCREG_ICH_LR7
Definition misc.hh:1112
@ MISCREG_DBGWCR8
Definition misc.hh:180
@ MISCREG_HCR
Definition misc.hh:266
@ MISCREG_ICC_BPR1_EL1_NS
Definition misc.hh:952
@ MISCREG_NMRR_NS
Definition misc.hh:406
@ MISCREG_CPSR_MODE
Definition misc.hh:96
@ MISCREG_PRRR_MAIR0
Definition misc.hh:102
@ MISCREG_ICC_IGRPEN1_EL1_NS
Definition misc.hh:962
@ MISCREG_ICV_BPR0_EL1
Definition misc.hh:1005
@ MISCREG_ICH_AP0R2_EL2
Definition misc.hh:972
@ MISCREG_VSTCR_EL2
Definition misc.hh:646
@ MISCREG_DBGWVR14
Definition misc.hh:170
@ MISCREG_HDFAR
Definition misc.hh:307
@ MISCREG_PIR_EL2
Definition misc.hh:1193
@ MISCREG_MPIDR_EL1
Definition misc.hh:570
@ MISCREG_ICC_IGRPEN1
Definition misc.hh:1077
@ MISCREG_DFSR_S
Definition misc.hh:288
@ MISCREG_IL1DATA1
Definition misc.hh:466
@ MISCREG_DBGWVR10_EL1
Definition misc.hh:530
@ MISCREG_DL1DATA0
Definition misc.hh:469
@ MISCREG_CPUECTLR_EL1
Definition misc.hh:897
@ MISCREG_ATS1HR
Definition misc.hh:337
@ MISCREG_ERXCTLR_EL1
Definition misc.hh:1218
@ MISCREG_SCTLR_EL2
Definition misc.hh:616
@ MISCREG_PMSELR_EL0
Definition misc.hh:801
@ MISCREG_ID_DFR0_EL1
Definition misc.hh:574
@ MISCREG_CNTV_CVAL_EL02
Definition misc.hh:850
@ MISCREG_CP15ISB
Definition misc.hh:317
@ MISCREG_PMEVTYPER5
Definition misc.hh:390
@ MISCREG_CNTP_CTL_EL0
Definition misc.hh:840
@ MISCREG_DFAR_NS
Definition misc.hh:302
@ MISCREG_DBGBXVR8
Definition misc.hh:197
@ MISCREG_TLBIMVALIS
Definition misc.hh:343
@ MISCREG_PMOVSSET
Definition misc.hh:396
@ MISCREG_FPEXC
Definition misc.hh:93
@ MISCREG_PIRE0_EL1
Definition misc.hh:1189
@ MISCREG_DBGWCR1
Definition misc.hh:173
@ MISCREG_MPAMVPM2_EL2
Definition misc.hh:1181
@ MISCREG_NMRR_MAIR1_S
Definition misc.hh:107
@ MISCREG_ICH_LR7_EL2
Definition misc.hh:991
@ MISCREG_CNTP_CTL_EL02
Definition misc.hh:846
@ MISCREG_ICC_IAR1_EL1
Definition misc.hh:948
@ MISCREG_SPSEL
Definition misc.hh:655
@ MISCREG_TCR_EL2
Definition misc.hh:641
@ MISCREG_AT_S1E1W_Xt
Definition misc.hh:698
@ MISCREG_ID_ISAR0_EL1
Definition misc.hh:581
@ MISCREG_DBGWCR5_EL1
Definition misc.hh:541
@ MISCREG_RNDRRS
Definition misc.hh:1160
@ MISCREG_DBGWVR2
Definition misc.hh:158
@ MISCREG_ICH_LR6_EL2
Definition misc.hh:990
@ MISCREG_PMEVCNTR5
Definition misc.hh:384
@ MISCREG_ICH_AP1R1
Definition misc.hh:1096
@ MISCREG_DBGDSCRint
Definition misc.hh:114
@ MISCREG_MVFR1
Definition misc.hh:91
@ MISCREG_PIR_EL1
Definition misc.hh:1192
@ MISCREG_IL1DATA0_EL1
Definition misc.hh:886
@ MISCREG_MIDR_EL1
Definition misc.hh:569
@ MISCREG_SDER
Definition misc.hh:262
@ MISCREG_DBGWCR12_EL1
Definition misc.hh:548
@ MISCREG_OSDLR_EL1
Definition misc.hh:560
@ MISCREG_ICV_RPR_EL1
Definition misc.hh:1023
@ MISCREG_ICV_IGRPEN1_EL1_S
Definition misc.hh:1042
@ MISCREG_DL1DATA3
Definition misc.hh:472
@ MISCREG_HTPIDR
Definition misc.hh:441
@ MISCREG_DBGBXVR15
Definition misc.hh:204
@ MISCREG_TLBIMVAALIS
Definition misc.hh:344
@ MISCREG_ICV_AP1R2_EL1
Definition misc.hh:1016
@ MISCREG_ICV_AP0R3_EL1
Definition misc.hh:1009
@ MISCREG_ICC_MGRPEN1
Definition misc.hh:1081
@ MISCREG_ZCR_EL2
Definition misc.hh:1141
@ MISCREG_ICC_IGRPEN1_EL3
Definition misc.hh:967
@ MISCREG_SPSR_HYP
Definition misc.hh:86
@ MISCREG_ID_AA64ZFR0_EL1
Definition misc.hh:1139
@ MISCREG_MPAMVPM7_EL2
Definition misc.hh:1186
@ MISCREG_DBGDEVID0
Definition misc.hh:215
@ MISCREG_CNTFRQ
Definition misc.hh:443
@ MISCREG_DBGDSAR
Definition misc.hh:209
@ MISCREG_AFSR1_EL12
Definition misc.hh:676
@ MISCREG_CPUMERRSR
Definition misc.hh:479
@ MISCREG_CPSR_Q
Definition misc.hh:97
@ MISCREG_DBGBVR5_EL1
Definition misc.hh:493
@ MISCREG_MAIR_EL1
Definition misc.hh:810
@ MISCREG_ICV_AP1R1_EL1_NS
Definition misc.hh:1014
@ MISCREG_DBGBCR2_EL1
Definition misc.hh:506
@ MISCREG_ID_ISAR2_EL1
Definition misc.hh:583
@ MISCREG_TLBIMVAAL
Definition misc.hh:356
@ MISCREG_DBGBVR1_EL1
Definition misc.hh:489
@ MISCREG_PAR_NS
Definition misc.hh:313
@ MISCREG_ICC_IGRPEN1_EL1_S
Definition misc.hh:963
@ MISCREG_HAMAIR1
Definition misc.hh:420
@ MISCREG_PMXEVCNTR_EL0
Definition misc.hh:807
@ MISCREG_ICC_IGRPEN1_NS
Definition misc.hh:1078
@ MISCREG_ICC_PMR_EL1
Definition misc.hh:922
@ MISCREG_CONTEXTIDR_EL1
Definition misc.hh:829
@ MISCREG_CNTV_TVAL
Definition misc.hh:457
@ MISCREG_VBAR_EL3
Definition misc.hh:826
@ MISCREG_ICV_CTLR_EL1
Definition misc.hh:1033
@ MISCREG_AIFSR_NS
Definition misc.hh:296
@ MISCREG_DBGWCR10
Definition misc.hh:182
@ MISCREG_DBGBXVR9
Definition misc.hh:198
@ MISCREG_ICC_CTLR_NS
Definition misc.hh:1066
@ MISCREG_PMEVTYPER1
Definition misc.hh:386
@ MISCREG_CNTPS_TVAL_EL1
Definition misc.hh:856
@ MISCREG_ICC_AP1R3
Definition misc.hh:1057
@ MISCREG_ICC_MCTLR
Definition misc.hh:1080
@ MISCREG_HCPTR
Definition misc.hh:269
@ MISCREG_ICV_AP1R2_EL1_S
Definition misc.hh:1018
@ MISCREG_SPSR_EL2
Definition misc.hh:663
@ MISCREG_ICH_LR8
Definition misc.hh:1113
@ MISCREG_ICV_AP0R0_EL1
Definition misc.hh:1006
@ MISCREG_MPAMVPM4_EL2
Definition misc.hh:1183
@ MISCREG_ICC_AP1R0_EL1
Definition misc.hh:931
@ MISCREG_ICC_BPR0_EL1
Definition misc.hh:926
@ MISCREG_DBGWFAR
Definition misc.hh:118
@ MISCREG_IFAR
Definition misc.hh:304
@ MISCREG_FCSEIDR
Definition misc.hh:428
@ MISCREG_DBGWVR7
Definition misc.hh:163
@ MISCREG_ID_MMFR1
Definition misc.hh:234
@ MISCREG_AT_S1E2W_Xt
Definition misc.hh:709
@ MISCREG_PMEVTYPER1_EL0
Definition misc.hh:881
@ MISCREG_LOCKFLAG
Definition misc.hh:101
@ MISCREG_ICH_LR15_EL2
Definition misc.hh:999
@ MISCREG_FPSID
Definition misc.hh:89
@ MISCREG_MPAM3_EL3
Definition misc.hh:1175
@ MISCREG_DBGBXVR12
Definition misc.hh:201
@ MISCREG_ICH_MISR
Definition misc.hh:1101
@ MISCREG_DBGWCR6_EL1
Definition misc.hh:542
@ MISCREG_ID_AFR0_EL1
Definition misc.hh:575
@ MISCREG_DBGBVR2
Definition misc.hh:126
@ MISCREG_MAIR_EL12
Definition misc.hh:811
@ MISCREG_ICV_IGRPEN1_EL1_NS
Definition misc.hh:1041
@ MISCREG_DBGBVR7_EL1
Definition misc.hh:495
@ MISCREG_ICH_LRC0
Definition misc.hh:1121
@ MISCREG_SMIDR_EL1
Definition misc.hh:1148
@ MISCREG_SCTLR
Definition misc.hh:253
@ MISCREG_PAR_EL1
Definition misc.hh:693
@ MISCREG_TTBCR
Definition misc.hh:278
@ MISCREG_DBGWVR3_EL1
Definition misc.hh:523
@ MISCREG_ICH_LR5
Definition misc.hh:1110
@ MISCREG_AT_S12E1W_Xt
Definition misc.hh:711
@ MISCREG_TLBIIPAS2
Definition misc.hh:363
@ MISCREG_ICV_EOIR1_EL1
Definition misc.hh:1028
@ MISCREG_ATS12NSOUW
Definition misc.hh:329
@ MISCREG_MAIR_EL2
Definition misc.hh:814
@ MISCREG_ICV_IGRPEN0_EL1
Definition misc.hh:1039
@ MISCREG_CNTV_CVAL
Definition misc.hh:456
@ MISCREG_APDBKeyLo_EL1
Definition misc.hh:913
@ MISCREG_MDRAR_EL1
Definition misc.hh:557
@ MISCREG_CSSELR
Definition misc.hh:248
@ MISCREG_CPACR
Definition misc.hh:259
@ MISCREG_HAMAIR0
Definition misc.hh:419
@ MISCREG_TLBIIPAS2L
Definition misc.hh:364
@ MISCREG_ICC_BPR1_S
Definition misc.hh:1064
@ MISCREG_DBGBVR8
Definition misc.hh:132
@ MISCREG_ADFSR_S
Definition misc.hh:294
@ MISCREG_ICH_LRC11
Definition misc.hh:1132
@ MISCREG_SCR_EL3
Definition misc.hh:628
@ MISCREG_TTBR0_S
Definition misc.hh:274
@ MISCREG_TLBIALLHIS
Definition misc.hh:359
@ MISCREG_IL1DATA1_EL1
Definition misc.hh:887
@ MISCREG_CNTKCTL_EL12
Definition misc.hh:853
@ MISCREG_APDAKeyHi_EL1
Definition misc.hh:910
@ MISCREG_TLBIIPAS2LIS
Definition misc.hh:358
@ MISCREG_TLBIASIDIS
Definition misc.hh:341
@ MISCREG_ID_AA64DFR0_EL1
Definition misc.hh:593
@ MISCREG_ID_ISAR6
Definition misc.hh:244
@ MISCREG_DBGCLAIMCLR
Definition misc.hh:211
@ MISCREG_TPIDRRO_EL0
Definition misc.hh:833
@ MISCREG_DBGBVR3
Definition misc.hh:127
@ MISCREG_DBGWVR5_EL1
Definition misc.hh:525
@ MISCREG_DBGOSLAR
Definition misc.hh:205
@ MISCREG_PMEVTYPER3_EL0
Definition misc.hh:883
@ MISCREG_ICC_SRE_EL1_NS
Definition misc.hh:958
@ MISCREG_DBGBCR10
Definition misc.hh:150
@ MISCREG_SPSR_SVC
Definition misc.hh:83
@ MISCREG_REVIDR_EL1
Definition misc.hh:571
@ MISCREG_DBGDSCRext
Definition misc.hh:121
@ MISCREG_SCTLR2_EL12
Definition misc.hh:612
@ MISCREG_SCTLR2_EL1
Definition misc.hh:611
@ MISCREG_TCR_EL3
Definition misc.hh:648
@ MISCREG_SCTLR2_EL3
Definition misc.hh:626
@ MISCREG_SMCR_EL1
Definition misc.hh:1154
@ MISCREG_FPSR
Definition misc.hh:660
@ MISCREG_DBGDIDR
Definition misc.hh:113
@ MISCREG_DBGBVR9_EL1
Definition misc.hh:497
@ MISCREG_ICH_HCR_EL2
Definition misc.hh:978
@ MISCREG_CPACR_EL12
Definition misc.hh:615
@ MISCREG_HDCR
Definition misc.hh:268
@ MISCREG_AIFSR_S
Definition misc.hh:297
@ MISCREG_ESR_EL1
Definition misc.hh:677
@ MISCREG_DISR_EL1
Definition misc.hh:1223
@ MISCREG_ADFSR
Definition misc.hh:292
@ MISCREG_ICC_AP1R3_EL1_NS
Definition misc.hh:941
@ MISCREG_PMCCNTR_EL0
Definition misc.hh:804
@ MISCREG_CNTP_TVAL
Definition misc.hh:452
@ MISCREG_MDCCSR_EL0
Definition misc.hh:552
@ MISCREG_ICV_AP1R3_EL1_S
Definition misc.hh:1021
@ MISCREG_DTLBIMVA
Definition misc.hh:349
@ MISCREG_SPSR_UND_AA64
Definition misc.hh:668
@ MISCREG_DBGWVR13
Definition misc.hh:169
@ MISCREG_AT_S12E0W_Xt
Definition misc.hh:713
@ MISCREG_PMEVTYPER2
Definition misc.hh:387
@ MISCREG_DBGBXVR4
Definition misc.hh:193
@ MISCREG_TCR_EL1
Definition misc.hh:636
@ MISCREG_PMINTENSET
Definition misc.hh:394
@ MISCREG_TTBCR_NS
Definition misc.hh:279
@ MISCREG_PMXEVTYPER
Definition misc.hh:378
@ MISCREG_DBGBCR13_EL1
Definition misc.hh:517
@ MISCREG_TPIDR_EL3
Definition misc.hh:835
@ MISCREG_DBGBVR11
Definition misc.hh:135
@ MISCREG_HFGRTR_EL2
Definition misc.hh:1164
@ MISCREG_ICC_AP0R3
Definition misc.hh:1047
@ MISCREG_VMPIDR
Definition misc.hh:252
@ MISCREG_TPIDRURW_S
Definition misc.hh:434
@ MISCREG_CCSIDR_EL1
Definition misc.hh:601
@ MISCREG_DBGBXVR5
Definition misc.hh:194
@ MISCREG_CNTVCT
Definition misc.hh:445
@ MISCREG_ESR_EL12
Definition misc.hh:678
@ MISCREG_TLBIMVALH
Definition misc.hh:368
@ MISCREG_DL1DATA1_EL1
Definition misc.hh:891
@ MISCREG_ICC_AP1R0_EL1_S
Definition misc.hh:933
@ MISCREG_DBGWCR8_EL1
Definition misc.hh:544
@ MISCREG_ICC_IGRPEN1_S
Definition misc.hh:1079
@ MISCREG_AFSR0_EL1
Definition misc.hh:673
@ MISCREG_ICC_AP1R0_S
Definition misc.hh:1050
@ MISCREG_SPSR_UND
Definition misc.hh:87
@ MISCREG_TCMTR
Definition misc.hh:225
@ MISCREG_DBGWCR13_EL1
Definition misc.hh:549
@ MISCREG_DBGOSDLR
Definition misc.hh:207
@ MISCREG_DBGBXVR3
Definition misc.hh:192
@ MISCREG_DBGWCR11_EL1
Definition misc.hh:547
@ MISCREG_DBGWVR11_EL1
Definition misc.hh:531
@ MISCREG_SPSR_IRQ
Definition misc.hh:82
@ MISCREG_ID_ISAR5
Definition misc.hh:243
@ MISCREG_BPIALL
Definition misc.hh:318
@ MISCREG_DBGBVR10_EL1
Definition misc.hh:498
@ MISCREG_ID_ISAR3_EL1
Definition misc.hh:584
@ MISCREG_PMEVTYPER4_EL0
Definition misc.hh:884
@ MISCREG_ATS1CUR
Definition misc.hh:324
@ MISCREG_ICH_ELRSR_EL2
Definition misc.hh:982
@ MISCREG_DC_CVAC_Xt
Definition misc.hh:705
@ MISCREG_VPIDR_EL2
Definition misc.hh:607
@ MISCREG_DBGWCR2
Definition misc.hh:174
@ MISCREG_OSLAR_EL1
Definition misc.hh:558
@ MISCREG_CNTPCT_EL0
Definition misc.hh:838
@ MISCREG_DBGWCR4_EL1
Definition misc.hh:540
@ MISCREG_ERXADDR_EL1
Definition misc.hh:1220
@ MISCREG_AMAIR0_NS
Definition misc.hh:412
@ MISCREG_DBGBCR14_EL1
Definition misc.hh:518
@ MISCREG_ICH_AP1R3
Definition misc.hh:1098
@ MISCREG_MPAM1_EL1
Definition misc.hh:1173
@ MISCREG_SPSR_ABT
Definition misc.hh:85
@ MISCREG_DBGWVR0_EL1
Definition misc.hh:520
@ MISCREG_AFSR1_EL2
Definition misc.hh:681
@ MISCREG_CNTV_CTL_EL02
Definition misc.hh:849
@ MISCREG_CP15DMB
Definition misc.hh:333
@ MISCREG_DBGBCR0_EL1
Definition misc.hh:504
@ MISCREG_SCTLR2_EL2
Definition misc.hh:617
@ MISCREG_DBGWVR15
Definition misc.hh:171
@ MISCREG_TLBIMVA
Definition misc.hh:352
@ MISCREG_PIR_EL3
Definition misc.hh:1194
@ MISCREG_PMEVCNTR4_EL0
Definition misc.hh:878
@ MISCREG_CONTEXTIDR_NS
Definition misc.hh:430
@ MISCREG_ICH_AP1R3_EL2
Definition misc.hh:977
@ MISCREG_DBGBCR6_EL1
Definition misc.hh:510
@ MISCREG_HFGITR_EL2
Definition misc.hh:1163
@ MISCREG_ID_ISAR4
Definition misc.hh:242
@ MISCREG_DBGBCR3_EL1
Definition misc.hh:507
@ MISCREG_ICC_AP1R1_EL1_S
Definition misc.hh:936
@ MISCREG_SCTLR_EL1
Definition misc.hh:609
@ MISCREG_CNTP_TVAL_EL02
Definition misc.hh:848
@ MISCREG_ICH_AP0R3
Definition misc.hh:1094
@ MISCREG_DBGWVR4_EL1
Definition misc.hh:524
@ MISCREG_TPIDRPRW_NS
Definition misc.hh:439
@ MISCREG_PMEVCNTR3
Definition misc.hh:382
@ MISCREG_AIDR_EL1
Definition misc.hh:603
@ MISCREG_DC_CIVAC_Xt
Definition misc.hh:707
@ MISCREG_DBGDEVID1
Definition misc.hh:214
@ MISCREG_PRRR
Definition misc.hh:399
@ MISCREG_ICC_IGRPEN0
Definition misc.hh:1076
@ MISCREG_ICH_LRC7
Definition misc.hh:1128
@ MISCREG_TEECR
Definition misc.hh:216
@ MISCREG_DC_CVAU_Xt
Definition misc.hh:706
@ MISCREG_DBGBXVR7
Definition misc.hh:196
@ MISCREG_AMAIR1_S
Definition misc.hh:416
@ MISCREG_DBGWVR7_EL1
Definition misc.hh:527
@ MISCREG_DBGBVR9
Definition misc.hh:133
@ MISCREG_PMEVTYPER0_EL0
Definition misc.hh:880
@ MISCREG_ICH_LRC8
Definition misc.hh:1129
@ MISCREG_CPTR_EL2
Definition misc.hh:622
@ MISCREG_ICH_LR9_EL2
Definition misc.hh:993
@ MISCREG_DBGBCR8_EL1
Definition misc.hh:512
@ MISCREG_CCSIDR
Definition misc.hh:245
@ MISCREG_ICV_SRE_EL1_NS
Definition misc.hh:1037
@ MISCREG_FAR_EL1
Definition misc.hh:687
@ MISCREG_ERXMISC0_EL1
Definition misc.hh:1221
@ MISCREG_TPIDR_EL1
Definition misc.hh:831
@ MISCREG_PMUSERENR_EL0
Definition misc.hh:808
@ MISCREG_APIAKeyLo_EL1
Definition misc.hh:917
@ MISCREG_DBGWCR0
Definition misc.hh:172
@ MISCREG_AT_S1E2R_Xt
Definition misc.hh:708
@ MISCREG_PMCR
Definition misc.hh:369
@ MISCREG_CNTHV_CTL_EL2
Definition misc.hh:865
@ MISCREG_ICC_DIR
Definition misc.hh:1068
@ MISCREG_CNTP_TVAL_NS
Definition misc.hh:453
@ MISCREG_CNTV_CTL
Definition misc.hh:455
@ MISCREG_AFSR1_EL3
Definition misc.hh:685
@ MISCREG_ADFSR_NS
Definition misc.hh:293
@ MISCREG_APIBKeyLo_EL1
Definition misc.hh:919
@ MISCREG_DFAR
Definition misc.hh:301
@ MISCREG_ICV_CTLR_EL1_NS
Definition misc.hh:1034
@ MISCREG_ID_AA64DFR1_EL1
Definition misc.hh:594
@ MISCREG_DC_CSW_Xt
Definition misc.hh:701
@ MISCREG_JMCR
Definition misc.hh:220
@ MISCREG_RMR_EL3
Definition misc.hh:828
@ MISCREG_ID_AA64ISAR1_EL1
Definition misc.hh:598
@ MISCREG_PMEVCNTR2
Definition misc.hh:381
@ MISCREG_TLBIMVAL
Definition misc.hh:355
@ MISCREG_SMCR_EL3
Definition misc.hh:1151
@ MISCREG_ELR_EL12
Definition misc.hh:653
@ MISCREG_DL1DATA2_EL1
Definition misc.hh:892
@ MISCREG_DBGBVR0
Definition misc.hh:124
@ MISCREG_ICC_HSRE
Definition misc.hh:1073
@ MISCREG_ICH_LR1
Definition misc.hh:1106
@ MISCREG_PMEVCNTR0_EL0
Definition misc.hh:874
@ MISCREG_TEECR32_EL1
Definition misc.hh:565
@ MISCREG_AFSR0_EL3
Definition misc.hh:684
@ MISCREG_CSSELR_EL1
Definition misc.hh:604
@ MISCREG_VBAR_EL12
Definition misc.hh:821
@ MISCREG_MAIR_EL3
Definition misc.hh:816
@ MISCREG_ITLBIALL
Definition misc.hh:345
@ MISCREG_L2MERRSR
Definition misc.hh:480
@ MISCREG_ID_AA64MMFR1_EL1
Definition misc.hh:600
@ MISCREG_DBGPRCR_EL1
Definition misc.hh:561
@ MISCREG_NMRR_MAIR1
Definition misc.hh:105
@ MISCREG_PIR_EL12
Definition misc.hh:1195
@ MISCREG_ICH_LR4_EL2
Definition misc.hh:988
@ MISCREG_UNKNOWN
Definition misc.hh:1207
@ MISCREG_PMOVSR
Definition misc.hh:372
@ MISCREG_ICH_ELRSR
Definition misc.hh:1103
@ MISCREG_TLBIALLNSNH
Definition misc.hh:367
@ MISCREG_TTBR0_EL12
Definition misc.hh:633
@ MISCREG_CNTHP_TVAL
Definition misc.hh:462
@ MISCREG_ATS12NSOUR
Definition misc.hh:328
@ MISCREG_ELR_HYP
Definition misc.hh:88
@ MISCREG_DBGWCR10_EL1
Definition misc.hh:546
@ MISCREG_CNTVCT_EL0
Definition misc.hh:839
@ MISCREG_DBGBVR14
Definition misc.hh:138
@ MISCREG_DBGBVR8_EL1
Definition misc.hh:496
@ MISCREG_ICH_LR11_EL2
Definition misc.hh:995
@ MISCREG_CBAR_EL1
Definition misc.hh:900
@ MISCREG_ICC_AP1R1_EL1
Definition misc.hh:934
@ MISCREG_ICV_AP1R1_EL1_S
Definition misc.hh:1015
@ MISCREG_DL1DATA3_EL1
Definition misc.hh:893
@ MISCREG_RVBAR_EL2
Definition misc.hh:825
@ MISCREG_DBGDEVID2
Definition misc.hh:213
@ MISCREG_SP_EL0
Definition misc.hh:654
@ MISCREG_PMCNTENCLR
Definition misc.hh:371
@ MISCREG_ERRSELR_EL1
Definition misc.hh:1216
@ MISCREG_DFAR_S
Definition misc.hh:303
@ MISCREG_DBGBVR0_EL1
Definition misc.hh:488
@ MISCREG_ICC_AP1R2_NS
Definition misc.hh:1055
@ MISCREG_DBGBCR4_EL1
Definition misc.hh:508
@ MISCREG_CPSR
Definition misc.hh:79
@ MISCREG_FPCR
Definition misc.hh:659
@ MISCREG_SDCR
Definition misc.hh:260
@ MISCREG_DBGWCR4
Definition misc.hh:176
@ MISCREG_ICH_LR14_EL2
Definition misc.hh:998
@ MISCREG_ICV_SRE_EL1_S
Definition misc.hh:1038
@ MISCREG_RMR
Definition misc.hh:425
@ MISCREG_CPACR_EL1
Definition misc.hh:614
@ MISCREG_PMEVTYPER3
Definition misc.hh:388
@ MISCREG_HACR
Definition misc.hh:271
@ MISCREG_ICC_RPR_EL1
Definition misc.hh:944
@ MISCREG_DBGBXVR13
Definition misc.hh:202
@ MISCREG_IFSR_NS
Definition misc.hh:290
@ MISCREG_SMPRI_EL1
Definition misc.hh:1149
@ MISCREG_ID_MMFR0
Definition misc.hh:233
@ MISCREG_PMEVTYPER5_EL0
Definition misc.hh:885
@ MISCREG_CNTP_CVAL
Definition misc.hh:449
@ MISCREG_ID_ISAR0
Definition misc.hh:238
@ MISCREG_DBGBVR2_EL1
Definition misc.hh:490
@ MISCREG_ICC_AP1R3_EL1_S
Definition misc.hh:942
@ MISCREG_DL1DATA4
Definition misc.hh:473
@ MISCREG_CNTKCTL_EL1
Definition misc.hh:852
@ MISCREG_HMAIR0
Definition misc.hh:417
@ MISCREG_DBGWVR11
Definition misc.hh:167
@ MISCREG_ICC_AP0R3_EL1
Definition misc.hh:930
@ MISCREG_MPAMHCR_EL2
Definition misc.hh:1177
@ MISCREG_ICC_BPR1_NS
Definition misc.hh:1063
@ MISCREG_CNTPCT
Definition misc.hh:444
@ MISCREG_ICH_LR10_EL2
Definition misc.hh:994
@ MISCREG_SP_EL2
Definition misc.hh:672
@ MISCREG_ICC_AP0R1
Definition misc.hh:1045
@ MISCREG_PMCCFILTR_EL0
Definition misc.hh:806
@ MISCREG_ICH_LR10
Definition misc.hh:1115
@ MISCREG_CNTPS_CTL_EL1
Definition misc.hh:854
@ MISCREG_ID_AA64MMFR3_EL1
Definition misc.hh:907
@ MISCREG_NMRR
Definition misc.hh:405
@ MISCREG_MPAMVPMV_EL2
Definition misc.hh:1178
@ MISCREG_ICC_SRE_EL1
Definition misc.hh:957
@ MISCREG_DBGBVR12_EL1
Definition misc.hh:500
@ MISCREG_PMSWINC_EL0
Definition misc.hh:800
@ MISCREG_SCTLR_EL12
Definition misc.hh:610
@ MISCREG_DBGBVR10
Definition misc.hh:134
@ MISCREG_TTBR1_EL1
Definition misc.hh:634
@ MISCREG_PMEVTYPER2_EL0
Definition misc.hh:882
@ MISCREG_MAIR1
Definition misc.hh:408
@ MISCREG_DAIF
Definition misc.hh:658
@ MISCREG_SPSR_ABT_AA64
Definition misc.hh:667
@ MISCREG_SEV_MAILBOX
Definition misc.hh:109
@ MISCREG_SPSR_EL12
Definition misc.hh:651
@ MISCREG_ICV_AP1R0_EL1_NS
Definition misc.hh:1011
@ MISCREG_CNTP_CVAL_EL02
Definition misc.hh:847
@ MISCREG_ACTLR_NS
Definition misc.hh:257
@ MISCREG_PMINTENSET_EL1
Definition misc.hh:794
@ MISCREG_ICC_AP1R1_S
Definition misc.hh:1053
@ MISCREG_PMINTENCLR_EL1
Definition misc.hh:795
@ MISCREG_CNTHPS_CVAL_EL2
Definition misc.hh:862
@ MISCREG_REVIDR
Definition misc.hh:228
@ MISCREG_DBGBCR9
Definition misc.hh:149
@ MISCREG_MPAMVPM0_EL2
Definition misc.hh:1179
@ MISCREG_DL1DATA0_EL1
Definition misc.hh:890
@ MISCREG_PMCCFILTR
Definition misc.hh:391
@ MISCREG_ICV_AP0R2_EL1
Definition misc.hh:1008
@ MISCREG_ACTLR_EL3
Definition misc.hh:627
@ MISCREG_ID_PFR1_EL1
Definition misc.hh:573
@ MISCREG_DBGBCR11_EL1
Definition misc.hh:515
@ MISCREG_DBGBCR1_EL1
Definition misc.hh:505
@ MISCREG_TLBIIPAS2IS
Definition misc.hh:357
@ MISCREG_DBGBVR11_EL1
Definition misc.hh:499
@ MISCREG_ICV_BPR1_EL1_S
Definition misc.hh:1032
@ MISCREG_DBGBCR14
Definition misc.hh:154
@ MISCREG_DBGBCR11
Definition misc.hh:151
@ MISCREG_APDBKeyHi_EL1
Definition misc.hh:912
@ MISCREG_TEEHBR32_EL1
Definition misc.hh:566
@ MISCREG_DBGBVR13
Definition misc.hh:137
@ MISCREG_ID_MMFR3
Definition misc.hh:236
@ MISCREG_CSSELR_S
Definition misc.hh:250
@ MISCREG_DBGBCR12
Definition misc.hh:152
@ MISCREG_ICH_LRC15
Definition misc.hh:1136
@ MISCREG_ICC_SRE_EL2
Definition misc.hh:964
@ MISCREG_ICH_HCR
Definition misc.hh:1099
@ MISCREG_MPAMSM_EL1
Definition misc.hh:1156
@ MISCREG_ICC_IAR0
Definition misc.hh:1074
@ MISCREG_ICV_IAR0_EL1
Definition misc.hh:1002
@ MISCREG_ICC_ASGI1R_EL1
Definition misc.hh:946
@ MISCREG_DBGVCR32_EL2
Definition misc.hh:556
@ MISCREG_DBGWVR9_EL1
Definition misc.hh:529
@ MISCREG_L2ECTLR
Definition misc.hh:398
@ MISCREG_TCR2_EL12
Definition misc.hh:639
@ MISCREG_ID_PFR0_EL1
Definition misc.hh:572
@ MISCREG_ICC_CTLR
Definition misc.hh:1065
@ MISCREG_ICV_SGI0R_EL1
Definition misc.hh:1026
@ MISCREG_ICH_LR2_EL2
Definition misc.hh:986
@ MISCREG_DL1DATA4_EL1
Definition misc.hh:894
@ MISCREG_TLBIMVAAIS
Definition misc.hh:342
@ MISCREG_SMPRIMAP_EL2
Definition misc.hh:1150
@ MISCREG_ICC_EOIR0
Definition misc.hh:1069
@ MISCREG_CNTP_CVAL_NS
Definition misc.hh:450
@ MISCREG_OSECCR_EL1
Definition misc.hh:487
@ MISCREG_RVBAR_EL1
Definition misc.hh:822
@ MISCREG_ISR
Definition misc.hh:426
@ MISCREG_DBGWCR7_EL1
Definition misc.hh:543
@ MISCREG_HAIFSR
Definition misc.hh:299
@ MISCREG_TCR2_EL2
Definition misc.hh:642
@ MISCREG_ID_ISAR5_EL1
Definition misc.hh:586
@ MISCREG_CONTEXTIDR
Definition misc.hh:429
@ MISCREG_PMCEID1
Definition misc.hh:376
@ MISCREG_DBGBVR15_EL1
Definition misc.hh:503
@ MISCREG_ID_ISAR4_EL1
Definition misc.hh:585
@ MISCREG_CNTHPS_TVAL_EL2
Definition misc.hh:863
@ MISCREG_SCR
Definition misc.hh:261
@ MISCREG_DC_IVAC_Xt
Definition misc.hh:695
@ MISCREG_ICC_AP1R0
Definition misc.hh:1048
@ MISCREG_TPIDR2_EL0
Definition misc.hh:1155
@ MISCREG_ICC_HPPIR0_EL1
Definition misc.hh:925
@ MISCREG_PMCNTENSET
Definition misc.hh:370
@ MISCREG_ICV_CTLR_EL1_S
Definition misc.hh:1035
@ MISCREG_DBGBVR7
Definition misc.hh:131
@ MISCREG_ICC_SGI1R_EL1
Definition misc.hh:945
@ MISCREG_DBGWVR9
Definition misc.hh:165
@ MISCREG_ELR_EL2
Definition misc.hh:664
@ MISCREG_HDFGWTR_EL2
Definition misc.hh:1167
@ MISCREG_MAIR0_S
Definition misc.hh:404
@ MISCREG_ICH_LR5_EL2
Definition misc.hh:989
@ MISCREG_CONTEXTIDR_EL2
Definition misc.hh:901
@ MISCREG_CNTP_TVAL_S
Definition misc.hh:454
@ MISCREG_TCR_EL12
Definition misc.hh:637
@ MISCREG_ICV_PMR_EL1
Definition misc.hh:1001
@ MISCREG_CNTHCTL_EL2
Definition misc.hh:857
@ MISCREG_DBGBXVR6
Definition misc.hh:195
@ MISCREG_DBGBXVR0
Definition misc.hh:189
@ MISCREG_TEEHBR
Definition misc.hh:218
@ MISCREG_ERXMISC1_EL1
Definition misc.hh:1222
@ MISCREG_MDSCR_EL1
Definition misc.hh:485
@ MISCREG_AMAIR1_NS
Definition misc.hh:415
@ MISCREG_DL1DATA2
Definition misc.hh:471
@ MISCREG_DBGWCR2_EL1
Definition misc.hh:538
@ MISCREG_ID_MMFR4_EL1
Definition misc.hh:580
@ MISCREG_PAR_S
Definition misc.hh:314
@ MISCREG_DBGBCR12_EL1
Definition misc.hh:516
@ MISCREG_ID_DFR0
Definition misc.hh:231
@ MISCREG_CNTP_CTL_S
Definition misc.hh:448
@ MISCREG_ICC_AP1R1_EL1_NS
Definition misc.hh:935
@ MISCREG_TTBR1_EL2
Definition misc.hh:904
@ MISCREG_ICC_SGI1R
Definition misc.hh:1086
@ MISCREG_DBGDTRTXint
Definition misc.hh:116
@ MISCREG_ID_AA64MMFR0_EL1
Definition misc.hh:599
@ MISCREG_HPFAR
Definition misc.hh:309
@ MISCREG_ICC_PMR
Definition misc.hh:1083
@ MISCREG_ICH_LRC5
Definition misc.hh:1126
@ MISCREG_TPIDRPRW_S
Definition misc.hh:440
@ MISCREG_ICH_LR6
Definition misc.hh:1111
@ MISCREG_TLBIMVAHIS
Definition misc.hh:360
@ MISCREG_IC_IALLU
Definition misc.hh:694
@ MISCREG_ICC_AP1R2
Definition misc.hh:1054
@ MISCREG_DBGWCR9
Definition misc.hh:181
@ MISCREG_APIAKeyHi_EL1
Definition misc.hh:916
@ MISCREG_MPAMIDR_EL1
Definition misc.hh:1171
@ MISCREG_SPSR_EL3
Definition misc.hh:670
@ MISCREG_APDAKeyLo_EL1
Definition misc.hh:911
@ MISCREG_AT_S1E1R_Xt
Definition misc.hh:697
@ MISCREG_ICH_AP1R2_EL2
Definition misc.hh:976
@ MISCREG_DTLBIALL
Definition misc.hh:348
@ MISCREG_TLBIALLIS
Definition misc.hh:339
@ MISCREG_AMAIR_EL1
Definition misc.hh:812
@ MISCREG_ICC_CTLR_EL1_NS
Definition misc.hh:955
@ MISCREG_ICC_CTLR_S
Definition misc.hh:1067
@ MISCREG_ESR_EL3
Definition misc.hh:686
@ MISCREG_IL1DATA0
Definition misc.hh:465
@ MISCREG_ATS1HW
Definition misc.hh:338
@ MISCREG_ICH_VTR
Definition misc.hh:1100
@ MISCREG_VBAR_S
Definition misc.hh:423
@ MISCREG_ICH_AP0R1_EL2
Definition misc.hh:971
@ MISCREG_AT_S1E3R_Xt
Definition misc.hh:714
@ MISCREG_ICC_SRE
Definition misc.hh:1087
@ MISCREG_DC_ZVA_Xt
Definition misc.hh:703
@ MISCREG_CNTHVS_TVAL_EL2
Definition misc.hh:870
@ MISCREG_ATS1CPR
Definition misc.hh:322
@ MISCREG_TLBIASID
Definition misc.hh:353
@ MISCREG_ICV_AP1R0_EL1_S
Definition misc.hh:1012
@ MISCREG_ICH_LRC12
Definition misc.hh:1133
@ MISCREG_DBGBXVR10
Definition misc.hh:199
@ MISCREG_APGAKeyLo_EL1
Definition misc.hh:915
@ MISCREG_ITLBIMVA
Definition misc.hh:346
@ MISCREG_NZCV
Definition misc.hh:657
@ MISCREG_ICV_AP1R1_EL1
Definition misc.hh:1013
@ MISCREG_HTTBR
Definition misc.hh:477
@ MISCREG_IFSR32_EL2
Definition misc.hh:679
@ MISCREG_ICH_LRC9
Definition misc.hh:1130
@ MISCREG_ICV_BPR1_EL1_NS
Definition misc.hh:1031
@ MISCREG_SPSR_EL1
Definition misc.hh:650
@ MISCREG_APIBKeyHi_EL1
Definition misc.hh:918
@ MISCREG_FAR_EL12
Definition misc.hh:688
@ MISCREG_MAIR0_NS
Definition misc.hh:403
@ MISCREG_CP15DSB
Definition misc.hh:332
@ MISCREG_ICH_LR13_EL2
Definition misc.hh:997
@ MISCREG_ICC_CTLR_EL3
Definition misc.hh:965
@ MISCREG_DBGDCCINT
Definition misc.hh:115
@ MISCREG_ICC_CTLR_EL1
Definition misc.hh:954
@ MISCREG_TLBIALLNSNHIS
Definition misc.hh:361
@ MISCREG_CNTP_CVAL_EL0
Definition misc.hh:841
@ MISCREG_HCR_EL2
Definition misc.hh:619
@ MISCREG_ICV_IAR1_EL1
Definition misc.hh:1027
@ MISCREG_CNTHVS_CVAL_EL2
Definition misc.hh:869
@ MISCREG_SMCR_EL2
Definition misc.hh:1152
@ MISCREG_L2ACTLR_EL1
Definition misc.hh:895
@ MISCREG_ICV_HPPIR0_EL1
Definition misc.hh:1004
@ MISCREG_DCIMVAC
Definition misc.hh:320
@ MISCREG_ATS1CPW
Definition misc.hh:323
@ MISCREG_TTBR1
Definition misc.hh:275
@ MISCREG_AT_S12E0R_Xt
Definition misc.hh:712
@ MISCREG_ICH_AP1R0
Definition misc.hh:1095
@ MISCREG_MPIDR
Definition misc.hh:227
@ MISCREG_ICC_AP0R2
Definition misc.hh:1046
@ MISCREG_DBGCLAIMSET
Definition misc.hh:210
@ MISCREG_TLBIMVALHIS
Definition misc.hh:362
@ MISCREG_ICV_DIR_EL1
Definition misc.hh:1022
@ MISCREG_MPAMVPM3_EL2
Definition misc.hh:1182
@ MISCREG_PRRR_NS
Definition misc.hh:400
@ MISCREG_ZCR_EL1
Definition misc.hh:1143
@ MISCREG_PMCEID0_EL0
Definition misc.hh:802
@ MISCREG_ID_AA64MMFR2_EL1
Definition misc.hh:906
@ MISCREG_ICC_DIR_EL1
Definition misc.hh:943
@ MISCREG_SDER32_EL3
Definition misc.hh:629
@ MISCREG_TPIDR_EL0
Definition misc.hh:832
@ MISCREG_DBGDTRTXext
Definition misc.hh:122
@ MISCREG_DBGOSECCR
Definition misc.hh:123
@ MISCREG_ICC_SRE_EL3
Definition misc.hh:966
@ MISCREG_VTCR_EL2
Definition misc.hh:644
@ MISCREG_ICV_BPR1_EL1
Definition misc.hh:1030
@ MISCREG_DBGWCR3
Definition misc.hh:175
@ MISCREG_ELR_EL3
Definition misc.hh:671
@ MISCREG_ITLBIASID
Definition misc.hh:347
@ MISCREG_ICH_LR12
Definition misc.hh:1117
@ MISCREG_DBGWCR11
Definition misc.hh:183
@ MISCREG_DBGCLAIMSET_EL1
Definition misc.hh:562
@ MISCREG_ICH_LR3_EL2
Definition misc.hh:987
@ MISCREG_VTTBR
Definition misc.hh:478
@ MISCREG_MDDTRRX_EL0
Definition misc.hh:555
@ MISCREG_HDFGRTR_EL2
Definition misc.hh:1166
@ MISCREG_ICV_AP1R0_EL1
Definition misc.hh:1010
@ MISCREG_CNTVOFF_EL2
Definition misc.hh:872
@ MISCREG_AIFSR
Definition misc.hh:295
@ MISCREG_DBGWCR6
Definition misc.hh:178
@ MISCREG_ICH_AP1R1_EL2
Definition misc.hh:975
@ MISCREG_VPIDR
Definition misc.hh:251
@ MISCREG_ICH_AP1R2
Definition misc.hh:1097
@ MISCREG_BPIALLIS
Definition misc.hh:311
@ MISCREG_ICC_AP1R0_EL1_NS
Definition misc.hh:932
@ MISCREG_ICV_AP1R2_EL1_NS
Definition misc.hh:1017
@ MISCREG_DBGWCR15
Definition misc.hh:187
@ MISCREG_CNTHCTL
Definition misc.hh:459
@ MISCREG_ICC_EOIR0_EL1
Definition misc.hh:924
@ MISCREG_TTBR1_NS
Definition misc.hh:276
@ MISCREG_FAR_EL3
Definition misc.hh:691
@ MISCREG_ACTLR_EL1
Definition misc.hh:613
@ MISCREG_ICH_LR8_EL2
Definition misc.hh:992
@ MISCREG_CNTHPS_CTL_EL2
Definition misc.hh:861
@ MISCREG_DBGBVR3_EL1
Definition misc.hh:491
@ MISCREG_DBGVCR
Definition misc.hh:119
@ MISCREG_MDCCINT_EL1
Definition misc.hh:483
@ MISCREG_DBGBVR6_EL1
Definition misc.hh:494
@ MISCREG_DBGWCR9_EL1
Definition misc.hh:545
@ MISCREG_ICC_IAR1
Definition misc.hh:1075
@ MISCREG_IL1DATA3_EL1
Definition misc.hh:889
@ MISCREG_ICH_LR15
Definition misc.hh:1120
@ MISCREG_DC_CISW_Xt
Definition misc.hh:702
@ MISCREG_ICH_AP0R0
Definition misc.hh:1091
@ MISCREG_VBAR_EL2
Definition misc.hh:824
@ MISCREG_ICC_AP1R2_EL1_S
Definition misc.hh:939
@ MISCREG_DBGBCR7_EL1
Definition misc.hh:511
@ MISCREG_ICC_EOIR1_EL1
Definition misc.hh:949
@ MISCREG_ICIMVAU
Definition misc.hh:316
@ MISCREG_ICH_AP0R3_EL2
Definition misc.hh:973
@ MISCREG_DBGWCR14
Definition misc.hh:186
@ MISCREG_DBGBCR5_EL1
Definition misc.hh:509
@ MISCREG_L2ACTLR
Definition misc.hh:475
@ MISCREG_ACTLR_EL2
Definition misc.hh:618
@ MISCREG_CPUMERRSR_EL1
Definition misc.hh:898
@ MISCREG_IFAR_NS
Definition misc.hh:305
@ MISCREG_DBGWVR15_EL1
Definition misc.hh:535
@ MISCREG_CTR
Definition misc.hh:224
@ MISCREG_HPFAR_EL2
Definition misc.hh:690
@ MISCREG_TPIDRURW
Definition misc.hh:432
@ MISCREG_DBGBXVR11
Definition misc.hh:200
@ MISCREG_ICH_LRC6
Definition misc.hh:1127
@ MISCREG_ICH_LR1_EL2
Definition misc.hh:985
@ MISCREG_CLIDR
Definition misc.hh:246
@ MISCREG_SCTLR_S
Definition misc.hh:255
@ MISCREG_PMEVCNTR4
Definition misc.hh:383
@ MISCREG_DBGDTRRXint
Definition misc.hh:117
@ MISCREG_ICH_AP0R1
Definition misc.hh:1092
@ MISCREG_MDCR_EL2
Definition misc.hh:621
@ MISCREG_VBAR
Definition misc.hh:421
@ MISCREG_PIRE0_EL2
Definition misc.hh:1190
@ MISCREG_IFSR
Definition misc.hh:289
@ MISCREG_PMSELR
Definition misc.hh:374
@ MISCREG_ICIALLUIS
Definition misc.hh:310
@ MISCREG_HACTLR
Definition misc.hh:265
@ MISCREG_ID_MMFR0_EL1
Definition misc.hh:576
@ MISCREG_AMAIR1
Definition misc.hh:414
@ MISCREG_CNTHV_TVAL_EL2
Definition misc.hh:867
@ MISCREG_VBAR_EL1
Definition misc.hh:820
@ MISCREG_MIDR
Definition misc.hh:223
@ MISCREG_ICH_EISR
Definition misc.hh:1102
@ MISCREG_PMEVCNTR2_EL0
Definition misc.hh:876
@ MISCREG_CNTPS_CVAL_EL1
Definition misc.hh:855
@ MISCREG_HTCR
Definition misc.hh:281
@ MISCREG_AMAIR_EL2
Definition misc.hh:815
@ MISCREG_ICC_BPR0
Definition misc.hh:1061
@ MISCREG_TLBIMVAIS
Definition misc.hh:340
@ MISCREG_TTBR1_S
Definition misc.hh:277
@ MISCREG_ICH_LR2
Definition misc.hh:1107
@ MISCREG_HVBAR
Definition misc.hh:427
@ MISCREG_MPAM0_EL1
Definition misc.hh:1172
@ MISCREG_ICV_ASGI1R_EL1
Definition misc.hh:1025
@ MISCREG_JIDR
Definition misc.hh:217
@ MISCREG_DC_ISW_Xt
Definition misc.hh:696
@ MISCREG_L2CTLR
Definition misc.hh:397
@ MISCREG_DBGPRCR
Definition misc.hh:208
@ MISCREG_DBGWVR10
Definition misc.hh:166
@ MISCREG_CNTP_CTL
Definition misc.hh:446
@ MISCREG_TTBR0_EL3
Definition misc.hh:647
@ MISCREG_ICC_AP0R0_EL1
Definition misc.hh:927
@ MISCREG_ICC_IGRPEN0_EL1
Definition misc.hh:960
@ MISCREG_DBGWCR0_EL1
Definition misc.hh:536
@ MISCREG_ICC_AP1R2_S
Definition misc.hh:1056
@ MISCREG_DCZID_EL0
Definition misc.hh:606
@ MISCREG_ICH_LRC13
Definition misc.hh:1134
@ MISCREG_TLBIALLH
Definition misc.hh:365
@ MISCREG_ICC_AP1R2_EL1_NS
Definition misc.hh:938
@ MISCREG_ICH_VMCR_EL2
Definition misc.hh:983
@ MISCREG_ATS12NSOPW
Definition misc.hh:327
@ MISCREG_ICH_LRC14
Definition misc.hh:1135
@ MISCREG_DACR_NS
Definition misc.hh:284
@ MISCREG_TLBIMVAH
Definition misc.hh:366
@ MISCREG_ICC_EOIR1
Definition misc.hh:1070
@ MISCREG_DBGWVR12
Definition misc.hh:168
@ MISCREG_ISR_EL1
Definition misc.hh:823
@ MISCREG_ICC_SGI0R_EL1
Definition misc.hh:947
@ MISCREG_HACR_EL2
Definition misc.hh:624
@ MISCREG_DBGBCR4
Definition misc.hh:144
@ MISCREG_OSDTRTX_EL1
Definition misc.hh:486
@ MISCREG_CNTVOFF
Definition misc.hh:463
@ MISCREG_ICH_LR12_EL2
Definition misc.hh:996
@ MISCREG_DBGCLAIMCLR_EL1
Definition misc.hh:563
@ MISCREG_ICH_LRC3
Definition misc.hh:1124
@ MISCREG_AT_S1E0W_Xt
Definition misc.hh:700
@ MISCREG_AMAIR0_S
Definition misc.hh:413
@ MISCREG_DCCSW
Definition misc.hh:331
@ MISCREG_AT_S12E1R_Xt
Definition misc.hh:710
@ MISCREG_DBGBXVR2
Definition misc.hh:191
@ MISCREG_PIRE0_EL12
Definition misc.hh:1191
@ MISCREG_TLBTR
Definition misc.hh:226
@ MISCREG_DBGWVR0
Definition misc.hh:156
@ MISCREG_ICV_AP1R3_EL1
Definition misc.hh:1019
@ MISCREG_ID_AA64AFR1_EL1
Definition misc.hh:596
@ MISCREG_DBGWCR12
Definition misc.hh:184
@ MISCREG_HAFGRTR_EL2
Definition misc.hh:1168
@ MISCREG_AFSR0_EL12
Definition misc.hh:674
@ MISCREG_DCCMVAU
Definition misc.hh:334
@ MISCREG_IL1DATA2_EL1
Definition misc.hh:888
@ MISCREG_ICH_LR3
Definition misc.hh:1108
@ MISCREG_DBGBVR14_EL1
Definition misc.hh:502
@ MISCREG_DTLBIASID
Definition misc.hh:350
@ MISCREG_TLBINEEDSYNC
Definition misc.hh:110
@ MISCREG_ID_ISAR6_EL1
Definition misc.hh:587
@ MISCREG_ELR_EL1
Definition misc.hh:652
@ MISCREG_AMAIR_EL12
Definition misc.hh:813
@ NUM_PHYS_MISCREGS
Definition misc.hh:1202
@ MISCREG_PMXEVCNTR
Definition misc.hh:392
@ MISCREG_DBGBVR1
Definition misc.hh:125
@ MISCREG_CNTHP_CTL
Definition misc.hh:460
@ MISCREG_ICV_EOIR0_EL1
Definition misc.hh:1003
@ MISCREG_DBGWCR15_EL1
Definition misc.hh:551
@ MISCREG_PMCEID0
Definition misc.hh:375
@ MISCREG_ICH_LR9
Definition misc.hh:1114
@ MISCREG_TPIDR_EL2
Definition misc.hh:834
@ MISCREG_DBGBXVR14
Definition misc.hh:203
@ MISCREG_ICC_SRE_NS
Definition misc.hh:1088
@ MISCREG_TCR2_EL1
Definition misc.hh:638
@ MISCREG_DFSR_NS
Definition misc.hh:287
@ MISCREG_ID_PFR1
Definition misc.hh:230
@ MISCREG_CNTHP_CVAL_EL2
Definition misc.hh:859
@ MISCREG_CNTV_TVAL_EL0
Definition misc.hh:845
@ MISCREG_HFGWTR_EL2
Definition misc.hh:1165
@ MISCREG_MPAM2_EL2
Definition misc.hh:1174
@ MISCREG_ZCR_EL3
Definition misc.hh:1140
@ MISCREG_DBGBCR2
Definition misc.hh:142
@ MISCREG_DBGWCR14_EL1
Definition misc.hh:550
@ MISCREG_SPSR_MON
Definition misc.hh:84
@ MISCREG_DCCIMVAC
Definition misc.hh:335
@ MISCREG_L2CTLR_EL1
Definition misc.hh:818
@ MISCREG_VTCR
Definition misc.hh:282
@ MISCREG_FPSCR
Definition misc.hh:90
@ MISCREG_TTBR0
Definition misc.hh:272
@ MISCREG_DBGWVR14_EL1
Definition misc.hh:534
@ MISCREG_DBGWVR1
Definition misc.hh:157
@ MISCREG_ICV_SRE_EL1
Definition misc.hh:1036
@ MISCREG_DACR
Definition misc.hh:283
@ MISCREG_TTBR0_EL2
Definition misc.hh:640
@ MISCREG_HSCTLR
Definition misc.hh:264
@ MISCREG_SCTLR_NS
Definition misc.hh:254
@ MISCREG_DBGWVR2_EL1
Definition misc.hh:522
@ MISCREG_PMEVTYPER4
Definition misc.hh:389
@ MISCREG_ICC_IGRPEN1_EL1
Definition misc.hh:961
@ MISCREG_ICC_AP0R0
Definition misc.hh:1044
@ MISCREG_ACTLR_S
Definition misc.hh:258
@ MISCREG_BPIMVA
Definition misc.hh:319
@ MISCREG_PMINTENCLR
Definition misc.hh:395
@ MISCREG_PMCNTENCLR_EL0
Definition misc.hh:798
@ MISCREG_MPAMVPM6_EL2
Definition misc.hh:1185
@ MISCREG_IL1DATA2
Definition misc.hh:467
@ MISCREG_TTBR0_EL1
Definition misc.hh:632
@ MISCREG_ICC_HPPIR0
Definition misc.hh:1071
@ MISCREG_JOSCR
Definition misc.hh:219
@ MISCREG_ICIALLU
Definition misc.hh:315
@ MISCREG_IL1DATA3
Definition misc.hh:468
@ MISCREG_CNTP_CTL_NS
Definition misc.hh:447
@ MISCREG_HCRX_EL2
Definition misc.hh:620
@ MISCREG_PMEVCNTR5_EL0
Definition misc.hh:879
@ MISCREG_TLBIALL
Definition misc.hh:351
@ MISCREG_ICC_AP0R2_EL1
Definition misc.hh:929
@ MISCREG_SCTLR_EL3
Definition misc.hh:625
@ MISCREG_CNTP_TVAL_EL0
Definition misc.hh:842
@ MISCREG_FPSCR_QC
Definition misc.hh:99
@ MISCREG_CURRENTEL
Definition misc.hh:656
@ MISCREG_DBGBVR13_EL1
Definition misc.hh:501
@ MISCREG_DBGWVR6
Definition misc.hh:162
@ MISCREG_VSESR_EL2
Definition misc.hh:1224
@ MISCREG_DBGAUTHSTATUS
Definition misc.hh:212
@ MISCREG_ICC_SGI0R
Definition misc.hh:1085
@ MISCREG_PMEVCNTR1
Definition misc.hh:380
@ MISCREG_MVFR0_EL1
Definition misc.hh:588
@ MISCREG_ICH_AP0R0_EL2
Definition misc.hh:970
@ MISCREG_ID_ISAR1
Definition misc.hh:239
@ MISCREG_DBGBCR0
Definition misc.hh:140
@ MISCREG_ICH_MISR_EL2
Definition misc.hh:980
@ MISCREG_TTBCR_S
Definition misc.hh:280
@ MISCREG_IFSR_S
Definition misc.hh:291
@ MISCREG_PMSWINC
Definition misc.hh:373
@ MISCREG_MVFR1_EL1
Definition misc.hh:589
@ MISCREG_ID_AA64AFR0_EL1
Definition misc.hh:595
@ MISCREG_ATS12NSOPR
Definition misc.hh:326
@ MISCREG_MVFR2_EL1
Definition misc.hh:590
@ MISCREG_SMCR_EL12
Definition misc.hh:1153
@ MISCREG_DBGBCR3
Definition misc.hh:143
@ MISCREG_OSLSR_EL1
Definition misc.hh:559
@ MISCREG_DBGBCR9_EL1
Definition misc.hh:513
@ MISCREG_PMCNTENSET_EL0
Definition misc.hh:797
@ MISCREG_ID_ISAR1_EL1
Definition misc.hh:582
@ MISCREG_AIDR
Definition misc.hh:247
@ MISCREG_DFSR
Definition misc.hh:286
@ MISCREG_DBGWVR12_EL1
Definition misc.hh:532
@ MISCREG_ICV_IGRPEN1_EL1
Definition misc.hh:1040
@ MISCREG_ICC_AP1R1
Definition misc.hh:1051
@ MISCREG_CPUACTLR_EL1
Definition misc.hh:896
@ MISCREG_DBGBCR15_EL1
Definition misc.hh:519
@ MISCREG_DLR_EL0
Definition misc.hh:662
@ MISCREG_DBGBVR5
Definition misc.hh:129
@ MISCREG_MVFR0
Definition misc.hh:92
@ MISCREG_ICH_LR0
Definition misc.hh:1105
@ MISCREG_ICH_LRC2
Definition misc.hh:1123
@ MISCREG_DBGWVR5
Definition misc.hh:161
@ MISCREG_MPAMVPM1_EL2
Definition misc.hh:1180
@ MISCREG_ID_MMFR1_EL1
Definition misc.hh:577
@ MISCREG_PRRR_MAIR0_S
Definition misc.hh:104
@ MISCREG_ICC_AP1R3_S
Definition misc.hh:1059
@ MISCREG_MAIR1_S
Definition misc.hh:410
@ MISCREG_DACR32_EL2
Definition misc.hh:649
@ MISCREG_ID_AA64ISAR0_EL1
Definition misc.hh:597
@ MISCREG_HIFAR
Definition misc.hh:308
@ MISCREG_DBGWVR8
Definition misc.hh:164
@ MISCREG_ICC_SRE_EL1_S
Definition misc.hh:959
@ MISCREG_ICH_EISR_EL2
Definition misc.hh:981
@ MISCREG_CNTHP_TVAL_EL2
Definition misc.hh:860
@ MISCREG_AT_S1E3W_Xt
Definition misc.hh:715
@ MISCREG_ICC_BPR1_EL1
Definition misc.hh:951
@ MISCREG_ICC_AP0R1_EL1
Definition misc.hh:928
@ MISCREG_DBGWCR1_EL1
Definition misc.hh:537
@ MISCREG_DCISW
Definition misc.hh:321
@ MISCREG_ID_MMFR2
Definition misc.hh:235
@ MISCREG_HMAIR1
Definition misc.hh:418
@ MISCREG_ICH_LR0_EL2
Definition misc.hh:984
@ MISCREG_APGAKeyHi_EL1
Definition misc.hh:914
@ MISCREG_VMPIDR_EL2
Definition misc.hh:608
@ MISCREG_IC_IVAU_Xt
Definition misc.hh:704
@ MISCREG_ICC_IAR0_EL1
Definition misc.hh:923
@ MISCREG_MPAMVPM5_EL2
Definition misc.hh:1184
@ MISCREG_ICC_BPR1_EL1_S
Definition misc.hh:953
@ MISCREG_DBGBCR8
Definition misc.hh:148
@ MISCREG_AMAIR0
Definition misc.hh:411
@ MISCREG_ICV_HPPIR1_EL1
Definition misc.hh:1029
@ MISCREG_VBAR_NS
Definition misc.hh:422
@ MISCREG_DBGWCR3_EL1
Definition misc.hh:539
@ MISCREG_PMEVCNTR0
Definition misc.hh:379
@ MISCREG_PMOVSCLR_EL0
Definition misc.hh:799
@ MISCREG_ICC_MSRE
Definition misc.hh:1082
@ MISCREG_DBGBCR5
Definition misc.hh:145
@ MISCREG_PMCCNTR
Definition misc.hh:377
@ MISCREG_ICC_AP1R0_NS
Definition misc.hh:1049
@ MISCREG_HSR
Definition misc.hh:300
@ MISCREG_ICC_AP1R2_EL1
Definition misc.hh:937
@ MISCREG_TPIDRURO
Definition misc.hh:435
@ MISCREG_ICH_LRC1
Definition misc.hh:1122
@ MISCREG_HCR2
Definition misc.hh:267
@ MISCREG_DSPSR_EL0
Definition misc.hh:661
@ MISCREG_ICC_HPPIR1_EL1
Definition misc.hh:950
@ MISCREG_L2MERRSR_EL1
Definition misc.hh:899
@ MISCREG_ICV_AP0R1_EL1
Definition misc.hh:1007
@ MISCREG_ICC_AP1R3_EL1
Definition misc.hh:940
@ MISCREG_CNTHP_CVAL
Definition misc.hh:461
@ MISCREG_TTBR0_NS
Definition misc.hh:273
@ MISCREG_ICC_RPR
Definition misc.hh:1084
@ MISCREG_FAR_EL2
Definition misc.hh:689
@ MISCREG_CNTHVS_CTL_EL2
Definition misc.hh:868
@ MISCREG_DBGBCR7
Definition misc.hh:147
@ MISCREG_DBGWVR3
Definition misc.hh:159
@ MISCREG_ID_AA64SMFR0_EL1
Definition misc.hh:1146
@ MISCREG_ICC_ASGI1R
Definition misc.hh:1060
@ MISCREG_ICH_AP1R0_EL2
Definition misc.hh:974
@ MISCREG_PMEVCNTR3_EL0
Definition misc.hh:877
@ MISCREG_FPSCR_EXC
Definition misc.hh:98
@ MISCREG_CNTV_TVAL_EL02
Definition misc.hh:851
@ MISCREG_RVBAR_EL3
Definition misc.hh:827
@ MISCREG_ICH_VTR_EL2
Definition misc.hh:979
@ MISCREG_DBGBCR10_EL1
Definition misc.hh:514
@ MISCREG_OSDTRRX_EL1
Definition misc.hh:484
@ MISCREG_AT_S1E0R_Xt
Definition misc.hh:699
@ MISCREG_MPAM1_EL12
Definition misc.hh:1176
@ MISCREG_MDDTRTX_EL0
Definition misc.hh:554
@ MISCREG_ICC_SRE_S
Definition misc.hh:1089
@ MISCREG_DBGWVR6_EL1
Definition misc.hh:526
@ MISCREG_ID_ISAR3
Definition misc.hh:241
@ MISCREG_CNTHP_CTL_EL2
Definition misc.hh:858
@ MISCREG_ICH_LR14
Definition misc.hh:1119
@ MISCREG_IMPDEF_UNIMPL
Definition misc.hh:1212
@ MISCREG_ICH_LRC10
Definition misc.hh:1131
@ MISCREG_MVBAR
Definition misc.hh:424
@ MISCREG_DBGBCR6
Definition misc.hh:146
@ MISCREG_DBGWVR8_EL1
Definition misc.hh:528
@ MISCREG_ERXFR_EL1
Definition misc.hh:1217
@ MISCREG_PMCR_EL0
Definition misc.hh:796
@ TLBI_VARIANTS
Definition misc.hh:716
@ MISCREG_PAR
Definition misc.hh:312
@ MISCREG_CBAR
Definition misc.hh:476
@ MISCREG_CONTEXTIDR_EL12
Definition misc.hh:830
@ MISCREG_CPTR_EL3
Definition misc.hh:630
@ MISCREG_ESR_EL2
Definition misc.hh:682
@ MISCREG_HADFSR
Definition misc.hh:298
@ MISCREG_SPSR_FIQ_AA64
Definition misc.hh:669
@ MISCREG_IC_IALLUIS
Definition misc.hh:692
@ MISCREG_NMRR_MAIR1_NS
Definition misc.hh:106
@ MISCREG_ICH_LR4
Definition misc.hh:1109
@ MISCREG_ID_PFR0
Definition misc.hh:229
@ MISCREG_CLIDR_EL1
Definition misc.hh:602
@ MISCREG_ICH_LRC4
Definition misc.hh:1125
@ MISCREG_DBGBVR6
Definition misc.hh:130
@ MISCREG_NMRR_S
Definition misc.hh:407
@ MISCREG_DCCMVAC
Definition misc.hh:330
@ MISCREG_L2ECTLR_EL1
Definition misc.hh:819
@ MISCREG_ICC_BPR1
Definition misc.hh:1062
@ MISCREG_ICH_LR11
Definition misc.hh:1116
@ MISCREG_IFAR_S
Definition misc.hh:306
@ MISCREG_ICH_AP0R2
Definition misc.hh:1093
@ MISCREG_ID_MMFR3_EL1
Definition misc.hh:579
@ MISCREG_SPSR_IRQ_AA64
Definition misc.hh:666
@ MISCREG_ID_MMFR4
Definition misc.hh:237
@ MISCREG_DBGBXVR1
Definition misc.hh:190
@ MISCREG_AFSR1_EL1
Definition misc.hh:675
@ MISCREG_CNTP_CVAL_S
Definition misc.hh:451
@ MISCREG_ICH_LR13
Definition misc.hh:1118
@ MISCREG_TPIDRURO_S
Definition misc.hh:437
@ MISCREG_DBGBVR4_EL1
Definition misc.hh:492
@ MISCREG_VSTTBR_EL2
Definition misc.hh:645
@ MISCREG_CNTKCTL
Definition misc.hh:458
@ MISCREG_PRRR_MAIR0_NS
Definition misc.hh:103
@ MISCREG_DBGWVR4
Definition misc.hh:160
@ MISCREG_CONTEXTIDR_S
Definition misc.hh:431
@ MISCREG_CNTHV_CVAL_EL2
Definition misc.hh:866
@ MISCREG_LOCKADDR
Definition misc.hh:100
@ MISCREG_PMCEID1_EL0
Definition misc.hh:803
@ MISCREG_TPIDRURW_NS
Definition misc.hh:433
@ MISCREG_CTR_EL0
Definition misc.hh:605
@ MISCREG_CNTFRQ_EL0
Definition misc.hh:837
@ MISCREG_ID_AFR0
Definition misc.hh:232
@ MISCREG_ICC_CTLR_EL1_S
Definition misc.hh:956
@ MISCREG_ICV_SGI1R_EL1
Definition misc.hh:1024
@ MISCREG_DBGAUTHSTATUS_EL1
Definition misc.hh:564
@ MISCREG_DBGBCR1
Definition misc.hh:141
@ MISCREG_FPEXC32_EL2
Definition misc.hh:683
@ MISCREG_TPIDRURO_NS
Definition misc.hh:436
@ MISCREG_DBGBCR13
Definition misc.hh:153
@ MISCREG_MDDTR_EL0
Definition misc.hh:553
@ MISCREG_TLBIMVAA
Definition misc.hh:354
@ MISCREG_ICC_AP1R1_NS
Definition misc.hh:1052
@ MISCREG_PMEVCNTR1_EL0
Definition misc.hh:875
@ MISCREG_SPSR
Definition misc.hh:80
@ MISCREG_TPIDRPRW
Definition misc.hh:438
@ MISCREG_ACTLR
Definition misc.hh:256
@ MISCREG_DBGBVR12
Definition misc.hh:136
@ MISCREG_VTTBR_EL2
Definition misc.hh:643
@ MISCREG_DBGWCR7
Definition misc.hh:179
@ MISCREG_PMXEVTYPER_PMCCFILTR
Definition misc.hh:108
@ MISCREG_MAIR1_NS
Definition misc.hh:409
@ MISCREG_ICC_HPPIR1
Definition misc.hh:1072
@ MISCREG_VDISR_EL2
Definition misc.hh:1225
@ MISCREG_DBGBVR15
Definition misc.hh:139
@ MISCREG_DBGBVR4
Definition misc.hh:128
@ MISCREG_ID_AA64PFR1_EL1
Definition misc.hh:592
@ MISCREG_RAMINDEX
Definition misc.hh:474
@ MISCREG_HSTR
Definition misc.hh:270
@ MISCREG_MDCR_EL3
Definition misc.hh:631
@ MISCREG_ICV_AP1R3_EL1_NS
Definition misc.hh:1020
@ MISCREG_AFSR0_EL2
Definition misc.hh:680
@ MISCREG_ID_ISAR2
Definition misc.hh:240
@ MISCREG_SPSR_FIQ
Definition misc.hh:81
@ MISCREG_PRRR_S
Definition misc.hh:401
@ MISCREG_ICC_AP1R3_NS
Definition misc.hh:1058
@ MISCREG_CNTV_CVAL_EL0
Definition misc.hh:844
@ MISCREG_ZCR_EL12
Definition misc.hh:1142
@ MISCREG_DBGWCR13
Definition misc.hh:185
@ MISCREG_SP_EL1
Definition misc.hh:665
@ MISCREG_ATS1CUW
Definition misc.hh:325
@ MISCREG_MAIR0
Definition misc.hh:402
@ MISCREG_PMOVSSET_EL0
Definition misc.hh:809
std::optional< MiscRegNum64 > encodeAArch64SysReg(MiscRegIndex misc_reg)
Definition misc.cc:2957
Bitfield< 3, 2 > el
Definition misc_types.hh:73
@ MISCREG_MUTEX
Definition misc.hh:1244
@ MISCREG_USR_S_RD
Definition misc.hh:1260
@ MISCREG_BANKED_CHILD
Definition misc.hh:1252
@ MISCREG_MON_NS1_RD
Definition misc.hh:1276
@ MISCREG_PRI_NS_WR
Definition misc.hh:1264
@ MISCREG_PRI_S_WR
Definition misc.hh:1266
@ MISCREG_MON_NS0_RD
Definition misc.hh:1273
@ MISCREG_HYP_S_RD
Definition misc.hh:1270
@ MISCREG_BANKED
Definition misc.hh:1246
@ MISCREG_HYP_S_WR
Definition misc.hh:1271
@ MISCREG_WARN_NOT_FAIL
Definition misc.hh:1241
@ MISCREG_UNSERIALIZE
Definition misc.hh:1240
@ MISCREG_MON_NS1_WR
Definition misc.hh:1277
@ MISCREG_BANKED64
Definition misc.hh:1249
@ MISCREG_HYP_NS_WR
Definition misc.hh:1269
@ MISCREG_PRI_S_RD
Definition misc.hh:1265
@ MISCREG_IMPLEMENTED
Definition misc.hh:1237
@ MISCREG_PRI_NS_RD
Definition misc.hh:1263
@ MISCREG_USR_NS_WR
Definition misc.hh:1259
@ MISCREG_USR_S_WR
Definition misc.hh:1261
@ MISCREG_UNVERIFIABLE
Definition misc.hh:1238
@ MISCREG_USR_NS_RD
Definition misc.hh:1258
@ NUM_MISCREG_INFOS
Definition misc.hh:1279
@ MISCREG_MON_NS0_WR
Definition misc.hh:1274
@ MISCREG_HYP_NS_RD
Definition misc.hh:1268
MiscRegIndex decodeCP14Reg(unsigned crn, unsigned opc1, unsigned crm, unsigned opc2)
Definition misc.cc:535
static const uint32_t CondCodesMask
Definition misc.hh:2999
int unflattenMiscReg(int reg)
Definition misc.cc:738
constexpr RegClass miscRegClass
Definition misc.hh:2992
const char *const miscRegName[]
Definition misc.hh:1849
int snsBankedIndex(MiscRegIndex reg, ThreadContext *tc)
Definition misc.cc:686
std::tuple< bool, bool > canWriteCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc)
Check for permission to write coprocessor registers.
Definition misc.cc:627
int snsBankedIndex64(MiscRegIndex reg, ThreadContext *tc)
Definition misc.cc:704
MiscRegIndex decodeCP15Reg64(unsigned crm, unsigned opc1)
Definition misc.cc:568
std::vector< struct MiscRegLUTEntry > lookUpMiscReg(NUM_MISCREGS)
Definition misc.hh:1728
std::tuple< bool, bool > canReadCoprocReg(MiscRegIndex reg, SCR scr, CPSR cpsr, ThreadContext *tc)
Check for permission to read coprocessor registers.
Definition misc.cc:580
Bitfield< 5 > l
Bitfield< 5, 3 > reg
Definition types.hh:92
Copyright (c) 2024 Arm Limited All rights reserved.
Definition binary32.hh:36
std::shared_ptr< FaultBase > Fault
Definition types.hh:249
constexpr char MiscRegClassName[]
Definition reg_class.hh:82
@ MiscRegClass
Control (misc) register.
Definition reg_class.hh:70
Overload hash function for BasicBlockRange type.
Definition binary32.hh:81
MiscReg metadata.
Definition misc.hh:1284
static Fault defaultFault(const MiscRegLUTEntry &entry, ThreadContext *tc, const MiscRegOp64 &inst)
Definition misc.cc:2977
uint64_t reset() const
Definition misc.hh:1323
std::array< FaultCB, EL3+1 > faultRead
Definition misc.hh:1299
std::bitset< NUM_MISCREG_INFOS > info
Definition misc.hh:1292
uint64_t wi() const
Definition misc.hh:1329
uint64_t raz() const
Definition misc.hh:1326
uint64_t res0() const
Definition misc.hh:1324
std::function< Fault(const MiscRegLUTEntry &entry, ThreadContext *tc, const MiscRegOp64 &inst) > FaultCB
Definition misc.hh:1294
std::array< FaultCB, EL3+1 > faultWrite
Definition misc.hh:1300
uint64_t res1() const
Definition misc.hh:1325
uint64_t rao() const
Definition misc.hh:1327
Fault checkFault(ThreadContext *tc, const MiscRegOp64 &inst, ExceptionLevel el)
Definition misc.cc:2968
bool operator==(const MiscRegNum32 &other) const
Definition misc.hh:1756
MiscRegNum32(const MiscRegNum32 &rhs)=default
const unsigned reg64
Definition misc.hh:1780
MiscRegNum32(unsigned _coproc, unsigned _opc1, unsigned _crm)
Definition misc.hh:1743
MiscRegNum32(unsigned _coproc, unsigned _opc1, unsigned _crn, unsigned _crm, unsigned _opc2)
Definition misc.hh:1732
uint32_t packed() const
Definition misc.hh:1767
MiscRegNum64(unsigned _op0, unsigned _op1, unsigned _crn, unsigned _crm, unsigned _op2)
Definition misc.hh:1791
MiscRegNum64(const MiscRegNum64 &rhs)=default
uint32_t packed() const
Definition misc.hh:1813
bool operator==(const MiscRegNum64 &other) const
Definition misc.hh:1803
size_t operator()(const gem5::ArmISA::MiscRegNum32 &reg) const
Definition misc.hh:3097
size_t operator()(const gem5::ArmISA::MiscRegNum64 &reg) const
Definition misc.hh:3107

Generated on Mon May 26 2025 09:19:11 for gem5 by doxygen 1.13.2