Deleted Added
sdiff udiff text old ( 3495:884bf1f0c0c9 ) new ( 3520:4f4a2054fd85 )
full compact
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;

--- 154 unchanged lines hidden (view full) ---

163 int *counter = new int;
164 *counter = number_of_threads;
165 for (int i = 0; i < number_of_threads; ++i)
166 new CountedExitEvent(comLoadEventQueue[i],
167 "all threads reached the max load count",
168 p->max_loads_all_threads, *counter);
169 }
170
171 functionTracingEnabled = false;
172 if (p->functionTrace) {
173 functionTraceStream = simout.find(csprintf("ftrace.%s", name()));
174 currentFunctionStart = currentFunctionEnd = 0;
175 functionEntryTick = p->functionTraceStart;
176
177 if (p->functionTraceStart == 0) {
178 functionTracingEnabled = true;

--- 70 unchanged lines hidden (view full) ---

249 }
250 } else if (size == 1)
251 threadContexts[0]->regStats(name());
252
253#if FULL_SYSTEM
254#endif
255}
256
257
258void
259BaseCPU::registerThreadContexts()
260{
261 for (int i = 0; i < threadContexts.size(); ++i) {
262 ThreadContext *tc = threadContexts[i];
263
264#if FULL_SYSTEM
265 int id = params->cpu_id;

--- 38 unchanged lines hidden (view full) ---

304 assert(newTC->getProcessPtr() == oldTC->getProcessPtr());
305 newTC->getProcessPtr()->replaceThreadContext(newTC, newTC->readCpuId());
306#endif
307
308// TheISA::compareXCs(oldXC, newXC);
309 }
310
311#if FULL_SYSTEM
312 interrupts = oldCPU->interrupts;
313 checkInterrupts = oldCPU->checkInterrupts;
314
315 for (int i = 0; i < threadContexts.size(); ++i)
316 threadContexts[i]->profileClear();
317
318 // The Sampler must take care of this!
319// if (profileEvent)
320// profileEvent->schedule(curTick);

--- 15 unchanged lines hidden (view full) ---

336 }
337
338 schedule(curTick + interval);
339}
340
341void
342BaseCPU::post_interrupt(int int_num, int index)
343{
344 checkInterrupts = true;
345 interrupts.post(int_num, index);
346}
347
348void
349BaseCPU::clear_interrupt(int int_num, int index)
350{
351 interrupts.clear(int_num, index);
352}
353
354void
355BaseCPU::clear_interrupts()
356{
357 interrupts.clear_all();
358}
359
360
361void
362BaseCPU::serialize(std::ostream &os)
363{
364 interrupts.serialize(os);
365}
366
367void
368BaseCPU::unserialize(Checkpoint *cp, const std::string &section)
369{
370 interrupts.unserialize(cp, section);
371}
372
373#endif // FULL_SYSTEM
374
375void
376BaseCPU::traceFunctionsInternal(Addr pc)
377{
378 if (!debugSymbolTable)

--- 25 unchanged lines hidden ---