[PATCH] RISC-V: Support Zfinx/Zdinx extension.
Corinna Vinschen
vinschen@redhat.com
Wed Jul 26 13:27:32 GMT 2023
On Jul 26 18:03, Kito Cheng via Newlib wrote:
> Zfinx/Zdinx are new extensions ratified in 2022, it similar to F/D extensions,
> support hard float operation for single/double precision, but the difference
> between Zfinx/Zdinx and F/D is Zfinx/Zdinx is operating under general purpose
> registers rather than dedicated floating-point registers.
>
> This patch improve the hard float support detection for RISC-V port, so
> that Zfinx/Zdinx can have better/right performance.
>
> Co-authored-by: Jesse Huang <jesse.huang@sifive.com>
> ---
> newlib/libc/include/machine/ieeefp.h | 4 ++--
> newlib/libc/machine/riscv/ieeefp.c | 10 +++++-----
> newlib/libc/machine/riscv/sys/fenv.h | 2 +-
> newlib/libm/common/math_config.h | 6 ++++--
> newlib/libm/machine/riscv/e_sqrt.c | 2 +-
> newlib/libm/machine/riscv/ef_sqrt.c | 2 +-
> newlib/libm/machine/riscv/feclearexcept.c | 3 ++-
> newlib/libm/machine/riscv/fegetenv.c | 3 ++-
> newlib/libm/machine/riscv/fegetexceptflag.c | 3 ++-
> newlib/libm/machine/riscv/fegetround.c | 3 ++-
> newlib/libm/machine/riscv/feholdexcept.c | 3 ++-
> newlib/libm/machine/riscv/feraiseexcept.c | 3 ++-
> newlib/libm/machine/riscv/fesetenv.c | 3 ++-
> newlib/libm/machine/riscv/fesetexceptflag.c | 3 ++-
> newlib/libm/machine/riscv/fesetround.c | 3 ++-
> newlib/libm/machine/riscv/fetestexcept.c | 3 ++-
> newlib/libm/machine/riscv/feupdateenv.c | 3 ++-
> newlib/libm/machine/riscv/riscv_math.h | 12 +++++++++---
> newlib/libm/machine/riscv/s_copysign.c | 3 ++-
> newlib/libm/machine/riscv/s_fabs.c | 3 ++-
> newlib/libm/machine/riscv/s_finite.c | 3 ++-
> newlib/libm/machine/riscv/s_fmax.c | 3 ++-
> newlib/libm/machine/riscv/s_fmin.c | 3 ++-
> newlib/libm/machine/riscv/s_fpclassify.c | 5 ++---
> newlib/libm/machine/riscv/s_isinf.c | 4 ++--
> newlib/libm/machine/riscv/s_isnan.c | 4 ++--
> newlib/libm/machine/riscv/s_llrint.c | 3 ++-
> newlib/libm/machine/riscv/s_llround.c | 3 ++-
> newlib/libm/machine/riscv/s_lrint.c | 3 ++-
> newlib/libm/machine/riscv/s_lround.c | 3 ++-
> newlib/libm/machine/riscv/sf_copysign.c | 3 ++-
> newlib/libm/machine/riscv/sf_fabs.c | 3 ++-
> newlib/libm/machine/riscv/sf_finite.c | 3 ++-
> newlib/libm/machine/riscv/sf_fmax.c | 3 ++-
> newlib/libm/machine/riscv/sf_fmin.c | 3 ++-
> newlib/libm/machine/riscv/sf_fpclassify.c | 3 ++-
> newlib/libm/machine/riscv/sf_isinf.c | 4 ++--
> newlib/libm/machine/riscv/sf_isnan.c | 4 ++--
> newlib/libm/machine/riscv/sf_llrint.c | 3 ++-
> newlib/libm/machine/riscv/sf_llround.c | 3 ++-
> newlib/libm/machine/riscv/sf_lrint.c | 3 ++-
> newlib/libm/machine/riscv/sf_lround.c | 3 ++-
> 42 files changed, 93 insertions(+), 56 deletions(-)
Pushed.
Thanks,
Corinna
More information about the Newlib
mailing list