This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: MIPS64 soft-float: missing definition for __floatdidf and friends
- From: Roger Sayle <roger at eyesopen dot com>
- To: Adam Nemet <anemet at caviumnetworks dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Richard Sandiford <richard at codesourcery dot com>
- Date: Tue, 9 May 2006 10:41:07 -0600 (MDT)
- Subject: Re: MIPS64 soft-float: missing definition for __floatdidf and friends
On Tue, 9 May 2006, Adam Nemet wrote:
> It seems that after the fix from Roger in
> http://gcc.gnu.org/ml/gcc-patches/2006-02/msg00409.html libgcc no
> longer provides DF<->DI conversion functions.
Arghh. These conversions are usually performed in hardware, so you
don't need them in libgcc unless you explicitly use -msoft-float,
which is why they weren't missed sooner.
I think your patch is the correct approach (and another simplification
towards a top-level libgcc), but unfortunately I can't approve it as its
in that grey area just outside of libbackend.a. The one change that I
would suggest (without further testing) is that you only add these new
functions to LIB2FUNC_EXTRA in t-linux64 and t-iris6 to avoid the
possibility of them clashing with the existing implementations on
32-bit MIPS targets where MIN_UNITS_PER_WORD is still 4. My change for
PR22209 only affected 64-bit mips, so any fallout from it, should only
affect 64-bit MIPS too. Unless these symbols are also already missing
on 32-bit MIPS?
It might also be good to add some -msoft-float tests to the testsuite
to catch this sort of thing in future.
Hopefully, Richard Sandiford or Eric Christopher will give the revised
patch the nod. Thanks for addressing this, and I'm sorry for any
inconvenience.
> * config/fixsfdi.c: New file.
> * config/fixdfdi.c: New file.
> * config/fixunsdfsi.c: New file.
> * config/fixunssfsi.c: New file.
> * config/floatdisf.c: New file.
> * config/floatdidf.c: New file.
> * config/floatundisf.c: New file.
> * config/floatundidf.c: New file.
> * config/mips/t-mips (LIB2FUNCS_EXTRA): Set it.
> * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Append to value set in
> t-mips.
> * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Same.
Roger
--