summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/checker/cpu.cc1
-rw-r--r--src/cpu/checker/thread_context.hh8
-rw-r--r--src/cpu/o3/cpu.cc12
-rw-r--r--src/cpu/o3/regfile.hh1
-rw-r--r--src/cpu/o3/thread_context.hh2
-rw-r--r--src/cpu/simple/base.cc1
-rw-r--r--src/cpu/simple_thread.hh8
-rw-r--r--src/cpu/thread_context.cc4
-rw-r--r--src/cpu/thread_context.hh8
-rw-r--r--src/cpu/thread_state.cc2
-rw-r--r--src/cpu/thread_state.hh10
11 files changed, 26 insertions, 31 deletions
diff --git a/src/cpu/checker/cpu.cc b/src/cpu/checker/cpu.cc
index fe1c3d440..7f8eada4c 100644
--- a/src/cpu/checker/cpu.cc
+++ b/src/cpu/checker/cpu.cc
@@ -47,7 +47,6 @@
#include <string>
#include "arch/generic/tlb.hh"
-#include "arch/kernel_stats.hh"
#include "arch/vtophys.hh"
#include "cpu/base.hh"
#include "cpu/simple_thread.hh"
diff --git a/src/cpu/checker/thread_context.hh b/src/cpu/checker/thread_context.hh
index 26973cdbf..ed8add662 100644
--- a/src/cpu/checker/thread_context.hh
+++ b/src/cpu/checker/thread_context.hh
@@ -52,10 +52,10 @@
#include "debug/Checker.hh"
class EndQuiesceEvent;
+namespace Kernel {
+ class Statistics;
+};
namespace TheISA {
- namespace Kernel {
- class Statistics;
- };
class Decoder;
};
@@ -134,7 +134,7 @@ class CheckerThreadContext : public ThreadContext
System *getSystemPtr() override { return actualTC->getSystemPtr(); }
- TheISA::Kernel::Statistics *
+ ::Kernel::Statistics *
getKernelStats() override
{
return actualTC->getKernelStats();
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;
diff --git a/src/cpu/simple/base.cc b/src/cpu/simple/base.cc
index b687a17e0..298ba9f9e 100644
--- a/src/cpu/simple/base.cc
+++ b/src/cpu/simple/base.cc
@@ -43,7 +43,6 @@
#include "cpu/simple/base.hh"
-#include "arch/kernel_stats.hh"
#include "arch/stacktrace.hh"
#include "arch/utility.hh"
#include "arch/vtophys.hh"
diff --git a/src/cpu/simple_thread.hh b/src/cpu/simple_thread.hh
index 0d415dc16..33f0bbd8a 100644
--- a/src/cpu/simple_thread.hh
+++ b/src/cpu/simple_thread.hh
@@ -74,10 +74,8 @@ class CheckerCPU;
class FunctionProfile;
class ProfileNode;
-namespace TheISA {
- namespace Kernel {
- class Statistics;
- }
+namespace Kernel {
+ class Statistics;
}
/**
@@ -212,7 +210,7 @@ class SimpleThread : public ThreadState, public ThreadContext
System *getSystemPtr() override { return system; }
- TheISA::Kernel::Statistics *
+ Kernel::Statistics *
getKernelStats() override
{
return ThreadState::getKernelStats();
diff --git a/src/cpu/thread_context.cc b/src/cpu/thread_context.cc
index 35d96a4e7..dea39015f 100644
--- a/src/cpu/thread_context.cc
+++ b/src/cpu/thread_context.cc
@@ -44,7 +44,6 @@
#include "cpu/thread_context.hh"
#include "arch/generic/vec_pred_reg.hh"
-#include "arch/kernel_stats.hh"
#include "base/logging.hh"
#include "base/trace.hh"
#include "config/the_isa.hh"
@@ -52,6 +51,7 @@
#include "cpu/quiesce_event.hh"
#include "debug/Context.hh"
#include "debug/Quiesce.hh"
+#include "kern/kernel_stats.hh"
#include "params/BaseCPU.hh"
#include "sim/full_system.hh"
@@ -139,7 +139,7 @@ ThreadContext::quiesce()
suspend();
if (getKernelStats())
- getKernelStats()->quiesce();
+ getKernelStats()->quiesce();
}
diff --git a/src/cpu/thread_context.hh b/src/cpu/thread_context.hh
index 00e97b23c..bdf5a0086 100644
--- a/src/cpu/thread_context.hh
+++ b/src/cpu/thread_context.hh
@@ -70,10 +70,8 @@ class FSTranslatingPortProxy;
class PortProxy;
class Process;
class System;
-namespace TheISA {
- namespace Kernel {
- class Statistics;
- }
+namespace Kernel {
+ class Statistics;
}
/**
@@ -150,7 +148,7 @@ class ThreadContext
virtual System *getSystemPtr() = 0;
- virtual TheISA::Kernel::Statistics *getKernelStats() = 0;
+ virtual ::Kernel::Statistics *getKernelStats() = 0;
virtual PortProxy &getPhysProxy() = 0;
diff --git a/src/cpu/thread_state.cc b/src/cpu/thread_state.cc
index 92be17977..acb297113 100644
--- a/src/cpu/thread_state.cc
+++ b/src/cpu/thread_state.cc
@@ -30,11 +30,11 @@
#include "cpu/thread_state.hh"
-#include "arch/kernel_stats.hh"
#include "base/output.hh"
#include "cpu/base.hh"
#include "cpu/profile.hh"
#include "cpu/quiesce_event.hh"
+#include "kern/kernel_stats.hh"
#include "mem/fs_translating_port_proxy.hh"
#include "mem/port.hh"
#include "mem/port_proxy.hh"
diff --git a/src/cpu/thread_state.hh b/src/cpu/thread_state.hh
index 574193d0e..200633922 100644
--- a/src/cpu/thread_state.hh
+++ b/src/cpu/thread_state.hh
@@ -41,10 +41,8 @@
class EndQuiesceEvent;
class FunctionProfile;
class ProfileNode;
-namespace TheISA {
- namespace Kernel {
- class Statistics;
- }
+namespace Kernel {
+ class Statistics;
}
class Checkpoint;
@@ -98,7 +96,7 @@ struct ThreadState : public Serializable {
void profileSample();
- TheISA::Kernel::Statistics *getKernelStats() { return kernelStats; }
+ Kernel::Statistics *getKernelStats() { return kernelStats; }
PortProxy &getPhysProxy();
@@ -185,7 +183,7 @@ struct ThreadState : public Serializable {
Addr profilePC;
EndQuiesceEvent *quiesceEvent;
- TheISA::Kernel::Statistics *kernelStats;
+ Kernel::Statistics *kernelStats;
protected:
Process *process;