From: Gabe Black Date: Wed, 3 Oct 2007 01:25:37 +0000 (-0700) Subject: CPU: Make the cpus check the pc event queues in SE mode. X-Git-Tag: m5_2.0_beta4~73^2~2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=988cdb49f28c904b4b50c64759305bb371b81776;p=gem5.git CPU: Make the cpus check the pc event queues in SE mode. --HG-- extra : convert_revision : 9dc4ea136c3c3f87a73d55e91bc4aae4eba70464 --- diff --git a/src/cpu/o3/commit_impl.hh b/src/cpu/o3/commit_impl.hh index e32dc7921..89df257e9 100644 --- a/src/cpu/o3/commit_impl.hh +++ b/src/cpu/o3/commit_impl.hh @@ -910,25 +910,21 @@ DefaultCommit::commitInsts() microPC[tid] = nextMicroPC[tid]; nextMicroPC[tid] = microPC[tid] + 1; -#if FULL_SYSTEM int count = 0; Addr oldpc; + // Debug statement. Checks to make sure we're not + // currently updating state while handling PC events. + assert(!thread[tid]->inSyscall && !thread[tid]->trapPending); do { - // Debug statement. Checks to make sure we're not - // currently updating state while handling PC events. - if (count == 0) - assert(!thread[tid]->inSyscall && - !thread[tid]->trapPending); oldpc = PC[tid]; - cpu->system->pcEventQueue.service( - thread[tid]->getTC()); + cpu->system->pcEventQueue.service(thread[tid]->getTC()); count++; } while (oldpc != PC[tid]); if (count > 1) { - DPRINTF(Commit, "PC skip function event, stopping commit\n"); + DPRINTF(Commit, + "PC skip function event, stopping commit\n"); break; } -#endif } else { DPRINTF(Commit, "Unable to commit head instruction PC:%#x " "[tid:%i] [sn:%i].\n", diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc index 9fc1d1dd9..812a15c87 100644 --- a/src/cpu/simple/base.cc +++ b/src/cpu/simple/base.cc @@ -493,12 +493,10 @@ BaseSimpleCPU::advancePC(Fault fault) } } -#if FULL_SYSTEM Addr oldpc; do { oldpc = thread->readPC(); system->pcEventQueue.service(tc); } while (oldpc != thread->readPC()); -#endif }