This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: Test tstdiomisc fails when multiplication of NAN by -1 results in NAN
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: carlos at systemhalted dot org (Carlos O'Donell)
- Cc: dave dot anglin at nrc-cnrc dot gc dot ca, debian-hppa at lists dot debian dot org, libc-ports at sourceware dot org
- Date: Sun, 23 May 2010 12:37:03 -0400 (EDT)
- Subject: Re: Test tstdiomisc fails when multiplication of NAN by -1 results in NAN
Carlos,
You have found a bug. The code should xor the sign bit when doing
negation. The existing code doesn't work for NANs. I'll try to
fix negdf2 and negsf2.
The problem is PA1.1 doesn't have a fneg instruction, so the above
takes a bit of work to implement. You will get the correct result
if you specify -march=2.0.
> Then it loads something which I assume *should* be -1, but isn't:
>
> .LC2:
> .word -1074790400
> .word 0
>
> What is this value, it's 0xbff0000000000000 e.g. -1.875. Should it be
> 0xbf80000000000000 e.g. -1.0 exactly, but it's not? Is this a mistake?
I believe 0xbff0000000000000 is the correct double representation
for -1.0. 0xbf800000 is the float representation for -1.0.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)