diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-13 17:33:38 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-13 17:33:38 +0000 |
commit | 1125ba8353fe7c4fa26f72ca22b970bfef27ce5b (patch) | |
tree | 43558081045fc254d40f3c818a030ebac045ba73 /gcc/config | |
parent | 80fad4aa85bf56122b4b9e53c69083c34abccf4f (diff) | |
download | gcc-1125ba8353fe7c4fa26f72ca22b970bfef27ce5b.tar.gz |
gcc:
* config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
* config/alpha/t-crtfm: Remove.
* config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
* config/i386/t-crtfm: Remove.
* config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
* config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
* config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
* config/sparc/t-crtfm: Remove.
* config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
(alpha*-*-freebsd*): Likewise.
(i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
(x86_64-*-darwin*): Likewise.
(i[34567]86-*-linux*): Likewise.
(x86_64-*-linux*): Likewise.
(x86_64-*-mingw*): Likewise.
(ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
(ia64*-*-freebsd*): Likewise.
(ia64*-*-linux*): Likewise.
(mips64*-*-linux*): Likewise.
(mips*-*-linux*): Likewise.
(sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
(sparc64-*-linux*): Likewise.
(sparc64-*-freebsd*): Likewise.
libgcc:
* config/alpha/crtfastmath.c: New file.
* config/i386/crtfastmath.c: New file.
* config/ia64/crtfastmath.c: New file.
* config/mips/crtfastmath.c: New file.
* config/sparc/crtfastmath.c: New file.
* config/t-crtfm (crtfastmath.o): Use $(srcdir) to refer to
crtfastmath.c.
Add -frandom-seed=gcc-crtfastmath.
* config/alpha/t-crtfm: Remove.
* config/i386/t-crtfm: Use $(srcdir) to refer to crtfastmath.c.
* config/ia64/t-ia64 (crtfastmath.o): Remove.
* config.host (alpha*-*-linux*): Replace alpha/t-crtfm by t-crtfm.
(alpha*-dec-osf5.1*): Likewise.
(alpha*-*-freebsd*): Add t-crtfm to tmake_file.
Add crtfastmath.o to extra_parts.
(i[34567]86-*-darwin*): Add i386/t-crtfm to tmake_file.
Add crtfastmath.o to extra_parts.
(x86_64-*-darwin*): Likewise.
(x86_64-*-mingw*): Likewise.
(ia64*-*-elf*): Add t-crtfm to tmake_file.
(ia64*-*-freebsd*): Likewise.
(ia64*-*-linux*): Likewise.
(sparc64-*-freebsd*): Add t-crtfm to tmake_file.
Add crtfastmath.o to extra_parts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176241 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/alpha/crtfastmath.c | 36 | ||||
-rw-r--r-- | gcc/config/alpha/t-crtfm | 5 | ||||
-rw-r--r-- | gcc/config/i386/crtfastmath.c | 131 | ||||
-rw-r--r-- | gcc/config/i386/t-crtfm | 8 | ||||
-rw-r--r-- | gcc/config/ia64/crtfastmath.c | 34 | ||||
-rw-r--r-- | gcc/config/mips/crtfastmath.c | 53 | ||||
-rw-r--r-- | gcc/config/sparc/crtfastmath.c | 44 | ||||
-rw-r--r-- | gcc/config/sparc/t-crtfm | 4 |
8 files changed, 0 insertions, 315 deletions
diff --git a/gcc/config/alpha/crtfastmath.c b/gcc/config/alpha/crtfastmath.c deleted file mode 100644 index 677b9edfa60..00000000000 --- a/gcc/config/alpha/crtfastmath.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2001, 2009 Free Software Foundation, Inc. - * Contributed by Richard Henderson (rth@redhat.com) - * - * This file is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 3, or (at your option) any - * later version. - * - * This file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * Under Section 7 of GPL version 3, you are granted additional - * permissions described in the GCC Runtime Library Exception, version - * 3.1, as published by the Free Software Foundation. - * - * You should have received a copy of the GNU General Public License and - * a copy of the GCC Runtime Library Exception along with this program; - * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - * <http://www.gnu.org/licenses/>. - */ - -/* Assume OSF/1 compatible interfaces. */ - -extern void __ieee_set_fp_control (unsigned long int); - -#define IEEE_MAP_DMZ (1UL<<12) /* Map denorm inputs to zero */ -#define IEEE_MAP_UMZ (1UL<<13) /* Map underflowed outputs to zero */ - -static void __attribute__((constructor)) -set_fast_math (void) -{ - __ieee_set_fp_control (IEEE_MAP_DMZ | IEEE_MAP_UMZ); -} diff --git a/gcc/config/alpha/t-crtfm b/gcc/config/alpha/t-crtfm deleted file mode 100644 index b4103834aca..00000000000 --- a/gcc/config/alpha/t-crtfm +++ /dev/null @@ -1,5 +0,0 @@ -EXTRA_PARTS += crtfastmath.o - -$(T)crtfastmath.o: $(srcdir)/config/alpha/crtfastmath.c $(GCC_PASSES) - $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -frandom-seed=gcc-crtfastmath -c \ - -o $(T)crtfastmath.o $(srcdir)/config/alpha/crtfastmath.c diff --git a/gcc/config/i386/crtfastmath.c b/gcc/config/i386/crtfastmath.c deleted file mode 100644 index 7abe500e981..00000000000 --- a/gcc/config/i386/crtfastmath.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 2005, 2007, 2009, 2011 Free Software Foundation, Inc. - * - * This file is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 3, or (at your option) any - * later version. - * - * This file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * Under Section 7 of GPL version 3, you are granted additional - * permissions described in the GCC Runtime Library Exception, version - * 3.1, as published by the Free Software Foundation. - * - * You should have received a copy of the GNU General Public License and - * a copy of the GCC Runtime Library Exception along with this program; - * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#define MXCSR_DAZ (1 << 6) /* Enable denormals are zero mode */ -#define MXCSR_FTZ (1 << 15) /* Enable flush to zero mode */ - -#ifndef __x86_64__ -/* All 64-bit targets have SSE and DAZ; - only check them explicitly for 32-bit ones. */ -#include "cpuid.h" -#endif - -#if !defined __x86_64__ && defined __sun__ && defined __svr4__ -#include <signal.h> -#include <ucontext.h> - -static volatile sig_atomic_t sigill_caught; - -static void -sigill_hdlr (int sig __attribute((unused)), - siginfo_t *sip __attribute__((unused)), - ucontext_t *ucp) -{ - sigill_caught = 1; - /* Set PC to the instruction after the faulting one to skip over it, - otherwise we enter an infinite loop. 3 is the size of the movaps - instruction. */ - ucp->uc_mcontext.gregs[EIP] += 3; - setcontext (ucp); -} -#endif - -static void __attribute__((constructor)) -#ifndef __x86_64__ -/* The i386 ABI only requires 4-byte stack alignment, so this is necessary - to make sure the fxsave struct gets correct alignment. - See PR27537 and PR28621. */ -__attribute__ ((force_align_arg_pointer)) -#endif -set_fast_math (void) -{ -#ifndef __x86_64__ - unsigned int eax, ebx, ecx, edx; - - if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) - return; - - if (edx & bit_SSE) - { - unsigned int mxcsr; - -#if defined __sun__ && defined __svr4__ - /* Solaris 2 before Solaris 9 4/04 cannot execute SSE instructions even - if the CPU supports them. Programs receive SIGILL instead, so check - for that at runtime. */ - struct sigaction act, oact; - - act.sa_handler = sigill_hdlr; - sigemptyset (&act.sa_mask); - /* Need to set SA_SIGINFO so a ucontext_t * is passed to the handler. */ - act.sa_flags = SA_SIGINFO; - sigaction (SIGILL, &act, &oact); - - /* We need a single SSE instruction here so the handler can safely skip - over it. */ - __asm__ volatile ("movaps %xmm0,%xmm0"); - - sigaction (SIGILL, &oact, NULL); - - if (sigill_caught) - return; -#endif /* __sun__ && __svr4__ */ - - mxcsr = __builtin_ia32_stmxcsr () | MXCSR_FTZ; - - if (edx & bit_FXSAVE) - { - /* Check if DAZ is available. */ - struct - { - unsigned short int cwd; - unsigned short int swd; - unsigned short int twd; - unsigned short int fop; - long int fip; - long int fcs; - long int foo; - long int fos; - long int mxcsr; - long int mxcsr_mask; - long int st_space[32]; - long int xmm_space[32]; - long int padding[56]; - } __attribute__ ((aligned (16))) fxsave; - - __builtin_memset (&fxsave, 0, sizeof (fxsave)); - - asm volatile ("fxsave %0" : "=m" (fxsave) : "m" (fxsave)); - - if (fxsave.mxcsr_mask & MXCSR_DAZ) - mxcsr |= MXCSR_DAZ; - } - - __builtin_ia32_ldmxcsr (mxcsr); - } -#else - unsigned int mxcsr = __builtin_ia32_stmxcsr (); - mxcsr |= MXCSR_DAZ | MXCSR_FTZ; - __builtin_ia32_ldmxcsr (mxcsr); -#endif -} diff --git a/gcc/config/i386/t-crtfm b/gcc/config/i386/t-crtfm deleted file mode 100644 index 4fa27e91ca5..00000000000 --- a/gcc/config/i386/t-crtfm +++ /dev/null @@ -1,8 +0,0 @@ -EXTRA_PARTS += crtfastmath.o - -$(T)crtfastmath.o: $(srcdir)/config/i386/crtfastmath.c \ - $(srcdir)/config/i386/cpuid.h $(GCC_PASSES) - $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(MULTILIB_CFLAGS) \ - -msse -minline-all-stringops -c \ - $(srcdir)/config/i386/crtfastmath.c \ - -o $(T)crtfastmath$(objext) diff --git a/gcc/config/ia64/crtfastmath.c b/gcc/config/ia64/crtfastmath.c deleted file mode 100644 index 0decd2a3f9c..00000000000 --- a/gcc/config/ia64/crtfastmath.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright (C) 2001, 2005, 2009 Free Software Foundation, Inc. - Contributed by David Mosberger <davidm@hpl.hp.com>. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License and - a copy of the GCC Runtime Library Exception along with this program; - see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - <http://www.gnu.org/licenses/>. */ - -/* We could call fesetenv() here but that would create a confusing - dependency on libm (since that is where fesetenv() gets defined. - To avoid this, just do everything locally. */ -#define FE_NONIEEE_ENV 0x0009a04d0270037f - -static void __attribute__((constructor)) -__ia64_set_fast_math (void) -{ - __asm__ __volatile__ ("mov.m ar.fpsr=%0" : : "r"(FE_NONIEEE_ENV)); -} diff --git a/gcc/config/mips/crtfastmath.c b/gcc/config/mips/crtfastmath.c deleted file mode 100644 index a9586b0a797..00000000000 --- a/gcc/config/mips/crtfastmath.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2010 Free Software Foundation, Inc. - - This file is part of GCC. - - GCC is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3, or (at your option) - any later version. - - GCC is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - License for more details. - - Under Section 7 of GPL version 3, you are granted additional - permissions described in the GCC Runtime Library Exception, version - 3.1, as published by the Free Software Foundation. - - You should have received a copy of the GNU General Public License - and a copy of the GCC Runtime Library Exception along with this - program; see the files COPYING3 and COPYING.RUNTIME respectively. - If not, see <http://www.gnu.org/licenses/>. */ - -#ifdef __mips_hard_float - -/* Flush denormalized numbers to zero. */ -#define _FPU_FLUSH_TZ 0x1000000 - -/* Rounding control. */ -#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */ -#define _FPU_RC_ZERO 0x1 -#define _FPU_RC_UP 0x2 -#define _FPU_RC_DOWN 0x3 - -/* Enable interrupts for IEEE exceptions. */ -#define _FPU_IEEE 0x00000F80 - -/* Macros for accessing the hardware control word. */ -#define _FPU_GETCW(cw) __asm__ ("cfc1 %0,$31" : "=r" (cw)) -#define _FPU_SETCW(cw) __asm__ ("ctc1 %0,$31" : : "r" (cw)) - -static void __attribute__((constructor)) -set_fast_math (void) -{ - unsigned int fcr; - - /* Flush to zero, round to nearest, IEEE exceptions disabled. */ - fcr = _FPU_FLUSH_TZ | _FPU_RC_NEAREST; - - _FPU_SETCW(fcr); -} - -#endif /* __mips_hard_float */ diff --git a/gcc/config/sparc/crtfastmath.c b/gcc/config/sparc/crtfastmath.c deleted file mode 100644 index 04727ec945b..00000000000 --- a/gcc/config/sparc/crtfastmath.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2001, 2009 Free Software Foundation, Inc. - * Contributed by David S. Miller (davem@redhat.com) - * - * This file is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 3, or (at your option) any - * later version. - * - * This file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * Under Section 7 of GPL version 3, you are granted additional - * permissions described in the GCC Runtime Library Exception, version - * 3.1, as published by the Free Software Foundation. - * - * You should have received a copy of the GNU General Public License and - * a copy of the GCC Runtime Library Exception along with this program; - * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - * <http://www.gnu.org/licenses/>. - */ - -#define FPRS_NS (1 << 22) /* Non-Standard fpu results */ - -static void __attribute__((constructor)) -set_fast_math (void) -{ - unsigned int fsr; - - /* This works for the 64-bit case because, even if 32-bit ld/st of - the fsr register modified the upper 32-bit, the only thing up there - are the 3 other condition codes which are "do not care" at the time - that this runs. */ - - __asm__("st %%fsr, %0" - : "=m" (fsr)); - - fsr |= FPRS_NS; - - __asm__("ld %0, %%fsr" - : : "m" (fsr)); -} diff --git a/gcc/config/sparc/t-crtfm b/gcc/config/sparc/t-crtfm deleted file mode 100644 index e0adb97bd3b..00000000000 --- a/gcc/config/sparc/t-crtfm +++ /dev/null @@ -1,4 +0,0 @@ -EXTRA_PARTS += crtfastmath.o - -$(T)crtfastmath.o: $(srcdir)/config/sparc/crtfastmath.c $(GCC_PASSES) - $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) $(LIBGCC2_CFLAGS) -c -o $(T)crtfastmath.o $(srcdir)/config/sparc/crtfastmath.c |