From 9bd196f0e35062d309320673f46722e47744b610 Mon Sep 17 00:00:00 2001 From: Zuxy Meng Date: Tue, 29 May 2007 08:09:16 +0000 Subject: [PATCH] re PR target/29498 (FTZ/DAZ for SSE should be ported to mingw32) libgcc PR target/29498 * config.host (i[34567]86-*-cygwin* | i[34567]86-*-mingw*) Add crtfastmath.o to extra_parts. Add i386/t-crtfm to tmake_file. * config/i386/t-crtfm: Compile crtfastmath.o with -minline-all-stringops. gcc PR target/29498 * config/i386/t-crtfm: Compile crtfastmath.o with -minline-all-stringops. * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o. * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o. Co-Authored-By: Danny Smith From-SVN: r125160 --- gcc/ChangeLog | 9 +++++++++ gcc/config/i386/cygwin.h | 4 ++++ gcc/config/i386/mingw32.h | 4 ++++ libgcc/ChangeLog | 9 +++++++++ libgcc/config.host | 8 ++++++-- libgcc/config/i386/t-crtfm | 5 ++++- 6 files changed, 36 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea23ee99986..dfcd3890b82 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-05-29 Zuxy Meng + Danny Smith + + PR target/29498 + * config/i386/t-crtfm: Compile crtfastmath.o with + -minline-all-stringops. + * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o. + * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o. + 2007-05-28 John David Anglin * doc/md.texi: Document constraints on HP PA-RISC. diff --git a/gcc/config/i386/cygwin.h b/gcc/config/i386/cygwin.h index fe85a6df4cd..22e0af2db99 100644 --- a/gcc/config/i386/cygwin.h +++ b/gcc/config/i386/cygwin.h @@ -40,6 +40,10 @@ Boston, MA 02110-1301, USA. */ %{pg:gcrt0%O%s}}}\ " +#undef ENDFILE_SPEC +#define ENDFILE_SPEC \ + "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s}" + /* Normally, -lgcc is not needed since everything in it is in the DLL, but we want to allow things to be added to it when installing new versions of GCC without making a new CYGWIN.DLL, so we leave it. Profiling is handled diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h index a39fbab3cde..1145b13b3cb 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -86,6 +86,10 @@ Boston, MA 02110-1301, USA. */ #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ %{!shared:%{!mdll:crt2%O%s}} %{pg:gcrt2%O%s}" +#undef ENDFILE_SPEC +#define ENDFILE_SPEC \ + "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s}" + /* Override startfile prefix defaults. */ #ifndef STANDARD_STARTFILE_PREFIX_1 #if TARGET_64BIT_DEFAULT diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 8baa49f82e2..fdcdd2f48ba 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,12 @@ +2007-05-29 Zuxy Meng + Danny Smith + + PR target/29498 + * config.host (i[34567]86-*-cygwin* | i[34567]86-*-mingw*) Add + crtfastmath.o to extra_parts. Add i386/t-crtfm to tmake_file. + * config/i386/t-crtfm: Compile crtfastmath.o with + -minline-all-stringops. + 2007-05-10 Richard Sandiford * config.host (sparc-wrs-vxworks): New target. diff --git a/libgcc/config.host b/libgcc/config.host index 4de74cf203e..3e0cb47903c 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -367,9 +367,13 @@ i[34567]86-*-sysv4*) # Intel 80386's running system V.4 ;; i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) ;; -i[34567]86-*-pe | i[34567]86-*-cygwin*) +i[34567]86-*-pe) ;; -i[34567]86-*-mingw32* | x86_64-*-mingw*) +i[34567]86-*-cygwin* | i[34567]86-*-mingw*) + extra_parts="crtfastmath.o" + tmake_file="i386/t-crtfm" + ;; +x86_64-*-mingw*) ;; i[34567]86-*-uwin*) ;; diff --git a/libgcc/config/i386/t-crtfm b/libgcc/config/i386/t-crtfm index fbe7d12e107..6e89296b2b3 100644 --- a/libgcc/config/i386/t-crtfm +++ b/libgcc/config/i386/t-crtfm @@ -1,2 +1,5 @@ +# This is an endfile, Use -minline-all-stringops to ensure +# that __builtin_memset doesn't refer to the lib function memset(). crtfastmath.o: $(gcc_srcdir)/config/i386/crtfastmath.c - $(gcc_compile) -msse -c $(gcc_srcdir)/config/i386/crtfastmath.c + $(gcc_compile) -msse -minline-all-stringops -c \ + $(gcc_srcdir)/config/i386/crtfastmath.c -- 2.30.2