summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-27 11:32:31 +0000
committersegher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-27 11:32:31 +0000
commit01eb32e7b115f71fdabbf03e53264a4f5a94175a (patch)
tree91d8d863096816f1da7acf2515fc9977386c7819
parent04e71a1981e1653db77c229f1772dfca7463919f (diff)
downloadgcc-01eb32e7b115f71fdabbf03e53264a4f5a94175a.tar.gz
2012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
gcc/ * config/rs6000/601.md: New file. * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for RIOS CPUs. * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise. * config/rs6000/driver-rs6000.c (detect_processor_aix, struct asm_names): Likewise. * config/rs6000/rios1.md: Delete file. * config/rs6000/rios2.md: Delete file. * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS CPUs. * config/rs6000/rs6000-opts.h (enum processor_type): Delete PROCESSOR_RIOS1 and PROCESSOR_RIOS2. * config/rs6000/rs6000-tables.opt: Regenerated. * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost): Delete. (rs6000_option_override_internal): Delete support for RIOS CPUs. (rs6000_conditional_register_usage): Adjust comment. (rs6000_issue_rate):Delete support for RIOS CPUs. * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for RIOS CPUs. (PROCESSOR_POWER): Change to PROCESSOR_PPC601. (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603. * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1 and rios2. (include "rios1.md", include "rios2.md"): Delete. (include "601.md"): New. * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to PROCESSOR_PPC603. * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support for RIOS CPUs. * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and rios2.md . Add 601.md . git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189907 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog35
-rw-r--r--gcc/config/rs6000/601.md136
-rw-r--r--gcc/config/rs6000/aix43.h8
-rw-r--r--gcc/config/rs6000/aix51.h8
-rw-r--r--gcc/config/rs6000/driver-rs6000.c16
-rw-r--r--gcc/config/rs6000/rios1.md191
-rw-r--r--gcc/config/rs6000/rios2.md129
-rw-r--r--gcc/config/rs6000/rs6000-cpus.def10
-rw-r--r--gcc/config/rs6000/rs6000-opts.h5
-rw-r--r--gcc/config/rs6000/rs6000-tables.opt17
-rw-r--r--gcc/config/rs6000/rs6000.c56
-rw-r--r--gcc/config/rs6000/rs6000.h14
-rw-r--r--gcc/config/rs6000/rs6000.md10
-rw-r--r--gcc/config/rs6000/rs6000.opt5
-rw-r--r--gcc/config/rs6000/t-aix437
-rw-r--r--gcc/config/rs6000/t-rs60008
16 files changed, 191 insertions, 464 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d75809cce40..977863319a2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,38 @@
+2012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * config/rs6000/601.md: New file.
+ * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
+ RIOS CPUs.
+ * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
+ * config/rs6000/driver-rs6000.c (detect_processor_aix,
+ struct asm_names): Likewise.
+ * config/rs6000/rios1.md: Delete file.
+ * config/rs6000/rios2.md: Delete file.
+ * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
+ CPUs.
+ * config/rs6000/rs6000-opts.h (enum processor_type): Delete
+ PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
+ * config/rs6000/rs6000-tables.opt: Regenerated.
+ * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
+ Delete.
+ (rs6000_option_override_internal): Delete support for RIOS CPUs.
+ (rs6000_conditional_register_usage): Adjust comment.
+ (rs6000_issue_rate):Delete support for RIOS CPUs.
+ * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
+ RIOS CPUs.
+ (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
+ (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
+ * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
+ and rios2.
+ (include "rios1.md", include "rios2.md"): Delete.
+ (include "601.md"): New.
+ * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
+ PROCESSOR_PPC603.
+ * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
+ for RIOS CPUs.
+ * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
+ rios2.md . Add 601.md .
+
2012-07-26 Richard Henderson <rth@redhat.com>
* doc/extend.texi (attribute): Document hot/cold for labels.
diff --git a/gcc/config/rs6000/601.md b/gcc/config/rs6000/601.md
new file mode 100644
index 00000000000..52644f2d9b3
--- /dev/null
+++ b/gcc/config/rs6000/601.md
@@ -0,0 +1,136 @@
+;; Scheduling description for PowerPC 601 processor.
+;; Copyright (C) 2003-2012 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/>.
+
+(define_automaton "ppc601,ppc601fp")
+(define_cpu_unit "iu_ppc601" "ppc601")
+(define_cpu_unit "fpu_ppc601" "ppc601fp")
+(define_cpu_unit "bpu_ppc601" "ppc601")
+
+;; PPC601 32-bit IU, FPU, BPU
+
+(define_insn_reservation "ppc601-load" 2
+ (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,\
+ load_l,store_c,sync")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601")
+
+(define_insn_reservation "ppc601-store" 2
+ (and (eq_attr "type" "store,store_ux,store_u")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601")
+
+(define_insn_reservation "ppc601-fpload" 3
+ (and (eq_attr "type" "fpload,fpload_ux,fpload_u")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601")
+
+(define_insn_reservation "ppc601-fpstore" 3
+ (and (eq_attr "type" "fpstore,fpstore_ux,fpstore_u")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601+fpu_ppc601")
+
+(define_insn_reservation "ppc601-integer" 1
+ (and (eq_attr "type" "integer,insert_word,insert_dword,shift,\
+ trap,var_shift_rotate,cntlz,exts,isel")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601")
+
+(define_insn_reservation "ppc601-two" 1
+ (and (eq_attr "type" "two")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601,iu_ppc601")
+
+(define_insn_reservation "ppc601-three" 1
+ (and (eq_attr "type" "three")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601,iu_ppc601,iu_ppc601")
+
+(define_insn_reservation "ppc601-imul" 5
+ (and (eq_attr "type" "imul,imul2,imul3,imul_compare")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601*5")
+
+(define_insn_reservation "ppc601-idiv" 36
+ (and (eq_attr "type" "idiv")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601*36")
+
+; compare executes on integer unit, but feeds insns which
+; execute on the branch unit.
+(define_insn_reservation "ppc601-compare" 3
+ (and (eq_attr "type" "cmp,compare,delayed_compare,\
+ var_delayed_compare")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601,nothing,bpu_ppc601")
+
+(define_insn_reservation "ppc601-fpcompare" 5
+ (and (eq_attr "type" "fpcompare")
+ (eq_attr "cpu" "ppc601"))
+ "(fpu_ppc601+iu_ppc601*2),nothing*2,bpu_ppc601")
+
+(define_insn_reservation "ppc601-fp" 4
+ (and (eq_attr "type" "fp")
+ (eq_attr "cpu" "ppc601"))
+ "fpu_ppc601")
+
+(define_insn_reservation "ppc601-dmul" 5
+ (and (eq_attr "type" "dmul")
+ (eq_attr "cpu" "ppc601"))
+ "fpu_ppc601*2")
+
+(define_insn_reservation "ppc601-sdiv" 17
+ (and (eq_attr "type" "sdiv")
+ (eq_attr "cpu" "ppc601"))
+ "fpu_ppc601*17")
+
+(define_insn_reservation "ppc601-ddiv" 31
+ (and (eq_attr "type" "ddiv")
+ (eq_attr "cpu" "ppc601"))
+ "fpu_ppc601*31")
+
+(define_insn_reservation "ppc601-mfcr" 2
+ (and (eq_attr "type" "mfcr")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601,bpu_ppc601")
+
+(define_insn_reservation "ppc601-mtcr" 4
+ (and (eq_attr "type" "mtcr")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601,bpu_ppc601")
+
+(define_insn_reservation "ppc601-crlogical" 4
+ (and (eq_attr "type" "cr_logical,delayed_cr")
+ (eq_attr "cpu" "ppc601"))
+ "bpu_ppc601")
+
+(define_insn_reservation "ppc601-mtjmpr" 4
+ (and (eq_attr "type" "mtjmpr")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601,bpu_ppc601")
+
+(define_insn_reservation "ppc601-mfjmpr" 2
+ (and (eq_attr "type" "mfjmpr")
+ (eq_attr "cpu" "ppc601"))
+ "iu_ppc601,bpu_ppc601")
+
+(define_insn_reservation "ppc601-branch" 1
+ (and (eq_attr "type" "jmpreg,branch,isync")
+ (eq_attr "cpu" "ppc601"))
+ "bpu_ppc601")
+
diff --git a/gcc/config/rs6000/aix43.h b/gcc/config/rs6000/aix43.h
index 936176cb34e..8f5786ff0c0 100644
--- a/gcc/config/rs6000/aix43.h
+++ b/gcc/config/rs6000/aix43.h
@@ -1,7 +1,6 @@
/* Definitions of target machine for GNU compiler,
for IBM RS/6000 POWER running AIX version 4.3.
- Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
- 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1998-2012 Free Software Foundation, Inc.
Contributed by David Edelsohn (edelsohn@gnu.org).
This file is part of GCC.
@@ -67,11 +66,6 @@ do { \
%{mcpu=power3: -m620} \
%{mcpu=power4: -m620} \
%{mcpu=powerpc: -mppc} \
-%{mcpu=rios: -mpwr} \
-%{mcpu=rios1: -mpwr} \
-%{mcpu=rios2: -mpwr2} \
-%{mcpu=rsc: -mpwr} \
-%{mcpu=rsc1: -mpwr} \
%{mcpu=rs64a: -mppc} \
%{mcpu=601: -m601} \
%{mcpu=602: -mppc} \
diff --git a/gcc/config/rs6000/aix51.h b/gcc/config/rs6000/aix51.h
index 90d504f61b6..00373ffac20 100644
--- a/gcc/config/rs6000/aix51.h
+++ b/gcc/config/rs6000/aix51.h
@@ -1,7 +1,6 @@
/* Definitions of target machine for GNU compiler,
for IBM RS/6000 POWER running AIX V5.
- Copyright (C) 2001, 2003, 2004, 2005, 2007, 2008, 2009, 2010
- Free Software Foundation, Inc.
+ Copyright (C) 2001-2012 Free Software Foundation, Inc.
Contributed by David Edelsohn (edelsohn@gnu.org).
This file is part of GCC.
@@ -61,11 +60,6 @@ do { \
%{mcpu=power3: -m620} \
%{mcpu=power4: -m620} \
%{mcpu=powerpc: -mppc} \
-%{mcpu=rios: -mpwr} \
-%{mcpu=rios1: -mpwr} \
-%{mcpu=rios2: -mpwr2} \
-%{mcpu=rsc: -mpwr} \
-%{mcpu=rsc1: -mpwr} \
%{mcpu=rs64a: -mppc} \
%{mcpu=601: -m601} \
%{mcpu=602: -mppc} \
diff --git a/gcc/config/rs6000/driver-rs6000.c b/gcc/config/rs6000/driver-rs6000.c
index 11e76ea968f..178bb42e352 100644
--- a/gcc/config/rs6000/driver-rs6000.c
+++ b/gcc/config/rs6000/driver-rs6000.c
@@ -1,5 +1,5 @@
/* Subroutines for the gcc driver.
- Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -295,15 +295,6 @@ detect_processor_aix (void)
{
switch (_system_configuration.implementation)
{
- case 0x0001:
- return "rios1";
-
- case 0x0002:
- return "rsc";
-
- case 0x0004:
- return "rios2";
-
case 0x0008:
return "601";
@@ -392,11 +383,6 @@ static const struct asm_name asm_names[] = {
{ "power6x", "%(asm_cpu_power6) -maltivec" },
{ "power7", "%(asm_cpu_power7)" },
{ "powerpc", "-mppc" },
- { "rios", "-mpwr" },
- { "rios1", "-mpwr" },
- { "rios2", "-mpwrx" },
- { "rsc", "-mpwr" },
- { "rsc1", "-mpwr" },
{ "rs64a", "-mppc64" },
{ "401", "-mppc" },
{ "403", "-m403" },
diff --git a/gcc/config/rs6000/rios1.md b/gcc/config/rs6000/rios1.md
deleted file mode 100644
index 9ad9ce3e161..00000000000
--- a/gcc/config/rs6000/rios1.md
+++ /dev/null
@@ -1,191 +0,0 @@
-;; Scheduling description for IBM POWER processor.
-;; Copyright (C) 2003, 2004, 2007, 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.
-
-;; 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/>.
-
-(define_automaton "rios1,rios1fp")
-(define_cpu_unit "iu_rios1" "rios1")
-(define_cpu_unit "fpu_rios1" "rios1fp")
-(define_cpu_unit "bpu_rios1" "rios1")
-
-;; RIOS1 32-bit IU, FPU, BPU
-
-(define_insn_reservation "rios1-load" 2
- (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,\
- load_l,store_c,sync")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1")
-
-(define_insn_reservation "rios1-store" 2
- (and (eq_attr "type" "store,store_ux,store_u")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1")
-
-(define_insn_reservation "rios1-fpload" 2
- (and (eq_attr "type" "fpload,fpload_ux,fpload_u")
- (eq_attr "cpu" "rios1"))
- "iu_rios1")
-
-(define_insn_reservation "ppc601-fpload" 3
- (and (eq_attr "type" "fpload,fpload_ux,fpload_u")
- (eq_attr "cpu" "ppc601"))
- "iu_rios1")
-
-(define_insn_reservation "rios1-fpstore" 3
- (and (eq_attr "type" "fpstore,fpstore_ux,fpstore_u")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1+fpu_rios1")
-
-(define_insn_reservation "rios1-integer" 1
- (and (eq_attr "type" "integer,insert_word,insert_dword,shift,\
- trap,var_shift_rotate,cntlz,exts,isel")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1")
-
-(define_insn_reservation "rios1-two" 1
- (and (eq_attr "type" "two")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1,iu_rios1")
-
-(define_insn_reservation "rios1-three" 1
- (and (eq_attr "type" "three")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1,iu_rios1,iu_rios1")
-
-(define_insn_reservation "rios1-imul" 5
- (and (eq_attr "type" "imul,imul_compare")
- (eq_attr "cpu" "rios1"))
- "iu_rios1*5")
-
-(define_insn_reservation "rios1-imul2" 4
- (and (eq_attr "type" "imul2")
- (eq_attr "cpu" "rios1"))
- "iu_rios1*4")
-
-(define_insn_reservation "rios1-imul3" 3
- (and (eq_attr "type" "imul")
- (eq_attr "cpu" "rios1"))
- "iu_rios1*3")
-
-(define_insn_reservation "ppc601-imul" 5
- (and (eq_attr "type" "imul,imul2,imul3,imul_compare")
- (eq_attr "cpu" "ppc601"))
- "iu_rios1*5")
-
-(define_insn_reservation "rios1-idiv" 19
- (and (eq_attr "type" "idiv")
- (eq_attr "cpu" "rios1"))
- "iu_rios1*19")
-
-(define_insn_reservation "ppc601-idiv" 36
- (and (eq_attr "type" "idiv")
- (eq_attr "cpu" "ppc601"))
- "iu_rios1*36")
-
-; compare executes on integer unit, but feeds insns which
-; execute on the branch unit.
-(define_insn_reservation "rios1-compare" 4
- (and (eq_attr "type" "cmp,fast_compare,compare")
- (eq_attr "cpu" "rios1"))
- "iu_rios1,nothing*2,bpu_rios1")
-
-(define_insn_reservation "rios1-delayed_compare" 5
- (and (eq_attr "type" "delayed_compare,var_delayed_compare")
- (eq_attr "cpu" "rios1"))
- "iu_rios1,nothing*3,bpu_rios1")
-
-(define_insn_reservation "ppc601-compare" 3
- (and (eq_attr "type" "cmp,compare,delayed_compare,\
- var_delayed_compare")
- (eq_attr "cpu" "ppc601"))
- "iu_rios1,nothing,bpu_rios1")
-
-(define_insn_reservation "rios1-fpcompare" 9
- (and (eq_attr "type" "fpcompare")
- (eq_attr "cpu" "rios1"))
- "fpu_rios1,nothing*3,bpu_rios1")
-
-(define_insn_reservation "ppc601-fpcompare" 5
- (and (eq_attr "type" "fpcompare")
- (eq_attr "cpu" "ppc601"))
- "(fpu_rios1+iu_rios1*2),nothing*2,bpu_rios1")
-
-(define_insn_reservation "rios1-fp" 2
- (and (eq_attr "type" "fp,dmul")
- (eq_attr "cpu" "rios1"))
- "fpu_rios1")
-
-(define_insn_reservation "ppc601-fp" 4
- (and (eq_attr "type" "fp")
- (eq_attr "cpu" "ppc601"))
- "fpu_rios1")
-
-(define_insn_reservation "rios1-dmul" 5
- (and (eq_attr "type" "dmul")
- (eq_attr "cpu" "ppc601"))
- "fpu_rios1*2")
-
-(define_insn_reservation "rios1-sdiv" 19
- (and (eq_attr "type" "sdiv,ddiv")
- (eq_attr "cpu" "rios1"))
- "fpu_rios1*19")
-
-(define_insn_reservation "ppc601-sdiv" 17
- (and (eq_attr "type" "sdiv")
- (eq_attr "cpu" "ppc601"))
- "fpu_rios1*17")
-
-(define_insn_reservation "ppc601-ddiv" 31
- (and (eq_attr "type" "ddiv")
- (eq_attr "cpu" "ppc601"))
- "fpu_rios1*31")
-
-(define_insn_reservation "rios1-mfcr" 2
- (and (eq_attr "type" "mfcr")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1,bpu_rios1")
-
-(define_insn_reservation "rios1-mtcr" 4
- (and (eq_attr "type" "mtcr")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1,bpu_rios1")
-
-(define_insn_reservation "rios1-crlogical" 4
- (and (eq_attr "type" "cr_logical,delayed_cr")
- (eq_attr "cpu" "rios1,ppc601"))
- "bpu_rios1")
-
-(define_insn_reservation "rios1-mtjmpr" 5
- (and (eq_attr "type" "mtjmpr")
- (eq_attr "cpu" "rios1"))
- "iu_rios1,bpu_rios1")
-
-(define_insn_reservation "ppc601-mtjmpr" 4
- (and (eq_attr "type" "mtjmpr")
- (eq_attr "cpu" "ppc601"))
- "iu_rios1,bpu_rios1")
-
-(define_insn_reservation "rios1-mfjmpr" 2
- (and (eq_attr "type" "mfjmpr")
- (eq_attr "cpu" "rios1,ppc601"))
- "iu_rios1,bpu_rios1")
-
-(define_insn_reservation "rios1-branch" 1
- (and (eq_attr "type" "jmpreg,branch,isync")
- (eq_attr "cpu" "rios1,ppc601"))
- "bpu_rios1")
-
diff --git a/gcc/config/rs6000/rios2.md b/gcc/config/rs6000/rios2.md
deleted file mode 100644
index 96633af2f8e..00000000000
--- a/gcc/config/rs6000/rios2.md
+++ /dev/null
@@ -1,129 +0,0 @@
-;; Scheduling description for IBM Power2 processor.
-;; Copyright (C) 2003, 2004, 2007, 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.
-
-;; 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/>.
-
-(define_automaton "rios2,rios2fp")
-(define_cpu_unit "iu1_rios2,iu2_rios2" "rios2")
-(define_cpu_unit "fpu1_rios2,fpu2_rios2" "rios2fp")
-(define_cpu_unit "bpu_rios2" "rios2")
-
-;; RIOS2 32-bit 2xIU, 2xFPU, BPU
-;; IU1 can perform all integer operations
-;; IU2 can perform all integer operations except imul and idiv
-
-(define_insn_reservation "rios2-load" 2
- (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,\
- load_ux,load_u,fpload,fpload_ux,fpload_u,\
- load_l,store_c,sync")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2|iu2_rios2")
-
-(define_insn_reservation "rios2-store" 2
- (and (eq_attr "type" "store,store_ux,store_u,fpstore,fpstore_ux,fpstore_u")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2|iu2_rios2")
-
-(define_insn_reservation "rios2-integer" 1
- (and (eq_attr "type" "integer,insert_word,insert_dword,shift,trap,\
- var_shift_rotate,cntlz,exts,isel")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2|iu2_rios2")
-
-(define_insn_reservation "rios2-two" 1
- (and (eq_attr "type" "two")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2|iu2_rios2,iu1_rios2|iu2_rios2")
-
-(define_insn_reservation "rios2-three" 1
- (and (eq_attr "type" "three")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2|iu2_rios2,iu1_rios2|iu2_rios2,iu1_rios2|iu2_rios2")
-
-(define_insn_reservation "rios2-imul" 2
- (and (eq_attr "type" "imul,imul2,imul3,imul_compare")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2*2")
-
-(define_insn_reservation "rios2-idiv" 13
- (and (eq_attr "type" "idiv")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2*13")
-
-; compare executes on integer unit, but feeds insns which
-; execute on the branch unit.
-(define_insn_reservation "rios2-compare" 3
- (and (eq_attr "type" "cmp,fast_compare,compare,delayed_compare,\
- var_delayed_compare")
- (eq_attr "cpu" "rios2"))
- "(iu1_rios2|iu2_rios2),nothing,bpu_rios2")
-
-(define_insn_reservation "rios2-fp" 2
- (and (eq_attr "type" "fp")
- (eq_attr "cpu" "rios2"))
- "fpu1_rios2|fpu2_rios2")
-
-(define_insn_reservation "rios2-fpcompare" 5
- (and (eq_attr "type" "fpcompare")
- (eq_attr "cpu" "rios2"))
- "(fpu1_rios2|fpu2_rios2),nothing*3,bpu_rios2")
-
-(define_insn_reservation "rios2-dmul" 2
- (and (eq_attr "type" "dmul")
- (eq_attr "cpu" "rios2"))
- "fpu1_rios2|fpu2_rios2")
-
-(define_insn_reservation "rios2-sdiv" 17
- (and (eq_attr "type" "sdiv,ddiv")
- (eq_attr "cpu" "rios2"))
- "(fpu1_rios2*17)|(fpu2_rios2*17)")
-
-(define_insn_reservation "rios2-ssqrt" 26
- (and (eq_attr "type" "ssqrt,dsqrt")
- (eq_attr "cpu" "rios2"))
- "(fpu1_rios2*26)|(fpu2_rios2*26)")
-
-(define_insn_reservation "rios2-mfcr" 2
- (and (eq_attr "type" "mfcr")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2,bpu_rios2")
-
-(define_insn_reservation "rios2-mtcr" 3
- (and (eq_attr "type" "mtcr")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2,bpu_rios2")
-
-(define_insn_reservation "rios2-crlogical" 3
- (and (eq_attr "type" "cr_logical,delayed_cr")
- (eq_attr "cpu" "rios2"))
- "bpu_rios2")
-
-(define_insn_reservation "rios2-mtjmpr" 5
- (and (eq_attr "type" "mtjmpr")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2,bpu_rios2")
-
-(define_insn_reservation "rios2-mfjmpr" 2
- (and (eq_attr "type" "mfjmpr")
- (eq_attr "cpu" "rios2"))
- "iu1_rios2,bpu_rios2")
-
-(define_insn_reservation "rios2-branch" 1
- (and (eq_attr "type" "jmpreg,branch,isync")
- (eq_attr "cpu" "rios2"))
- "bpu_rios2")
-
diff --git a/gcc/config/rs6000/rs6000-cpus.def b/gcc/config/rs6000/rs6000-cpus.def
index 6f4e055a657..74c58030d03 100644
--- a/gcc/config/rs6000/rs6000-cpus.def
+++ b/gcc/config/rs6000/rs6000-cpus.def
@@ -1,7 +1,5 @@
/* 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.
+ Copyright (C) 1991-2012 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GCC.
@@ -133,11 +131,5 @@ RS6000_CPU ("power7", PROCESSOR_POWER7, /* Don't add MASK_ISEL by default */
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)
diff --git a/gcc/config/rs6000/rs6000-opts.h b/gcc/config/rs6000/rs6000-opts.h
index 604fe171f97..ea5f10120c4 100644
--- a/gcc/config/rs6000/rs6000-opts.h
+++ b/gcc/config/rs6000/rs6000-opts.h
@@ -1,7 +1,6 @@
/* Definitions of target machine needed for option handling for GNU compiler,
for IBM RS/6000.
- Copyright (C) 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2010-2012 Free Software Foundation, Inc.
Contributed by Michael Meissner (meissner@linux.vnet.ibm.com)
This file is part of GCC.
@@ -31,8 +30,6 @@
/* Processor type. Order must match cpu attribute in MD file. */
enum processor_type
{
- PROCESSOR_RIOS1,
- PROCESSOR_RIOS2,
PROCESSOR_RS64A,
PROCESSOR_MPCCORE,
PROCESSOR_PPC403,
diff --git a/gcc/config/rs6000/rs6000-tables.opt b/gcc/config/rs6000/rs6000-tables.opt
index ccf2b851f11..2cc5f7ae5ac 100644
--- a/gcc/config/rs6000/rs6000-tables.opt
+++ b/gcc/config/rs6000/rs6000-tables.opt
@@ -192,20 +192,5 @@ EnumValue
Enum(rs6000_cpu_opt_value) String(powerpc64) Value(54)
EnumValue
-Enum(rs6000_cpu_opt_value) String(rios) Value(55)
-
-EnumValue
-Enum(rs6000_cpu_opt_value) String(rios1) Value(56)
-
-EnumValue
-Enum(rs6000_cpu_opt_value) String(rios2) Value(57)
-
-EnumValue
-Enum(rs6000_cpu_opt_value) String(rsc) Value(58)
-
-EnumValue
-Enum(rs6000_cpu_opt_value) String(rsc1) Value(59)
-
-EnumValue
-Enum(rs6000_cpu_opt_value) String(rs64) Value(60)
+Enum(rs6000_cpu_opt_value) String(rs64) Value(55)
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index fe7c4d79087..337a95d907b 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1,8 +1,5 @@
/* Subroutines used for code generation on IBM RS/6000.
- Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
- 2012
- Free Software Foundation, Inc.
+ Copyright (C) 1991-2012 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GCC.
@@ -354,44 +351,6 @@ struct processor_costs size64_cost = {
0,
};
-/* Instruction costs on RIOS1 processors. */
-static const
-struct processor_costs rios1_cost = {
- COSTS_N_INSNS (5), /* mulsi */
- COSTS_N_INSNS (4), /* mulsi_const */
- COSTS_N_INSNS (3), /* mulsi_const9 */
- COSTS_N_INSNS (5), /* muldi */
- COSTS_N_INSNS (19), /* divsi */
- COSTS_N_INSNS (19), /* divdi */
- COSTS_N_INSNS (2), /* fp */
- COSTS_N_INSNS (2), /* dmul */
- COSTS_N_INSNS (19), /* sdiv */
- COSTS_N_INSNS (19), /* ddiv */
- 128, /* cache line size */
- 64, /* l1 cache */
- 512, /* l2 cache */
- 0, /* streams */
-};
-
-/* Instruction costs on RIOS2 processors. */
-static const
-struct processor_costs rios2_cost = {
- COSTS_N_INSNS (2), /* mulsi */
- COSTS_N_INSNS (2), /* mulsi_const */
- COSTS_N_INSNS (2), /* mulsi_const9 */
- COSTS_N_INSNS (2), /* muldi */
- COSTS_N_INSNS (13), /* divsi */
- COSTS_N_INSNS (13), /* divdi */
- COSTS_N_INSNS (2), /* fp */
- COSTS_N_INSNS (2), /* dmul */
- COSTS_N_INSNS (17), /* sdiv */
- COSTS_N_INSNS (17), /* ddiv */
- 256, /* cache line size */
- 256, /* l1 cache */
- 1024, /* l2 cache */
- 0, /* streams */
-};
-
/* Instruction costs on RS64A processors. */
static const
struct processor_costs rs64a_cost = {
@@ -3001,14 +2960,6 @@ rs6000_option_override_internal (bool global_init_p)
else
switch (rs6000_cpu)
{
- case PROCESSOR_RIOS1:
- rs6000_cost = &rios1_cost;
- break;
-
- case PROCESSOR_RIOS2:
- rs6000_cost = &rios2_cost;
- break;
-
case PROCESSOR_RS64A:
rs6000_cost = &rs64a_cost;
break;
@@ -6575,8 +6526,7 @@ rs6000_conditional_register_usage (void)
fprintf (stderr, "rs6000_conditional_register_usage called\n");
/* Set MQ register fixed (already call_used) if not POWER
- architecture (RIOS1, RIOS2, RSC, and PPC601) so that it will not
- be allocated. */
+ architecture (PPC601) so that it will not be allocated. */
if (! TARGET_POWER)
fixed_regs[64] = 1;
@@ -23162,7 +23112,6 @@ rs6000_issue_rate (void)
return 1;
switch (rs6000_cpu_attr) {
- case CPU_RIOS1: /* ? */
case CPU_RS64A:
case CPU_PPC601: /* ? */
case CPU_PPC7450:
@@ -23182,7 +23131,6 @@ rs6000_issue_rate (void)
case CPU_PPCE6500:
case CPU_TITAN:
return 2;
- case CPU_RIOS2:
case CPU_PPC476:
case CPU_PPC604:
case CPU_PPC604E:
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 2c8a7dda1f6..fea4bacfe52 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -1,8 +1,5 @@
/* Definitions of target machine for GNU compiler, for IBM RS/6000.
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
- 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 1992-2012 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GCC.
@@ -124,11 +121,6 @@
%{mcpu=power7: %(asm_cpu_power7)} \
%{mcpu=a2: -ma2} \
%{mcpu=powerpc: -mppc} \
-%{mcpu=rios: -mpwr} \
-%{mcpu=rios1: -mpwr} \
-%{mcpu=rios2: -mpwrx} \
-%{mcpu=rsc: -mpwr} \
-%{mcpu=rsc1: -mpwr} \
%{mcpu=rs64a: -mppc64} \
%{mcpu=401: -mppc} \
%{mcpu=403: -m403} \
@@ -356,12 +348,12 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
/* Define generic processor types based upon current deployment. */
#define PROCESSOR_COMMON PROCESSOR_PPC601
-#define PROCESSOR_POWER PROCESSOR_RIOS1
+#define PROCESSOR_POWER PROCESSOR_PPC601
#define PROCESSOR_POWERPC PROCESSOR_PPC604
#define PROCESSOR_POWERPC64 PROCESSOR_RS64A
/* Define the default processor. This is overridden by other tm.h files. */
-#define PROCESSOR_DEFAULT PROCESSOR_RIOS1
+#define PROCESSOR_DEFAULT PROCESSOR_PPC603
#define PROCESSOR_DEFAULT64 PROCESSOR_RS64A
/* Specify the dialect of assembler to use. New mnemonics is dialect one
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 7f7f5adc906..0dc4d34dda7 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -1,8 +1,5 @@
;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler
-;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-;; 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-;; 2011, 2012
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990-2012 Free Software Foundation, Inc.
;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
;; This file is part of GCC.
@@ -167,7 +164,7 @@
;; Processor type -- this attribute must exactly match the processor_type
;; enumeration in rs6000.h.
-(define_attr "cpu" "rios1,rios2,rs64a,mpccore,ppc403,ppc405,ppc440,ppc476,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,ppc8548,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,ppce5500,ppce6500,power4,power5,power6,power7,cell,ppca2,titan"
+(define_attr "cpu" "rs64a,mpccore,ppc403,ppc405,ppc440,ppc476,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,ppc8548,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,ppce5500,ppce6500,power4,power5,power6,power7,cell,ppca2,titan"
(const (symbol_ref "rs6000_cpu_attr")))
@@ -180,13 +177,12 @@
(automata_option "ndfa")
-(include "rios1.md")
-(include "rios2.md")
(include "rs64.md")
(include "mpc.md")
(include "40x.md")
(include "440.md")
(include "476.md")
+(include "601.md")
(include "603.md")
(include "6xx.md")
(include "7xx.md")
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
index d428133cc74..fd3a27237f0 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
@@ -1,7 +1,6 @@
; Options for the rs6000 port of the compiler
;
-; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-; Foundation, Inc.
+; Copyright (C) 2005-2012 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
@@ -25,7 +24,7 @@ config/rs6000/rs6000-opts.h
;; Current processor
TargetVariable
-enum processor_type rs6000_cpu = PROCESSOR_RIOS1
+enum processor_type rs6000_cpu = PROCESSOR_PPC603
;; Always emit branch hint bits.
TargetVariable
diff --git a/gcc/config/rs6000/t-aix43 b/gcc/config/rs6000/t-aix43
index 97ce70ecca3..c857c444c04 100644
--- a/gcc/config/rs6000/t-aix43
+++ b/gcc/config/rs6000/t-aix43
@@ -1,5 +1,4 @@
-# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-# 2006, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1998-2012 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -31,10 +30,6 @@ MULTILIB_MATCHES = mcpu?power=mcpu?power \
mcpu?powerpc=mcpu?power3 \
mcpu?powerpc=mcpu?power4 \
mcpu?powerpc=mcpu?powerpc \
- mcpu?power=mcpu?rios1 \
- mcpu?power=mcpu?rios2 \
- mcpu?power=mcpu?rsc \
- mcpu?power=mcpu?rsc1 \
mcpu?powerpc=mcpu?rs64a \
mcpu?powerpc=mcpu?601 \
mcpu?powerpc=mcpu?602 \
diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000
index 100dccc7075..8acc3399ca1 100644
--- a/gcc/config/rs6000/t-rs6000
+++ b/gcc/config/rs6000/t-rs6000
@@ -1,7 +1,6 @@
# General rules that all rs6000/ targets must have.
#
-# Copyright (C) 1995, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2008, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1995-2012 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -44,12 +43,11 @@ $(srcdir)/config/rs6000/rs6000-tables.opt: $(srcdir)/config/rs6000/genopt.sh \
# The rs6000 backend doesn't cause warnings in these files.
insn-conditions.o-warn =
-MD_INCLUDES = $(srcdir)/config/rs6000/rios1.md \
- $(srcdir)/config/rs6000/rios2.md \
- $(srcdir)/config/rs6000/rs64.md \
+MD_INCLUDES = $(srcdir)/config/rs6000/rs64.md \
$(srcdir)/config/rs6000/mpc.md \
$(srcdir)/config/rs6000/40x.md \
$(srcdir)/config/rs6000/440.md \
+ $(srcdir)/config/rs6000/601.md \
$(srcdir)/config/rs6000/603.md \
$(srcdir)/config/rs6000/6xx.md \
$(srcdir)/config/rs6000/7xx.md \