Thread: Use inherited baseCpu rather than cpu in SimpleThread

This patch is a trivial simplification, removing the cpu pointer from
SimpleThread and relying on the baseCpu pointer in ThreadState. The
patch does not add or change any functionality, it merely cleans up
the code.
This commit is contained in:
Andreas Hansson 2012-01-31 11:50:07 -05:00
parent 0ed3c84c7b
commit 4fdecae443
3 changed files with 13 additions and 15 deletions

View file

@ -67,7 +67,7 @@ SimpleThread::SimpleThread(BaseCPU *_cpu, int _thread_num, System *_sys,
TheISA::TLB *_itb, TheISA::TLB *_dtb,
bool use_kernel_stats)
: ThreadState(_cpu, _thread_num),
cpu(_cpu), system(_sys), itb(_itb), dtb(_dtb)
system(_sys), itb(_itb), dtb(_dtb)
{
tc = new ProxyThreadContext<SimpleThread>(this);
@ -76,7 +76,7 @@ SimpleThread::SimpleThread(BaseCPU *_cpu, int _thread_num, System *_sys,
clearArchRegs();
if (cpu->params()->profile) {
if (baseCpu->params()->profile) {
profile = new FunctionProfile(system->kernelSymtab);
Callback *cb =
new MakeCallback<SimpleThread,
@ -97,7 +97,7 @@ SimpleThread::SimpleThread(BaseCPU *_cpu, int _thread_num, System *_sys,
SimpleThread::SimpleThread(BaseCPU *_cpu, int _thread_num, Process *_process,
TheISA::TLB *_itb, TheISA::TLB *_dtb)
: ThreadState(_cpu, _thread_num, _process),
cpu(_cpu), itb(_itb), dtb(_dtb)
itb(_itb), dtb(_dtb)
{
clearArchRegs();
tc = new ProxyThreadContext<SimpleThread>(this);
@ -196,7 +196,7 @@ SimpleThread::serialize(ostream &os)
//
// Now must serialize all the ISA dependent state
//
isa.serialize(cpu, os);
isa.serialize(baseCpu, os);
}
@ -212,14 +212,15 @@ SimpleThread::unserialize(Checkpoint *cp, const std::string &section)
//
// Now must unserialize all the ISA dependent state
//
isa.unserialize(cpu, cp, section);
isa.unserialize(baseCpu, cp, section);
}
#if FULL_SYSTEM
void
SimpleThread::dumpFuncProfile()
{
std::ostream *os = simout.create(csprintf("profile.%s.dat", cpu->name()));
std::ostream *os = simout.create(csprintf("profile.%s.dat",
baseCpu->name()));
profile->dump(tc, *os);
}
#endif
@ -240,7 +241,7 @@ SimpleThread::activate(int delay)
_status = ThreadContext::Active;
// status() == Suspended
cpu->activateContext(_threadId, delay);
baseCpu->activateContext(_threadId, delay);
}
void
@ -261,7 +262,7 @@ SimpleThread::suspend()
#endif
*/
_status = ThreadContext::Suspended;
cpu->suspendContext(_threadId);
baseCpu->suspendContext(_threadId);
}
@ -272,7 +273,7 @@ SimpleThread::halt()
return;
_status = ThreadContext::Halted;
cpu->haltContext(_threadId);
baseCpu->haltContext(_threadId);
}

View file

@ -127,12 +127,9 @@ class SimpleThread : public ThreadState
public:
std::string name() const
{
return csprintf("%s.[tid:%i]", cpu->name(), tc->threadId());
return csprintf("%s.[tid:%i]", baseCpu->name(), tc->threadId());
}
// pointer to CPU associated with this SimpleThread
BaseCPU *cpu;
ProxyThreadContext<SimpleThread> *tc;
System *system;
@ -207,7 +204,7 @@ class SimpleThread : public ThreadState
* ThreadContext interface functions.
******************************************/
BaseCPU *getCpuPtr() { return cpu; }
BaseCPU *getCpuPtr() { return baseCpu; }
TheISA::TLB *getITBPtr() { return itb; }

View file

@ -73,7 +73,7 @@ struct ThreadState {
ThreadState(BaseCPU *cpu, ThreadID _tid, Process *_process);
#endif
~ThreadState();
virtual ~ThreadState();
void serialize(std::ostream &os);