]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
RISC-V: Handle rouding mode correctly on zfinx
authorKito Cheng <kito.cheng@sifive.com>
Thu, 29 Jun 2023 08:13:45 +0000 (16:13 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Thu, 6 Jul 2023 06:31:55 +0000 (14:31 +0800)
Zfinx has provide fcsr like F, so rouding mode should use fcsr instead
of `soft` fenv.

libgcc/ChangeLog:

* config/riscv/sfp-machine.h (FP_INIT_ROUNDMODE): Check zfinx.
(FP_HANDLE_EXCEPTIONS): Ditto.

libgcc/config/riscv/sfp-machine.h

index ded594d75d8739d7711305c267c01875078941db..38e2817bffa2678966dabb0827059e287247532f 100644 (file)
@@ -113,7 +113,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
 
 #define _FP_TININESS_AFTER_ROUNDING 1
 
-#ifdef __riscv_flen
+#if defined(__riscv_flen) || defined(__riscv_zfinx)
 #define FP_INIT_ROUNDMODE                      \
 do {                                           \
   __asm__ volatile ("frrm %0" : "=r" (_frm));  \