On Tue, 3 Mar 2009, David Laight wrote:
On Tue, Mar 03, 2009 at 07:25:06PM +0100, Martin Husemann wrote:On Tue, Mar 03, 2009 at 05:45:34PM +0000, Christos Zoulas wrote:- if (ep == s || r == HUGE_VAL || errno == ERANGE) + if (ep == s || memcmp(&r, &hv, sizeof(hv)) == 0 || errno == ERANGE)Uhm, aren't there "don't care" bits in infinity, so we can't rely on memcmp here?I can't remember either, bit infinity has a sign bit and either infinity or NaN has a lot of spare bits.
The implicit integer bit is a don't care, and I found that it's handled differently between the 68040 and 68060. Infinity is defined with the implicity integer bit set for long double, but one of the two processors clears that bit when loaded with fmov.
-- Michael L. Hitch mhitch%montana.edu@localhost Computer Consultant Information Technology Center Montana State University Bozeman, MT USA