Port-amd64 archive

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

i387 rounding mode and long double support



Hi all,
at the moment i386 and amd64 force the FPU into IEEE double precision
rounding mode by default. The assumption is that most float operations
are using double and this gives consistent results independent of
compiler optimisations. Whether this makes sense on i386 is outside the
scope of this mail. I do question the use for AMD64 though, because
normal float and double operations are done using the SSE units (at
least for any compiler that cares about performance), with the primary
exception being the transcendent.

Since I need long double support to ease porting libc++, it would be
nice to have it actually work properly out of the box -- with the full
precision. Is it reasonable to alter the default rounding mode on AMD64
for 64bit processes to extended precision? The alternative would be to
either accept that long double doesn't actually have the advertised mantissa
length or require all programs dealing with long double values to change
the float environment themselve. Neither seems very attractive.

Joerg


Home | Main Index | Thread Index | Old Index