diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/commit.hh --- a/src/cpu/o3/commit.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/commit.hh Thu Dec 06 14:59:51 2012 -0500 @@ -195,7 +195,7 @@ void setROB(ROB *rob_ptr); /** Initializes stage by sending back the number of free entries. */ - void initStage(); + void startupStage(); /** Initializes the draining of commit. */ bool drain(); diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/commit_impl.hh --- a/src/cpu/o3/commit_impl.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/commit_impl.hh Thu Dec 06 14:59:51 2012 -0500 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2011 ARM Limited + * Copyright (c) 2010-2012 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -348,7 +348,7 @@ template void -DefaultCommit::initStage() +DefaultCommit::startupStage() { rob->setActiveThreads(activeThreads); rob->resetEntries(); diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/cpu.hh --- a/src/cpu/o3/cpu.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/cpu.hh Thu Dec 06 14:59:51 2012 -0500 @@ -369,6 +369,8 @@ /** Initialize the CPU */ void init(); + void startup(); + /** Returns the Number of Active Threads in the CPU */ int numActiveThreads() { return activeThreads.size(); } diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/cpu.cc --- a/src/cpu/o3/cpu.cc Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/cpu.cc Thu Dec 06 14:59:51 2012 -0500 @@ -679,13 +679,17 @@ for (int tid = 0; tid < numThreads; ++tid) thread[tid]->noSquashFromTC = false; - // Initialize stages. - fetch.initStage(); - iew.initStage(); - rename.initStage(); - commit.initStage(); + commit.setThreads(thread); +} - commit.setThreads(thread); +template +void +FullO3CPU::startup() +{ + fetch.startupStage(); + iew.startupStage(); + rename.startupStage(); + commit.startupStage(); } template diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/fetch.hh --- a/src/cpu/o3/fetch.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/fetch.hh Thu Dec 06 14:59:51 2012 -0500 @@ -215,7 +215,7 @@ void setFetchQueue(TimeBuffer *fq_ptr); /** Initialize stage. */ - void initStage(); + void startupStage(); /** Tells the fetch stage that the Icache is set. */ void setIcache(); diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/fetch_impl.hh --- a/src/cpu/o3/fetch_impl.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/fetch_impl.hh Thu Dec 06 14:59:51 2012 -0500 @@ -302,7 +302,7 @@ template void -DefaultFetch::initStage() +DefaultFetch::startupStage() { // Setup PC and nextPC with initial state. for (ThreadID tid = 0; tid < numThreads; tid++) { diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/iew.hh --- a/src/cpu/o3/iew.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/iew.hh Thu Dec 06 14:59:51 2012 -0500 @@ -133,7 +133,7 @@ void regStats(); /** Initializes stage; sends back the number of free IQ and LSQ entries. */ - void initStage(); + void startupStage(); /** Sets main time buffer used for backwards communication. */ void setTimeBuffer(TimeBuffer *tb_ptr); diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/iew_impl.hh --- a/src/cpu/o3/iew_impl.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/iew_impl.hh Thu Dec 06 14:59:51 2012 -0500 @@ -283,7 +283,7 @@ template void -DefaultIEW::initStage() +DefaultIEW::startupStage() { for (ThreadID tid = 0; tid < numThreads; tid++) { toRename->iewInfo[tid].usedIQ = true; @@ -408,7 +408,7 @@ ldstQueue.takeOverFrom(); fuPool->takeOver(); - initStage(); + startupStage(); cpu->activityThisCycle(); for (ThreadID tid = 0; tid < numThreads; tid++) { diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/rename.hh --- a/src/cpu/o3/rename.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/rename.hh Thu Dec 06 14:59:51 2012 -0500 @@ -143,7 +143,7 @@ public: /** Initializes variables for the stage. */ - void initStage(); + void startupStage(); /** Sets pointer to list of active threads. */ void setActiveThreads(std::list *at_ptr); diff -r f0985887da65 -r e711f4233dd5 src/cpu/o3/rename_impl.hh --- a/src/cpu/o3/rename_impl.hh Thu Dec 06 14:58:36 2012 -0500 +++ b/src/cpu/o3/rename_impl.hh Thu Dec 06 14:59:51 2012 -0500 @@ -228,7 +228,7 @@ template void -DefaultRename::initStage() +DefaultRename::startupStage() { // Grab the number of free entries directly from the stages. for (ThreadID tid = 0; tid < numThreads; tid++) { @@ -317,7 +317,7 @@ DefaultRename::takeOverFrom() { _status = Inactive; - initStage(); + startupStage(); // Reset all state prior to taking over from the other CPU. for (ThreadID tid = 0; tid < numThreads; tid++) {