config.gcc (mips64*-*-linux*, [...]): Add crtfastmath.o to extra_parts.
gcc/ * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*): Add crtfastmath.o to extra_parts. * config/mips/crtfastmath.c: New. * config/mips/linux.h (ENDFILE_SPEC): New. libgcc/ * config.host (mips64*-*-linux*, mips*-*-linux*): Add mips/t-crtfm to tmake_file. Add crtfastmath.o to extra_parts. * config/mips/t-crtfm: New. From-SVN: r160655
This commit is contained in:
parent
b53cd1c5cf
commit
48b09a925e
7 changed files with 81 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2010-06-12 Kazu Hirata <kazu@codesourcery.com>
|
||||
|
||||
* config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*,
|
||||
mips*-*-linux*): Add crtfastmath.o to extra_parts.
|
||||
* config/mips/crtfastmath.c: New.
|
||||
* config/mips/linux.h (ENDFILE_SPEC): New.
|
||||
|
||||
2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
* graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
|
||||
|
|
|
@ -1750,6 +1750,7 @@ mips64*-*-linux* | mipsisa64*-*-linux*)
|
|||
tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
|
||||
;;
|
||||
esac
|
||||
extra_parts="$extra_parts crtfastmath.o"
|
||||
gnu_ld=yes
|
||||
gas=yes
|
||||
test x$with_llsc != x || with_llsc=yes
|
||||
|
@ -1764,6 +1765,7 @@ mips*-*-linux*) # Linux MIPS, either endian.
|
|||
mipsisa32*)
|
||||
tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
|
||||
esac
|
||||
extra_parts="$extra_parts crtfastmath.o"
|
||||
test x$with_llsc != x || with_llsc=yes
|
||||
;;
|
||||
mips*-*-openbsd*)
|
||||
|
|
53
gcc/config/mips/crtfastmath.c
Normal file
53
gcc/config/mips/crtfastmath.c
Normal file
|
@ -0,0 +1,53 @@
|
|||
/* 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 */
|
|
@ -147,3 +147,9 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
|
|||
#define DRIVER_SELF_SPECS \
|
||||
BASE_DRIVER_SELF_SPECS, \
|
||||
LINUX_DRIVER_SELF_SPECS
|
||||
|
||||
/* Similar to standard Linux, but adding -ffast-math support. */
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
|
||||
%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2010-06-12 Kazu Hirata <kazu@codesourcery.com>
|
||||
|
||||
* config.host (mips64*-*-linux*, mips*-*-linux*): Add mips/t-crtfm
|
||||
to tmake_file. Add crtfastmath.o to extra_parts.
|
||||
* config/mips/t-crtfm: New.
|
||||
|
||||
2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* config.host (sparc64-*-rtems*): New target.
|
||||
|
|
|
@ -400,8 +400,12 @@ mips-sgi-irix[56]*)
|
|||
mips*-*-netbsd*) # NetBSD/mips, either endian.
|
||||
;;
|
||||
mips64*-*-linux*)
|
||||
extra_parts="$extra_parts crtfastmath.o"
|
||||
tmake_file="{$tmake_file} mips/t-crtfm"
|
||||
;;
|
||||
mips*-*-linux*) # Linux MIPS, either endian.
|
||||
extra_parts="$extra_parts crtfastmath.o"
|
||||
tmake_file="{$tmake_file} mips/t-crtfm"
|
||||
;;
|
||||
mips*-*-openbsd*)
|
||||
;;
|
||||
|
|
3
libgcc/config/mips/t-crtfm
Normal file
3
libgcc/config/mips/t-crtfm
Normal file
|
@ -0,0 +1,3 @@
|
|||
crtfastmath.o: $(gcc_srcdir)/config/mips/crtfastmath.c
|
||||
$(gcc_compile) -c $(gcc_srcdir)/config/mips/crtfastmath.c
|
||||
|
Loading…
Add table
Reference in a new issue