summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGabriel Kerneis2014-03-19 17:26:06 +0000
committerGabriel Kerneis2014-03-19 17:26:28 +0000
commit37998039c75a6521fb91a5664aa0a3dce8879155 (patch)
treead2c149bec061adc78a6416736f9d69eedc8fcd3 /src
parentab0b98f783644242454a6e76715b03f43bfc94c6 (diff)
Fix endianness
This will never end…
Diffstat (limited to 'src')
-rw-r--r--src/lem_interp/interp.lem7
-rw-r--r--src/lem_interp/run_interp.ml4
2 files changed, 5 insertions, 6 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem
index 91e0ddc2..8a9ebfe5 100644
--- a/src/lem_interp/interp.lem
+++ b/src/lem_interp/interp.lem
@@ -215,10 +215,9 @@ let litV_to_vec (L_aux lit l) =
let bits = String.toCharList s in
let exploded_bits = bits in (*List.map (fun c -> String.toString [c]) bits in*)
let bits = List.map (fun s -> match s with | #'0' -> (V_lit (L_aux L_zero l)) | #'1' -> (V_lit (L_aux L_one l)) end) exploded_bits in
- (* XXX assume binary constants are written in big-endian, convert them to
- * little-endian by default - we might need syntax to change both of those
- * assumptions. *)
- V_vector 0 true (List.reverse bits)
+ (* XXX assume binary constants are written in big-endian,
+ * we might need syntax to change this assumption. *)
+ V_vector 0 true bits
end
(* Like List_extra.nth with a natural instead of nat index -
diff --git a/src/lem_interp/run_interp.ml b/src/lem_interp/run_interp.ml
index 37ee7770..8ae6d1ee 100644
--- a/src/lem_interp/run_interp.ml
+++ b/src/lem_interp/run_interp.ml
@@ -30,7 +30,7 @@ let loc_to_string = function
" to line " ^ (string_of_int tline) ^ " character " ^ (string_of_int tchar)
;;
-let bitvec_to_string l = "0b" ^ (String.concat "" (List.rev_map (function
+let bitvec_to_string l = "0b" ^ (String.concat "" (List.map (function
| V_lit(L_aux(L_zero, _)) -> "0"
| V_lit(L_aux(L_one, _)) -> "1"
| _ -> assert false) l))
@@ -53,7 +53,7 @@ let rec val_to_string = function
| V_vector (first_index, inc, l) ->
let order = if inc then "big-endian" else "little-endian" in
let repr =
- try bitvec_to_string l
+ try bitvec_to_string (if inc then l else List.rev l)
with Failure _ -> String.concat "; " (List.map val_to_string l) in
sprintf "vector [%s] (%s, from %s)" repr order (string_of_big_int first_index)
| V_record(_, l) ->