aboutsummaryrefslogtreecommitdiff
path: root/handwritten_support
diff options
context:
space:
mode:
authorPrashanth Mundkur <prashanth.mundkur@gmail.com>2020-01-07 17:09:57 -0800
committerPrashanth Mundkur <prashanth.mundkur@gmail.com>2020-01-07 17:09:57 -0800
commit778301c9a2f483523e83581d7cffb93effb75134 (patch)
tree3691b22682552587b8c50b3b63a32a366d6b3274 /handwritten_support
parente15f302b12df29014c5dd6d19bbacf12be19ff4d (diff)
parentdfebc748f8a762718cfda1f1a1201debe754a9c6 (diff)
downloadsail-riscv-778301c9a2f483523e83581d7cffb93effb75134.zip
sail-riscv-778301c9a2f483523e83581d7cffb93effb75134.tar.gz
sail-riscv-778301c9a2f483523e83581d7cffb93effb75134.tar.bz2
Merge branch 'master' into rsnikhil.
Diffstat (limited to 'handwritten_support')
-rw-r--r--handwritten_support/0.11/mem_metadata.lem16
-rw-r--r--handwritten_support/mem_metadata.lem16
-rw-r--r--handwritten_support/mem_metadata.v11
3 files changed, 43 insertions, 0 deletions
diff --git a/handwritten_support/0.11/mem_metadata.lem b/handwritten_support/0.11/mem_metadata.lem
new file mode 100644
index 0000000..8a8c070
--- /dev/null
+++ b/handwritten_support/0.11/mem_metadata.lem
@@ -0,0 +1,16 @@
+open import Pervasives
+open import Pervasives_extra
+open import Sail2_instr_kinds
+open import Sail2_values
+open import Sail2_operators_mwords
+open import Sail2_prompt_monad
+open import Sail2_prompt
+
+val write_ram : forall 'rv 'e 'a 'n. Size 'a, Size 'n => write_kind -> mword 'a -> integer -> mword 'n -> unit -> monad 'rv bool 'e
+let write_ram wk addr width data meta =
+ write_mem wk () addr width data
+
+val read_ram : forall 'rv 'e 'a 'n. Size 'a, Size 'n => read_kind -> mword 'a -> integer -> bool -> monad 'rv (mword 'n * unit) 'e
+let read_ram rk addr width read_tag =
+ read_mem rk () addr width >>= (fun (data : mword 'n) ->
+ return (data, ()))
diff --git a/handwritten_support/mem_metadata.lem b/handwritten_support/mem_metadata.lem
new file mode 100644
index 0000000..8a8c070
--- /dev/null
+++ b/handwritten_support/mem_metadata.lem
@@ -0,0 +1,16 @@
+open import Pervasives
+open import Pervasives_extra
+open import Sail2_instr_kinds
+open import Sail2_values
+open import Sail2_operators_mwords
+open import Sail2_prompt_monad
+open import Sail2_prompt
+
+val write_ram : forall 'rv 'e 'a 'n. Size 'a, Size 'n => write_kind -> mword 'a -> integer -> mword 'n -> unit -> monad 'rv bool 'e
+let write_ram wk addr width data meta =
+ write_mem wk () addr width data
+
+val read_ram : forall 'rv 'e 'a 'n. Size 'a, Size 'n => read_kind -> mword 'a -> integer -> bool -> monad 'rv (mword 'n * unit) 'e
+let read_ram rk addr width read_tag =
+ read_mem rk () addr width >>= (fun (data : mword 'n) ->
+ return (data, ()))
diff --git a/handwritten_support/mem_metadata.v b/handwritten_support/mem_metadata.v
new file mode 100644
index 0000000..0e53888
--- /dev/null
+++ b/handwritten_support/mem_metadata.v
@@ -0,0 +1,11 @@
+Require Import Sail2_instr_kinds.
+Require Import Sail2_values.
+Require Import Sail2_operators_mwords.
+Require Import Sail2_prompt_monad.
+Require Import Sail2_prompt.
+
+Definition write_ram {rv e a} wk (addr : mword a) size (v : mword (8 * size)) (meta : unit) : monad rv bool e := write_mem wk a addr size v.
+
+Definition read_ram {rv e a} rk (addr : mword a) size (read_tag : bool) `{ArithFact (size >= 0)} : monad rv (mword (8 * size) * unit) e :=
+ read_mem rk a addr size >>= fun data =>
+ returnm (data, tt).