@@ -67,6 +67,10 @@ SAIL_DEFAULT_INST += riscv_insts_vext_red.sail
6767SAIL_DEFAULT_INST += riscv_insts_vext_fp_red.sail
6868SAIL_DEFAULT_INST += riscv_insts_zicbom.sail
6969SAIL_DEFAULT_INST += riscv_insts_zicboz.sail
70+ SAIL_DEFAULT_INST += riscv_insts_zvbb.sail
71+ SAIL_DEFAULT_INST += riscv_insts_zvbc.sail
72+ SAIL_DEFAULT_INST += riscv_insts_zimop.sail
73+ SAIL_DEFAULT_INST += riscv_insts_zcmop.sail
7074
7175SAIL_SEQ_INST = $(SAIL_DEFAULT_INST) riscv_jalr_seq.sail
7276SAIL_RMEM_INST = $(SAIL_DEFAULT_INST) riscv_jalr_rmem.sail riscv_insts_rmem.sail
@@ -94,7 +98,7 @@ SAIL_VM_SRCS += riscv_vmem_tlb.sail
9498SAIL_VM_SRCS += riscv_vmem.sail
9599
96100# Non-instruction sources
97- PRELUDE = prelude.sail riscv_errors.sail $(SAIL_XLEN) $(SAIL_FLEN) $(SAIL_VLEN) prelude_mem_addrtype.sail prelude_mem_metadata.sail prelude_mem.sail
101+ PRELUDE = prelude.sail riscv_errors.sail $(SAIL_XLEN) $(SAIL_FLEN) $(SAIL_VLEN) prelude_mem_addrtype.sail prelude_mem_metadata.sail prelude_mem.sail arithmetic.sail
98102
99103SAIL_REGS_SRCS = riscv_csr_begin.sail # Start of CSR scattered definitions.
100104SAIL_REGS_SRCS += riscv_reg_type.sail riscv_freg_type.sail riscv_regs.sail riscv_pc_access.sail riscv_sys_regs.sail
@@ -125,6 +129,7 @@ SAIL_RVFI_SRCS = $(addprefix model/,$(SAIL_ARCH_RVFI_SRCS) $(SAIL_SEQ_INST_SRCS)
125129SAIL_COQ_SRCS = $(addprefix model/,$(SAIL_ARCH_SRCS) $(SAIL_SEQ_INST_SRCS) $(SAIL_OTHER_SRCS) $(SAIL_OTHER_COQ_SRCS))
126130
127131SAIL_FLAGS += --require-version 0.19
132+ SAIL_FLAGS += --config config/default.json
128133SAIL_FLAGS += --strict-var
129134SAIL_FLAGS += -dno_cast
130135SAIL_DOC_FLAGS ?= -doc_embed plain
@@ -142,8 +147,8 @@ export LEM_DIR
142147
143148C_WARNINGS ?=
144149#-Wall -Wextra -Wno-unused-label -Wno-unused-parameter -Wno-unused-but-set-variable -Wno-unused-function
145- C_INCS = $(addprefix c_emulator/,riscv_prelude.h riscv_platform_impl.h riscv_platform.h riscv_softfloat.h)
146- C_SRCS = $(addprefix c_emulator/,riscv_prelude.c riscv_platform_impl.c riscv_platform.c riscv_softfloat.c riscv_sim.c )
150+ C_INCS = $(addprefix c_emulator/,riscv_prelude.h riscv_sail.h riscv_config.h riscv_platform_impl.h riscv_platform.h riscv_softfloat.h rvfi_dii .h)
151+ C_SRCS = $(addprefix c_emulator/,riscv_prelude.cpp riscv_platform_impl.cpp riscv_platform.cpp riscv_softfloat.c rvfi_dii.cpp riscv_sim.cpp )
147152
148153SOFTFLOAT_DIR = dependencies/softfloat/berkeley-softfloat-3
149154SOFTFLOAT_INCDIR = $(SOFTFLOAT_DIR)/source/include
@@ -205,6 +210,9 @@ all: c_emulator/riscv_sim_$(ARCH)
205210check: $(SAIL_SRCS) model/main.sail Makefile.old
206211 $(SAIL) $(SAIL_FLAGS) $(SAIL_SRCS) model/main.sail
207212
213+ check_properties: $(SAIL_SRCS) Makefile.old
214+ $(SAIL) --smt --smt-auto --smt-auto-solver z3 $(SAIL_FLAGS) $(SAIL_SRCS)
215+
208216interpret: $(SAIL_SRCS) model/main.sail
209217 $(SAIL) -i $(SAIL_FLAGS) $(SAIL_SRCS) model/main.sail
210218
0 commit comments