This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Is SSE FP ABI breaking on i386?
- To: "Jan Hubicka" <jh at suse dot cz>, "Geert Bosch" <bosch at gnat dot com>
- Subject: Re: Is SSE FP ABI breaking on i386?
- From: "Tim Prince" <tprince at computer dot org>
- Date: Fri, 16 Feb 2001 07:02:47 -0800
- Cc: <discuss at x86-64 dot org>, <drepper at cygnus dot com>, <gcc at gcc dot gnu dot org>, "Jan Hubicka" <jh at suse dot cz>, <rth at cygnus dot com>
- References: <20010215152609.9659C34D89@nile.gnat.com> <20010216124052.C31478@atrey.karlin.mff.cuni.cz>
If you spill in XF mode, without observing the additional alignment
requirements, you will be introducing large performance problems, as certain
commercial compilers have done. I'm not sure it is possible to get more
than 8-byte alignment on Windows (e.g. cygwin). People used to say the ABI
forbade use of more than 4-byte alignment on Windows, and the c++ support in
gcc-2.95 continues to be incompatible with 8-byte alignment binutils
configuration.
----- Original Message -----
From: "Jan Hubicka" <jh@suse.cz>
To: "Geert Bosch" <bosch@gnat.com>
Cc: <discuss@x86-64.org>; <drepper@cygnus.com>; <gcc@gcc.gnu.org>; "Jan
Hubicka" <jh@suse.cz>; <rth@cygnus.com>
Sent: Friday, February 16, 2001 3:40 AM
Subject: Re: Is SSE FP ABI breaking on i386?
> > This is really not true. It just is a GCC bug that we cut off precision
> > when spilling floating point registers containing doubles. Cutting of
> > FP registers to double is *only* allowed when the rounding mode is set
> > to round at 53 bits. In any other case one would get in effect double
> > rounding for the addition, subtraction, division, multiplication and
> > square root, and the final accurracy is *worse* than for regular IEEE
> > double arithmetic.
> This is interesting point too. I've already tried to teach reload to use
> XFmode for spilling doubles but didn't know that it is needed for ABI.
> This also means that the -ffloat-store gives worse results than IEEE?
>