summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cpu/inorder/cpu.cc14
-rw-r--r--src/cpu/o3/cpu.cc13
2 files changed, 8 insertions, 19 deletions
diff --git a/src/cpu/inorder/cpu.cc b/src/cpu/inorder/cpu.cc
index 9e3843e20..0b38f39bc 100644
--- a/src/cpu/inorder/cpu.cc
+++ b/src/cpu/inorder/cpu.cc
@@ -29,6 +29,8 @@
*
*/
+#include "config/full_system.hh"
+
#include "arch/utility.hh"
#include "cpu/exetrace.hh"
#include "cpu/activity.hh"
@@ -420,16 +422,12 @@ InOrderCPU::init()
for (int i = 0; i < number_of_threads; ++i)
thread[i]->inSyscall = true;
+#if FULL_SYSTEM
for (int tid=0; tid < number_of_threads; tid++) {
-
- ThreadContext *src_tc = thread[tid]->getTC();
-
- // Threads start in the Suspended State
- if (src_tc->status() != ThreadContext::Suspended) {
- continue;
- }
-
+ ThreadContext *src_tc = threadContexts[tid];
+ TheISA::initCPU(src_tc, src_tc->contextId());
}
+#endif
// Clear inSyscall.
for (int i = 0; i < number_of_threads; ++i)
diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc
index 83a012164..038e5daaa 100644
--- a/src/cpu/o3/cpu.cc
+++ b/src/cpu/o3/cpu.cc
@@ -568,21 +568,12 @@ FullO3CPU<Impl>::init()
for (int i = 0; i < number_of_threads; ++i)
thread[i]->inSyscall = true;
- for (int tid=0; tid < number_of_threads; tid++) {
#if FULL_SYSTEM
+ for (int tid=0; tid < number_of_threads; tid++) {
ThreadContext *src_tc = threadContexts[tid];
-#else
- ThreadContext *src_tc = thread[tid]->getTC();
-#endif
- // Threads start in the Suspended State
- if (src_tc->status() != ThreadContext::Suspended) {
- continue;
- }
-
-#if FULL_SYSTEM
TheISA::initCPU(src_tc, src_tc->contextId());
-#endif
}
+#endif
// Clear inSyscall.
for (int i = 0; i < number_of_threads; ++i)