aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtmips_machine/core.cpp')
-rw-r--r--qtmips_machine/core.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/qtmips_machine/core.cpp b/qtmips_machine/core.cpp
index 1b030d6..e6f0971 100644
--- a/qtmips_machine/core.cpp
+++ b/qtmips_machine/core.cpp
@@ -734,11 +734,11 @@ void CorePipelined::do_step(bool skip_break) {
printf("PC 0x%08lx\n", (unsigned long)dt_f.inst_addr);
#endif
- dt_d.stall = stall;
emit hu_stall_value(stall);
// Now process program counter (loop connections from decode stage)
if (!stall) {
+ dt_d.stall = false;
dt_f = fetch(skip_break);
if (handle_pc(dt_d)) {
dt_f.in_delay_slot = true;
@@ -753,6 +753,7 @@ void CorePipelined::do_step(bool skip_break) {
fetch(skip_break);
// clear decode latch (insert nope to execute stage)
dtDecodeInit(dt_d);
+ dt_d.stall = true;
// emit instruction_decoded(dt_d.inst, dt_d.inst_addr, dt_d.excause);
}
}