changeset aa23216161fa in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=aa23216161fa
description:
        arm: Mark some miscregs (timer counter) registers at unverifiable.

        The checker can't verify timer registers, so it should just grab the 
version
        from the executing CPU, otherwise it could get a larger value and 
diverge
        execution.

diffstat:

 src/arch/arm/isa/formats/aarch64.isa |     9 +-
 src/arch/arm/isa/formats/misc.isa    |     8 +-
 src/arch/arm/miscregs.cc             |  1210 +++++++++++++++++-----------------
 src/arch/arm/miscregs.hh             |     2 +
 4 files changed, 619 insertions(+), 610 deletions(-)

diffs (truncated from 1885 to 300 lines):

diff -r 38c7a9ea7729 -r aa23216161fa src/arch/arm/isa/formats/aarch64.isa
--- a/src/arch/arm/isa/formats/aarch64.isa      Wed Oct 29 23:18:24 2014 -0500
+++ b/src/arch/arm/isa/formats/aarch64.isa      Wed Oct 29 23:18:24 2014 -0500
@@ -366,9 +366,12 @@
                         if (miscReg == MISCREG_DC_ZVA_Xt && !read)
                             return new Dczva(machInst, rt, (IntRegIndex) 
miscReg, iss);
 
-                        if (read)
-                            return new Mrs64(machInst, rt, (IntRegIndex) 
miscReg, iss);
-                        else
+                        if (read) {
+                            StaticInstPtr si = new Mrs64(machInst, rt, 
(IntRegIndex) miscReg, iss);
+                            if (miscRegInfo[miscReg][MISCREG_UNVERIFIABLE])
+                                si->setFlag(StaticInst::IsUnverifiable);
+                            return si;
+                        } else
                             return new Msr64(machInst, (IntRegIndex) miscReg, 
rt, iss);
                     } else if (miscRegInfo[miscReg][MISCREG_WARN_NOT_FAIL]) {
                         std::string full_mnem = csprintf("%s %s",
diff -r 38c7a9ea7729 -r aa23216161fa src/arch/arm/isa/formats/misc.isa
--- a/src/arch/arm/isa/formats/misc.isa Wed Oct 29 23:18:24 2014 -0500
+++ b/src/arch/arm/isa/formats/misc.isa Wed Oct 29 23:18:24 2014 -0500
@@ -273,8 +273,12 @@
             if (miscRegInfo[miscReg][MISCREG_IMPLEMENTED]) {
                 uint32_t iss = mcrrMrrcIssBuild(isRead, crm, rt, rt2, opc1);
 
-                if (isRead)
-                    return new Mrrc15(machInst, miscReg, rt2, rt, iss);
+                if (isRead) {
+                    StaticInstPtr si =  new Mrrc15(machInst, miscReg, rt2, rt, 
iss);
+                    if (miscRegInfo[miscReg][MISCREG_UNVERIFIABLE])
+                        si->setFlag(StaticInst::IsUnverifiable);
+                    return si;
+                }
                 return new Mcrr15(machInst, rt2, rt, miscReg, iss);
             } else {
                 return new FailUnimplemented(isRead ? "mrrc" : "mcrr", 
machInst,
diff -r 38c7a9ea7729 -r aa23216161fa src/arch/arm/miscregs.cc
--- a/src/arch/arm/miscregs.cc  Wed Oct 29 23:18:24 2014 -0500
+++ b/src/arch/arm/miscregs.cc  Wed Oct 29 23:18:24 2014 -0500
@@ -126,1227 +126,1227 @@
 
 bitset<NUM_MISCREG_INFOS> miscRegInfo[NUM_MISCREGS] = {
     // MISCREG_CPSR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR_FIQ
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR_IRQ
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR_SVC
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR_MON
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR_ABT
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR_HYP
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SPSR_UND
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_ELR_HYP
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_FPSID
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_FPSCR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_MVFR1
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_MVFR0
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_FPEXC
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
 
     // Helper registers
     // MISCREG_CPSR_MODE
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_CPSR_Q
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_FPSCR_Q
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_FPSCR_EXC
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_LOCKADDR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_LOCKFLAG
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_PRRR_MAIR0
-    bitset<NUM_MISCREG_INFOS>(string("0000000000000001101")),
+    bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")),
     // MISCREG_PRRR_MAIR0_NS
-    bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")),
+    bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")),
     // MISCREG_PRRR_MAIR0_S
-    bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")),
+    bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")),
     // MISCREG_NMRR_MAIR1
-    bitset<NUM_MISCREG_INFOS>(string("0000000000000001101")),
+    bitset<NUM_MISCREG_INFOS>(string("00000000000000011001")),
     // MISCREG_NMRR_MAIR1_NS
-    bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")),
+    bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")),
     // MISCREG_NMRR_MAIR1_S
-    bitset<NUM_MISCREG_INFOS>(string("0000000000000010101")),
+    bitset<NUM_MISCREG_INFOS>(string("00000000000000101001")),
     // MISCREG_PMXEVTYPER_PMCCFILTR
-    bitset<NUM_MISCREG_INFOS>(string("0000000000000000101")),
+    bitset<NUM_MISCREG_INFOS>(string("00000000000000001001")),
     // MISCREG_SCTLR_RST
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_SEV_MAILBOX
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
 
     // AArch32 CP14 registers
     // MISCREG_DBGDIDR
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")),
     // MISCREG_DBGDSCRint
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000001")),
     // MISCREG_DBGDCCINT
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGDTRTXint
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGDTRRXint
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWFAR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGVCR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGDTRRXext
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGDSCRext
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100010")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000100")),
     // MISCREG_DBGDTRTXext
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGOSECCR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBVR0
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBVR1
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBVR2
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBVR3
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBVR4
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBVR5
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBCR0
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBCR1
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBCR2
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBCR3
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBCR4
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBCR5
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWVR0
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWVR1
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWVR2
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWVR3
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWCR0
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWCR1
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWCR2
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGWCR3
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGDRAR
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")),
     // MISCREG_DBGBXVR4
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGBXVR5
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGOSLAR
-    bitset<NUM_MISCREG_INFOS>(string("1010111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("10101111111111000000")),
     // MISCREG_DBGOSLSR
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")),
     // MISCREG_DBGOSDLR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGPRCR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGDSAR
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")),
     // MISCREG_DBGCLAIMSET
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGCLAIMCLR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_DBGAUTHSTATUS
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")),
     // MISCREG_DBGDEVID2
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")),
     // MISCREG_DBGDEVID1
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")),
     // MISCREG_DBGDEVID0
-    bitset<NUM_MISCREG_INFOS>(string("0101111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("01011111111111000000")),
     // MISCREG_TEECR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100000")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000000")),
     // MISCREG_JIDR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_TEEHBR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_JOSCR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
     // MISCREG_JMCR
-    bitset<NUM_MISCREG_INFOS>(string("1111111111111100001")),
+    bitset<NUM_MISCREG_INFOS>(string("11111111111111000001")),
 
     // AArch32 CP15 registers
     // MISCREG_MIDR
-    bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")),
+    bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")),
     // MISCREG_CTR
-    bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")),
+    bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")),
     // MISCREG_TCMTR
-    bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")),
+    bitset<NUM_MISCREG_INFOS>(string("01010101010000000001")),
     // MISCREG_TLBTR
-    bitset<NUM_MISCREG_INFOS>(string("0101010101000000001")),
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to