summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2012-02-10 02:05:31 -0800
committerGabe Black <gblack@eecs.umich.edu>2012-02-10 02:05:31 -0800
commite80ebc308f0e926d2965ddfb37e6d30e14c8c3da (patch)
treeaeb80fbedba5cb6e67b9f7545f4b0be4237b3477 /src
parentcdb32860b412f37a6c3c6881a81ec2c90876a504 (diff)
downloadgem5-e80ebc308f0e926d2965ddfb37e6d30e14c8c3da.tar.xz
SE/FS: Record the system pointer all the time for the simple CPU.
This pointer was only being stored in code that came from SE mode. The system pointer is always meaningful and available, so it should always be stored.
Diffstat (limited to 'src')
-rw-r--r--src/cpu/simple/base.cc4
-rw-r--r--src/cpu/simple_thread.cc8
-rw-r--r--src/cpu/simple_thread.hh4
3 files changed, 9 insertions, 7 deletions
diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc
index 945c40b79..02758ac04 100644
--- a/src/cpu/simple/base.cc
+++ b/src/cpu/simple/base.cc
@@ -94,8 +94,8 @@ BaseSimpleCPU::BaseSimpleCPU(BaseSimpleCPUParams *p)
if (FullSystem)
thread = new SimpleThread(this, 0, p->system, p->itb, p->dtb);
else
- thread = new SimpleThread(this, /* thread_num */ 0, p->workload[0],
- p->itb, p->dtb);
+ thread = new SimpleThread(this, /* thread_num */ 0, p->system,
+ p->workload[0], p->itb, p->dtb);
thread->setStatus(ThreadContext::Halted);
diff --git a/src/cpu/simple_thread.cc b/src/cpu/simple_thread.cc
index e193b1273..1781c2850 100644
--- a/src/cpu/simple_thread.cc
+++ b/src/cpu/simple_thread.cc
@@ -59,9 +59,11 @@
using namespace std;
// constructor
-SimpleThread::SimpleThread(BaseCPU *_cpu, int _thread_num, Process *_process,
- TheISA::TLB *_itb, TheISA::TLB *_dtb)
- : ThreadState(_cpu, _thread_num, _process), itb(_itb), dtb(_dtb)
+SimpleThread::SimpleThread(BaseCPU *_cpu, int _thread_num, System *_sys,
+ Process *_process, TheISA::TLB *_itb,
+ TheISA::TLB *_dtb)
+ : ThreadState(_cpu, _thread_num, _process), system(_sys), itb(_itb),
+ dtb(_dtb)
{
clearArchRegs();
tc = new ProxyThreadContext<SimpleThread>(this);
diff --git a/src/cpu/simple_thread.hh b/src/cpu/simple_thread.hh
index 39cb96c3a..b6dc8f047 100644
--- a/src/cpu/simple_thread.hh
+++ b/src/cpu/simple_thread.hh
@@ -137,8 +137,8 @@ class SimpleThread : public ThreadState
TheISA::TLB *_itb, TheISA::TLB *_dtb,
bool use_kernel_stats = true);
// SE
- SimpleThread(BaseCPU *_cpu, int _thread_num, Process *_process,
- TheISA::TLB *_itb, TheISA::TLB *_dtb);
+ SimpleThread(BaseCPU *_cpu, int _thread_num, System *_system,
+ Process *_process, TheISA::TLB *_itb, TheISA::TLB *_dtb);
SimpleThread();