For now, halt context is the same as deallocating.

suspend context will now take the thread off the activeThread list.

src/arch/mips/isa_traits.cc:
    add in copy MiscRegs unimplemented function

--HG--
extra : convert_revision : 3ed5320b3786f84d4bb242e3a32b6f415339c3ba
This commit is contained in:
Korey Sewell 2006-07-14 13:06:37 -04:00
parent f1a7e0d3b3
commit b2c51d064b
2 changed files with 12 additions and 26 deletions

View file

@ -45,6 +45,12 @@ MipsISA::copyRegs(ThreadContext *src, ThreadContext *dest)
panic("Copy Regs Not Implemented Yet\n"); panic("Copy Regs Not Implemented Yet\n");
} }
void
MipsISA::copyMiscRegs(ThreadContext *src, ThreadContext *dest)
{
panic("Copy Misc. Regs Not Implemented Yet\n");
}
void void
MipsISA::MiscRegFile::copyMiscRegs(ThreadContext *tc) MipsISA::MiscRegFile::copyMiscRegs(ThreadContext *tc)
{ {

View file

@ -577,39 +577,19 @@ void
FullO3CPU<Impl>::suspendContext(int tid) FullO3CPU<Impl>::suspendContext(int tid)
{ {
DPRINTF(O3CPU,"[tid: %i]: Suspending Thread Context.\n", tid); DPRINTF(O3CPU,"[tid: %i]: Suspending Thread Context.\n", tid);
unscheduleTickEvent(); deactivateThread();
if (activeThreads.size() == 0)
unscheduleTickEvent();
_status = Idle; _status = Idle;
/*
//Remove From Active List, if Active
list<unsigned>::iterator isActive = find(
activeThreads.begin(), activeThreads.end(), tid);
if (isActive != activeThreads.end()) {
DPRINTF(O3CPU,"[tid:%i]: Removing from active threads list\n",
tid);
activeThreads.erase(isActive);
}
*/
} }
template <class Impl> template <class Impl>
void void
FullO3CPU<Impl>::haltContext(int tid) FullO3CPU<Impl>::haltContext(int tid)
{ {
DPRINTF(O3CPU,"[tid:%i]: Halting Thread Context", tid); //For now, this is the same as deallocate
/* DPRINTF(O3CPU,"[tid:%i]: Halt Context called. Deallocating", tid);
//Remove From Active List, if Active deallocateContext(tid, 1);
list<unsigned>::iterator isActive = find(
activeThreads.begin(), activeThreads.end(), tid);
if (isActive != activeThreads.end()) {
DPRINTF(O3CPU,"[tid:%i]: Removing from active threads list\n",
tid);
activeThreads.erase(isActive);
removeThread(tid);
}
*/
} }
template <class Impl> template <class Impl>