/*
- * 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);
}