From: Kito Cheng Date: Thu, 29 Jun 2023 08:13:45 +0000 (+0800) Subject: RISC-V: Handle rouding mode correctly on zfinx X-Git-Tag: basepoints/gcc-15~7799 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d40aeb9b85db87e4a502a530db5b89027d1a3b6;p=thirdparty%2Fgcc.git RISC-V: Handle rouding mode correctly on zfinx 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. --- diff --git a/libgcc/config/riscv/sfp-machine.h b/libgcc/config/riscv/sfp-machine.h index ded594d75d87..38e2817bffa2 100644 --- a/libgcc/config/riscv/sfp-machine.h +++ b/libgcc/config/riscv/sfp-machine.h @@ -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)); \