Merge zizzer.eecs.umich.edu:/bk/newmem/
[gem5.git] / src / cpu / simple / base.cc
index b7df39218faa0fd43bf5c678b7cb09ca001001af..4e5754bbb97b266e2c8e2703ffb492b0d4caf060 100644 (file)
 #include "sim/system.hh"
 
 #if FULL_SYSTEM
-#include "arch/tlb.hh"
+#include "arch/kernel_stats.hh"
 #include "arch/stacktrace.hh"
+#include "arch/tlb.hh"
 #include "arch/vtophys.hh"
 #include "base/remote_gdb.hh"
-#include "kern/kernel_stats.hh"
 #else // !FULL_SYSTEM
 #include "mem/mem_object.hh"
 #endif // FULL_SYSTEM
@@ -315,6 +315,7 @@ BaseSimpleCPU::checkForInterrupts()
         Fault interrupt = interrupts.getInterrupt(tc);
 
         if (interrupt != NoFault) {
+            interrupts.updateIntrInfo(tc);
             checkInterrupts = false;
             interrupt->invoke(tc);
         }
@@ -407,8 +408,7 @@ BaseSimpleCPU::postExecute()
 {
 #if FULL_SYSTEM
     if (thread->profile) {
-        bool usermode =
-            (thread->readMiscReg(AlphaISA::IPR_DTB_CM) & 0x18) != 0;
+        bool usermode = TheISA::inUserMode(tc);
         thread->profilePC = usermode ? 1 : thread->readPC();
         ProfileNode *node = thread->profile->consume(tc, inst);
         if (node)