From 1bb77b31f84946f036c0b7e37245809bbdb82def Mon Sep 17 00:00:00 2001 From: Shaked Flur Date: Thu, 18 Jul 2019 10:13:10 +0100 Subject: Support DMB/DSB domains --- lib/regfp.sail | 59 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 25 deletions(-) (limited to 'lib') diff --git a/lib/regfp.sail b/lib/regfp.sail index da9c11d6..070ff524 100644 --- a/lib/regfp.sail +++ b/lib/regfp.sail @@ -60,31 +60,40 @@ enum write_kind = { Write_X86_locked } -enum barrier_kind = { - Barrier_Sync, - Barrier_LwSync, - Barrier_Eieio, - Barrier_Isync, - Barrier_DMB, - Barrier_DMB_ST, - Barrier_DMB_LD, - Barrier_DSB, - Barrier_DSB_ST, - Barrier_DSB_LD, - Barrier_ISB, - Barrier_MIPS_SYNC, - Barrier_RISCV_rw_rw, - Barrier_RISCV_r_rw, - Barrier_RISCV_r_r, - Barrier_RISCV_rw_w, - Barrier_RISCV_w_w, - Barrier_RISCV_w_rw, - Barrier_RISCV_rw_r, - Barrier_RISCV_r_w, - Barrier_RISCV_w_r, - Barrier_RISCV_tso, - Barrier_RISCV_i, - Barrier_x86_MFENCE +enum a64_barrier_domain = { + A64_FullShare, + A64_InnerShare, + A64_OuterShare, + A64_NonShare +} + +enum a64_barrier_type = { + A64_barrier_all, + A64_barrier_LD, + A64_barrier_ST +} + +union barrier_kind = { + Barrier_Sync : unit, + Barrier_LwSync : unit, + Barrier_Eieio : unit, + Barrier_Isync : unit, + Barrier_DMB : (a64_barrier_domain, a64_barrier_type), + Barrier_DSB : (a64_barrier_domain, a64_barrier_type), + Barrier_ISB : unit, + Barrier_MIPS_SYNC : unit, + Barrier_RISCV_rw_rw : unit, + Barrier_RISCV_r_rw : unit, + Barrier_RISCV_r_r : unit, + Barrier_RISCV_rw_w : unit, + Barrier_RISCV_w_w : unit, + Barrier_RISCV_w_rw : unit, + Barrier_RISCV_rw_r : unit, + Barrier_RISCV_r_w : unit, + Barrier_RISCV_w_r : unit, + Barrier_RISCV_tso : unit, + Barrier_RISCV_i : unit, + Barrier_x86_MFENCE : unit } enum trans_kind = { -- cgit v1.2.3