From 1374c4e812ea584b59a5ed08001e8362a8aa3a66 Mon Sep 17 00:00:00 2001
From: David Li
Date: Thu, 7 Jan 2016 15:35:19 -0700
Subject: Avoid cache deadlock
---
src/simulator.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/simulator.rs b/src/simulator.rs
index 503f902..dd851e5 100644
--- a/src/simulator.rs
+++ b/src/simulator.rs
@@ -281,7 +281,7 @@ impl<'a> Core<'a> {
match result {
Ok(value) => self.registers.write_word(inst.rd(), value),
Err(MemoryError::CacheMiss { stall_cycles }) => {
- self.stall = stall_cycles;
+ self.stall = stall_cycles - 1;
return; // don't increment PC
},
Err(MemoryError::InvalidAddress) => {
@@ -316,7 +316,7 @@ impl<'a> Core<'a> {
match result {
Ok(()) => (),
Err(MemoryError::CacheMiss { stall_cycles }) => {
- self.stall = stall_cycles;
+ self.stall = stall_cycles - 1;
return; // don't increment PC
},
Err(MemoryError::InvalidAddress) => {
--
cgit v1.2.3