diff options
| author | Kathy Gray | 2015-11-10 10:56:05 +0000 |
|---|---|---|
| committer | Kathy Gray | 2015-11-10 10:56:15 +0000 |
| commit | 09999eab60f50dde712deac828e92ef699f06964 (patch) | |
| tree | 9c6b19965a30b8c43d3f82d20e4e0196d56c679f /src/lem_interp/interp_interface.lem | |
| parent | 34fa318e6be2246acb1d8e8286cfa014eca8eb9e (diff) | |
Make first half of sequential interpreter driver compile again
Diffstat (limited to 'src/lem_interp/interp_interface.lem')
| -rw-r--r-- | src/lem_interp/interp_interface.lem | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lem_interp/interp_interface.lem b/src/lem_interp/interp_interface.lem index 85ea4cfe..ae64f96c 100644 --- a/src/lem_interp/interp_interface.lem +++ b/src/lem_interp/interp_interface.lem @@ -1176,7 +1176,19 @@ let register_value_of_address (Address bytes _) dir : register_value = rv_start_internal = if dir = D_increasing then 0 else (List.length bits) - 1 |> - +val register_value_of_memory_value : memory_value -> direction -> register_value +let register_value_of_memory_value bytes dir : register_value = + let bitls = List.concatMap (fun (Byte_lifted bs) -> bs) bytes in + <| rv_bits = bitls; + rv_dir = dir; + rv_start = 0; + rv_start_internal = if dir = D_increasing then 0 else (List.length bitls) - 1 + |> + +val memory_value_of_register_value: register_value -> memory_value +let memory_value_of_register_value r = + (byte_lifteds_of_bit_lifteds r.rv_bits) + val address_lifted_of_register_value : register_value -> maybe address_lifted (* returning Nothing iff the register value is not 64 bits wide, but allowing Bitl_undef and Bitl_unknown *) |
