summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Sewell2014-11-04 14:18:30 +0000
committerPeter Sewell2014-11-04 14:18:30 +0000
commit1b061721c2ae57349e4a5cb4df1673a41a44415b (patch)
treefb36f672935d05108336e8790c0c6ed1ca8366d2 /src
parente57a7e2b21f49acd1e59f86b243e0c9b5bcdd05d (diff)
parent6ebb70356153c6846da04280d36fb3828e33050e (diff)
Merge branch 'master' of bitbucket.org:Peter_Sewell/l2
Diffstat (limited to 'src')
-rw-r--r--src/test/run_power.ml17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/test/run_power.ml b/src/test/run_power.ml
index e3fcf182..5ddab5e0 100644
--- a/src/test/run_power.ml
+++ b/src/test/run_power.ml
@@ -78,14 +78,14 @@ let load_memory (bits,addr) =
loop rest (1 + addr)
in loop bits addr
-let rec read_mem loc length =
+let rec read_mem mem loc length =
if length = 0
then []
else
let location = big_int_to_vec true loc (big_int_of_int 64) in
match location with
| Bytevector location ->
- (Mem.find location !mem)::(read_mem (add_big_int loc unit_big_int) (length - 1))
+ (Mem.find location mem)::(read_mem mem (add_big_int loc unit_big_int) (length - 1))
let get_reg reg name =
let reg_content = Reg.find name reg in reg_content
@@ -231,7 +231,16 @@ let print_test_results final_reg final_mem =
let gpr_reg = numbered_reg "GPR" 0 31 in
let vr_reg = numbered_reg "VR" 0 31 in
let reg_contents = special_reg ^ gpr_reg ^ (format_register "VRSAVE") ^ vr_reg ^ (format_register "VSCR") in
- let mem_contents = "Memory will go here\n" in
+ let rec memory_crawl curr_index curr_address =
+ if curr_index >= 100
+ then ""
+ else let mem_orig = Bytevector(read_mem !mem curr_address 8) in
+ let mem_end = Bytevector(read_mem final_mem curr_address 8) in
+ "MEM_" ^ (string_of_int curr_index) ^ ";\t\t" ^ Printing_functions.val_to_hex_string mem_orig ^
+ ";\t\t\t" ^ Printing_functions.val_to_hex_string mem_end ^ "\n" ^
+ (memory_crawl (curr_index + 1) (add_big_int curr_address unit_big_int))
+ in
+ let mem_contents = memory_crawl 0 (big_int_of_int (fst (!test_memory_addr))) in
let footer = tilde ^ "\n" in
let (temp_file_name, o) = Filename.open_temp_file "tt_temp" "" in
let o' = Format.formatter_of_out_channel o in
@@ -294,7 +303,7 @@ let run () =
let t = time_it (List.iter load_memory) locations in
if not(!test_format)
then eprintf "done. (%f seconds)\n%!" t;
- let addr = read_mem (big_int_of_int start_address) 8 in
+ let addr = read_mem !mem (big_int_of_int start_address) 8 in
let _ = begin
startaddr := addr;
mainaddr := "0x" ^ (List.fold_left (^) "" (List.map (Printf.sprintf "%02x") addr));