aboutsummaryrefslogtreecommitdiff
path: root/isa/rv64si
diff options
context:
space:
mode:
authorRichard Xia <rxia@sifive.com>2017-08-07 16:57:14 -0700
committerRichard Xia <rxia@sifive.com>2017-08-07 16:57:14 -0700
commitde8fd3d35667d84a6de3aa5cd91d3da3b437b00e (patch)
treefa2177755d9d74327f0ce3da3a1e264f08284bd5 /isa/rv64si
parentc26d7f39e6fabde07f16fd35d67a2414e674d488 (diff)
downloadriscv-tests-de8fd3d35667d84a6de3aa5cd91d3da3b437b00e.zip
riscv-tests-de8fd3d35667d84a6de3aa5cd91d3da3b437b00e.tar.gz
riscv-tests-de8fd3d35667d84a6de3aa5cd91d3da3b437b00e.tar.bz2
rv64[ms]i-csr: Only emit F instructions when compiled for F.
Diffstat (limited to 'isa/rv64si')
-rw-r--r--isa/rv64si/csr.S7
1 files changed, 6 insertions, 1 deletions
diff --git a/isa/rv64si/csr.S b/isa/rv64si/csr.S
index 0576678..83e9cae 100644
--- a/isa/rv64si/csr.S
+++ b/isa/rv64si/csr.S
@@ -47,10 +47,15 @@ RVTEST_CODE_BEGIN
# If so, make sure FP stores have no effect when mstatus.FS is off.
li a1, MSTATUS_FS
csrs mstatus, a1
+#ifdef __riscv_flen
fmv.s.x f0, x0
csrc mstatus, a1
la a1, fsw_data
TEST_CASE(10, a0, 1, fsw f0, (a1); lw a0, (a1));
+#else
+ # Fail if this test is compiled without F but executed on a core with F.
+ TEST_CASE(10, zero, 1)
+#endif
1:
# Figure out if 'U' is set in misa
@@ -58,7 +63,7 @@ RVTEST_CODE_BEGIN
srli a0, a0, 20 # a0 = a0 >> 20
andi a0, a0, 1 # a0 = a0 & 1
beqz a0, finish # if no user mode, skip the rest of these checks
-#endif
+#endif /* __MACHINE_MODE */
# jump to user land
li t0, SSTATUS_SPP