summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaked Flur2018-12-22 15:40:32 +0000
committerShaked Flur2018-12-22 15:40:32 +0000
commit8dbe18b8976e30fa88814542ea913ddc4193cd8b (patch)
tree98db232842e004dcf188b8d0aca2bcafb1bd5084
parentd99dd3833e8ebf89c586cc5316582a3c62ad7997 (diff)
Added RISC-V fence.tso
-rw-r--r--etc/regfp.sail1
-rw-r--r--lib/regfp.sail1
-rw-r--r--src/lem_interp/sail2_instr_kinds.lem7
3 files changed, 7 insertions, 2 deletions
diff --git a/etc/regfp.sail b/etc/regfp.sail
index 9a6172a9..de842c5c 100644
--- a/etc/regfp.sail
+++ b/etc/regfp.sail
@@ -75,6 +75,7 @@ typedef barrier_kind = enumerate {
Barrier_RISCV_r_r;
Barrier_RISCV_rw_w;
Barrier_RISCV_w_w;
+ Barrier_RISCV_tso;
Barrier_RISCV_i;
Barrier_x86_MFENCE;
}
diff --git a/lib/regfp.sail b/lib/regfp.sail
index fcf10850..cc017585 100644
--- a/lib/regfp.sail
+++ b/lib/regfp.sail
@@ -79,6 +79,7 @@ enum barrier_kind = {
Barrier_RISCV_rw_r,
Barrier_RISCV_r_w,
Barrier_RISCV_w_r,
+ Barrier_RISCV_tso,
Barrier_RISCV_i,
Barrier_x86_MFENCE
}
diff --git a/src/lem_interp/sail2_instr_kinds.lem b/src/lem_interp/sail2_instr_kinds.lem
index 3d238676..eadc85bf 100644
--- a/src/lem_interp/sail2_instr_kinds.lem
+++ b/src/lem_interp/sail2_instr_kinds.lem
@@ -155,6 +155,7 @@ type barrier_kind =
| Barrier_RISCV_rw_r
| Barrier_RISCV_r_w
| Barrier_RISCV_w_r
+ | Barrier_RISCV_tso
| Barrier_RISCV_i
(* X86 *)
| Barrier_x86_MFENCE
@@ -184,6 +185,7 @@ instance (Show barrier_kind)
| Barrier_RISCV_rw_r -> "Barrier_RISCV_rw_r"
| Barrier_RISCV_r_w -> "Barrier_RISCV_r_w"
| Barrier_RISCV_w_r -> "Barrier_RISCV_w_r"
+ | Barrier_RISCV_tso -> "Barrier_RISCV_tso"
| Barrier_RISCV_i -> "Barrier_RISCV_i"
| Barrier_x86_MFENCE -> "Barrier_x86_MFENCE"
end
@@ -300,7 +302,8 @@ instance (EnumerationType barrier_kind)
| Barrier_RISCV_rw_r -> 19
| Barrier_RISCV_r_w -> 20
| Barrier_RISCV_w_r -> 21
- | Barrier_RISCV_i -> 22
- | Barrier_x86_MFENCE -> 23
+ | Barrier_RISCV_tso -> 22
+ | Barrier_RISCV_i -> 23
+ | Barrier_x86_MFENCE -> 24
end
end