base.hh (5336:c7e21f4e5a2e) | base.hh (5529:9ae69b9cd7fd) |
---|---|
1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 31 unchanged lines hidden (view full) --- 40#include "sim/eventq.hh" 41#include "sim/insttracer.hh" 42#include "mem/mem_object.hh" 43 44#if FULL_SYSTEM 45#include "arch/interrupts.hh" 46#endif 47 | 1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 31 unchanged lines hidden (view full) --- 40#include "sim/eventq.hh" 41#include "sim/insttracer.hh" 42#include "mem/mem_object.hh" 43 44#if FULL_SYSTEM 45#include "arch/interrupts.hh" 46#endif 47 |
48class BaseCPUParams; |
|
48class BranchPred; 49class CheckerCPU; 50class ThreadContext; 51class System; 52class Port; 53 54namespace TheISA 55{ --- 101 unchanged lines hidden (view full) --- 157 158 /// Given a Thread Context pointer return the thread num 159 int findContext(ThreadContext *tc); 160 161 /// Given a thread num get tho thread context for it 162 ThreadContext *getContext(int tn) { return threadContexts[tn]; } 163 164 public: | 49class BranchPred; 50class CheckerCPU; 51class ThreadContext; 52class System; 53class Port; 54 55namespace TheISA 56{ --- 101 unchanged lines hidden (view full) --- 158 159 /// Given a Thread Context pointer return the thread num 160 int findContext(ThreadContext *tc); 161 162 /// Given a thread num get tho thread context for it 163 ThreadContext *getContext(int tn) { return threadContexts[tn]; } 164 165 public: |
165 struct Params 166 { 167 std::string name; 168 int numberOfThreads; 169 bool deferRegistration; 170 Counter max_insts_any_thread; 171 Counter max_insts_all_threads; 172 Counter max_loads_any_thread; 173 Counter max_loads_all_threads; 174 Tick clock; 175 bool functionTrace; 176 Tick functionTraceStart; 177 System *system; 178 int cpu_id; 179 Trace::InstTracer * tracer; 180 181 Tick phase; 182#if FULL_SYSTEM 183 Tick profile; 184 185 bool do_statistics_insts; 186 bool do_checkpoint_insts; 187 bool do_quiesce; 188#endif 189 Tick progress_interval; 190 BaseCPU *checker; 191 192 TheISA::CoreSpecific coreParams; //ISA-Specific Params That Set Up State in Core 193 194 Params(); 195 }; 196 197 const Params *params; 198 | 166 typedef BaseCPUParams Params; 167 const Params *params() const 168 { return reinterpret_cast<const Params *>(_params); } |
199 BaseCPU(Params *params); 200 virtual ~BaseCPU(); 201 202 virtual void init(); 203 virtual void startup(); 204 virtual void regStats(); 205 206 virtual void activateWhenReady(int tid) {}; --- 9 unchanged lines hidden (view full) --- 216 virtual void takeOverFrom(BaseCPU *, Port *ic, Port *dc); 217 218 /** 219 * Number of threads we're actually simulating (<= SMT_MAX_THREADS). 220 * This is a constant for the duration of the simulation. 221 */ 222 int number_of_threads; 223 | 169 BaseCPU(Params *params); 170 virtual ~BaseCPU(); 171 172 virtual void init(); 173 virtual void startup(); 174 virtual void regStats(); 175 176 virtual void activateWhenReady(int tid) {}; --- 9 unchanged lines hidden (view full) --- 186 virtual void takeOverFrom(BaseCPU *, Port *ic, Port *dc); 187 188 /** 189 * Number of threads we're actually simulating (<= SMT_MAX_THREADS). 190 * This is a constant for the duration of the simulation. 191 */ 192 int number_of_threads; 193 |
194 TheISA::CoreSpecific coreParams; //ISA-Specific Params That Set Up State in Core 195 |
|
224 /** 225 * Vector of per-thread instruction-based event queues. Used for 226 * scheduling events based on number of instructions committed by 227 * a particular thread. 228 */ 229 EventQueue **comInstEventQueue; 230 231 /** --- 73 unchanged lines hidden --- | 196 /** 197 * Vector of per-thread instruction-based event queues. Used for 198 * scheduling events based on number of instructions committed by 199 * a particular thread. 200 */ 201 EventQueue **comInstEventQueue; 202 203 /** --- 73 unchanged lines hidden --- |