diff -r 18bfdc199fd7 -r 926cfdcf6836 src/cpu/simple/timing.hh
--- a/src/cpu/simple/timing.hh Sun Aug 18 16:37:17 2013 +0100
+++ b/src/cpu/simple/timing.hh Sun Aug 18 16:40:34 2013 +0100
@@ -320,11 +320,14 @@
* of a gem5 microcode sequence.
*
*
Stay at PC is true.
+ *
+ * A fetch event is scheduled. Normally this would never be the
+ case with microPC() == 0, but right after a context is
+ activated it can happen.
*
*/
bool isDrained() {
- return microPC() == 0 &&
- !stayAtPC;
+ return microPC() == 0 && !stayAtPC && !fetchEvent.scheduled();
}
/**
diff -r 18bfdc199fd7 -r 926cfdcf6836 src/cpu/simple/timing.cc
--- a/src/cpu/simple/timing.cc Sun Aug 18 16:37:17 2013 +0100
+++ b/src/cpu/simple/timing.cc Sun Aug 18 16:40:34 2013 +0100
@@ -109,7 +109,6 @@
if (_status == Idle ||
(_status == BaseSimpleCPU::Running && isDrained())) {
- assert(!fetchEvent.scheduled());
DPRINTF(Drain, "No need to drain.\n");
return 0;
} else {