ARM: Reset simulation statistics when pref counters are reset.
authorAli Saidi <Ali.Saidi@ARM.com>
Wed, 23 Feb 2011 21:10:48 +0000 (15:10 -0600)
committerAli Saidi <Ali.Saidi@ARM.com>
Wed, 23 Feb 2011 21:10:48 +0000 (15:10 -0600)
The ARM performance counters are not currently supported by the model.
This patch interprets a 'reset performance counters' command to mean 'reset
the simulator statistics' instead.

src/arch/arm/isa.cc

index 649394270fde09072e041b5d17bdc9262216a4bc..4bdbe77ce1b15ea8e400fe10fb9a36b309013bed 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "arch/arm/isa.hh"
 #include "sim/faults.hh"
+#include "sim/stat_control.hh"
 
 namespace ArmISA
 {
@@ -393,6 +394,18 @@ ISA::setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc)
             warn("Not doing anything for write of miscreg ACTLR\n");
             break;
           case MISCREG_PMCR:
+            {
+              // Performance counters not implemented.  Instead, interpret
+              //   a reset command to this register to reset the simulator
+              //   statistics.
+              // PMCR_E | PMCR_P | PMCR_C
+              const int ResetAndEnableCounters = 0x7;
+              if (newVal == ResetAndEnableCounters) {
+                  inform("Resetting all simobject stats\n");
+                  Stats::schedStatEvent(false, true);
+                  break;
+              }
+            }
           case MISCREG_PMCCNTR:
           case MISCREG_PMSELR:
             warn("Not doing anything for write to miscreg %s\n",