misc: Merge branch 'release-staging-v20.1.0.0' into develop
[gem5.git] / src / cpu / dummy_checker.cc
index 6a0210e3b94125691c327654171fb4abfa4698d2..7654ace97ee87701cf8ce8b13954c78e6b64ab38 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011 ARM Limited
+ * Copyright (c) 2011, 2019 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
  * 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: Geoffrey Blake
  */
 
 #include "cpu/dummy_checker.hh"
+
 #include "params/DummyChecker.hh"
 
-////////////////////////////////////////////////////////////////////////
-//
-//  DummyChecker Simulation Object
-//
 DummyChecker *
 DummyCheckerParams::create()
 {
-    DummyChecker::Params *params = new DummyChecker::Params();
-    params->name = name;
-    params->numThreads = numThreads;
-    params->max_insts_any_thread = 0;
-    params->max_insts_all_threads = 0;
-    params->max_loads_any_thread = 0;
-    params->max_loads_all_threads = 0;
-    params->clock = clock;
-    // Hack to touch all parameters.  Consider not deriving Checker
-    // from BaseCPU..it's not really a CPU in the end.
-    Counter temp;
-    temp = max_insts_any_thread;
-    temp = max_insts_all_threads;
-    temp = max_loads_any_thread;
-    temp = max_loads_all_threads;
-    temp++;
-    Tick temp2 = progress_interval;
-    params->progress_interval = 0;
-    temp2++;
-
-    params->itb = itb;
-    params->dtb = dtb;
-    params->system = system;
-    params->cpu_id = cpu_id;
-    params->profile = profile;
-    params->interrupts = NULL;
-    params->workload = workload;
+    // The checker should check all instructions executed by the main
+    // cpu and therefore any parameters for early exit don't make much
+    // sense.
+    fatal_if(max_insts_any_thread || max_insts_all_threads ||
+             progress_interval, "Invalid checker parameters");
 
-    DummyChecker *cpu = new DummyChecker(params);
-    return cpu;
+    return new DummyChecker(this);
 }