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 ---