From 6915513b972524de5b73edbf7cddeaeb84504703 Mon Sep 17 00:00:00 2001 From: Kevin Lim Date: Wed, 7 Jun 2006 15:17:34 -0400 Subject: [PATCH] Move checker's exec_context.hh to match the other changes. Also add in some more comments. src/cpu/thread_context.hh: Add more comments. --HG-- rename : src/cpu/checker/exec_context.hh => src/cpu/checker/thread_context.hh extra : convert_revision : 008a030b0254241118edb033c848e771e09ec8c0 --- .../checker/{exec_context.hh => thread_context.hh} | 0 src/cpu/thread_context.hh | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) rename src/cpu/checker/{exec_context.hh => thread_context.hh} (100%) diff --git a/src/cpu/checker/exec_context.hh b/src/cpu/checker/thread_context.hh similarity index 100% rename from src/cpu/checker/exec_context.hh rename to src/cpu/checker/thread_context.hh diff --git a/src/cpu/thread_context.hh b/src/cpu/thread_context.hh index ac2b44ba8..e3bb7d9c3 100644 --- a/src/cpu/thread_context.hh +++ b/src/cpu/thread_context.hh @@ -65,7 +65,7 @@ namespace Kernel { * The ThreadContext is slightly different than the ExecContext. The * ThreadContext provides access to an individual thread's state; an * ExecContext provides ISA access to the CPU (meaning it is - * implicitly multithreaded on MT systems). Additionally the + * implicitly multithreaded on SMT systems). Additionally the * ThreadState is an abstract class that exactly defines the * interface; the ExecContext is a more implicit interface that must * be implemented so that the ISA can access whatever state it needs. @@ -254,6 +254,16 @@ class ThreadContext RegFile::ContextVal val) = 0; }; +/** + * ProxyThreadContext class that provides a way to implement a + * ThreadContext without having to derive from it. ThreadContext is an + * abstract class, so anything that derives from it and uses its + * interface will pay the overhead of virtual function calls. This + * class is created to enable a user-defined Thread object to be used + * wherever ThreadContexts are used, without paying the overhead of + * virtual function calls when it is used by itself. See + * simple_thread.hh for an example of this. + */ template class ProxyThreadContext : public ThreadContext { -- 2.30.2