summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/cpu.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2009-04-17 16:54:58 -0700
committerSteve Reinhardt <steve.reinhardt@amd.com>2009-04-17 16:54:58 -0700
commit14808ecac9de9fe04eb58a4ca9393e3b4f0a60ae (patch)
tree1f310d1ff055192e736addbdc9e9016923027c85 /src/cpu/inorder/cpu.cc
parentb146131d18c1567acdc9bbba5acd73ade086ded8 (diff)
downloadgem5-14808ecac9de9fe04eb58a4ca9393e3b4f0a60ae.tar.xz
o3, inorder: fix FS bug due to initializing ThreadState to Halted.
For some reason o3 FS init() only called initCPU if the thread state was Suspended, which was no longer the case. There's no apparent reason to check, so I whacked the test completely rather than changing the check to Halted. The inorder init() was also updated to be symmetric, though the previous code was just a fancy no-op.
Diffstat (limited to 'src/cpu/inorder/cpu.cc')
-rw-r--r--src/cpu/inorder/cpu.cc14
1 files changed, 6 insertions, 8 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)