This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed] Clear MIPS IV Flush to Zero bit on IRIX
Richard Henderson <rth@redhat.com> writes:
> On Tue, Jan 25, 2005 at 08:56:22AM +0000, Richard Sandiford wrote:
>> ...I hadn't realised there was already a precedent for this, so thanks
>> for the heads-up. I'll give it a try, probably replacing !shared with
>> !ffast-math.
>
> Well, actually, I'd only change the default for the main application.
> Which does point out a bug in the alpha and ia64 versions....
OK, the patch below does that, and like alpha, it uses the
-funsafe-math-optimizations suboption as the real trigger.
Bootstrapped & regression tested on mips-sgi-irix6.5. As expected,
the same mul-subnormal-single-1.o produces a "working" executable
if linked normally and a "broken" one if linked using either
-funsafe-math-optimizations or -ffast-math. Applied to mainline.
This whole thing probably warrants a changes.html entry, to follow shortly.
Richard
* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
either -ffast-math or -funsafe-math-optimizations is in use.
Index: config/mips/iris6.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/iris6.h,v
retrieving revision 1.80
diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.80 iris6.h
--- config/mips/iris6.h 24 Jan 2005 21:42:49 -0000 1.80
+++ config/mips/iris6.h 26 Jan 2005 17:02:37 -0000
@@ -97,7 +97,8 @@ #define LIBGCC_SPEC \
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
- "%{!shared:%{mabi=n32|mabi=64:irix-csr.o%s}} \
+ "%{!shared:%{!ffast-math:%{!funsafe-math-optimizations: \
+ %{mabi=n32|mabi=64:irix-csr.o%s}}}} \
crtend.o%s irix-crtn.o%s \
%{!shared: \
%{mabi=32:crtn.o%s}\