summaryrefslogtreecommitdiff
path: root/x86/x86_extras_embed.lem
diff options
context:
space:
mode:
authorShaked Flur2017-11-30 15:40:43 +0000
committerShaked Flur2017-11-30 15:40:43 +0000
commit9e1309ab7c1a137324c88c272c5a76c4c8bce016 (patch)
tree854889fe87e8f443d4e0aafa26b970a88faf61bb /x86/x86_extras_embed.lem
parent16c269d6f26fd69d8788c448b87f4bb479a6ef66 (diff)
match what rmem (ppcmem2) expects from ISA Makefiles
Diffstat (limited to 'x86/x86_extras_embed.lem')
-rw-r--r--x86/x86_extras_embed.lem24
1 files changed, 24 insertions, 0 deletions
diff --git a/x86/x86_extras_embed.lem b/x86/x86_extras_embed.lem
new file mode 100644
index 00000000..f5130995
--- /dev/null
+++ b/x86/x86_extras_embed.lem
@@ -0,0 +1,24 @@
+open import Pervasives
+open import Pervasives_extra
+open import Sail_impl_base
+open import Sail_values
+open import Prompt
+
+val rMEM : (vector bitU * integer) -> M (vector bitU)
+val rMEM_locked : (vector bitU * integer) -> M (vector bitU)
+
+let rMEM (addr,size) = read_mem false Read_plain addr size
+let rMEM_locked (addr,size) = read_mem false Read_X86_locked addr size
+
+val MEMea : (vector bitU * integer) -> M unit
+val MEMea_locked : (vector bitU * integer) -> M unit
+
+let MEMea (addr,size) = write_mem_ea Write_plain addr size
+let MEMea_locked (addr,size) = write_mem_ea Write_X86_locked addr size
+
+val MEMval : (vector bitU * integer * vector bitU) -> M unit
+val MEMval_conditional : (vector bitU * integer * vector bitU) -> M bitU
+
+let MEMval (_,_,v) = write_mem_val v >>= fun _ -> return ()
+
+let X86_MFENCE () = barrier Barrier_x86_MFENCE