diff options
| author | Gabriel Kerneis | 2014-02-12 17:02:02 +0000 |
|---|---|---|
| committer | Gabriel Kerneis | 2014-02-12 17:02:02 +0000 |
| commit | cdcd5880a27ff16fdafb82bdaab57ab361e1f546 (patch) | |
| tree | 9e9ff60c776b83d89457afc6f317681fb4adae79 /src/lem_interp | |
| parent | 44e619d7e80e4f148febf21ebe5115dfdd56cf0f (diff) | |
Fix endianess issues
Diffstat (limited to 'src/lem_interp')
| -rw-r--r-- | src/lem_interp/interp.lem | 6 | ||||
| -rw-r--r-- | src/lem_interp/run_interp.ml | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem index a9e87056..0d43f338 100644 --- a/src/lem_interp/interp.lem +++ b/src/lem_interp/interp.lem @@ -173,12 +173,16 @@ let litV_to_vec l = match l with | L_hex s -> let hexes = String.toCharList s in + (* XXX unimplemented *) V_vector 0 true [] | L_bin s -> let bits = String.toCharList s in let exploded_bits = List.map (fun c -> String.toString [c]) bits in let bits = List.map (fun s -> match s with | "0" -> (V_lit L_zero) | "1" -> (V_lit L_one) end) exploded_bits in - V_vector 0 true bits + (* 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) 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 beeefc7a..84ba37df 100644 --- a/src/lem_interp/run_interp.ml +++ b/src/lem_interp/run_interp.ml @@ -29,8 +29,8 @@ let rec val_to_string = function | V_list l -> let repr = String.concat "; " (List.map val_to_string l) in sprintf "list [%s]" repr - | V_vector (first_index, msb, l) -> - let order = if msb then "big-endian" else "little-endian" in + | V_vector (first_index, inc, l) -> + let order = if inc then "little-endian" else "big-endian" in let repr = String.concat "; " (List.map val_to_string l) in sprintf "vector [%s] (%s, from %s)" repr order (Big_int.string_of_big_int first_index) | V_record l -> |
