NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: toolchain/45310: some mixed int/float computations are wrong on mips64



The following reply was made to PR port-mips/45310; it has been noted by GNATS.

From: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
To: port-mips-maintainer%NetBSD.org@localhost
Cc: gnats-bugs%NetBSD.org@localhost, netbsd-bugs%NetBSD.org@localhost
Subject: Re: toolchain/45310: some mixed int/float computations are wrong
 on mips64
Date: Wed, 31 Aug 2011 15:47:57 +0200

 On Wed, Aug 31, 2011 at 01:30:06PM +0000, Manuel Bouyer wrote:
 >  tracking this down, I ended up in fixunsgen_ieee754.c:__fixunsgen32.
 >  It's called with
 >  exp=5, sign=0, mant_dig=53, fracbits=20, frac={0, 0, 32768}
 >  
 >  as exp - mant_dig is larger than 32, __fixunsgen32 returns 0.
 >  mant_dig is a constant from mips/float.h; I've no idea if it's right or
 >  wrong here ...
 
 It's DBL_MANT_DIG which is __DBL_MANT_DIG__ which is a gcc constant;
 it seems to be the same for o32 ABI.
 I also tested this on i386, and I get the exact same result.
 So my guess would be that __fixunsgen32() is buggy ...
 
 -- 
 Manuel Bouyer <bouyer%antioche.eu.org@localhost>
      NetBSD: 26 ans d'experience feront toujours la difference
 --
 


Home | Main Index | Thread Index | Old Index