if (!curStaticInst || !curStaticInst->isDelayedCommit())
checkForInterrupts();
+ checkPcEventQueue();
+
Fault fault = setupFetchRequest(&ifetch_req);
if (fault == NoFault) {
assert(thread->readNextPC() != thread->readNextNPC());
}
}
-
- Addr oldpc;
- do {
- oldpc = thread->readPC();
- system->pcEventQueue.service(tc);
- } while (oldpc != thread->readPC());
}
/*Fault
#include "mem/port.hh"
#include "mem/request.hh"
#include "sim/eventq.hh"
+#include "sim/system.hh"
// forward declarations
#if FULL_SYSTEM
protected:
Trace::InstRecord *traceData;
+ inline void checkPcEventQueue() {
+ Addr oldpc;
+ do {
+ oldpc = thread->readPC();
+ system->pcEventQueue.service(tc);
+ } while (oldpc != thread->readPC());
+ }
+
public:
void post_interrupt(int int_num, int index);
if (!curStaticInst || !curStaticInst->isDelayedCommit())
checkForInterrupts();
+ checkPcEventQueue();
+
Request *ifetch_req = new Request();
ifetch_req->setThreadContext(cpuId, /* thread ID */ 0);
Fault fault = setupFetchRequest(ifetch_req);