diff options
Diffstat (limited to 'src/cpu/o3')
-rw-r--r-- | src/cpu/o3/cpu.cc | 12 | ||||
-rw-r--r-- | src/cpu/o3/regfile.hh | 1 | ||||
-rw-r--r-- | src/cpu/o3/thread_context.hh | 2 |
3 files changed, 9 insertions, 6 deletions
diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc index 621a6a409..70417d51f 100644 --- a/src/cpu/o3/cpu.cc +++ b/src/cpu/o3/cpu.cc @@ -925,7 +925,10 @@ FullO3CPU<Impl>::hwrei(ThreadID tid) // Need to clear the lock flag upon returning from an interrupt. this->setMiscRegNoEffect(AlphaISA::MISCREG_LOCKFLAG, false, tid); - this->thread[tid]->kernelStats->hwrei(); + auto *stats = dynamic_cast<AlphaISA::Kernel::Statistics *>( + this->thread[tid]->kernelStats); + assert(stats); + stats->hwrei(); // FIXME: XXX check for interrupts? XXX #endif @@ -937,9 +940,10 @@ bool FullO3CPU<Impl>::simPalCheck(int palFunc, ThreadID tid) { #if THE_ISA == ALPHA_ISA - if (this->thread[tid]->kernelStats) - this->thread[tid]->kernelStats->callpal(palFunc, - this->threadContexts[tid]); + auto *stats = dynamic_cast<AlphaISA::Kernel::Statistics *>( + this->thread[tid]->kernelStats); + if (stats) + stats->callpal(palFunc, this->threadContexts[tid]); switch (palFunc) { case PAL::halt: diff --git a/src/cpu/o3/regfile.hh b/src/cpu/o3/regfile.hh index d2fcd0749..d4b6602ad 100644 --- a/src/cpu/o3/regfile.hh +++ b/src/cpu/o3/regfile.hh @@ -48,7 +48,6 @@ #include <vector> #include "arch/isa_traits.hh" -#include "arch/kernel_stats.hh" #include "arch/types.hh" #include "base/trace.hh" #include "config/the_isa.hh" diff --git a/src/cpu/o3/thread_context.hh b/src/cpu/o3/thread_context.hh index b87aac4a7..e5f01871b 100644 --- a/src/cpu/o3/thread_context.hh +++ b/src/cpu/o3/thread_context.hh @@ -119,7 +119,7 @@ class O3ThreadContext : public ThreadContext System *getSystemPtr() override { return cpu->system; } /** Returns a pointer to this thread's kernel statistics. */ - TheISA::Kernel::Statistics * + ::Kernel::Statistics * getKernelStats() override { return thread->kernelStats; |