diff options
| author | Peter Sewell | 2014-11-04 14:18:30 +0000 |
|---|---|---|
| committer | Peter Sewell | 2014-11-04 14:18:30 +0000 |
| commit | 1b061721c2ae57349e4a5cb4df1673a41a44415b (patch) | |
| tree | fb36f672935d05108336e8790c0c6ed1ca8366d2 /src | |
| parent | e57a7e2b21f49acd1e59f86b243e0c9b5bcdd05d (diff) | |
| parent | 6ebb70356153c6846da04280d36fb3828e33050e (diff) | |
Merge branch 'master' of bitbucket.org:Peter_Sewell/l2
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/run_power.ml | 17 |
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)); |
