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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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)); \ -- 2.40.1