This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Change x86 default arch for 4.5?
On Sun, 21 Feb 2010, Geert Bosch wrote:
> > As I understand it, whether -mfpmath=387 (with excess precision) or
> > -mfpmath=sse is the default is also considered part of the platform API
> > (like whether char is signed or unsigned by default, for example), in
> > addition to the ABI issues that can slow things down when SSE is used.
>
> No, this is not a new ABI. The ABI stays exactly the same. The I of
Correct - I said API, not ABI. The API for C programs on x86 GNU/Linux
involves FLT_EVAL_METHOD == 2, whereas that on x86 Darwin involves
FLT_EVAL_METHOD == 0 and that on FreeBSD involves FLT_EVAL_METHOD == 2
but with FPU rounding precision set to 53 bits so only excess range, not
precision, applies.
You can support multiple APIs within one ABI - you can support both
versions of -mfpmath just as you can support both signed and unsigned
char, or both signed and unsigned bit-fields. It is not however
appropriate for -march options (whether explicit, or configured defaults
from the noncanonical target name or otherwise) to change either ABI or
API. Configure options to configure with a different API would be fine,
as would target names such as i686-pc-linux-gnussemath.
--
Joseph S. Myers
joseph@codesourcery.com