aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Li <li.davidm96@gmail.com>2016-01-14 18:06:53 -0700
committerDavid Li <li.davidm96@gmail.com>2016-01-14 18:06:53 -0700
commit86a76b0825c200ebedd7a5914154a94ad16fa662 (patch)
treed008cd709399d778dbd345286bf40469a6b71ef1 /src
parent7d5bd0af1e24372582c30f3ae3574b28db54505d (diff)
Properly check for write traps
Diffstat (limited to 'src')
-rw-r--r--src/shareable_cache.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/shareable_cache.rs b/src/shareable_cache.rs
index a4c993b..f6c76f6 100644
--- a/src/shareable_cache.rs
+++ b/src/shareable_cache.rs
@@ -54,6 +54,8 @@ macro_rules! check_traps {
let mut num_traps_hit = 0;
let iter = old_bytes.iter()
+ // Skip {offset} bytes
+ .skip(($address.0 & 0x3) as usize)
.take(new_bytes.len())
.enumerate();
for (offset, old) in iter {
@@ -72,6 +74,7 @@ macro_rules! check_traps {
}
if num_traps_hit > 0 {
+ println!("Checking for traps: {:?} vs {:?}", old_bytes, new_bytes);
info!("[memory] core {}: {} write trap(s) hit at address {:x},\
stalling for 1_000_000 cycles each",
$core_id, num_traps_hit, $address);