Fixed to account for branch delay slots.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 8 Nov 2006 04:33:59 +0000 (23:33 -0500)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 8 Nov 2006 04:33:59 +0000 (23:33 -0500)
--HG--
extra : convert_revision : 36a91ad4ed56c61b6754548034a13c02cf580fc6

src/kern/system_events.cc

index a6337a2fdefbeed132762b761fe5dccfe6b42813..6fd9e156360a254c224d44a1f7b16af3a295487e 100644 (file)
@@ -29,6 +29,8 @@
  *          Nathan Binkert
  */
 
+//For ISA_HAS_DELAY_SLOT
+#include "arch/isa_traits.hh"
 #include "base/trace.hh"
 #include "cpu/thread_context.hh"
 #include "kern/system_events.hh"
@@ -45,4 +47,7 @@ SkipFuncEvent::process(ThreadContext *tc)
 
     tc->setPC(newpc);
     tc->setNextPC(tc->readPC() + sizeof(TheISA::MachInst));
+#if ISA_HAS_DELAY_SLOT
+    tc->setNextPC(tc->readNextPC() + sizeof(TheISA::MachInst));
+#endif
 }