cpu.cc (8887:20ea02da9c53) cpu.cc (8921:e53972f72165)
1/*
2 * Copyright (c) 2011 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

634}
635
636template <class Impl>
637void
638FullO3CPU<Impl>::init()
639{
640 BaseCPU::init();
641
1/*
2 * Copyright (c) 2011 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

634}
635
636template <class Impl>
637void
638FullO3CPU<Impl>::init()
639{
640 BaseCPU::init();
641
642 // Set inSyscall so that the CPU doesn't squash when initially
643 // setting up registers.
644 for (ThreadID tid = 0; tid < numThreads; ++tid)
642 for (ThreadID tid = 0; tid < numThreads; ++tid) {
643 // Set inSyscall so that the CPU doesn't squash when initially
644 // setting up registers.
645 thread[tid]->inSyscall = true;
645 thread[tid]->inSyscall = true;
646 // Initialise the ThreadContext's memory proxies
647 thread[tid]->initMemProxies(thread[tid]->getTC());
648 }
646
647 // this CPU could still be unconnected if we are restoring from a
648 // checkpoint and this CPU is to be switched in, thus we can only
649 // do this here if the instruction port is actually connected, if
650 // not we have to do it as part of takeOverFrom
651 if (icachePort.isConnected())
652 fetch.setIcache();
653
654 if (FullSystem && !params()->defer_registration) {
655 for (ThreadID tid = 0; tid < numThreads; tid++) {
656 ThreadContext *src_tc = threadContexts[tid];
657 TheISA::initCPU(src_tc, src_tc->contextId());
649
650 // this CPU could still be unconnected if we are restoring from a
651 // checkpoint and this CPU is to be switched in, thus we can only
652 // do this here if the instruction port is actually connected, if
653 // not we have to do it as part of takeOverFrom
654 if (icachePort.isConnected())
655 fetch.setIcache();
656
657 if (FullSystem && !params()->defer_registration) {
658 for (ThreadID tid = 0; tid < numThreads; tid++) {
659 ThreadContext *src_tc = threadContexts[tid];
660 TheISA::initCPU(src_tc, src_tc->contextId());
658 // Initialise the ThreadContext's memory proxies
659 thread[tid]->initMemProxies(thread[tid]->getTC());
660 }
661 }
662
663 // Clear inSyscall.
664 for (int tid = 0; tid < numThreads; ++tid)
665 thread[tid]->inSyscall = false;
666
667 // Initialize stages.

--- 1060 unchanged lines hidden ---
661 }
662 }
663
664 // Clear inSyscall.
665 for (int tid = 0; tid < numThreads; ++tid)
666 thread[tid]->inSyscall = false;
667
668 // Initialize stages.

--- 1060 unchanged lines hidden ---