Commit f10d3ac9 by Joseph Myers Committed by Joseph Myers

gcc_update (gcc/config/rs6000/rs6000-tables.opt): New dependencies.

contrib:
	* gcc_update (gcc/config/rs6000/rs6000-tables.opt): New
	dependencies.

gcc:
	* config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New
	files.
	* config/rs6000/rs6000-tables.opt: New file (generated).
	* config.gcc (powerpc*-*-*, rs6000*-*-*): Add
	rs6000/rs6000-tables.opt to extra_options.
	* config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
	* config/rs6000/rs6000.c (rs6000_select): Remove.
	(processor_target_table): Move contents to rs6000-cpus.def.
	(darwin_rs6000_override_options): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.
	(rs6000_option_override_internal): Likewise.
	(rs6000_handle_option): Don't assert that global structures are in
	use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
	(rs6000_default_cpu): New variable.
	(rs6000_file_start): Set it instead of local default_cpu.  Check
	rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
	global_options_set.x_rs6000_tune_index instead of rs6000_select.
	(rs6000_darwin_file_start): Check rs6000_default_cpu and
	global_options_set.x_rs6000_cpu_index instead of rs6000_select.
	* config/rs6000/rs6000.h (struct rs6000_cpu_select,
	rs6000_select): Remove.
	* config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
	Remove.
	(mcpu=, mtune=): Use Var, Init, Enum and Save.
	* config/rs6000/t-rs6000
	($(srcdir)/config/rs6000/rs6000-tables.opt): New.
	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.
	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
	global_options_set.x_rs6000_cpu_index instead of
	rs6000_select[1].string.

From-SVN: r173620
parent 80cf2e08
2011-05-10 Joseph Myers <joseph@codesourcery.com>
* gcc_update (gcc/config/rs6000/rs6000-tables.opt): New
dependencies.
2011-05-09 Joseph Myers <joseph@codesourcery.com> 2011-05-09 Joseph Myers <joseph@codesourcery.com>
* gcc_update (gcc/config/mips/mips-tables.opt): New dependencies. * gcc_update (gcc/config/mips/mips-tables.opt): New dependencies.
......
...@@ -83,6 +83,7 @@ gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cores.def gcc/config/arm/gentune. ...@@ -83,6 +83,7 @@ gcc/config/arm/arm-tune.md: gcc/config/arm/arm-cores.def gcc/config/arm/gentune.
gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/genopt.sh gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/genopt.sh
gcc/config/m68k/m68k-tables.opt: gcc/config/m68k/m68k-devices.def gcc/config/m68k/m68k-isas.def gcc/config/m68k/m68k-microarchs.def gcc/config/m68k/genopt.sh gcc/config/m68k/m68k-tables.opt: gcc/config/m68k/m68k-devices.def gcc/config/m68k/m68k-isas.def gcc/config/m68k/m68k-microarchs.def gcc/config/m68k/genopt.sh
gcc/config/mips/mips-tables.opt: gcc/config/mips/mips-cpus.def gcc/config/mips/genopt.sh gcc/config/mips/mips-tables.opt: gcc/config/mips/mips-cpus.def gcc/config/mips/genopt.sh
gcc/config/rs6000/rs6000-tables.opt: gcc/config/rs6000/rs6000-cpus.def gcc/config/rs6000/genopt.sh
# And then, language-specific files # And then, language-specific files
gcc/cp/cfns.h: gcc/cp/cfns.gperf gcc/cp/cfns.h: gcc/cp/cfns.gperf
gcc/java/keyword.h: gcc/java/keyword.gperf gcc/java/keyword.h: gcc/java/keyword.gperf
......
2011-05-10 Joseph Myers <joseph@codesourcery.com> 2011-05-10 Joseph Myers <joseph@codesourcery.com>
* config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New
files.
* config/rs6000/rs6000-tables.opt: New file (generated).
* config.gcc (powerpc*-*-*, rs6000*-*-*): Add
rs6000/rs6000-tables.opt to extra_options.
* config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
* config/rs6000/rs6000.c (rs6000_select): Remove.
(processor_target_table): Move contents to rs6000-cpus.def.
(darwin_rs6000_override_options): Check
global_options_set.x_rs6000_cpu_index instead of
rs6000_select[1].string.
(rs6000_option_override_internal): Likewise.
(rs6000_handle_option): Don't assert that global structures are in
use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
(rs6000_default_cpu): New variable.
(rs6000_file_start): Set it instead of local default_cpu. Check
rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
global_options_set.x_rs6000_tune_index instead of rs6000_select.
(rs6000_darwin_file_start): Check rs6000_default_cpu and
global_options_set.x_rs6000_cpu_index instead of rs6000_select.
* config/rs6000/rs6000.h (struct rs6000_cpu_select,
rs6000_select): Remove.
* config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
Remove.
(mcpu=, mtune=): Use Var, Init, Enum and Save.
* config/rs6000/t-rs6000
($(srcdir)/config/rs6000/rs6000-tables.opt): New.
* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
global_options_set.x_rs6000_cpu_index instead of
rs6000_select[1].string.
* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
global_options_set.x_rs6000_cpu_index instead of
rs6000_select[1].string.
2011-05-10 Joseph Myers <joseph@codesourcery.com>
* config.gcc (libgcc_tm_file): Define instead of including files * config.gcc (libgcc_tm_file): Define instead of including files
from ../../libgcc/config/ in tm_file. from ../../libgcc/config/ in tm_file.
* configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list):
......
...@@ -392,11 +392,11 @@ powerpc*-*-*) ...@@ -392,11 +392,11 @@ powerpc*-*-*)
cpu_is_64bit=yes cpu_is_64bit=yes
;; ;;
esac esac
extra_options="${extra_options} g.opt fused-madd.opt" extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
;; ;;
rs6000*-*-*) rs6000*-*-*)
need_64bit_hwint=yes need_64bit_hwint=yes
extra_options="${extra_options} g.opt fused-madd.opt" extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
;; ;;
score*-*-*) score*-*-*)
cpu_type=score cpu_type=score
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#undef SUBSUBTARGET_OVERRIDE_OPTIONS #undef SUBSUBTARGET_OVERRIDE_OPTIONS
#define SUBSUBTARGET_OVERRIDE_OPTIONS \ #define SUBSUBTARGET_OVERRIDE_OPTIONS \
if (rs6000_select[1].string == NULL) \ if (!global_options_set.x_rs6000_cpu_index) \
rs6000_cpu = PROCESSOR_PPC8540; \ rs6000_cpu = PROCESSOR_PPC8540; \
if (!global_options_set.x_rs6000_spe_abi) \ if (!global_options_set.x_rs6000_spe_abi) \
rs6000_spe_abi = 1; \ rs6000_spe_abi = 1; \
......
#!/bin/sh
# Generate rs6000-tables.opt from the list of CPUs in rs6000-cpus.def.
# Copyright (C) 2011 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/>.
cat <<EOF
; -*- buffer-read-only: t -*-
; Generated automatically by genopt.sh from rs6000-cpus.def.
; Copyright (C) 2011 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/>.
Enum
Name(rs6000_cpu_opt_value) Type(int)
Known CPUs (for use with the -mcpu= and -mtune= options):
EnumValue
Enum(rs6000_cpu_opt_value) String(native) Value(RS6000_CPU_OPTION_NATIVE) DriverOnly
EOF
awk -F'[(, ]+' '
BEGIN {
value = 0
}
/^RS6000_CPU/ {
name = $2
gsub("\"", "", name)
print "EnumValue"
print "Enum(rs6000_cpu_opt_value) String(" name ") Value(" value ")"
print ""
value++
}' $1/rs6000-cpus.def
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#undef SUBSUBTARGET_OVERRIDE_OPTIONS #undef SUBSUBTARGET_OVERRIDE_OPTIONS
#define SUBSUBTARGET_OVERRIDE_OPTIONS \ #define SUBSUBTARGET_OVERRIDE_OPTIONS \
if (rs6000_select[1].string == NULL) \ if (!global_options_set.x_rs6000_cpu_index) \
rs6000_cpu = PROCESSOR_PPC8540; \ rs6000_cpu = PROCESSOR_PPC8540; \
if (!global_options_set.x_rs6000_spe_abi) \ if (!global_options_set.x_rs6000_spe_abi) \
rs6000_spe_abi = 1; \ rs6000_spe_abi = 1; \
......
/* IBM RS/6000 CPU names..
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
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/>. */
/* This table occasionally claims that a processor does not support a
particular feature even though it does, but the feature is slower than the
alternative. Thus, it shouldn't be relied on as a complete description of
the processor's support.
Please keep this list in order, and don't forget to update the documentation
in invoke.texi when adding a new processor or flag.
Before including this file, define a macro:
RS6000_CPU (NAME, CPU, FLAGS)
where the arguments are the fields of struct rs6000_ptt. */
RS6000_CPU ("401", PROCESSOR_PPC403, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
RS6000_CPU ("403", PROCESSOR_PPC403,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_STRICT_ALIGN)
RS6000_CPU ("405", PROCESSOR_PPC405,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("405fp", PROCESSOR_PPC405,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("440", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("440fp", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("464", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("464fp", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("476", PROCESSOR_PPC476,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_PPC_GFXOPT | MASK_MFCRF
| MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("476fp", PROCESSOR_PPC476,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB
| MASK_FPRND | MASK_CMPB | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("505", PROCESSOR_MPCCORE, POWERPC_BASE_MASK)
RS6000_CPU ("601", PROCESSOR_PPC601,
MASK_POWER | POWERPC_BASE_MASK | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("602", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("603", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("603e", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("604", PROCESSOR_PPC604, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("604e", PROCESSOR_PPC604e, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("620", PROCESSOR_PPC620,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
RS6000_CPU ("630", PROCESSOR_PPC630,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
RS6000_CPU ("740", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("7400", PROCESSOR_PPC7400, POWERPC_7400_MASK)
RS6000_CPU ("7450", PROCESSOR_PPC7450, POWERPC_7400_MASK)
RS6000_CPU ("750", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("801", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
RS6000_CPU ("821", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
RS6000_CPU ("823", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
RS6000_CPU ("8540", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_STRICT_ALIGN
| MASK_ISEL)
/* 8548 has a dummy entry for now. */
RS6000_CPU ("8548", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_STRICT_ALIGN
| MASK_ISEL)
RS6000_CPU ("a2", PROCESSOR_PPCA2,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_POPCNTB
| MASK_CMPB | MASK_NO_UPDATE)
RS6000_CPU ("e300c2", PROCESSOR_PPCE300C2, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
RS6000_CPU ("e300c3", PROCESSOR_PPCE300C3, POWERPC_BASE_MASK)
RS6000_CPU ("e500mc", PROCESSOR_PPCE500MC, POWERPC_BASE_MASK | MASK_PPC_GFXOPT
| MASK_ISEL)
RS6000_CPU ("e500mc64", PROCESSOR_PPCE500MC64,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GFXOPT | MASK_ISEL)
RS6000_CPU ("860", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
RS6000_CPU ("970", PROCESSOR_POWER4,
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64)
RS6000_CPU ("cell", PROCESSOR_CELL,
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64)
RS6000_CPU ("common", PROCESSOR_COMMON, MASK_NEW_MNEMONICS)
RS6000_CPU ("ec603e", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_SOFT_FLOAT)
RS6000_CPU ("G3", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT)
RS6000_CPU ("G4", PROCESSOR_PPC7450, POWERPC_7400_MASK)
RS6000_CPU ("G5", PROCESSOR_POWER4,
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64)
RS6000_CPU ("titan", PROCESSOR_TITAN,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB)
RS6000_CPU ("power", PROCESSOR_POWER, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("power2", PROCESSOR_POWER,
MASK_POWER | MASK_POWER2 | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("power3", PROCESSOR_PPC630,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
RS6000_CPU ("power4", PROCESSOR_POWER4,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
| MASK_PPC_GFXOPT | MASK_MFCRF)
RS6000_CPU ("power5", PROCESSOR_POWER5,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB)
RS6000_CPU ("power5+", PROCESSOR_POWER5,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND)
RS6000_CPU ("power6", PROCESSOR_POWER6,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND
| MASK_CMPB | MASK_DFP | MASK_RECIP_PRECISION)
RS6000_CPU ("power6x", PROCESSOR_POWER6,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT
| MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND
| MASK_CMPB | MASK_DFP | MASK_MFPGPR | MASK_RECIP_PRECISION)
RS6000_CPU ("power7", PROCESSOR_POWER7, /* Don't add MASK_ISEL by default */
POWERPC_7400_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_MFCRF
| MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_DFP | MASK_POPCNTD
| MASK_VSX | MASK_RECIP_PRECISION)
RS6000_CPU ("powerpc", PROCESSOR_POWERPC, POWERPC_BASE_MASK)
RS6000_CPU ("powerpc64", PROCESSOR_POWERPC64,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
RS6000_CPU ("rios", PROCESSOR_RIOS1, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("rios1", PROCESSOR_RIOS1, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("rios2", PROCESSOR_RIOS2,
MASK_POWER | MASK_POWER2 | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("rsc", PROCESSOR_PPC601, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("rsc1", PROCESSOR_PPC601, MASK_POWER | MASK_MULTIPLE | MASK_STRING)
RS6000_CPU ("rs64", PROCESSOR_RS64A,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64)
/* Definitions of target machine needed for option handling for GNU compiler, /* Definitions of target machine needed for option handling for GNU compiler,
for IBM RS/6000. for IBM RS/6000.
Copyright (C) 2010 Copyright (C) 2010, 2011
Free Software Foundation, Inc. Free Software Foundation, Inc.
Contributed by Michael Meissner (meissner@linux.vnet.ibm.com) Contributed by Michael Meissner (meissner@linux.vnet.ibm.com)
...@@ -141,4 +141,9 @@ enum rs6000_vector { ...@@ -141,4 +141,9 @@ enum rs6000_vector {
VECTOR_OTHER /* Some other vector unit */ VECTOR_OTHER /* Some other vector unit */
}; };
/* No enumeration is defined to index the -mcpu= values (entries in
processor_target_table), with the type int being used instead, but
we need to distinguish the special "native" value. */
#define RS6000_CPU_OPTION_NATIVE -1
#endif #endif
; -*- buffer-read-only: t -*-
; Generated automatically by genopt.sh from rs6000-cpus.def.
; Copyright (C) 2011 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/>.
Enum
Name(rs6000_cpu_opt_value) Type(int)
Known CPUs (for use with the -mcpu= and -mtune= options):
EnumValue
Enum(rs6000_cpu_opt_value) String(native) Value(RS6000_CPU_OPTION_NATIVE) DriverOnly
EnumValue
Enum(rs6000_cpu_opt_value) String(401) Value(0)
EnumValue
Enum(rs6000_cpu_opt_value) String(403) Value(1)
EnumValue
Enum(rs6000_cpu_opt_value) String(405) Value(2)
EnumValue
Enum(rs6000_cpu_opt_value) String(405fp) Value(3)
EnumValue
Enum(rs6000_cpu_opt_value) String(440) Value(4)
EnumValue
Enum(rs6000_cpu_opt_value) String(440fp) Value(5)
EnumValue
Enum(rs6000_cpu_opt_value) String(464) Value(6)
EnumValue
Enum(rs6000_cpu_opt_value) String(464fp) Value(7)
EnumValue
Enum(rs6000_cpu_opt_value) String(476) Value(8)
EnumValue
Enum(rs6000_cpu_opt_value) String(476fp) Value(9)
EnumValue
Enum(rs6000_cpu_opt_value) String(505) Value(10)
EnumValue
Enum(rs6000_cpu_opt_value) String(601) Value(11)
EnumValue
Enum(rs6000_cpu_opt_value) String(602) Value(12)
EnumValue
Enum(rs6000_cpu_opt_value) String(603) Value(13)
EnumValue
Enum(rs6000_cpu_opt_value) String(603e) Value(14)
EnumValue
Enum(rs6000_cpu_opt_value) String(604) Value(15)
EnumValue
Enum(rs6000_cpu_opt_value) String(604e) Value(16)
EnumValue
Enum(rs6000_cpu_opt_value) String(620) Value(17)
EnumValue
Enum(rs6000_cpu_opt_value) String(630) Value(18)
EnumValue
Enum(rs6000_cpu_opt_value) String(740) Value(19)
EnumValue
Enum(rs6000_cpu_opt_value) String(7400) Value(20)
EnumValue
Enum(rs6000_cpu_opt_value) String(7450) Value(21)
EnumValue
Enum(rs6000_cpu_opt_value) String(750) Value(22)
EnumValue
Enum(rs6000_cpu_opt_value) String(801) Value(23)
EnumValue
Enum(rs6000_cpu_opt_value) String(821) Value(24)
EnumValue
Enum(rs6000_cpu_opt_value) String(823) Value(25)
EnumValue
Enum(rs6000_cpu_opt_value) String(8540) Value(26)
EnumValue
Enum(rs6000_cpu_opt_value) String(8548) Value(27)
EnumValue
Enum(rs6000_cpu_opt_value) String(a2) Value(28)
EnumValue
Enum(rs6000_cpu_opt_value) String(e300c2) Value(29)
EnumValue
Enum(rs6000_cpu_opt_value) String(e300c3) Value(30)
EnumValue
Enum(rs6000_cpu_opt_value) String(e500mc) Value(31)
EnumValue
Enum(rs6000_cpu_opt_value) String(e500mc64) Value(32)
EnumValue
Enum(rs6000_cpu_opt_value) String(860) Value(33)
EnumValue
Enum(rs6000_cpu_opt_value) String(970) Value(34)
EnumValue
Enum(rs6000_cpu_opt_value) String(cell) Value(35)
EnumValue
Enum(rs6000_cpu_opt_value) String(common) Value(36)
EnumValue
Enum(rs6000_cpu_opt_value) String(ec603e) Value(37)
EnumValue
Enum(rs6000_cpu_opt_value) String(G3) Value(38)
EnumValue
Enum(rs6000_cpu_opt_value) String(G4) Value(39)
EnumValue
Enum(rs6000_cpu_opt_value) String(G5) Value(40)
EnumValue
Enum(rs6000_cpu_opt_value) String(titan) Value(41)
EnumValue
Enum(rs6000_cpu_opt_value) String(power) Value(42)
EnumValue
Enum(rs6000_cpu_opt_value) String(power2) Value(43)
EnumValue
Enum(rs6000_cpu_opt_value) String(power3) Value(44)
EnumValue
Enum(rs6000_cpu_opt_value) String(power4) Value(45)
EnumValue
Enum(rs6000_cpu_opt_value) String(power5) Value(46)
EnumValue
Enum(rs6000_cpu_opt_value) String(power5+) Value(47)
EnumValue
Enum(rs6000_cpu_opt_value) String(power6) Value(48)
EnumValue
Enum(rs6000_cpu_opt_value) String(power6x) Value(49)
EnumValue
Enum(rs6000_cpu_opt_value) String(power7) Value(50)
EnumValue
Enum(rs6000_cpu_opt_value) String(powerpc) Value(51)
EnumValue
Enum(rs6000_cpu_opt_value) String(powerpc64) Value(52)
EnumValue
Enum(rs6000_cpu_opt_value) String(rios) Value(53)
EnumValue
Enum(rs6000_cpu_opt_value) String(rios1) Value(54)
EnumValue
Enum(rs6000_cpu_opt_value) String(rios2) Value(55)
EnumValue
Enum(rs6000_cpu_opt_value) String(rsc) Value(56)
EnumValue
Enum(rs6000_cpu_opt_value) String(rsc1) Value(57)
EnumValue
Enum(rs6000_cpu_opt_value) String(rs64) Value(58)
...@@ -138,16 +138,6 @@ typedef struct GTY(()) machine_function ...@@ -138,16 +138,6 @@ typedef struct GTY(()) machine_function
rtx sdmode_stack_slot; rtx sdmode_stack_slot;
} machine_function; } machine_function;
/* Target cpu type */
struct rs6000_cpu_select rs6000_select[3] =
{
/* switch name, tune arch */
{ (const char *)0, "--with-cpu=", 1, 1 },
{ (const char *)0, "-mcpu=", 1, 1 },
{ (const char *)0, "-mtune=", 1, 0 },
};
/* Support targetm.vectorize.builtin_mask_for_load. */ /* Support targetm.vectorize.builtin_mask_for_load. */
static GTY(()) tree altivec_builtin_mask_for_load; static GTY(()) tree altivec_builtin_mask_for_load;
...@@ -1697,14 +1687,6 @@ enum { ...@@ -1697,14 +1687,6 @@ enum {
| MASK_VSX) | MASK_VSX)
}; };
/* This table occasionally claims that a processor does not support a
particular feature even though it does, but the feature is slower than the
alternative. Thus, it shouldn't be relied on as a complete description of
the processor's support.
Please keep this list in order, and don't forget to update the documentation
in invoke.texi when adding a new processor or flag. */
struct rs6000_ptt struct rs6000_ptt
{ {
const char *const name; /* Canonical processor name. */ const char *const name; /* Canonical processor name. */
...@@ -1714,110 +1696,9 @@ struct rs6000_ptt ...@@ -1714,110 +1696,9 @@ struct rs6000_ptt
static struct rs6000_ptt const processor_target_table[] = static struct rs6000_ptt const processor_target_table[] =
{ {
{"401", PROCESSOR_PPC403, POWERPC_BASE_MASK | MASK_SOFT_FLOAT}, #define RS6000_CPU(NAME, CPU, FLAGS) { NAME, CPU, FLAGS },
{"403", PROCESSOR_PPC403, #include "rs6000-cpus.def"
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_STRICT_ALIGN}, #undef RS6000_CPU
{"405", PROCESSOR_PPC405,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB},
{"405fp", PROCESSOR_PPC405,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB},
{"440", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB},
{"440fp", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB},
{"464", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_MULHW | MASK_DLMZB},
{"464fp", PROCESSOR_PPC440,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB},
{"476", PROCESSOR_PPC476,
POWERPC_BASE_MASK | MASK_SOFT_FLOAT | MASK_PPC_GFXOPT | MASK_MFCRF
| MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_MULHW | MASK_DLMZB},
{"476fp", PROCESSOR_PPC476,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_MFCRF | MASK_POPCNTB
| MASK_FPRND | MASK_CMPB | MASK_MULHW | MASK_DLMZB},
{"505", PROCESSOR_MPCCORE, POWERPC_BASE_MASK},
{"601", PROCESSOR_PPC601,
MASK_POWER | POWERPC_BASE_MASK | MASK_MULTIPLE | MASK_STRING},
{"602", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"603", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"603e", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"604", PROCESSOR_PPC604, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"604e", PROCESSOR_PPC604e, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"620", PROCESSOR_PPC620,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64},
{"630", PROCESSOR_PPC630,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64},
{"740", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"7400", PROCESSOR_PPC7400, POWERPC_7400_MASK},
{"7450", PROCESSOR_PPC7450, POWERPC_7400_MASK},
{"750", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"801", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"821", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"823", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"8540", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_STRICT_ALIGN
| MASK_ISEL},
/* 8548 has a dummy entry for now. */
{"8548", PROCESSOR_PPC8540, POWERPC_BASE_MASK | MASK_STRICT_ALIGN
| MASK_ISEL},
{"a2", PROCESSOR_PPCA2,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_POPCNTB
| MASK_CMPB | MASK_NO_UPDATE },
{"e300c2", PROCESSOR_PPCE300C2, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"e300c3", PROCESSOR_PPCE300C3, POWERPC_BASE_MASK},
{"e500mc", PROCESSOR_PPCE500MC, POWERPC_BASE_MASK | MASK_PPC_GFXOPT
| MASK_ISEL},
{"e500mc64", PROCESSOR_PPCE500MC64, POWERPC_BASE_MASK | MASK_POWERPC64
| MASK_PPC_GFXOPT | MASK_ISEL},
{"860", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"970", PROCESSOR_POWER4,
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64},
{"cell", PROCESSOR_CELL,
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64},
{"common", PROCESSOR_COMMON, MASK_NEW_MNEMONICS},
{"ec603e", PROCESSOR_PPC603, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
{"G3", PROCESSOR_PPC750, POWERPC_BASE_MASK | MASK_PPC_GFXOPT},
{"G4", PROCESSOR_PPC7450, POWERPC_7400_MASK},
{"G5", PROCESSOR_POWER4,
POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64},
{"titan", PROCESSOR_TITAN,
POWERPC_BASE_MASK | MASK_MULHW | MASK_DLMZB},
{"power", PROCESSOR_POWER, MASK_POWER | MASK_MULTIPLE | MASK_STRING},
{"power2", PROCESSOR_POWER,
MASK_POWER | MASK_POWER2 | MASK_MULTIPLE | MASK_STRING},
{"power3", PROCESSOR_PPC630,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64},
{"power4", PROCESSOR_POWER4,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_PPC_GFXOPT
| MASK_MFCRF},
{"power5", PROCESSOR_POWER5,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_PPC_GFXOPT
| MASK_MFCRF | MASK_POPCNTB},
{"power5+", PROCESSOR_POWER5,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_PPC_GFXOPT
| MASK_MFCRF | MASK_POPCNTB | MASK_FPRND},
{"power6", PROCESSOR_POWER6,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_PPC_GFXOPT
| MASK_MFCRF | MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_DFP
| MASK_RECIP_PRECISION},
{"power6x", PROCESSOR_POWER6,
POWERPC_BASE_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_PPC_GFXOPT
| MASK_MFCRF | MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_DFP
| MASK_MFPGPR | MASK_RECIP_PRECISION},
{"power7", PROCESSOR_POWER7, /* Don't add MASK_ISEL by default */
POWERPC_7400_MASK | MASK_POWERPC64 | MASK_PPC_GPOPT | MASK_MFCRF
| MASK_POPCNTB | MASK_FPRND | MASK_CMPB | MASK_DFP | MASK_POPCNTD
| MASK_VSX | MASK_RECIP_PRECISION},
{"powerpc", PROCESSOR_POWERPC, POWERPC_BASE_MASK},
{"powerpc64", PROCESSOR_POWERPC64,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64},
{"rios", PROCESSOR_RIOS1, MASK_POWER | MASK_MULTIPLE | MASK_STRING},
{"rios1", PROCESSOR_RIOS1, MASK_POWER | MASK_MULTIPLE | MASK_STRING},
{"rios2", PROCESSOR_RIOS2,
MASK_POWER | MASK_POWER2 | MASK_MULTIPLE | MASK_STRING},
{"rsc", PROCESSOR_PPC601, MASK_POWER | MASK_MULTIPLE | MASK_STRING},
{"rsc1", PROCESSOR_PPC601, MASK_POWER | MASK_MULTIPLE | MASK_STRING},
{"rs64", PROCESSOR_RS64A,
POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64}
}; };
/* Look up a processor name for -mcpu=xxx and -mtune=xxx. Return -1 if the /* Look up a processor name for -mcpu=xxx and -mtune=xxx. Return -1 if the
...@@ -2625,7 +2506,7 @@ darwin_rs6000_override_options (void) ...@@ -2625,7 +2506,7 @@ darwin_rs6000_override_options (void)
&& !flag_apple_kext && !flag_apple_kext
&& strverscmp (darwin_macosx_version_min, "10.5") >= 0 && strverscmp (darwin_macosx_version_min, "10.5") >= 0
&& ! (target_flags_explicit & MASK_ALTIVEC) && ! (target_flags_explicit & MASK_ALTIVEC)
&& ! rs6000_select[1].string) && ! global_options_set.x_rs6000_cpu_index)
{ {
target_flags |= MASK_ALTIVEC; target_flags |= MASK_ALTIVEC;
} }
...@@ -2983,7 +2864,7 @@ rs6000_option_override_internal (bool global_init_p) ...@@ -2983,7 +2864,7 @@ rs6000_option_override_internal (bool global_init_p)
if ((target_flags & MASK_STRING) != 0) if ((target_flags & MASK_STRING) != 0)
target_flags = target_flags & ~MASK_STRING; target_flags = target_flags & ~MASK_STRING;
} }
else if (rs6000_select[1].string != NULL) else if (global_options_set.x_rs6000_cpu_index)
{ {
/* For the powerpc-eabispe configuration, we set all these by /* For the powerpc-eabispe configuration, we set all these by
default, so let's unset them if we manually set another default, so let's unset them if we manually set another
...@@ -4181,9 +4062,6 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set, ...@@ -4181,9 +4062,6 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
const char *arg = decoded->arg; const char *arg = decoded->arg;
int value = decoded->value; int value = decoded->value;
gcc_assert (opts == &global_options);
gcc_assert (opts_set == &global_options_set);
switch (code) switch (code)
{ {
case OPT_mno_power: case OPT_mno_power:
...@@ -4349,20 +4227,6 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set, ...@@ -4349,20 +4227,6 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
opts->x_rs6000_altivec_abi = 0; opts->x_rs6000_altivec_abi = 0;
break; break;
case OPT_mcpu_:
rs6000_select[1].string = arg;
opts->x_rs6000_cpu_index = rs6000_cpu_name_lookup (arg);
if (opts->x_rs6000_cpu_index < 0)
error_at (loc, "bad value (%s) for -mcpu", arg);
break;
case OPT_mtune_:
rs6000_select[2].string = arg;
opts->x_rs6000_tune_index = rs6000_cpu_name_lookup (arg);
if (opts->x_rs6000_tune_index < 0)
error_at (loc, "bad value (%s) for -mtune", arg);
break;
case OPT_mlong_double_: case OPT_mlong_double_:
if (value != 64 && value != 128) if (value != 64 && value != 128)
{ {
...@@ -4437,38 +4301,49 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set, ...@@ -4437,38 +4301,49 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
return true; return true;
} }
/* Default CPU string for rs6000*_file_start functions. */
static const char *rs6000_default_cpu;
/* Do anything needed at the start of the asm file. */ /* Do anything needed at the start of the asm file. */
static void static void
rs6000_file_start (void) rs6000_file_start (void)
{ {
size_t i;
char buffer[80]; char buffer[80];
const char *start = buffer; const char *start = buffer;
struct rs6000_cpu_select *ptr;
const char *default_cpu = TARGET_CPU_DEFAULT;
FILE *file = asm_out_file; FILE *file = asm_out_file;
rs6000_default_cpu = TARGET_CPU_DEFAULT;
default_file_start (); default_file_start ();
#ifdef TARGET_BI_ARCH #ifdef TARGET_BI_ARCH
if ((TARGET_DEFAULT ^ target_flags) & MASK_64BIT) if ((TARGET_DEFAULT ^ target_flags) & MASK_64BIT)
default_cpu = 0; rs6000_default_cpu = 0;
#endif #endif
if (flag_verbose_asm) if (flag_verbose_asm)
{ {
sprintf (buffer, "\n%s rs6000/powerpc options:", ASM_COMMENT_START); sprintf (buffer, "\n%s rs6000/powerpc options:", ASM_COMMENT_START);
rs6000_select[0].string = default_cpu;
for (i = 0; i < ARRAY_SIZE (rs6000_select); i++) if (rs6000_default_cpu != 0 && rs6000_default_cpu[0] != '\0')
{ {
ptr = &rs6000_select[i]; fprintf (file, "%s --with-cpu=%s", start, rs6000_default_cpu);
if (ptr->string != (char *)0 && ptr->string[0] != '\0') start = "";
{ }
fprintf (file, "%s %s%s", start, ptr->name, ptr->string);
start = ""; if (global_options_set.x_rs6000_cpu_index)
} {
fprintf (file, "%s -mcpu=%s", start,
processor_target_table[rs6000_cpu_index].name);
start = "";
}
if (global_options_set.x_rs6000_tune_index)
{
fprintf (file, "%s -mtune=%s", start,
processor_target_table[rs6000_tune_index].name);
start = "";
} }
if (PPC405_ERRATUM77) if (PPC405_ERRATUM77)
...@@ -25712,10 +25587,12 @@ rs6000_darwin_file_start (void) ...@@ -25712,10 +25587,12 @@ rs6000_darwin_file_start (void)
darwin_file_start (); darwin_file_start ();
/* Determine the argument to -mcpu=. Default to G3 if not specified. */ /* Determine the argument to -mcpu=. Default to G3 if not specified. */
for (i = 0; i < ARRAY_SIZE (rs6000_select); i++)
if (rs6000_select[i].set_arch_p && rs6000_select[i].string if (rs6000_default_cpu != 0 && rs6000_default_cpu[0] != '\0')
&& rs6000_select[i].string[0] != '\0') cpu_id = rs6000_default_cpu;
cpu_id = rs6000_select[i].string;
if (global_options_set.x_rs6000_cpu_index)
cpu_id = processor_target_table[rs6000_cpu_index].name;
/* Look through the mapping array. Pick the first name that either /* Look through the mapping array. Pick the first name that either
matches the argument, has a bit set in IF_SET that is also set matches the argument, has a bit set in IF_SET that is also set
......
...@@ -358,17 +358,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); ...@@ -358,17 +358,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
and the old mnemonics are dialect zero. */ and the old mnemonics are dialect zero. */
#define ASSEMBLER_DIALECT (TARGET_NEW_MNEMONICS ? 1 : 0) #define ASSEMBLER_DIALECT (TARGET_NEW_MNEMONICS ? 1 : 0)
/* rs6000_select[0] is reserved for the default cpu defined via --with-cpu */
struct rs6000_cpu_select
{
const char *string;
const char *name;
int set_tune_p;
int set_arch_p;
};
extern struct rs6000_cpu_select rs6000_select[];
/* Debug support */ /* Debug support */
#define MASK_DEBUG_STACK 0x01 /* debug stack applications */ #define MASK_DEBUG_STACK 0x01 /* debug stack applications */
#define MASK_DEBUG_ARG 0x02 /* debug argument handling */ #define MASK_DEBUG_ARG 0x02 /* debug argument handling */
......
...@@ -79,14 +79,6 @@ enum rs6000_cmodel rs6000_current_cmodel = CMODEL_SMALL ...@@ -79,14 +79,6 @@ enum rs6000_cmodel rs6000_current_cmodel = CMODEL_SMALL
TargetVariable TargetVariable
unsigned int rs6000_recip_control unsigned int rs6000_recip_control
;; -mcpu=<xxx> as an index into the processor_target_table or -1
TargetVariable
int rs6000_cpu_index = -1
;; -mtune=<xxx> as an index into the processor_target_table or -1
TargetVariable
int rs6000_tune_index = -1
;; Debug flags ;; Debug flags
TargetVariable TargetVariable
unsigned int rs6000_debug unsigned int rs6000_debug
...@@ -402,11 +394,11 @@ mabi=ibmlongdouble ...@@ -402,11 +394,11 @@ mabi=ibmlongdouble
Target RejectNegative Undocumented Warn(using IBM extended precision long double) Var(rs6000_ieeequad, 0) Target RejectNegative Undocumented Warn(using IBM extended precision long double) Var(rs6000_ieeequad, 0)
mcpu= mcpu=
Target RejectNegative Joined Target RejectNegative Joined Var(rs6000_cpu_index) Init(-1) Enum(rs6000_cpu_opt_value) Save
-mcpu= Use features of and schedule code for given CPU -mcpu= Use features of and schedule code for given CPU
mtune= mtune=
Target RejectNegative Joined Target RejectNegative Joined Var(rs6000_tune_index) Init(-1) Enum(rs6000_cpu_opt_value) Save
-mtune= Schedule code for given CPU -mtune= Schedule code for given CPU
mtraceback= mtraceback=
......
...@@ -36,6 +36,11 @@ rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \ ...@@ -36,6 +36,11 @@ rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$(srcdir)/config/rs6000/rs6000-c.c $(srcdir)/config/rs6000/rs6000-c.c
$(srcdir)/config/rs6000/rs6000-tables.opt: $(srcdir)/config/rs6000/genopt.sh \
$(srcdir)/config/rs6000/rs6000-cpus.def
$(SHELL) $(srcdir)/config/rs6000/genopt.sh $(srcdir)/config/rs6000 > \
$(srcdir)/config/rs6000/rs6000-tables.opt
# The rs6000 backend doesn't cause warnings in these files. # The rs6000 backend doesn't cause warnings in these files.
insn-conditions.o-warn = insn-conditions.o-warn =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment