1/*
2 * Copyright (c) 2004-2006 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;

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

492 ThreadContext *src_tc = thread[tid]->getTC();
493#endif
494 // Threads start in the Suspended State
495 if (src_tc->status() != ThreadContext::Suspended) {
496 continue;
497 }
498
499#if FULL_SYSTEM
500 src_tc->init();
501
500 TheISA::initCPU(src_tc, src_tc->readCpuId());
501#endif
502 }
503
504 // Clear inSyscall.
505 for (int i = 0; i < number_of_threads; ++i)
506 thread[i]->inSyscall = false;
507

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

547 activeThreads.erase(thread_it);
548 }
549}
550
551template <class Impl>
552void
553FullO3CPU<Impl>::activateContext(int tid, int delay)
554{
555#if FULL_SYSTEM
556 // Connect the ThreadContext's memory ports (Functional/Virtual
557 // Ports)
558 threadContexts[tid]->connectMemPorts();
559#endif
560
561 // Needs to set each stage to running as well.
562 if (delay){
563 DPRINTF(O3CPU, "[tid:%i]: Scheduling thread context to activate "
564 "on cycle %d\n", tid, curTick + cycles(delay));
565 scheduleActivateThreadEvent(tid, delay);
566 } else {
567 activateThread(tid);
568 }

--- 891 unchanged lines hidden ---