From dcc8f7d726620e7e2c7667fcff4c134c664971d9 Mon Sep 17 00:00:00 2001 From: David Li Date: Tue, 29 Dec 2015 14:36:49 -0700 Subject: Update test for new cache --- src/lib.rs | 11 ++++------- src/memory.rs | 8 +++++++- src/simulator.rs | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 0dc0e7f..b77d4f7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,19 +34,16 @@ fn it_works() { #[cfg(test)] mod tests { - use super::*; - #[test] fn cache_address_parsing() { - let dm_cache_word = memory::Cache::new(4, 1, 1); - let dm_cache_doubleword = memory::Cache::new(4, 1, 2); - let fa_cache_doubleword = memory::Cache::new(1, 4, 2); + use memory::*; + + let dm_cache_word = DirectMappedCache::new(4, 1, Memory::new(1)); + let dm_cache_doubleword = DirectMappedCache::new(4, 2, Memory::new(1)); assert_eq!(dm_cache_word.parse_address(0xFFFFFFFD), (0xFFFFFFF, 3, 1)); assert_eq!(dm_cache_doubleword.parse_address(0xFFFFFFFD), (0x7FFFFFF, 3, 5)); - assert_eq!(fa_cache_doubleword.parse_address(0xFFFFFFFD), - (0x1FFFFFFF, 0, 5)); } } diff --git a/src/memory.rs b/src/memory.rs index c3cc60a..d321711 100644 --- a/src/memory.rs +++ b/src/memory.rs @@ -75,7 +75,13 @@ pub struct DirectMappedCache { } impl Memory { - pub fn new(size: isa::Address, binary: Binary) -> Memory { + pub fn new(size: isa::Address) -> Memory { + Memory { + memory: vec![0; size as usize], + } + } + + pub fn new_from_binary(size: isa::Address, binary: Binary) -> Memory { let mut memory = binary.words.clone(); let size = size as usize; if size > memory.len() { diff --git a/src/simulator.rs b/src/simulator.rs index 2e7ddbd..55b2b41 100644 --- a/src/simulator.rs +++ b/src/simulator.rs @@ -75,7 +75,7 @@ impl RegisterFile { impl Simulator { pub fn new(num_cores: usize, binary: Binary) -> Simulator { - let memory = Memory::new(0x2000, binary); + let memory = Memory::new_from_binary(0x2000, binary); // TODO: initialize GP, registers (GP is in headers) Simulator { num_cores: num_cores, -- cgit v1.2.3