diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/alpha/isa.cc --- a/src/arch/alpha/isa.cc Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/alpha/isa.cc Tue Aug 31 17:03:03 2010 -0700 @@ -33,6 +33,7 @@ #include "arch/alpha/isa.hh" #include "base/misc.hh" #include "cpu/thread_context.hh" +#include "sim/serialize.hh" namespace AlphaISA { diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/arm/types.hh --- a/src/arch/arm/types.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/arm/types.hh Tue Aug 31 17:03:03 2010 -0700 @@ -44,6 +44,7 @@ #define __ARCH_ARM_TYPES_HH__ #include "base/bitunion.hh" +#include "base/hashmap.hh" #include "base/types.hh" namespace ArmISA @@ -269,4 +270,13 @@ } // namespace ArmISA +namespace __hash_namespace { + template<> + struct hash : public hash { + size_t operator()(const ArmISA::ExtMachInst &emi) const { + return hash::operator()((uint32_t)emi); + }; + }; +} + #endif diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/arm/utility.hh --- a/src/arch/arm/utility.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/arm/utility.hh Tue Aug 31 17:03:03 2010 -0700 @@ -47,21 +47,11 @@ #include "arch/arm/miscregs.hh" #include "arch/arm/types.hh" -#include "base/hashmap.hh" #include "base/misc.hh" #include "base/trace.hh" #include "base/types.hh" #include "cpu/thread_context.hh" -namespace __hash_namespace { - template<> - struct hash : public hash { - size_t operator()(const ArmISA::ExtMachInst &emi) const { - return hash::operator()((uint32_t)emi); - }; - }; -} - namespace ArmISA { inline bool diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/power/insts/branch.cc --- a/src/arch/power/insts/branch.cc Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/power/insts/branch.cc Tue Aug 31 17:03:03 2010 -0700 @@ -30,6 +30,7 @@ #include "arch/power/insts/branch.hh" #include "base/loader/symtab.hh" +#include "cpu/thread_context.hh" using namespace PowerISA; diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/power/types.hh --- a/src/arch/power/types.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/power/types.hh Tue Aug 31 17:03:03 2010 -0700 @@ -32,6 +32,7 @@ #define __ARCH_POWER_TYPES_HH__ #include "base/bitunion.hh" +#include "base/hashmap.hh" #include "base/types.hh" namespace PowerISA @@ -88,4 +89,15 @@ } // PowerISA namspace +namespace __hash_namespace { + +template<> +struct hash : public hash { + size_t operator()(const PowerISA::ExtMachInst &emi) const { + return hash::operator()((uint32_t)emi); + }; +}; + +} // __hash_namespace namespace + #endif // __ARCH_POWER_TYPES_HH__ diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/power/utility.hh --- a/src/arch/power/utility.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/power/utility.hh Tue Aug 31 17:03:03 2010 -0700 @@ -35,23 +35,9 @@ #ifndef __ARCH_POWER_UTILITY_HH__ #define __ARCH_POWER_UTILITY_HH__ -#include "arch/power/miscregs.hh" -#include "arch/power/types.hh" -#include "base/hashmap.hh" #include "base/types.hh" #include "cpu/thread_context.hh" -namespace __hash_namespace { - -template<> -struct hash : public hash { - size_t operator()(const PowerISA::ExtMachInst &emi) const { - return hash::operator()((uint32_t)emi); - }; -}; - -} // __hash_namespace namespace - namespace PowerISA { /** diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/x86/types.hh --- a/src/arch/x86/types.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/x86/types.hh Tue Aug 31 17:03:03 2010 -0700 @@ -44,6 +44,7 @@ #include "base/bitunion.hh" #include "base/cprintf.hh" +#include "base/hashmap.hh" #include "base/types.hh" #include "sim/serialize.hh" @@ -225,6 +226,26 @@ }; }; +namespace __hash_namespace { + template<> + struct hash { + size_t operator()(const X86ISA::ExtMachInst &emi) const { + return (((uint64_t)emi.legacy << 56) | + ((uint64_t)emi.rex << 48) | + ((uint64_t)emi.modRM << 40) | + ((uint64_t)emi.sib << 32) | + ((uint64_t)emi.opcode.num << 24) | + ((uint64_t)emi.opcode.prefixA << 16) | + ((uint64_t)emi.opcode.prefixB << 8) | + ((uint64_t)emi.opcode.op)) ^ + emi.immediate ^ emi.displacement ^ + emi.mode ^ + emi.opSize ^ emi.addrSize ^ + emi.stackSize ^ emi.dispSize; + }; + }; +} + // These two functions allow ExtMachInst to be used with SERIALIZE_SCALAR // and UNSERIALIZE_SCALAR. template <> diff -r f619f5ae4ce8 -r 910b57b046e7 src/arch/x86/utility.hh --- a/src/arch/x86/utility.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/arch/x86/utility.hh Tue Aug 31 17:03:03 2010 -0700 @@ -50,26 +50,6 @@ class ThreadContext; -namespace __hash_namespace { - template<> - struct hash { - size_t operator()(const X86ISA::ExtMachInst &emi) const { - return (((uint64_t)emi.legacy << 56) | - ((uint64_t)emi.rex << 48) | - ((uint64_t)emi.modRM << 40) | - ((uint64_t)emi.sib << 32) | - ((uint64_t)emi.opcode.num << 24) | - ((uint64_t)emi.opcode.prefixA << 16) | - ((uint64_t)emi.opcode.prefixB << 8) | - ((uint64_t)emi.opcode.op)) ^ - emi.immediate ^ emi.displacement ^ - emi.mode ^ - emi.opSize ^ emi.addrSize ^ - emi.stackSize ^ emi.dispSize; - }; - }; -} - namespace X86ISA { uint64_t getArgument(ThreadContext *tc, int number, bool fp); diff -r f619f5ae4ce8 -r 910b57b046e7 src/cpu/exetrace.hh --- a/src/cpu/exetrace.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/cpu/exetrace.hh Tue Aug 31 17:03:03 2010 -0700 @@ -35,12 +35,12 @@ #include "base/trace.hh" #include "base/types.hh" #include "cpu/static_inst.hh" +#include "cpu/thread_context.hh" #include "params/ExeTracer.hh" #include "sim/insttracer.hh" class ThreadContext; - namespace Trace { class ExeTracerRecord : public InstRecord diff -r f619f5ae4ce8 -r 910b57b046e7 src/cpu/exetrace.cc --- a/src/cpu/exetrace.cc Tue Aug 31 16:59:57 2010 -0700 +++ b/src/cpu/exetrace.cc Tue Aug 31 17:03:03 2010 -0700 @@ -34,6 +34,7 @@ #include #include "arch/isa_traits.hh" +#include "arch/utility.hh" #include "base/loader/symtab.hh" #include "cpu/base.hh" #include "cpu/exetrace.hh" diff -r f619f5ae4ce8 -r 910b57b046e7 src/cpu/simple_thread.cc --- a/src/cpu/simple_thread.cc Tue Aug 31 16:59:57 2010 -0700 +++ b/src/cpu/simple_thread.cc Tue Aug 31 17:03:03 2010 -0700 @@ -34,6 +34,7 @@ #include #include "arch/isa_traits.hh" +#include "arch/utility.hh" #include "config/the_isa.hh" #include "cpu/base.hh" #include "cpu/simple_thread.hh" diff -r f619f5ae4ce8 -r 910b57b046e7 src/cpu/static_inst.hh --- a/src/cpu/static_inst.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/cpu/static_inst.hh Tue Aug 31 17:03:03 2010 -0700 @@ -35,9 +35,8 @@ #include #include "arch/isa_traits.hh" -#include "arch/utility.hh" +#include "arch/registers.hh" #include "config/the_isa.hh" -#include "base/bitfield.hh" #include "base/hashmap.hh" #include "base/misc.hh" #include "base/refcnt.hh" diff -r f619f5ae4ce8 -r 910b57b046e7 src/cpu/thread_context.hh --- a/src/cpu/thread_context.hh Tue Aug 31 16:59:57 2010 -0700 +++ b/src/cpu/thread_context.hh Tue Aug 31 17:03:03 2010 -0700 @@ -31,12 +31,14 @@ #ifndef __CPU_THREAD_CONTEXT_HH__ #define __CPU_THREAD_CONTEXT_HH__ +#include +#include + #include "arch/registers.hh" #include "arch/types.hh" #include "base/types.hh" #include "config/full_system.hh" #include "config/the_isa.hh" -#include "sim/serialize.hh" // @todo: Figure out a more architecture independent way to obtain the ITB and // DTB pointers. @@ -45,8 +47,8 @@ class TLB; } class BaseCPU; +class Checkpoint; class EndQuiesceEvent; -class Event; class TranslatingPort; class FunctionalPort; class VirtualPort; diff -r f619f5ae4ce8 -r 910b57b046e7 src/sim/syscall_emul.cc --- a/src/sim/syscall_emul.cc Tue Aug 31 16:59:57 2010 -0700 +++ b/src/sim/syscall_emul.cc Tue Aug 31 17:03:03 2010 -0700 @@ -36,6 +36,7 @@ #include #include +#include "arch/utility.hh" #include "sim/syscall_emul.hh" #include "base/chunk_generator.hh" #include "base/trace.hh"