Port-amd64 archive

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

Re: Changing x87 precision to full 63bit as default



On Tue, Nov 12, 2013 at 08:10:35AM +0900, tsugutomo.enami%jp.sony.com@localhost 
wrote:
> Joerg Sonnenberger <joerg%britannica.bec.de@localhost> writes:
> 
> > Old binaries will get the same FPU environment as before. If they are
> > using either fenv.h, volatile or FLT_EVAL_METHOD, they will adjust correctly
> > on recompile.
> 
> There is an application which requires 53 bit precision on some specific
> double operation (for example, pkgsrc/lang/gauche; if interested, see
> the comment in Scm_GetDouble() in src/number.c).
> 
> Does double (not long double) operation on i386-port still done in 53
> bit precision after your change?

There are a number of options here. With default options, GCC at least
will not store assignments to memory (see -ffloat-store and
-fexcess-precision=standard) without some force. The canonical way is to
assign to a volatile variable, see libm/src/math_private.h
STRICT_ASSIGN. It would be nice to use fenv.h for this, but support for
that is even less wide spread...

That said, code that cares likely already has a branch for Linux that
can be adopted.

Joerg


Home | Main Index | Thread Index | Old Index