This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Irix6 long doubles implemented wrong? (27_io/ostream_inserter_arith)
On Dec 17, 2002, "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu> wrote:
>> From: Alexandre Oliva <aoliva@redhat.com>
>>
>> On Dec 14, 2002, "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu> wrote:
>>
>> > Does anyone have any thoughts on this? (Or better yet a fix?)
>>
>> I've been working on a patch that will enable us to switch to 128-bit
>> long doubles on mips n32 and n64, but I still need a little bit of
>> polishing and checking (I know that my current patch still doesn't
>> pass long double arguments in the right registers). I expect to have
>> it finished in the next few days.
> Excellent! Let me know if I can be of service testing your patch.
Thanks. It's taking longer than I expected, because I hadn't realized
IRIX actually used a different 128-bit long double format than IEEE
854 long double, which I had blindly assumed. I've now introduced
support for both in my copy of gcc/config/fp-bit.c, and adjusted the
function-calling conventions, but this happened to uncover a number of
problems in GCC. Some had to do with the inability to get PARALLELs
in return values of libcalls, which I've already fixed. The other has
to do with some gcse problems that, because of some gratuitous copying
introduced inside such libcalls when PARALLELs are used, it ends up
replacing uses of the REG_RETVAL of the libcall with uses of a pseudo
internal to the libcall. Then, the RETVAL ends up dead, and we delete
the entire libcall sequence. Oops :-)
I've worked around that too, but I'm still observing mis-compilation
of the multiply code, in what appears to be another gcse/libcall
problem, or perhaps just another occurrence of the same problem, that
happens not to be worked around with the fixes I've put in.
> I definitely support fixing the ABI, perhaps even on the 3.3 branch if
> the patch is not too invasive.
None of the patches seem risky, and they actually do fix real bugs,
but, the more code I have to tweak, the less likely I fell this will
find its way into the 3.3 branch :-(
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer