From de8fd3d35667d84a6de3aa5cd91d3da3b437b00e Mon Sep 17 00:00:00 2001 From: Richard Xia Date: Mon, 7 Aug 2017 16:57:14 -0700 Subject: [PATCH] rv64[ms]i-csr: Only emit F instructions when compiled for F. --- isa/rv64si/csr.S | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 -- 2.30.2