This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, testsuite]: Prevent spurious failure for gcc.c-torture/execute/990127-2.c for i386 targets


Hi,

On Mon, 21 May 2007, Uros Bizjak wrote:

> Hello!
> 
> This spurious failure is due to excess precision of 80387. Attached patch
> prevents this failure by adding -mpc64 on targets, where -mpcX is supported.
> 
> Patch was tested on i686-pc-linux-gnu.
> 
> 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
> 
>        * gcc.c-torture/execute/990127-2.x: New file.
> 
> Uros.
> 
> Index: gcc.c-torture/execute/990127-2.x
> ===================================================================
> --- gcc.c-torture/execute/990127-2.x    (revision 0)
> +++ gcc.c-torture/execute/990127-2.x    (revision 0)
> @@ -0,0 +1,15 @@
> +# On x86 targets, two floating-point double values can't be reliably compared
> +# for inequality due to excess precision of 80387 floating-point coprocessor.
> +# Use -mpc64 to force 80387 floating-point precision to 64 bits.  This option
> +# has no effect on SSE, but it is needed in case of -m32 on x86_64 targets.
> +
> +if { [istarget i?86-*-linux*]
> +     || [istarget i?86-*-kfreebsd*-gnu]
> +     || [istarget i?86-*-knetbsd*-gnu]
> +     || [istarget x86_64-*-linux*]
> +     || [istarget x86_64-*-kfreebsd*-gnu]
> +     || [istarget x86_64-*-knetbsd*-gnu] } {
> +       set additional_flags "-mpc64"
> +}
> +
> +return 0

Is this really the way now to fix these things? I'm looking at this 
because it also fails on m68k for the same reason and m68k doesn't has 
this option. In other cases this has been fixed by using volatile.

bye, Roman


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]