TI->SF and TI->DF conversions in libgcc2.c:

FSTYPE
FUNC (DWtype u)
{
  ...
}

have no rounding mode support.  We should replace __floattisf, __floattidf,
__floatuntisf and __floatuntidf in libgcc2.c with these from soft-fp.

        PR libgcc/88931
        * config/i386/64/t-softfp-compat (libgcc2-ti-functions): New.
        (LIB2FUNCS_EXCLUDE): Likewise.
        (libgcc2-ti-softp): Likewise.
        (LIB2ADD): Likewise.
---
 libgcc/config/i386/64/t-softfp-compat | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libgcc/config/i386/64/t-softfp-compat 
b/libgcc/config/i386/64/t-softfp-compat
index 0978695c3a4..abb78032bf5 100644
--- a/libgcc/config/i386/64/t-softfp-compat
+++ b/libgcc/config/i386/64/t-softfp-compat
@@ -13,3 +13,11 @@ libgcc2-tf-functions = _divtc3 _multc3 _powitf2
 LIB2FUNCS_EXCLUDE += $(libgcc2-tf-functions)
 libgcc2-tf-compats = $(addsuffix .c, $(libgcc2-tf-functions))
 LIB2ADD += $(addprefix $(srcdir)/config/i386/64/, $(libgcc2-tf-compats))
+
+# Replace _floatdisf, _floatdidf, _floatundisf and _floatundidf in
+# libgcc2.c, which have no rounding mode support, with floattisf.c,
+# floattidf.c, floatundisf.c and floatundidf.c from soft-fp.
+libgcc2-ti-functions = _floatdisf _floatdidf _floatundisf _floatundidf
+LIB2FUNCS_EXCLUDE += $(libgcc2-ti-functions)
+libgcc2-ti-softp = floattisf.c floattidf.c floatuntisf.c floatuntidf.c
+LIB2ADD += $(addprefix $(srcdir)/soft-fp/, $(libgcc2-ti-softp))
-- 
2.20.1

Reply via email to