cpu: fixed how O3 CPU executes an exit system call
[gem5.git] / src / cpu / o3 / rename_impl.hh
index b63163f04e34668a0b5d28bcf5878613196dadb3..fd9b09e20c7ba143f7e273fb3f15174b048e7233 100644 (file)
@@ -254,6 +254,28 @@ DefaultRename<Impl>::startupStage()
     resetStage();
 }
 
+template <class Impl>
+void
+DefaultRename<Impl>::clearStates(ThreadID tid)
+{
+    renameStatus[tid] = Idle;
+
+    freeEntries[tid].iqEntries = iew_ptr->instQueue.numFreeEntries(tid);
+    freeEntries[tid].lqEntries = iew_ptr->ldstQueue.numFreeLoadEntries(tid);
+    freeEntries[tid].sqEntries = iew_ptr->ldstQueue.numFreeStoreEntries(tid);
+    freeEntries[tid].robEntries = commit_ptr->numROBFreeEntries(tid);
+    emptyROB[tid] = true;
+
+    stalls[tid].iew = false;
+    serializeInst[tid] = NULL;
+
+    instsInProgress[tid] = 0;
+    loadsInProgress[tid] = 0;
+    storesInProgress[tid] = 0;
+
+    serializeOnNextInst[tid] = false;
+}
+
 template <class Impl>
 void
 DefaultRename<Impl>::resetStage()