From 582a0148b441fe9f4a6f977094c5ce6bf7ab6313 Mon Sep 17 00:00:00 2001 From: Mitch Hayenga Date: Wed, 30 Sep 2015 11:14:19 -0500 Subject: config,cpu: Add SMT support to Atomic and Timing CPUs Adds SMT support to the "simple" CPU models so that they can be used with other SMT-supported CPUs. Example usage: this enables the TimingSimpleCPU to be used to warmup caches before swapping to detailed mode with the in-order or out-of-order based CPU models. --- src/cpu/simple/timing.hh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/cpu/simple/timing.hh') diff --git a/src/cpu/simple/timing.hh b/src/cpu/simple/timing.hh index b6a1da4e2..d409ac5d2 100644 --- a/src/cpu/simple/timing.hh +++ b/src/cpu/simple/timing.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2013 ARM Limited + * Copyright (c) 2012-2013,2015 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -44,6 +44,7 @@ #define __CPU_SIMPLE_TIMING_HH__ #include "cpu/simple/base.hh" +#include "cpu/simple/exec_context.hh" #include "cpu/translation.hh" #include "params/TimingSimpleCPU.hh" @@ -342,7 +343,11 @@ class TimingSimpleCPU : public BaseSimpleCPU * */ bool isDrained() { - return microPC() == 0 && !stayAtPC && !fetchEvent.scheduled(); + SimpleExecContext& t_info = *threadInfo[curThread]; + SimpleThread* thread = t_info.thread; + + return thread->microPC() == 0 && !t_info.stayAtPC && + !fetchEvent.scheduled(); } /** -- cgit v1.2.3