summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKathy Gray2015-06-18 13:25:13 +0100
committerKathy Gray2015-06-18 13:25:13 +0100
commitac94d1f7eaf7cf376c8d04f240bdf430a06565b1 (patch)
tree0b1b1410d42106a7b3e6c0c76696becaa532b7b5
parenta546e697cc65cda36e294929fd0b4bd5b8c2c2c2 (diff)
add endian flag to memory printing
-rw-r--r--src/lem_interp/printing_functions.ml16
-rw-r--r--src/lem_interp/printing_functions.mli4
2 files changed, 10 insertions, 10 deletions
diff --git a/src/lem_interp/printing_functions.ml b/src/lem_interp/printing_functions.ml
index 57326d46..ec1b0de0 100644
--- a/src/lem_interp/printing_functions.ml
+++ b/src/lem_interp/printing_functions.ml
@@ -147,24 +147,24 @@ let bit_lifteds_to_string (bls: bit_lifted list) (show_length_and_start:bool) (s
let register_value_to_string rv =
bit_lifteds_to_string rv.rv_bits true (Some rv.rv_start)
-let memory_value_to_string mv =
- let bls = List.concat(List.map (fun (Byte_lifted bs) -> bs) mv) in
+let memory_value_to_string endian mv =
+ let bls = List.concat(List.map (fun (Byte_lifted bs) -> (if endian = E_big_endian then bs else (List.rev bs))) mv) in
bit_lifteds_to_string bls true None
let logfile_register_value_to_string rv =
bit_lifteds_to_string rv.rv_bits false (Some rv.rv_start)
-let logfile_memory_value_to_string mv =
- let bls = List.concat(List.map (fun (Byte_lifted bs) -> bs) mv) in
+let logfile_memory_value_to_string endian mv =
+ let bls = List.concat(List.map (fun (Byte_lifted bs) -> (if endian = E_big_endian then bs else (List.rev bs))) mv) in
bit_lifteds_to_string bls false None
let byte_list_to_string bs =
let bs' = List.map byte_lifted_of_byte bs in
- memory_value_to_string bs'
+ memory_value_to_string E_big_endian bs'
let logfile_address_to_string a =
let bs' = List.map byte_lifted_of_byte (byte_list_of_address a) in
- logfile_memory_value_to_string bs'
+ logfile_memory_value_to_string E_big_endian bs'
(*let bytes_to_string bytes =
@@ -355,10 +355,10 @@ let rec format_events = function
| (E_error s)::events ->
" Failed with message : " ^ s ^ " but continued on erroneously\n"
| (E_read_mem(read_kind, (Address_lifted(location, _)), length, tracking))::events ->
- " Read_mem at " ^ (memory_value_to_string location) ^ " for " ^ (string_of_int length) ^ " bytes \n" ^
+ " Read_mem at " ^ (memory_value_to_string E_big_endian location) ^ " for " ^ (string_of_int length) ^ " bytes \n" ^
(format_events events)
| (E_write_mem(write_kind,(Address_lifted (location,_)), length, tracking, value, v_tracking))::events ->
- " Write_mem at " ^ (memory_value_to_string location) ^ " writing " ^ (memory_value_to_string value) ^ " across " ^ (string_of_int length) ^ " bytes\n" ^
+ " Write_mem at " ^ (memory_value_to_string E_big_endian location) ^ " writing " ^ (memory_value_to_string E_big_endian value) ^ " across " ^ (string_of_int length) ^ " bytes\n" ^
(format_events events)
| ((E_barrier b_kind)::events) ->
" Memory_barrier occurred\n" ^
diff --git a/src/lem_interp/printing_functions.mli b/src/lem_interp/printing_functions.mli
index e5b285fa..2b792ebb 100644
--- a/src/lem_interp/printing_functions.mli
+++ b/src/lem_interp/printing_functions.mli
@@ -59,11 +59,11 @@ val print_instruction : (string -> unit) -> instruction -> unit
val register_value_to_string : register_value -> string
-val memory_value_to_string : memory_value -> string
+val memory_value_to_string : end_flag -> memory_value -> string
val logfile_register_value_to_string : register_value -> string
-val logfile_memory_value_to_string : memory_value -> string
+val logfile_memory_value_to_string : end_flag -> memory_value -> string
val logfile_address_to_string : address -> string
val byte_list_to_string : byte list -> string