aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Schmidt <colins@eecs.berkeley.edu>2016-02-29 10:00:15 -0800
committerColin Schmidt <colins@eecs.berkeley.edu>2016-02-29 10:54:27 -0800
commitaf7bcec998b72b2b91180c83b45151201fa1c150 (patch)
treee632d433c598b38499df4e299b893800ad00e428
parent9e63c8544ea2e0aea6778defb7b535dbb87b7205 (diff)
downloadriscv-tests-travis-dev.zip
riscv-tests-travis-dev.tar.gz
riscv-tests-travis-dev.tar.bz2
Separate M, and A from I. Allow disabling of M,A,Ftravis-dev
This allows riscv-tests to be built with a compiler that supports not just RVG.
-rw-r--r--Makefile.in8
-rw-r--r--benchmarks/mm/bmark.mk4
-rwxr-xr-xconfigure50
-rw-r--r--configure.ac15
-rw-r--r--isa/Makefile18
-rw-r--r--isa/rv32mi/Makefrag2
-rw-r--r--isa/rv32ua/Makefrag15
-rw-r--r--isa/rv32ua/amoadd_w.S (renamed from isa/rv32ui/amoadd_w.S)0
-rw-r--r--isa/rv32ua/amoand_w.S (renamed from isa/rv32ui/amoand_w.S)0
-rw-r--r--isa/rv32ua/amomax_w.S (renamed from isa/rv32ui/amomax_w.S)0
-rw-r--r--isa/rv32ua/amomaxu_w.S (renamed from isa/rv32ui/amomaxu_w.S)0
-rw-r--r--isa/rv32ua/amomin_w.S (renamed from isa/rv32ui/amomin_w.S)0
-rw-r--r--isa/rv32ua/amominu_w.S (renamed from isa/rv32ui/amominu_w.S)0
-rw-r--r--isa/rv32ua/amoor_w.S (renamed from isa/rv32ui/amoor_w.S)0
-rw-r--r--isa/rv32ua/amoswap_w.S (renamed from isa/rv32ui/amoswap_w.S)0
-rw-r--r--isa/rv32ua/lrsc.S (renamed from isa/rv32ui/lrsc.S)0
-rw-r--r--isa/rv32ui/Makefrag10
-rw-r--r--isa/rv32um/Makefrag14
-rw-r--r--isa/rv32um/div.S (renamed from isa/rv32ui/div.S)0
-rw-r--r--isa/rv32um/divu.S (renamed from isa/rv32ui/divu.S)0
-rw-r--r--isa/rv32um/divuw.S (renamed from isa/rv32ui/divuw.S)0
-rw-r--r--isa/rv32um/divw.S (renamed from isa/rv32ui/divw.S)0
-rw-r--r--isa/rv32um/mul.S (renamed from isa/rv32ui/mul.S)0
-rw-r--r--isa/rv32um/mulh.S (renamed from isa/rv32ui/mulh.S)0
-rw-r--r--isa/rv32um/mulhsu.S (renamed from isa/rv32ui/mulhsu.S)0
-rw-r--r--isa/rv32um/mulhu.S (renamed from isa/rv32ui/mulhu.S)0
-rw-r--r--isa/rv32um/mulw.S (renamed from isa/rv32ui/mulw.S)0
-rw-r--r--isa/rv32um/rem.S (renamed from isa/rv32ui/rem.S)0
-rw-r--r--isa/rv32um/remu.S (renamed from isa/rv32ui/remu.S)0
-rw-r--r--isa/rv64mi/Makefrag2
-rw-r--r--isa/rv64ua/Makefrag17
-rw-r--r--isa/rv64ua/amoadd_d.S (renamed from isa/rv64ui/amoadd_d.S)0
-rw-r--r--isa/rv64ua/amoadd_w.S (renamed from isa/rv64ui/amoadd_w.S)0
-rw-r--r--isa/rv64ua/amoand_d.S (renamed from isa/rv64ui/amoand_d.S)0
-rw-r--r--isa/rv64ua/amoand_w.S (renamed from isa/rv64ui/amoand_w.S)0
-rw-r--r--isa/rv64ua/amomax_d.S (renamed from isa/rv64ui/amomax_d.S)0
-rw-r--r--isa/rv64ua/amomax_w.S (renamed from isa/rv64ui/amomax_w.S)0
-rw-r--r--isa/rv64ua/amomaxu_d.S (renamed from isa/rv64ui/amomaxu_d.S)0
-rw-r--r--isa/rv64ua/amomaxu_w.S (renamed from isa/rv64ui/amomaxu_w.S)0
-rw-r--r--isa/rv64ua/amomin_d.S (renamed from isa/rv64ui/amomin_d.S)0
-rw-r--r--isa/rv64ua/amomin_w.S (renamed from isa/rv64ui/amomin_w.S)0
-rw-r--r--isa/rv64ua/amominu_d.S (renamed from isa/rv64ui/amominu_d.S)0
-rw-r--r--isa/rv64ua/amominu_w.S (renamed from isa/rv64ui/amominu_w.S)0
-rw-r--r--isa/rv64ua/amoor_d.S (renamed from isa/rv64ui/amoor_d.S)0
-rw-r--r--isa/rv64ua/amoor_w.S (renamed from isa/rv64ui/amoor_w.S)0
-rw-r--r--isa/rv64ua/amoswap_d.S (renamed from isa/rv64ui/amoswap_d.S)0
-rw-r--r--isa/rv64ua/amoswap_w.S (renamed from isa/rv64ui/amoswap_w.S)0
-rw-r--r--isa/rv64ua/amoxor_d.S (renamed from isa/rv64ui/amoxor_d.S)0
-rw-r--r--isa/rv64ua/amoxor_w.S (renamed from isa/rv64ui/amoxor_w.S)0
-rw-r--r--isa/rv64ua/lrsc.S (renamed from isa/rv64ui/lrsc.S)0
-rw-r--r--isa/rv64ui/Makefrag11
-rw-r--r--isa/rv64um/Makefrag14
-rw-r--r--isa/rv64um/div.S (renamed from isa/rv64ui/div.S)0
-rw-r--r--isa/rv64um/divu.S (renamed from isa/rv64ui/divu.S)0
-rw-r--r--isa/rv64um/divuw.S (renamed from isa/rv64ui/divuw.S)0
-rw-r--r--isa/rv64um/divw.S (renamed from isa/rv64ui/divw.S)0
-rw-r--r--isa/rv64um/mul.S (renamed from isa/rv64ui/mul.S)0
-rw-r--r--isa/rv64um/mulh.S (renamed from isa/rv64ui/mulh.S)0
-rw-r--r--isa/rv64um/mulhsu.S (renamed from isa/rv64ui/mulhsu.S)0
-rw-r--r--isa/rv64um/mulhu.S (renamed from isa/rv64ui/mulhu.S)0
-rw-r--r--isa/rv64um/mulw.S (renamed from isa/rv64ui/mulw.S)0
-rw-r--r--isa/rv64um/rem.S (renamed from isa/rv64ui/rem.S)0
-rw-r--r--isa/rv64um/remu.S (renamed from isa/rv64ui/remu.S)0
-rw-r--r--isa/rv64um/remuw.S (renamed from isa/rv64ui/remuw.S)0
-rw-r--r--isa/rv64um/remw.S (renamed from isa/rv64ui/remw.S)0
65 files changed, 159 insertions, 21 deletions
diff --git a/Makefile.in b/Makefile.in
index 541263b..26f2534 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -4,6 +4,10 @@ instbasedir := $(DESTDIR)$(prefix)
bmarkdir := $(abs_top_src_dir)/benchmarks
isa_src_dir := $(abs_top_src_dir)/isa
+TEST_ENABLE_M :=@enable_M@
+TEST_ENABLE_A :=@enable_A@
+TEST_ENABLE_F :=@enable_F@
+
all: benchmarks isa
install: all
@@ -14,11 +18,11 @@ install: all
benchmarks:
mkdir -p benchmarks
- $(MAKE) -C benchmarks -f $(bmarkdir)/Makefile bmarkdir=$(bmarkdir)
+ $(MAKE) -C benchmarks -f $(bmarkdir)/Makefile bmarkdir=$(bmarkdir) TEST_ENABLE_F=$(TEST_ENABLE_F)
isa:
mkdir -p isa
- $(MAKE) -C isa -f $(isa_src_dir)/Makefile isa_src_dir=$(isa_src_dir)
+ $(MAKE) -C isa -f $(isa_src_dir)/Makefile isa_src_dir=$(isa_src_dir) TEST_ENABLE_M=$(TEST_ENABLE_M) TEST_ENABLE_A=$(TEST_ENABLE_A) TEST_ENABLE_F=$(TEST_ENABLE_F)
clean:
$(MAKE) -f $(isa_src_dir)/Makefile isa_src_dir=$(isa_src_dir) clean
diff --git a/benchmarks/mm/bmark.mk b/benchmarks/mm/bmark.mk
index ec8fd16..c7ead35 100644
--- a/benchmarks/mm/bmark.mk
+++ b/benchmarks/mm/bmark.mk
@@ -23,6 +23,10 @@ mm_host_bin = mm.host
$(mm_host_bin) : $(mm_c_src)
$(HOST_COMP) $^ -o $(mm_host_bin)
+ifeq ($(TEST_ENABLE_F),no)
+RISCV_LINK_OPTS += -lm
+endif
+
mm_riscv_bin = mm.riscv
$(mm_riscv_bin) : $(mm_c_objs) $(mm_riscv_objs)
$(RISCV_LINK) $(mm_c_objs) $(mm_riscv_objs) -o $(mm_riscv_bin) $(RISCV_LINK_OPTS)
diff --git a/configure b/configure
index d0b558b..1b08516 100755
--- a/configure
+++ b/configure
@@ -583,6 +583,9 @@ PACKAGE_URL=''
ac_subst_vars='LTLIBOBJS
LIBOBJS
+enable_F
+enable_A
+enable_M
OBJEXT
EXEEXT
ac_ct_CC
@@ -631,6 +634,9 @@ SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
+enable_M
+enable_A
+enable_F
'
ac_precious_vars='build_alias
host_alias
@@ -1245,6 +1251,14 @@ if test -n "$ac_init_help"; then
esac
cat <<\_ACEOF
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-M Do no build M tests
+ --disable-A Do no build A tests
+ --disable-F Do not build F tests
+
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
@@ -2515,6 +2529,42 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# Check whether --enable-M was given.
+if test "${enable_M+set}" = set; then :
+ enableval=$enable_M;
+fi
+
+if test "x$enable_M" != "xno"; then :
+
+ enable_M=yes
+
+
+fi
+
+# Check whether --enable-A was given.
+if test "${enable_A+set}" = set; then :
+ enableval=$enable_A;
+fi
+
+if test "x$enable_A" != "xno"; then :
+
+ enable_A=yes
+
+
+fi
+
+# Check whether --enable-F was given.
+if test "${enable_F+set}" = set; then :
+ enableval=$enable_F;
+fi
+
+if test "x$enable_F" != "xno"; then :
+
+ enable_F=yes
+
+
+fi
+
ac_config_files="$ac_config_files Makefile"
cat >confcache <<\_ACEOF
diff --git a/configure.ac b/configure.ac
index d85ddd6..a8f3d2b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,6 +3,21 @@ AC_INIT(riscv-tests, 1.0)
cross_compiling=yes
AC_PROG_CC
+AC_ARG_ENABLE([M], AS_HELP_STRING([--disable-M], [Do no build M tests]))
+AS_IF([test "x$enable_M" != "xno"], [
+ AC_SUBST(enable_M,yes)
+])
+
+AC_ARG_ENABLE([A], AS_HELP_STRING([--disable-A], [Do no build A tests]))
+AS_IF([test "x$enable_A" != "xno"], [
+ AC_SUBST(enable_A,yes)
+])
+
+AC_ARG_ENABLE([F], AS_HELP_STRING([--disable-F], [Do not build F tests]))
+AS_IF([test "x$enable_F" != "xno"], [
+ AC_SUBST(enable_F,yes)
+])
+
AC_OUTPUT(
Makefile
)
diff --git a/isa/Makefile b/isa/Makefile
index 415778e..7ffe93e 100644
--- a/isa/Makefile
+++ b/isa/Makefile
@@ -5,10 +5,14 @@
isa_src_dir := .
include $(isa_src_dir)/rv64ui/Makefrag
+include $(isa_src_dir)/rv64um/Makefrag
+include $(isa_src_dir)/rv64ua/Makefrag
include $(isa_src_dir)/rv64uf/Makefrag
include $(isa_src_dir)/rv64si/Makefrag
include $(isa_src_dir)/rv64mi/Makefrag
include $(isa_src_dir)/rv32ui/Makefrag
+include $(isa_src_dir)/rv32um/Makefrag
+include $(isa_src_dir)/rv32ua/Makefrag
include $(isa_src_dir)/rv32si/Makefrag
include $(isa_src_dir)/rv32mi/Makefrag
@@ -73,11 +77,25 @@ tests += $$($(1)_tests)
endef
$(eval $(call compile_template,rv32ui,-m32))
+ifeq ($(TEST_ENABLE_M),yes)
+$(eval $(call compile_template,rv32um,-m32))
+endif
+ifeq ($(TEST_ENABLE_A),yes)
+$(eval $(call compile_template,rv32ua,-m32))
+endif
$(eval $(call compile_template,rv32si,-m32))
$(eval $(call compile_template,rv32mi,-m32))
ifeq ($(XLEN),64)
$(eval $(call compile_template,rv64ui))
+ifeq ($(TEST_ENABLE_M),yes)
+$(eval $(call compile_template,rv64um))
+endif
+ifeq ($(TEST_ENABLE_A),yes)
+$(eval $(call compile_template,rv64ua))
+endif
+ifeq ($(TEST_ENABLE_F),yes)
$(eval $(call compile_template,rv64uf))
+endif
$(eval $(call compile_template,rv64si))
$(eval $(call compile_template,rv64mi))
endif
diff --git a/isa/rv32mi/Makefrag b/isa/rv32mi/Makefrag
index 7560dbc..3f6ecb4 100644
--- a/isa/rv32mi/Makefrag
+++ b/isa/rv32mi/Makefrag
@@ -15,6 +15,8 @@ rv32mi_mc_tests = \
ipi \
rv32mi_p_tests = $(addprefix rv32mi-p-, $(rv32mi_sc_tests))
+ifdef $(TEST_ENABLE_A)
rv32mi_pm_tests = $(addprefix rv32mi-pm-, $(rv32mi_mc_tests))
+endif
spike32_tests += $(rv32mi_p_tests) $(rv32mi_pm_tests)
diff --git a/isa/rv32ua/Makefrag b/isa/rv32ua/Makefrag
new file mode 100644
index 0000000..1846506
--- /dev/null
+++ b/isa/rv32ua/Makefrag
@@ -0,0 +1,15 @@
+#=======================================================================
+# Makefrag for rv32ua tests
+#-----------------------------------------------------------------------
+
+rv32ua_sc_tests = \
+ amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoswap_w \
+
+rv32ua_mc_tests = \
+ lrsc
+
+rv32ua_p_tests = $(addprefix rv32ua-p-, $(rv32ua_sc_tests))
+rv32ua_pt_tests = $(addprefix rv32ua-pt-, $(rv32ua_sc_tests))
+rv32ua_pm_tests = $(addprefix rv32ua-pm-, $(rv32ua_mc_tests))
+
+spike_tests += $(rv32ua_p_tests) $(rv32ua_pt_tests) $(rv32ua_pm_tests)
diff --git a/isa/rv32ui/amoadd_w.S b/isa/rv32ua/amoadd_w.S
index 975ae1d..975ae1d 100644
--- a/isa/rv32ui/amoadd_w.S
+++ b/isa/rv32ua/amoadd_w.S
diff --git a/isa/rv32ui/amoand_w.S b/isa/rv32ua/amoand_w.S
index 7c989c2..7c989c2 100644
--- a/isa/rv32ui/amoand_w.S
+++ b/isa/rv32ua/amoand_w.S
diff --git a/isa/rv32ui/amomax_w.S b/isa/rv32ua/amomax_w.S
index 698cf26..698cf26 100644
--- a/isa/rv32ui/amomax_w.S
+++ b/isa/rv32ua/amomax_w.S
diff --git a/isa/rv32ui/amomaxu_w.S b/isa/rv32ua/amomaxu_w.S
index 27c4ddf..27c4ddf 100644
--- a/isa/rv32ui/amomaxu_w.S
+++ b/isa/rv32ua/amomaxu_w.S
diff --git a/isa/rv32ui/amomin_w.S b/isa/rv32ua/amomin_w.S
index a6a0947..a6a0947 100644
--- a/isa/rv32ui/amomin_w.S
+++ b/isa/rv32ua/amomin_w.S
diff --git a/isa/rv32ui/amominu_w.S b/isa/rv32ua/amominu_w.S
index ce06e1c..ce06e1c 100644
--- a/isa/rv32ui/amominu_w.S
+++ b/isa/rv32ua/amominu_w.S
diff --git a/isa/rv32ui/amoor_w.S b/isa/rv32ua/amoor_w.S
index 0988c66..0988c66 100644
--- a/isa/rv32ui/amoor_w.S
+++ b/isa/rv32ua/amoor_w.S
diff --git a/isa/rv32ui/amoswap_w.S b/isa/rv32ua/amoswap_w.S
index a32ae74..a32ae74 100644
--- a/isa/rv32ui/amoswap_w.S
+++ b/isa/rv32ua/amoswap_w.S
diff --git a/isa/rv32ui/lrsc.S b/isa/rv32ua/lrsc.S
index 2aee818..2aee818 100644
--- a/isa/rv32ui/lrsc.S
+++ b/isa/rv32ua/lrsc.S
diff --git a/isa/rv32ui/Makefrag b/isa/rv32ui/Makefrag
index 9d90b92..9cb0852 100644
--- a/isa/rv32ui/Makefrag
+++ b/isa/rv32ui/Makefrag
@@ -5,18 +5,14 @@
rv32ui_sc_tests = \
simple \
add addi \
- amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoswap_w \
and andi \
auipc \
beq bge bgeu blt bltu bne \
- div divu \
fence_i \
j jal jalr \
lb lbu lh lhu lw \
lui \
- mul mulh mulhu mulhsu \
or ori \
- rem remu \
sb sh sw \
sll slli \
slt slti \
@@ -25,11 +21,7 @@ rv32ui_sc_tests = \
sub \
xor xori \
-rv32ui_mc_tests = \
- lrsc
-
rv32ui_p_tests = $(addprefix rv32ui-p-, $(rv32ui_sc_tests))
rv32ui_pt_tests = $(addprefix rv32ui-pt-, $(rv32ui_sc_tests))
-rv32ui_pm_tests = $(addprefix rv32ui-pm-, $(rv32ui_mc_tests))
-spike_tests += $(rv32ui_p_tests) $(rv32ui_pt_tests) $(rv32ui_pm_tests)
+spike_tests += $(rv32ui_p_tests) $(rv32ui_pt_tests)
diff --git a/isa/rv32um/Makefrag b/isa/rv32um/Makefrag
new file mode 100644
index 0000000..2094ccf
--- /dev/null
+++ b/isa/rv32um/Makefrag
@@ -0,0 +1,14 @@
+#=======================================================================
+# Makefrag for rv32um tests
+#-----------------------------------------------------------------------
+
+rv32um_sc_tests = \
+ div divu \
+ mul mulh mulhu mulhsu \
+ rem remu \
+
+rv32um_p_tests = $(addprefix rv32um-p-, $(rv32um_sc_tests))
+rv32um_pt_tests = $(addprefix rv32um-pt-, $(rv32um_sc_tests))
+rv32um_pm_tests = $(addprefix rv32um-pm-, $(rv32um_mc_tests))
+
+spike_tests += $(rv32um_p_tests) $(rv32um_pt_tests) $(rv32um_pm_tests)
diff --git a/isa/rv32ui/div.S b/isa/rv32um/div.S
index a4504a7..a4504a7 100644
--- a/isa/rv32ui/div.S
+++ b/isa/rv32um/div.S
diff --git a/isa/rv32ui/divu.S b/isa/rv32um/divu.S
index cd348c9..cd348c9 100644
--- a/isa/rv32ui/divu.S
+++ b/isa/rv32um/divu.S
diff --git a/isa/rv32ui/divuw.S b/isa/rv32um/divuw.S
index 0868eeb..0868eeb 100644
--- a/isa/rv32ui/divuw.S
+++ b/isa/rv32um/divuw.S
diff --git a/isa/rv32ui/divw.S b/isa/rv32um/divw.S
index 4d91749..4d91749 100644
--- a/isa/rv32ui/divw.S
+++ b/isa/rv32um/divw.S
diff --git a/isa/rv32ui/mul.S b/isa/rv32um/mul.S
index 0368629..0368629 100644
--- a/isa/rv32ui/mul.S
+++ b/isa/rv32um/mul.S
diff --git a/isa/rv32ui/mulh.S b/isa/rv32um/mulh.S
index e583f5f..e583f5f 100644
--- a/isa/rv32ui/mulh.S
+++ b/isa/rv32um/mulh.S
diff --git a/isa/rv32ui/mulhsu.S b/isa/rv32um/mulhsu.S
index 28b3690..28b3690 100644
--- a/isa/rv32ui/mulhsu.S
+++ b/isa/rv32um/mulhsu.S
diff --git a/isa/rv32ui/mulhu.S b/isa/rv32um/mulhu.S
index 601dcff..601dcff 100644
--- a/isa/rv32ui/mulhu.S
+++ b/isa/rv32um/mulhu.S
diff --git a/isa/rv32ui/mulw.S b/isa/rv32um/mulw.S
index 577c93e..577c93e 100644
--- a/isa/rv32ui/mulw.S
+++ b/isa/rv32um/mulw.S
diff --git a/isa/rv32ui/rem.S b/isa/rv32um/rem.S
index c318e2c..c318e2c 100644
--- a/isa/rv32ui/rem.S
+++ b/isa/rv32um/rem.S
diff --git a/isa/rv32ui/remu.S b/isa/rv32um/remu.S
index 38d641d..38d641d 100644
--- a/isa/rv32ui/remu.S
+++ b/isa/rv32um/remu.S
diff --git a/isa/rv64mi/Makefrag b/isa/rv64mi/Makefrag
index b8b1da0..fed0d35 100644
--- a/isa/rv64mi/Makefrag
+++ b/isa/rv64mi/Makefrag
@@ -18,6 +18,8 @@ rv64mi_mc_tests = \
ipi \
rv64mi_p_tests = $(addprefix rv64mi-p-, $(rv64mi_sc_tests))
+ifdef $(TEST_ENABLE_A)
rv64mi_pm_tests = $(addprefix rv64mi-pm-, $(rv64mi_mc_tests))
+endif
spike_tests += $(rv64mi_p_tests) $(rv64mi_pm_tests)
diff --git a/isa/rv64ua/Makefrag b/isa/rv64ua/Makefrag
new file mode 100644
index 0000000..7acf644
--- /dev/null
+++ b/isa/rv64ua/Makefrag
@@ -0,0 +1,17 @@
+#=======================================================================
+# Makefrag for rv64ua tests
+#-----------------------------------------------------------------------
+
+rv64ua_sc_tests = \
+ amoadd_d amoand_d amomax_d amomaxu_d amomin_d amominu_d amoor_d amoxor_d amoswap_d \
+ amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoxor_w amoswap_w \
+
+rv64ua_mc_tests = \
+ lrsc
+
+rv64ua_p_tests = $(addprefix rv64ua-p-, $(rv64ua_sc_tests))
+rv64ua_pt_tests = $(addprefix rv64ua-pt-, $(rv64ua_sc_tests))
+rv64ua_pm_tests = $(addprefix rv64ua-pm-, $(rv64ua_mc_tests))
+rv64ua_v_tests = $(addprefix rv64ua-v-, $(rv64ua_sc_tests))
+
+spike_tests += $(rv64ua_p_tests) $(rv64ua_pm_tests) $(rv64ua_pt_tests) $(rv64ua_v_tests)
diff --git a/isa/rv64ui/amoadd_d.S b/isa/rv64ua/amoadd_d.S
index c356bed..c356bed 100644
--- a/isa/rv64ui/amoadd_d.S
+++ b/isa/rv64ua/amoadd_d.S
diff --git a/isa/rv64ui/amoadd_w.S b/isa/rv64ua/amoadd_w.S
index b3d1953..b3d1953 100644
--- a/isa/rv64ui/amoadd_w.S
+++ b/isa/rv64ua/amoadd_w.S
diff --git a/isa/rv64ui/amoand_d.S b/isa/rv64ua/amoand_d.S
index 13019ae..13019ae 100644
--- a/isa/rv64ui/amoand_d.S
+++ b/isa/rv64ua/amoand_d.S
diff --git a/isa/rv64ui/amoand_w.S b/isa/rv64ua/amoand_w.S
index a843888..a843888 100644
--- a/isa/rv64ui/amoand_w.S
+++ b/isa/rv64ua/amoand_w.S
diff --git a/isa/rv64ui/amomax_d.S b/isa/rv64ua/amomax_d.S
index ea7e2d3..ea7e2d3 100644
--- a/isa/rv64ui/amomax_d.S
+++ b/isa/rv64ua/amomax_d.S
diff --git a/isa/rv64ui/amomax_w.S b/isa/rv64ua/amomax_w.S
index b3adbf0..b3adbf0 100644
--- a/isa/rv64ui/amomax_w.S
+++ b/isa/rv64ua/amomax_w.S
diff --git a/isa/rv64ui/amomaxu_d.S b/isa/rv64ua/amomaxu_d.S
index b340873..b340873 100644
--- a/isa/rv64ui/amomaxu_d.S
+++ b/isa/rv64ua/amomaxu_d.S
diff --git a/isa/rv64ui/amomaxu_w.S b/isa/rv64ua/amomaxu_w.S
index 41346d1..41346d1 100644
--- a/isa/rv64ui/amomaxu_w.S
+++ b/isa/rv64ua/amomaxu_w.S
diff --git a/isa/rv64ui/amomin_d.S b/isa/rv64ua/amomin_d.S
index e6febbb..e6febbb 100644
--- a/isa/rv64ui/amomin_d.S
+++ b/isa/rv64ua/amomin_d.S
diff --git a/isa/rv64ui/amomin_w.S b/isa/rv64ua/amomin_w.S
index 96b547b..96b547b 100644
--- a/isa/rv64ui/amomin_w.S
+++ b/isa/rv64ua/amomin_w.S
diff --git a/isa/rv64ui/amominu_d.S b/isa/rv64ua/amominu_d.S
index a1013f3..a1013f3 100644
--- a/isa/rv64ui/amominu_d.S
+++ b/isa/rv64ua/amominu_d.S
diff --git a/isa/rv64ui/amominu_w.S b/isa/rv64ua/amominu_w.S
index 0a9e265..0a9e265 100644
--- a/isa/rv64ui/amominu_w.S
+++ b/isa/rv64ua/amominu_w.S
diff --git a/isa/rv64ui/amoor_d.S b/isa/rv64ua/amoor_d.S
index 507e877..507e877 100644
--- a/isa/rv64ui/amoor_d.S
+++ b/isa/rv64ua/amoor_d.S
diff --git a/isa/rv64ui/amoor_w.S b/isa/rv64ua/amoor_w.S
index 47978ba..47978ba 100644
--- a/isa/rv64ui/amoor_w.S
+++ b/isa/rv64ua/amoor_w.S
diff --git a/isa/rv64ui/amoswap_d.S b/isa/rv64ua/amoswap_d.S
index 628f537..628f537 100644
--- a/isa/rv64ui/amoswap_d.S
+++ b/isa/rv64ua/amoswap_d.S
diff --git a/isa/rv64ui/amoswap_w.S b/isa/rv64ua/amoswap_w.S
index c09b866..c09b866 100644
--- a/isa/rv64ui/amoswap_w.S
+++ b/isa/rv64ua/amoswap_w.S
diff --git a/isa/rv64ui/amoxor_d.S b/isa/rv64ua/amoxor_d.S
index f446121..f446121 100644
--- a/isa/rv64ui/amoxor_d.S
+++ b/isa/rv64ua/amoxor_d.S
diff --git a/isa/rv64ui/amoxor_w.S b/isa/rv64ua/amoxor_w.S
index 2b92323..2b92323 100644
--- a/isa/rv64ui/amoxor_w.S
+++ b/isa/rv64ua/amoxor_w.S
diff --git a/isa/rv64ui/lrsc.S b/isa/rv64ua/lrsc.S
index 6c4904e..6c4904e 100644
--- a/isa/rv64ui/lrsc.S
+++ b/isa/rv64ua/lrsc.S
diff --git a/isa/rv64ui/Makefrag b/isa/rv64ui/Makefrag
index d8d21af..e0de257 100644
--- a/isa/rv64ui/Makefrag
+++ b/isa/rv64ui/Makefrag
@@ -4,20 +4,15 @@
rv64ui_sc_tests = \
add addi addiw addw \
- amoadd_d amoand_d amomax_d amomaxu_d amomin_d amominu_d amoor_d amoxor_d amoswap_d \
- amoadd_w amoand_w amomax_w amomaxu_w amomin_w amominu_w amoor_w amoxor_w amoswap_w \
and andi \
auipc \
beq bge bgeu blt bltu bne \
- div divu divuw divw \
example simple \
fence_i \
j jal jalr \
lb lbu lh lhu lw lwu ld \
lui \
- mul mulh mulhsu mulhu mulw \
or ori \
- rem remu remuw remw \
sb sh sw sd \
sll slli slliw sllw \
slt slti sltiu sltu \
@@ -26,12 +21,8 @@ rv64ui_sc_tests = \
sub subw \
xor xori \
-rv64ui_mc_tests = \
- lrsc
-
rv64ui_p_tests = $(addprefix rv64ui-p-, $(rv64ui_sc_tests))
rv64ui_pt_tests = $(addprefix rv64ui-pt-, $(rv64ui_sc_tests))
-rv64ui_pm_tests = $(addprefix rv64ui-pm-, $(rv64ui_mc_tests))
rv64ui_v_tests = $(addprefix rv64ui-v-, $(rv64ui_sc_tests))
-spike_tests += $(rv64ui_p_tests) $(rv64ui_pm_tests) $(rv64ui_pt_tests) $(rv64ui_v_tests)
+spike_tests += $(rv64ui_p_tests) $(rv64ui_pt_tests) $(rv64ui_v_tests)
diff --git a/isa/rv64um/Makefrag b/isa/rv64um/Makefrag
new file mode 100644
index 0000000..ba7c9b0
--- /dev/null
+++ b/isa/rv64um/Makefrag
@@ -0,0 +1,14 @@
+#=======================================================================
+# Makefrag for rv64um tests
+#-----------------------------------------------------------------------
+
+rv64um_sc_tests = \
+ div divu divuw divw \
+ mul mulh mulhsu mulhu mulw \
+ rem remu remuw remw \
+
+rv64um_p_tests = $(addprefix rv64um-p-, $(rv64um_sc_tests))
+rv64um_pt_tests = $(addprefix rv64um-pt-, $(rv64um_sc_tests))
+rv64um_v_tests = $(addprefix rv64um-v-, $(rv64um_sc_tests))
+
+spike_tests += $(rv64um_p_tests) $(rv64um_pt_tests) $(rv64um_v_tests)
diff --git a/isa/rv64ui/div.S b/isa/rv64um/div.S
index ee21f0c..ee21f0c 100644
--- a/isa/rv64ui/div.S
+++ b/isa/rv64um/div.S
diff --git a/isa/rv64ui/divu.S b/isa/rv64um/divu.S
index e63fd65..e63fd65 100644
--- a/isa/rv64ui/divu.S
+++ b/isa/rv64um/divu.S
diff --git a/isa/rv64ui/divuw.S b/isa/rv64um/divuw.S
index 4c9eee7..4c9eee7 100644
--- a/isa/rv64ui/divuw.S
+++ b/isa/rv64um/divuw.S
diff --git a/isa/rv64ui/divw.S b/isa/rv64um/divw.S
index 4cffa1a..4cffa1a 100644
--- a/isa/rv64ui/divw.S
+++ b/isa/rv64um/divw.S
diff --git a/isa/rv64ui/mul.S b/isa/rv64um/mul.S
index c647e97..c647e97 100644
--- a/isa/rv64ui/mul.S
+++ b/isa/rv64um/mul.S
diff --git a/isa/rv64ui/mulh.S b/isa/rv64um/mulh.S
index 1fd12a1..1fd12a1 100644
--- a/isa/rv64ui/mulh.S
+++ b/isa/rv64um/mulh.S
diff --git a/isa/rv64ui/mulhsu.S b/isa/rv64um/mulhsu.S
index c037db2..c037db2 100644
--- a/isa/rv64ui/mulhsu.S
+++ b/isa/rv64um/mulhsu.S
diff --git a/isa/rv64ui/mulhu.S b/isa/rv64um/mulhu.S
index aa7b762..aa7b762 100644
--- a/isa/rv64ui/mulhu.S
+++ b/isa/rv64um/mulhu.S
diff --git a/isa/rv64ui/mulw.S b/isa/rv64um/mulw.S
index 379c3f2..379c3f2 100644
--- a/isa/rv64ui/mulw.S
+++ b/isa/rv64um/mulw.S
diff --git a/isa/rv64ui/rem.S b/isa/rv64um/rem.S
index e3248ff..e3248ff 100644
--- a/isa/rv64ui/rem.S
+++ b/isa/rv64um/rem.S
diff --git a/isa/rv64ui/remu.S b/isa/rv64um/remu.S
index 6946d0d..6946d0d 100644
--- a/isa/rv64ui/remu.S
+++ b/isa/rv64um/remu.S
diff --git a/isa/rv64ui/remuw.S b/isa/rv64um/remuw.S
index 334b5c5..334b5c5 100644
--- a/isa/rv64ui/remuw.S
+++ b/isa/rv64um/remuw.S
diff --git a/isa/rv64ui/remw.S b/isa/rv64um/remw.S
index 3ae8e3d..3ae8e3d 100644
--- a/isa/rv64ui/remw.S
+++ b/isa/rv64um/remw.S