summaryrefslogtreecommitdiff
path: root/src/cpu/o3/cpu.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/o3/cpu.cc')
-rw-r--r--src/cpu/o3/cpu.cc12
1 files changed, 8 insertions, 4 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: