config.gcc (powerpc*-*-* | rs6000-*-*): Add rs6000/option-defaults.h to tm_file.

* config.gcc (powerpc*-*-* | rs6000-*-*): Add
	rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
	tune_32 and tune_64.
	* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
	support on PowerPC.
	* config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
	* config/rs6000/option-defaults.h: ... here.  New file.
	(OPT_64, OPT_32): Define.
	(MASK_64BIT): Define to 0 if not already defined.
	(OPT_ARCH64, OPT_ARCH32): Define.
	(OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
	and tune_64.

From-SVN: r146908
This commit is contained in:
Joseph Myers 2009-04-28 19:59:57 +01:00 committed by Joseph Myers
parent 60839f5d38
commit c5f0fe6738
5 changed files with 93 additions and 14 deletions

View file

@ -1,3 +1,18 @@
2009-04-28 Joseph Myers <joseph@codesourcery.com>
* config.gcc (powerpc*-*-* | rs6000-*-*): Add
rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
tune_32 and tune_64.
* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
support on PowerPC.
* config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
* config/rs6000/option-defaults.h: ... here. New file.
(OPT_64, OPT_32): Define.
(MASK_64BIT): Define to 0 if not already defined.
(OPT_ARCH64, OPT_ARCH32): Define.
(OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
and tune_64.
2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.c (arm_override_options): Emit error on using

View file

@ -2468,6 +2468,8 @@ i[34567]86-*-linux* | x86_64-*-linux*)
i[34567]86-*-* | x86_64-*-*)
tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
;;
powerpc*-*-* | rs6000-*-*)
tm_file="${tm_file} rs6000/option-defaults.h"
esac
# Support for --with-cpu and related options (and a few unrelated options,
@ -2930,12 +2932,20 @@ case "${target}" in
;;
powerpc*-*-* | rs6000-*-*)
supported_defaults="cpu float tune"
supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
for which in cpu tune; do
for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
eval "val=\$with_$which"
case ${val} in
default32 | default64)
case $which in
cpu | tune)
;;
*)
echo "$val only valid for --with-cpu and --with-tune." 1>&2
exit 1
;;
esac
with_which="with_$which"
eval $with_which=
;;

View file

@ -0,0 +1,64 @@
/* Definitions of default options for config/rs6000 configurations.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
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/>. */
/* This header needs to be included after any other headers affecting
TARGET_DEFAULT. */
#if TARGET_AIX
#define OPT_64 "maix64"
#define OPT_32 "maix32"
#else
#define OPT_64 "m64"
#define OPT_32 "m32"
#endif
#ifndef MASK_64BIT
#define MASK_64BIT 0
#endif
#if TARGET_DEFAULT & MASK_64BIT
#define OPT_ARCH64 "!"OPT_32
#define OPT_ARCH32 OPT_32
#else
#define OPT_ARCH64 OPT_64
#define OPT_ARCH32 "!"OPT_64
#endif
/* Support for a compile-time default CPU, et cetera. The rules are:
--with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32
and --with-cpu-64.
--with-tune is ignored if -mtune is specified; likewise --with-tune-32
and --with-tune-64.
--with-float is ignored if -mhard-float or -msoft-float are
specified. */
#define OPTION_DEFAULT_SPECS \
{"cpu", "%{!mcpu=*:-mcpu=%(VALUE)}" }, \
{"cpu_32", "%{" OPT_ARCH32 ":%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"cpu_64", "%{" OPT_ARCH64 ":%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
{"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
{"tune_32", "%{" OPT_ARCH32 ":%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"tune_64", "%{" OPT_ARCH64 ":%{!mtune=*:-mtune=%(VALUE)}}" }, \
{"float", "%{!msoft-float:%{!mhard-float:-m%(VALUE)-float}}" }

View file

@ -377,16 +377,6 @@ enum group_termination
previous_group
};
/* Support for a compile-time default CPU, et cetera. The rules are:
--with-cpu is ignored if -mcpu is specified.
--with-tune is ignored if -mtune is specified.
--with-float is ignored if -mhard-float or -msoft-float are
specified. */
#define OPTION_DEFAULT_SPECS \
{"cpu", "%{!mcpu=*:-mcpu=%(VALUE)}" }, \
{"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
{"float", "%{!msoft-float:%{!mhard-float:-m%(VALUE)-float}}" }
/* rs6000_select[0] is reserved for the default cpu defined via --with-cpu */
struct rs6000_cpu_select
{

View file

@ -1111,8 +1111,8 @@ Specify which cpu variant the compiler should generate code for by default.
This option is only supported on some targets, including ARM, i386, M68k,
PowerPC, and SPARC@. The @option{--with-cpu-32} and
@option{--with-cpu-64} options specify separate default CPUs for
32-bit and 64-bit modes; these options are only supported for i386 and
x86-64.
32-bit and 64-bit modes; these options are only supported for i386,
x86-64 and PowerPC.
@item --with-schedule=@var{cpu}
@itemx --with-arch=@var{cpu}