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