From cf6dcc785562885621573d0700ee1b7787e2dfba Mon Sep 17 00:00:00 2001 From: David Li Date: Mon, 11 Jan 2016 09:32:20 -0700 Subject: Fix read_word --- src/main.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 2f607a6..e6b6385 100644 --- a/src/main.rs +++ b/src/main.rs @@ -86,15 +86,16 @@ fn main() { let cache2 = memory::DirectMappedCache::new(2, 64, memory_ref.clone()); let cache2_ref = Rc::new(RefCell::new(cache2)); - let (cache1, cache2) = ShareableCache::new(cache_ref.clone(), cache2_ref.clone()); - let mut core_caches = vec![]; let mut cores = vec![]; + let mut core_caches = vec![]; + for i in 0..4 { - let c1 = Rc::new(RefCell::new(cache1.clone())); - core_caches.push(c1.clone()); + let core_cache = Rc::new(RefCell::new( + ShareableCache::new(i, cache_ref.clone(), cache2_ref.clone()))); + core_caches.push(core_cache.clone()); let mut core = simulator::Core::new( - i, start1, (0x100000 * (i + 1)) as u32, c1, + i, start1, (0x100000 * (i + 1)) as u32, core_cache, Box::new(memory::IdentityMmu::new()) ); core.registers().write_word(isa::Register::X10, i as isa::Word); @@ -102,10 +103,11 @@ fn main() { } for i in 4..8 { - let c2 = Rc::new(RefCell::new(cache2.clone())); - core_caches.push(c2.clone()); + let core_cache = Rc::new(RefCell::new( + ShareableCache::new(i, cache2_ref.clone(), cache_ref.clone()))); + core_caches.push(core_cache.clone()); let mut core = simulator::Core::new( - i, start2, (0x100000 * (i + 1)) as u32, c2, + i, start2, (0x100000 * (i + 1)) as u32, core_cache, Box::new(memory::ReverseMmu::new(0x4000000)) ); core.registers().write_word(isa::Register::X10, i as isa::Word); -- cgit v1.2.3