summaryrefslogtreecommitdiff
path: root/src/fenv/riscv64
diff options
context:
space:
mode:
Diffstat (limited to 'src/fenv/riscv64')
-rw-r--r--src/fenv/riscv64/fenv-sf.c2
-rw-r--r--src/fenv/riscv64/fenv.S7
2 files changed, 6 insertions, 3 deletions
diff --git a/src/fenv/riscv64/fenv-sf.c b/src/fenv/riscv64/fenv-sf.c
index ecd3cb5c..670a77a2 100644
--- a/src/fenv/riscv64/fenv-sf.c
+++ b/src/fenv/riscv64/fenv-sf.c
@@ -1,3 +1,3 @@
-#ifndef __riscv_flen
+#ifdef __riscv_float_abi_soft
#include "../fenv.c"
#endif
diff --git a/src/fenv/riscv64/fenv.S b/src/fenv/riscv64/fenv.S
index f149003d..1deab07f 100644
--- a/src/fenv/riscv64/fenv.S
+++ b/src/fenv/riscv64/fenv.S
@@ -1,4 +1,4 @@
-#ifdef __riscv_flen
+#ifndef __riscv_float_abi_soft
.global feclearexcept
.type feclearexcept, %function
@@ -45,8 +45,11 @@ fegetenv:
.global fesetenv
.type fesetenv, %function
fesetenv:
+ li t2, -1
+ li t1, 0
+ beq a0, t2, 1f
lw t1, 0(a0)
- fscsr t0, t1
+1: fscsr t1
li a0, 0
ret