Support --with-fpmath=sse for x86.

2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config.gcc: Support --with-fpmath=sse for x86.

	* config/i386/ssemath.h: New.

	* doc/install.texi (--with-fpmath=sse): Documented.

From-SVN: r157090
This commit is contained in:
H.J. Lu 2010-02-26 14:52:01 +00:00 committed by H.J. Lu
parent 482b2e5b35
commit a3af5e2615
4 changed files with 71 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
* config.gcc: Support --with-fpmath=sse for x86.
* config/i386/ssemath.h: New.
* doc/install.texi (--with-fpmath=sse): Documented.
2010-02-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43188

View File

@ -2835,7 +2835,18 @@ esac
# This block sets nothing except for with_arch.
if test x$with_arch = x ; then
case ${target} in
i[34567]86-*-*|x86_64-*-*)
i[34567]86-*-darwin*)
# Don't set default arch for Darwin since it will set the default
# ISA to SSE2.
;;
i[34567]86-*-*)
# Don't set default arch if --with-fpmath is used since it will set
# the default ISA to SSE2.
if test x$with_fpmath = x; then
with_arch=$arch
fi
;;
x86_64-*-*)
with_arch=$arch
;;
esac
@ -2856,6 +2867,27 @@ if test x$with_arch = x ; then
esac
fi
# Support --with-fpmath.
if test x$with_fpmath != x; then
case ${target} in
i[34567]86-*-* | x86_64-*-*)
case ${with_fpmath} in
sse)
tm_file="${tm_file} i386/ssemath.h"
;;
*)
echo "Invalid --with-fpmath=$with_fpmath" 1>&2
exit 1
;;
esac
;;
*)
echo "--with-fpmath isn't supported for $target." 1>&2
exit 1
;;
esac
fi
# Similarly for --with-schedule.
if test x$with_schedule = x; then
case ${target} in

25
gcc/config/i386/ssemath.h Normal file
View File

@ -0,0 +1,25 @@
/* 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.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_FPMATH_DEFAULT
#define TARGET_FPMATH_DEFAULT (TARGET_SSE2 ? FPMATH_SSE : FPMATH_387)
#undef TARGET_SUBTARGET32_ISA_DEFAULT
#define TARGET_SUBTARGET32_ISA_DEFAULT \
(OPTION_MASK_ISA_MMX | OPTION_MASK_ISA_SSE | OPTION_MASK_ISA_SSE2)

View File

@ -1170,6 +1170,11 @@ of the arguments depend on the target.
Specify if the compiler should default to @option{-marm} or @option{-mthumb}.
This option is only supported on ARM targets.
@item --with-fpmath=sse
Specify if the compiler should default to @option{-msse2} and
@option{-mfpmath=sse}. This option is only supported on i386 and
x86-64 targets.
@item --with-divide=@var{type}
Specify how the compiler should generate code for checking for
division by zero. This option is only supported on the MIPS target.