Fix to deal with the new base class parameter for registration
[gem5.git] / cpu / trace / trace_cpu.cc
index e19509fecae3700dfb7d3784709dde39b134cedf..f1160337a10ad7248d6b30a5d42d63eafbd856b9 100644 (file)
@@ -47,7 +47,7 @@ TraceCPU::TraceCPU(const string &name,
                    MemInterface *icache_interface,
                    MemInterface *dcache_interface,
                    MemTraceReader *data_trace)
-    : BaseCPU(name, 4), icacheInterface(icache_interface),
+    : BaseCPU(name, 4, true), icacheInterface(icache_interface),
       dcacheInterface(dcache_interface),
       dataTrace(data_trace), outstandingRequests(0), tickEvent(this)
 {
@@ -75,9 +75,14 @@ TraceCPU::tick()
                 icacheInterface->squash(nextReq->asid);
             } else {
                 ++instReqs;
-                nextReq->completionEvent =
-                    new TraceCompleteEvent(nextReq, this);
-                icacheInterface->access(nextReq);
+                if (icacheInterface->doEvents()) {
+                    nextReq->completionEvent =
+                        new TraceCompleteEvent(nextReq, this);
+                    icacheInterface->access(nextReq);
+                } else {
+                    icacheInterface->access(nextReq);
+                    completeRequest(nextReq);
+                }
             }
         } else {
             if (dcacheInterface->isBlocked())
@@ -85,9 +90,15 @@ TraceCPU::tick()
 
             ++dataReqs;
             nextReq->time = curTick;
-            nextReq->completionEvent =
-                new TraceCompleteEvent(nextReq, this);
-            dcacheInterface->access(nextReq);
+            if (dcacheInterface->doEvents()) {
+                nextReq->completionEvent =
+                    new TraceCompleteEvent(nextReq, this);
+                dcacheInterface->access(nextReq);
+            } else {
+                dcacheInterface->access(nextReq);
+                completeRequest(nextReq);
+            }
+
         }
         nextCycle = dataTrace->getNextReq(nextReq);
     }