summaryrefslogtreecommitdiff
path: root/src/gen_lib/prompt_monad.lem
diff options
context:
space:
mode:
authorThomas Bauereiss2018-02-27 16:48:09 +0000
committerThomas Bauereiss2018-02-27 16:58:37 +0000
commitb0059c866f3b9b567bf195387abf7b7f32a497e1 (patch)
treecb6e1adafae907f5b173c4a31c30a8719ab264ee /src/gen_lib/prompt_monad.lem
parent1db4afd7cb336455133422f640389c444b0a7b12 (diff)
Get MIPS translated to Lem
Diffstat (limited to 'src/gen_lib/prompt_monad.lem')
-rw-r--r--src/gen_lib/prompt_monad.lem6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gen_lib/prompt_monad.lem b/src/gen_lib/prompt_monad.lem
index 3c414d6e..0966f911 100644
--- a/src/gen_lib/prompt_monad.lem
+++ b/src/gen_lib/prompt_monad.lem
@@ -123,6 +123,9 @@ let read_mem rk addr sz =
let k bytes = Done (bits_of_mem_bytes bytes) in
Read_mem rk (bits_of addr) (natFromInteger sz) k
+val read_tag : forall 'rv 'a 'e. Bitvector 'a => 'a -> monad 'rv bitU 'e
+let read_tag addr = Read_tag (bits_of addr) return
+
val excl_result : forall 'rv 'e. unit -> monad 'rv bool 'e
let excl_result () =
let k successful = (return successful) in
@@ -137,6 +140,9 @@ let write_mem_val v = match mem_bytes_of_bits v with
| Nothing -> Fail "write_mem_val"
end
+val write_tag_val : forall 'rv 'e. bitU -> monad 'rv bool 'e
+let write_tag_val b = Write_tagv b return
+
val read_reg : forall 's 'rv 'a 'e. register_ref 's 'rv 'a -> monad 'rv 'a 'e
let read_reg reg =
let k v =