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