On Sun, Feb 21, 2010 at 6:34 PM, Joseph S. Myers
<jos...@codesourcery.com> wrote:
> 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.

We could very well enable -mfpmath=sse as a side-effect of -ffast-math though.

Richard.

Reply via email to