| /* |
| * Copyright (c) 2010-2018 ARM Limited |
| * All rights reserved |
| * |
| * The license below extends only to copyright in the software and shall |
| * not be construed as granting a license to any other intellectual |
| * property including but not limited to intellectual property relating |
| * to a hardware implementation of the functionality of the software |
| * licensed hereunder. You may use the software subject to the license |
| * terms below provided that you ensure that this notice is replicated |
| * unmodified and in its entirety in all distributions of the software, |
| * modified or unmodified, in source code or in binary form. |
| * |
| * Copyright (c) 2009 The Regents of The University of Michigan |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer; |
| * redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution; |
| * neither the name of the copyright holders nor the names of its |
| * contributors may be used to endorse or promote products derived from |
| * this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| * |
| * Authors: Gabe Black |
| * Giacomo Gabrielli |
| */ |
| |
| #ifndef __ARCH_ARM_MISCREGS_TYPES_HH__ |
| #define __ARCH_ARM_MISCREGS_TYPES_HH__ |
| |
| #include "base/bitunion.hh" |
| |
| namespace ArmISA |
| { |
| BitUnion32(CPSR) |
| Bitfield<31, 30> nz; |
| Bitfield<29> c; |
| Bitfield<28> v; |
| Bitfield<27> q; |
| Bitfield<26, 25> it1; |
| Bitfield<24> j; |
| Bitfield<23, 22> res0_23_22; |
| Bitfield<21> ss; // AArch64 |
| Bitfield<20> il; // AArch64 |
| Bitfield<19, 16> ge; |
| Bitfield<15, 10> it2; |
| Bitfield<9> d; // AArch64 |
| Bitfield<9> e; |
| Bitfield<8> a; |
| Bitfield<7> i; |
| Bitfield<6> f; |
| Bitfield<8, 6> aif; |
| Bitfield<9, 6> daif; // AArch64 |
| Bitfield<5> t; |
| Bitfield<4> width; // AArch64 |
| Bitfield<3, 2> el; // AArch64 |
| Bitfield<4, 0> mode; |
| Bitfield<0> sp; // AArch64 |
| EndBitUnion(CPSR) |
| |
| BitUnion64(AA64DFR0) |
| Bitfield<43, 40> tracefilt; |
| Bitfield<39, 36> doublelock; |
| Bitfield<35, 32> pmsver; |
| Bitfield<31, 28> ctx_cmps; |
| Bitfield<23, 20> wrps; |
| Bitfield<15, 12> brps; |
| Bitfield<11, 8> pmuver; |
| Bitfield<7, 4> tracever; |
| Bitfield<3, 0> debugver; |
| EndBitUnion(AA64DFR0) |
| |
| BitUnion64(AA64ISAR0) |
| Bitfield<63, 60> rndr; |
| Bitfield<59, 56> tlb; |
| Bitfield<55, 52> ts; |
| Bitfield<51, 48> fhm; |
| Bitfield<47, 44> dp; |
| Bitfield<43, 40> sm4; |
| Bitfield<39, 36> sm3; |
| Bitfield<35, 32> sha3; |
| Bitfield<31, 28> rdm; |
| Bitfield<23, 20> atomic; |
| Bitfield<19, 16> crc32; |
| Bitfield<15, 12> sha2; |
| Bitfield<11, 8> sha1; |
| Bitfield<3, 0> aes; |
| EndBitUnion(AA64ISAR0) |
| |
| BitUnion64(AA64ISAR1) |
| Bitfield<43, 40> specres; |
| Bitfield<39, 36> sb; |
| Bitfield<35, 32> frintts; |
| Bitfield<31, 28> gpi; |
| Bitfield<27, 24> gpa; |
| Bitfield<23, 20> lrcpc; |
| Bitfield<19, 16> fcma; |
| Bitfield<15, 12> jscvt; |
| Bitfield<11, 8> api; |
| Bitfield<7, 4> apa; |
| Bitfield<3, 0> dpb; |
| EndBitUnion(AA64ISAR1) |
| |
| BitUnion64(AA64MMFR0) |
| Bitfield<47, 44> exs; |
| Bitfield<43, 40> tgran4_2; |
| Bitfield<39, 36> tgran64_2; |
| Bitfield<35, 32> tgran16_2; |
| Bitfield<31, 28> tgran4; |
| Bitfield<27, 24> tgran64; |
| Bitfield<23, 20> tgran16; |
| Bitfield<19, 16> bigendEL0; |
| Bitfield<15, 12> snsmem; |
| Bitfield<11, 8> bigend; |
| Bitfield<7, 4> asidbits; |
| Bitfield<3, 0> parange; |
| EndBitUnion(AA64MMFR0) |
| |
| BitUnion64(AA64MMFR1) |
| Bitfield<31, 28> xnx; |
| Bitfield<27, 24> specsei; |
| Bitfield<23, 20> pan; |
| Bitfield<19, 16> lo; |
| Bitfield<15, 12> hpds; |
| Bitfield<11, 8> vh; |
| Bitfield<7, 4> vmidbits; |
| Bitfield<3, 0> hafdbs; |
| EndBitUnion(AA64MMFR1) |
| |
| BitUnion64(AA64MMFR2) |
| Bitfield<63, 60> e0pd; |
| Bitfield<59, 56> evt; |
| Bitfield<55, 52> bbm; |
| Bitfield<51, 48> ttl; |
| Bitfield<43, 40> fwb; |
| Bitfield<39, 36> ids; |
| Bitfield<35, 32> at; |
| Bitfield<31, 28> st; |
| Bitfield<27, 24> nv; |
| Bitfield<23, 20> ccidx; |
| Bitfield<19, 16> varange; |
| Bitfield<15, 12> iesb; |
| Bitfield<11, 8> lsm; |
| Bitfield<7, 4> uao; |
| Bitfield<3, 0> cnp; |
| EndBitUnion(AA64MMFR2) |
| |
| BitUnion64(AA64PFR0) |
| Bitfield<63, 60> csv3; |
| Bitfield<59, 56> csv2; |
| Bitfield<51, 48> dit; |
| Bitfield<47, 44> amu; |
| Bitfield<43, 40> mpam; |
| Bitfield<39, 36> sel2; |
| Bitfield<35, 32> sve; |
| Bitfield<31, 28> ras; |
| Bitfield<27, 24> gic; |
| Bitfield<23, 20> advsimd; |
| Bitfield<19, 16> fp; |
| Bitfield<15, 12> el3; |
| Bitfield<11, 8> el2; |
| Bitfield<7, 4> el1; |
| Bitfield<3, 0> el0; |
| EndBitUnion(AA64PFR0) |
| |
| BitUnion32(HDCR) |
| Bitfield<11> tdra; |
| Bitfield<10> tdosa; |
| Bitfield<9> tda; |
| Bitfield<8> tde; |
| Bitfield<7> hpme; |
| Bitfield<6> tpm; |
| Bitfield<5> tpmcr; |
| Bitfield<4, 0> hpmn; |
| EndBitUnion(HDCR) |
| |
| BitUnion32(HCPTR) |
| Bitfield<31> tcpac; |
| Bitfield<20> tta; |
| Bitfield<15> tase; |
| Bitfield<13> tcp13; |
| Bitfield<12> tcp12; |
| Bitfield<11> tcp11; |
| Bitfield<10> tcp10; |
| Bitfield<10> tfp; // AArch64 |
| Bitfield<9> tcp9; |
| Bitfield<8> tcp8; |
| Bitfield<7> tcp7; |
| Bitfield<6> tcp6; |
| Bitfield<5> tcp5; |
| Bitfield<4> tcp4; |
| Bitfield<3> tcp3; |
| Bitfield<2> tcp2; |
| Bitfield<1> tcp1; |
| Bitfield<0> tcp0; |
| EndBitUnion(HCPTR) |
| |
| BitUnion32(HSTR) |
| Bitfield<17> tjdbx; |
| Bitfield<16> ttee; |
| Bitfield<15> t15; |
| Bitfield<13> t13; |
| Bitfield<12> t12; |
| Bitfield<11> t11; |
| Bitfield<10> t10; |
| Bitfield<9> t9; |
| Bitfield<8> t8; |
| Bitfield<7> t7; |
| Bitfield<6> t6; |
| Bitfield<5> t5; |
| Bitfield<4> t4; |
| Bitfield<3> t3; |
| Bitfield<2> t2; |
| Bitfield<1> t1; |
| Bitfield<0> t0; |
| EndBitUnion(HSTR) |
| |
| BitUnion64(HCR) |
| Bitfield<34> e2h; // AArch64 |
| Bitfield<33> id; // AArch64 |
| Bitfield<32> cd; // AArch64 |
| Bitfield<31> rw; // AArch64 |
| Bitfield<30> trvm; // AArch64 |
| Bitfield<29> hcd; // AArch64 |
| Bitfield<28> tdz; // AArch64 |
| |
| Bitfield<27> tge; |
| Bitfield<26> tvm; |
| Bitfield<25> ttlb; |
| Bitfield<24> tpu; |
| Bitfield<23> tpc; |
| Bitfield<22> tsw; |
| Bitfield<21> tac; |
| Bitfield<21> tacr; // AArch64 |
| Bitfield<20> tidcp; |
| Bitfield<19> tsc; |
| Bitfield<18> tid3; |
| Bitfield<17> tid2; |
| Bitfield<16> tid1; |
| Bitfield<15> tid0; |
| Bitfield<14> twe; |
| Bitfield<13> twi; |
| Bitfield<12> dc; |
| Bitfield<11, 10> bsu; |
| Bitfield<9> fb; |
| Bitfield<8> va; |
| Bitfield<8> vse; // AArch64 |
| Bitfield<7> vi; |
| Bitfield<6> vf; |
| Bitfield<5> amo; |
| Bitfield<4> imo; |
| Bitfield<3> fmo; |
| Bitfield<2> ptw; |
| Bitfield<1> swio; |
| Bitfield<0> vm; |
| EndBitUnion(HCR) |
| |
| BitUnion32(NSACR) |
| Bitfield<20> nstrcdis; |
| Bitfield<19> rfr; |
| Bitfield<15> nsasedis; |
| Bitfield<14> nsd32dis; |
| Bitfield<13> cp13; |
| Bitfield<12> cp12; |
| Bitfield<11> cp11; |
| Bitfield<10> cp10; |
| Bitfield<9> cp9; |
| Bitfield<8> cp8; |
| Bitfield<7> cp7; |
| Bitfield<6> cp6; |
| Bitfield<5> cp5; |
| Bitfield<4> cp4; |
| Bitfield<3> cp3; |
| Bitfield<2> cp2; |
| Bitfield<1> cp1; |
| Bitfield<0> cp0; |
| EndBitUnion(NSACR) |
| |
| BitUnion32(SCR) |
| Bitfield<13> twe; |
| Bitfield<12> twi; |
| Bitfield<11> st; // AArch64 |
| Bitfield<10> rw; // AArch64 |
| Bitfield<9> sif; |
| Bitfield<8> hce; |
| Bitfield<7> scd; |
| Bitfield<7> smd; // AArch64 |
| Bitfield<6> nEt; |
| Bitfield<5> aw; |
| Bitfield<4> fw; |
| Bitfield<3> ea; |
| Bitfield<2> fiq; |
| Bitfield<1> irq; |
| Bitfield<0> ns; |
| EndBitUnion(SCR) |
| |
| BitUnion32(SCTLR) |
| Bitfield<30> te; // Thumb Exception Enable (AArch32 only) |
| Bitfield<29> afe; // Access flag enable (AArch32 only) |
| Bitfield<28> tre; // TEX remap enable (AArch32 only) |
| Bitfield<27> nmfi; // Non-maskable FIQ support (ARMv7 only) |
| Bitfield<26> uci; // Enable EL0 access to DC CVAU, DC CIVAC, |
| // DC CVAC and IC IVAU instructions |
| // (AArch64 SCTLR_EL1 only) |
| Bitfield<25> ee; // Exception Endianness |
| Bitfield<24> e0e; // Endianness of explicit data accesses at EL0 |
| // (AArch64 SCTLR_EL1 only) |
| Bitfield<23> xp; // Extended page table enable (dropped in ARMv7) |
| Bitfield<22> u; // Alignment (dropped in ARMv7) |
| Bitfield<21> fi; // Fast interrupts configuration enable |
| // (ARMv7 only) |
| Bitfield<20> uwxn; // Unprivileged write permission implies EL1 XN |
| // (AArch32 only) |
| Bitfield<19> dz; // Divide by Zero fault enable |
| // (dropped in ARMv7) |
| Bitfield<19> wxn; // Write permission implies XN |
| Bitfield<18> ntwe; // Not trap WFE |
| // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only) |
| Bitfield<18> rao2; // Read as one |
| Bitfield<16> ntwi; // Not trap WFI |
| // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only) |
| Bitfield<16> rao3; // Read as one |
| Bitfield<15> uct; // Enable EL0 access to CTR_EL0 |
| // (AArch64 SCTLR_EL1 only) |
| Bitfield<14> rr; // Round Robin select (ARMv7 only) |
| Bitfield<14> dze; // Enable EL0 access to DC ZVA |
| // (AArch64 SCTLR_EL1 only) |
| Bitfield<13> v; // Vectors bit (AArch32 only) |
| Bitfield<12> i; // Instruction cache enable |
| Bitfield<11> z; // Branch prediction enable (ARMv7 only) |
| Bitfield<10> sw; // SWP/SWPB enable (ARMv7 only) |
| Bitfield<9, 8> rs; // Deprecated protection bits (dropped in ARMv7) |
| Bitfield<9> uma; // User mask access (AArch64 SCTLR_EL1 only) |
| Bitfield<8> sed; // SETEND disable |
| // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only) |
| Bitfield<7> b; // Endianness support (dropped in ARMv7) |
| Bitfield<7> itd; // IT disable |
| // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only) |
| Bitfield<6, 3> rao4; // Read as one |
| Bitfield<6> thee; // ThumbEE enable |
| // (ARMv8 AArch32 and AArch64 SCTLR_EL1 only) |
| Bitfield<5> cp15ben; // CP15 barrier enable |
| // (AArch32 and AArch64 SCTLR_EL1 only) |
| Bitfield<4> sa0; // Stack Alignment Check Enable for EL0 |
| // (AArch64 SCTLR_EL1 only) |
| Bitfield<3> sa; // Stack Alignment Check Enable (AArch64 only) |
| Bitfield<2> c; // Cache enable |
| Bitfield<1> a; // Alignment check enable |
| Bitfield<0> m; // MMU enable |
| EndBitUnion(SCTLR) |
| |
| BitUnion32(CPACR) |
| Bitfield<1, 0> cp0; |
| Bitfield<3, 2> cp1; |
| Bitfield<5, 4> cp2; |
| Bitfield<7, 6> cp3; |
| Bitfield<9, 8> cp4; |
| Bitfield<11, 10> cp5; |
| Bitfield<13, 12> cp6; |
| Bitfield<15, 14> cp7; |
| Bitfield<17, 16> cp8; |
| Bitfield<19, 18> cp9; |
| Bitfield<21, 20> cp10; |
| Bitfield<21, 20> fpen; // AArch64 |
| Bitfield<23, 22> cp11; |
| Bitfield<25, 24> cp12; |
| Bitfield<27, 26> cp13; |
| Bitfield<29, 28> rsvd; |
| Bitfield<28> tta; // AArch64 |
| Bitfield<30> d32dis; |
| Bitfield<31> asedis; |
| EndBitUnion(CPACR) |
| |
| BitUnion32(FSR) |
| Bitfield<3, 0> fsLow; |
| Bitfield<5, 0> status; // LPAE |
| Bitfield<7, 4> domain; |
| Bitfield<9> lpae; |
| Bitfield<10> fsHigh; |
| Bitfield<11> wnr; |
| Bitfield<12> ext; |
| Bitfield<13> cm; // LPAE |
| EndBitUnion(FSR) |
| |
| BitUnion32(FPSCR) |
| Bitfield<0> ioc; |
| Bitfield<1> dzc; |
| Bitfield<2> ofc; |
| Bitfield<3> ufc; |
| Bitfield<4> ixc; |
| Bitfield<7> idc; |
| Bitfield<8> ioe; |
| Bitfield<9> dze; |
| Bitfield<10> ofe; |
| Bitfield<11> ufe; |
| Bitfield<12> ixe; |
| Bitfield<15> ide; |
| Bitfield<18, 16> len; |
| Bitfield<19> fz16; |
| Bitfield<21, 20> stride; |
| Bitfield<23, 22> rMode; |
| Bitfield<24> fz; |
| Bitfield<25> dn; |
| Bitfield<26> ahp; |
| Bitfield<27> qc; |
| Bitfield<28> v; |
| Bitfield<29> c; |
| Bitfield<30> z; |
| Bitfield<31> n; |
| EndBitUnion(FPSCR) |
| |
| BitUnion32(FPEXC) |
| Bitfield<31> ex; |
| Bitfield<30> en; |
| Bitfield<29, 0> subArchDefined; |
| EndBitUnion(FPEXC) |
| |
| BitUnion32(MVFR0) |
| Bitfield<3, 0> advSimdRegisters; |
| Bitfield<7, 4> singlePrecision; |
| Bitfield<11, 8> doublePrecision; |
| Bitfield<15, 12> vfpExceptionTrapping; |
| Bitfield<19, 16> divide; |
| Bitfield<23, 20> squareRoot; |
| Bitfield<27, 24> shortVectors; |
| Bitfield<31, 28> roundingModes; |
| EndBitUnion(MVFR0) |
| |
| BitUnion32(MVFR1) |
| Bitfield<3, 0> flushToZero; |
| Bitfield<7, 4> defaultNaN; |
| Bitfield<11, 8> advSimdLoadStore; |
| Bitfield<15, 12> advSimdInteger; |
| Bitfield<19, 16> advSimdSinglePrecision; |
| Bitfield<23, 20> advSimdHalfPrecision; |
| Bitfield<27, 24> vfpHalfPrecision; |
| Bitfield<31, 28> raz; |
| EndBitUnion(MVFR1) |
| |
| BitUnion64(TTBCR) |
| // Short-descriptor translation table format |
| Bitfield<2, 0> n; |
| Bitfield<4> pd0; |
| Bitfield<5> pd1; |
| // Long-descriptor translation table format |
| Bitfield<2, 0> t0sz; |
| Bitfield<6> t2e; |
| Bitfield<7> epd0; |
| Bitfield<9, 8> irgn0; |
| Bitfield<11, 10> orgn0; |
| Bitfield<13, 12> sh0; |
| Bitfield<14> tg0; |
| Bitfield<18, 16> t1sz; |
| Bitfield<22> a1; |
| Bitfield<23> epd1; |
| Bitfield<25, 24> irgn1; |
| Bitfield<27, 26> orgn1; |
| Bitfield<29, 28> sh1; |
| Bitfield<30> tg1; |
| Bitfield<34, 32> ips; |
| Bitfield<36> as; |
| Bitfield<37> tbi0; |
| Bitfield<38> tbi1; |
| // Common |
| Bitfield<31> eae; |
| // TCR_EL2/3 (AArch64) |
| Bitfield<18, 16> ps; |
| Bitfield<20> tbi; |
| Bitfield<41> hpd0; |
| Bitfield<42> hpd1; |
| EndBitUnion(TTBCR) |
| |
| // Fields of TCR_EL{1,2,3} (mostly overlapping) |
| // TCR_EL1 is natively 64 bits, the others are 32 bits |
| BitUnion64(TCR) |
| Bitfield<5, 0> t0sz; |
| Bitfield<7> epd0; // EL1 |
| Bitfield<9, 8> irgn0; |
| Bitfield<11, 10> orgn0; |
| Bitfield<13, 12> sh0; |
| Bitfield<15, 14> tg0; |
| Bitfield<18, 16> ps; |
| Bitfield<20> tbi; // EL2/EL3 |
| Bitfield<21, 16> t1sz; // EL1 |
| Bitfield<22> a1; // EL1 |
| Bitfield<23> epd1; // EL1 |
| Bitfield<25, 24> irgn1; // EL1 |
| Bitfield<27, 26> orgn1; // EL1 |
| Bitfield<29, 28> sh1; // EL1 |
| Bitfield<31, 30> tg1; // EL1 |
| Bitfield<34, 32> ips; // EL1 |
| Bitfield<36> as; // EL1 |
| Bitfield<37> tbi0; // EL1 |
| Bitfield<38> tbi1; // EL1 |
| Bitfield<39> ha; |
| Bitfield<40> hd; |
| Bitfield<41> hpd0; |
| Bitfield<42> hpd1; |
| EndBitUnion(TCR) |
| |
| BitUnion32(HTCR) |
| Bitfield<2, 0> t0sz; |
| Bitfield<9, 8> irgn0; |
| Bitfield<11, 10> orgn0; |
| Bitfield<13, 12> sh0; |
| Bitfield<24> hpd; |
| EndBitUnion(HTCR) |
| |
| BitUnion32(VTCR_t) |
| Bitfield<3, 0> t0sz; |
| Bitfield<4> s; |
| Bitfield<5, 0> t0sz64; |
| Bitfield<7, 6> sl0; |
| Bitfield<9, 8> irgn0; |
| Bitfield<11, 10> orgn0; |
| Bitfield<13, 12> sh0; |
| Bitfield<15, 14> tg0; |
| Bitfield<18, 16> ps; // Only defined for VTCR_EL2 |
| Bitfield<21> ha; // Only defined for VTCR_EL2 |
| Bitfield<22> hd; // Only defined for VTCR_EL2 |
| EndBitUnion(VTCR_t) |
| |
| BitUnion32(PRRR) |
| Bitfield<1,0> tr0; |
| Bitfield<3,2> tr1; |
| Bitfield<5,4> tr2; |
| Bitfield<7,6> tr3; |
| Bitfield<9,8> tr4; |
| Bitfield<11,10> tr5; |
| Bitfield<13,12> tr6; |
| Bitfield<15,14> tr7; |
| Bitfield<16> ds0; |
| Bitfield<17> ds1; |
| Bitfield<18> ns0; |
| Bitfield<19> ns1; |
| Bitfield<24> nos0; |
| Bitfield<25> nos1; |
| Bitfield<26> nos2; |
| Bitfield<27> nos3; |
| Bitfield<28> nos4; |
| Bitfield<29> nos5; |
| Bitfield<30> nos6; |
| Bitfield<31> nos7; |
| EndBitUnion(PRRR) |
| |
| BitUnion32(NMRR) |
| Bitfield<1,0> ir0; |
| Bitfield<3,2> ir1; |
| Bitfield<5,4> ir2; |
| Bitfield<7,6> ir3; |
| Bitfield<9,8> ir4; |
| Bitfield<11,10> ir5; |
| Bitfield<13,12> ir6; |
| Bitfield<15,14> ir7; |
| Bitfield<17,16> or0; |
| Bitfield<19,18> or1; |
| Bitfield<21,20> or2; |
| Bitfield<23,22> or3; |
| Bitfield<25,24> or4; |
| Bitfield<27,26> or5; |
| Bitfield<29,28> or6; |
| Bitfield<31,30> or7; |
| EndBitUnion(NMRR) |
| |
| BitUnion32(CONTEXTIDR) |
| Bitfield<7,0> asid; |
| Bitfield<31,8> procid; |
| EndBitUnion(CONTEXTIDR) |
| |
| BitUnion32(L2CTLR) |
| Bitfield<2,0> sataRAMLatency; |
| Bitfield<4,3> reserved_4_3; |
| Bitfield<5> dataRAMSetup; |
| Bitfield<8,6> tagRAMLatency; |
| Bitfield<9> tagRAMSetup; |
| Bitfield<11,10> dataRAMSlice; |
| Bitfield<12> tagRAMSlice; |
| Bitfield<20,13> reserved_20_13; |
| Bitfield<21> eccandParityEnable; |
| Bitfield<22> reserved_22; |
| Bitfield<23> interptCtrlPresent; |
| Bitfield<25,24> numCPUs; |
| Bitfield<30,26> reserved_30_26; |
| Bitfield<31> l2rstDISABLE_monitor; |
| EndBitUnion(L2CTLR) |
| |
| BitUnion32(CTR) |
| Bitfield<3,0> iCacheLineSize; |
| Bitfield<13,4> raz_13_4; |
| Bitfield<15,14> l1IndexPolicy; |
| Bitfield<19,16> dCacheLineSize; |
| Bitfield<23,20> erg; |
| Bitfield<27,24> cwg; |
| Bitfield<28> raz_28; |
| Bitfield<31,29> format; |
| EndBitUnion(CTR) |
| |
| BitUnion32(PMSELR) |
| Bitfield<4, 0> sel; |
| EndBitUnion(PMSELR) |
| |
| BitUnion64(PAR) |
| // 64-bit format |
| Bitfield<63, 56> attr; |
| Bitfield<39, 12> pa; |
| Bitfield<11> lpae; |
| Bitfield<9> ns; |
| Bitfield<8, 7> sh; |
| Bitfield<0> f; |
| EndBitUnion(PAR) |
| |
| BitUnion32(ESR) |
| Bitfield<31, 26> ec; |
| Bitfield<25> il; |
| Bitfield<15, 0> imm16; |
| EndBitUnion(ESR) |
| |
| BitUnion32(CPTR) |
| Bitfield<31> tcpac; |
| Bitfield<20> tta; |
| Bitfield<13, 12> res1_13_12_el2; |
| Bitfield<10> tfp; |
| Bitfield<9, 0> res1_9_0_el2; |
| EndBitUnion(CPTR) |
| |
| } |
| |
| #endif // __ARCH_ARM_MISCREGS_TYPES_HH__ |