summaryrefslogtreecommitdiff
path: root/src/lem_interp/interp_interface.lem
diff options
context:
space:
mode:
authorPeter Sewell2014-11-23 00:39:59 +0000
committerPeter Sewell2014-11-23 00:39:59 +0000
commitc5dc540e5b2fe0e4ef0ecb0d607cef60ac6d2c66 (patch)
tree2c735ac63b9e82f40ca23bc3bfb5fb4ab8c00d61 /src/lem_interp/interp_interface.lem
parent898f5a71e3a126979857d064db8bbe49fd607523 (diff)
make interface build again, oops
Diffstat (limited to 'src/lem_interp/interp_interface.lem')
-rw-r--r--src/lem_interp/interp_interface.lem18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/lem_interp/interp_interface.lem b/src/lem_interp/interp_interface.lem
index 023be33b..6a70990b 100644
--- a/src/lem_interp/interp_interface.lem
+++ b/src/lem_interp/interp_interface.lem
@@ -410,19 +410,23 @@ val byte_lifted_unknown : byte_lifted
let byte_lifted_unknown = Byte_lifted (List.replicate 8 Bitl_unknown)
val memory_value_unknown : int (*the number of bytes*) -> memory_value
-let memory_value_unknown (width:int) : memory_value_lifted =
- List.replicate width byte_lifted_unknown
+let memory_value_unknown (width:int) : memory_value =
+ List.replicate (natFromInt width) byte_lifted_unknown
val add_address_int : address -> int -> address
(* TODO: let add_address_int (a:address) (i:int) : address = *)
val clear_low_order_bits_of_address : address -> address
-let clear_low_order_bits_of_address bytes =
- let (Address [b0;b1;b2;b3;b4;b5;b6;b7]) = bytes in
- let (Byte [bt0;bt1;bt2;bt3;bt4;bt5;bt6;bt7]) = bytes in
- let b7' = Byte [bt0;bt1;bt2;bt3;bt4;bt5;Bitc_zero;Bitc_zero] in
- Address [b0;b1;b2;b3;b4;b5;b6;b7']
+let clear_low_order_bits_of_address a =
+ match a with
+ | Address [b0;b1;b2;b3;b4;b5;b6;b7] ->
+ match b7 with
+ | Byte [bt0;bt1;bt2;bt3;bt4;bt5;bt6;bt7] ->
+ let b7' = Byte [bt0;bt1;bt2;bt3;bt4;bt5;Bitc_zero;Bitc_zero] in
+ Address [b0;b1;b2;b3;b4;b5;b6;b7']
+ end
+ end
val memory_value_length : memory_value -> integer
let memory_value_length (mv:memory_value) = integerFromNat (List.length mv)