diff options
| author | Thomas Bauereiss | 2018-02-27 16:48:09 +0000 |
|---|---|---|
| committer | Thomas Bauereiss | 2018-02-27 16:58:37 +0000 |
| commit | b0059c866f3b9b567bf195387abf7b7f32a497e1 (patch) | |
| tree | cb6e1adafae907f5b173c4a31c30a8719ab264ee /src/gen_lib/prompt_monad.lem | |
| parent | 1db4afd7cb336455133422f640389c444b0a7b12 (diff) | |
Get MIPS translated to Lem
Diffstat (limited to 'src/gen_lib/prompt_monad.lem')
| -rw-r--r-- | src/gen_lib/prompt_monad.lem | 6 |
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 = |
