Commit 14f2a7e2 by Andrew Pinski Committed by Andrew Pinski

mips-cpus.def (octeon+): New CPU.

2011-12-08  Andrew Pinski  <apinski@cavium.com>

	* config/mips/mips-cpus.def (octeon+): New CPU.
	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.



2011-12-08  Andrew Pinski  <apinski@cavium.com>

	* cc.target/mips/mult-1.c: Forbid all Octeon processors.
	* gcc.target/mips/dmult-1.c: Likewise.
	* gcc.target/mips/branch-1.c: Likewise.
	* gcc.target/mips/extend-1.c: Likewise.

From-SVN: r182152
parent fbf7be80
2011-12-08 Andrew Pinski <apinski@cavium.com>
* config/mips/mips-cpus.def (octeon+): New CPU.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/mips.h (MIPS_CPP_SET_PROCESSOR): Emit '+' as 'P'.
2011-12-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2011-12-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR middle-end/39976 PR middle-end/39976
...@@ -145,3 +145,4 @@ MIPS_CPU ("loongson3a", PROCESSOR_LOONGSON_3A, 64, PTF_AVOID_BRANCHLIKELY) ...@@ -145,3 +145,4 @@ MIPS_CPU ("loongson3a", PROCESSOR_LOONGSON_3A, 64, PTF_AVOID_BRANCHLIKELY)
/* MIPS64 Release 2 processors. */ /* MIPS64 Release 2 processors. */
MIPS_CPU ("octeon", PROCESSOR_OCTEON, 65, PTF_AVOID_BRANCHLIKELY) MIPS_CPU ("octeon", PROCESSOR_OCTEON, 65, PTF_AVOID_BRANCHLIKELY)
MIPS_CPU ("octeon+", PROCESSOR_OCTEON, 65, PTF_AVOID_BRANCHLIKELY)
...@@ -603,3 +603,6 @@ Enum(mips_arch_opt_value) String(loongson3a) Value(79) Canonical ...@@ -603,3 +603,6 @@ Enum(mips_arch_opt_value) String(loongson3a) Value(79) Canonical
EnumValue EnumValue
Enum(mips_arch_opt_value) String(octeon) Value(80) Canonical Enum(mips_arch_opt_value) String(octeon) Value(80) Canonical
EnumValue
Enum(mips_arch_opt_value) String(octeon+) Value(81) Canonical
...@@ -329,7 +329,10 @@ struct mips_cpu_info { ...@@ -329,7 +329,10 @@ struct mips_cpu_info {
\ \
macro = concat ((PREFIX), "_", (INFO)->name, NULL); \ macro = concat ((PREFIX), "_", (INFO)->name, NULL); \
for (p = macro; *p != 0; p++) \ for (p = macro; *p != 0; p++) \
*p = TOUPPER (*p); \ if (*p == '+') \
*p = 'P'; \
else \
*p = TOUPPER (*p); \
\ \
builtin_define (macro); \ builtin_define (macro); \
builtin_define_with_value ((PREFIX), (INFO)->name, 1); \ builtin_define_with_value ((PREFIX), (INFO)->name, 1); \
......
2011-12-08 Andrew Pinski <apinski@cavium.com>
* cc.target/mips/mult-1.c: Forbid all Octeon processors.
* gcc.target/mips/dmult-1.c: Likewise.
* gcc.target/mips/branch-1.c: Likewise.
* gcc.target/mips/extend-1.c: Likewise.
2011-12-08 Jason Merrill <jason@redhat.com> 2011-12-08 Jason Merrill <jason@redhat.com>
PR c++/51318 PR c++/51318
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
but we test for "bbit" elsewhere. On other targets, we should implement but we test for "bbit" elsewhere. On other targets, we should implement
the "if" statements using an "andi" instruction followed by a branch the "if" statements using an "andi" instruction followed by a branch
on zero. */ on zero. */
/* { dg-options "-O2 forbid_cpu=octeon" } */ /* { dg-options "-O2 forbid_cpu=octeon.*" } */
void bar (void); void bar (void);
NOMIPS16 void f1 (int x) { if (x & 4) bar (); } NOMIPS16 void f1 (int x) { if (x & 4) bar (); }
......
/* { dg-options "forbid_cpu=octeon -mgp64" } */ /* { dg-options "forbid_cpu=octeon.* -mgp64" } */
/* { dg-final { scan-assembler "\tdmult\t" } } */ /* { dg-final { scan-assembler "\tdmult\t" } } */
/* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */
/* { dg-final { scan-assembler-not "\tdmul\t" } } */ /* { dg-final { scan-assembler-not "\tdmul\t" } } */
......
/* { dg-options "-O -mgp64 forbid_cpu=octeon" } */ /* { dg-options "-O -mgp64 forbid_cpu=octeon.*" } */
/* { dg-final { scan-assembler-times "\tdsll\t" 5 } } */ /* { dg-final { scan-assembler-times "\tdsll\t" 5 } } */
/* { dg-final { scan-assembler-times "\tdsra\t" 5 } } */ /* { dg-final { scan-assembler-times "\tdsra\t" 5 } } */
/* { dg-final { scan-assembler-not "\tsll\t" } } */ /* { dg-final { scan-assembler-not "\tsll\t" } } */
......
/* For SI->DI widening multiplication we should use DINS to combine the two /* For SI->DI widening multiplication we should use DINS to combine the two
halves. For Octeon use DMUL with explicit widening. */ halves. For Octeon use DMUL with explicit widening. */
/* { dg-options "-O -mgp64 isa_rev>=2 forbid_cpu=octeon" } */ /* { dg-options "-O -mgp64 isa_rev>=2 forbid_cpu=octeon.*" } */
/* { dg-final { scan-assembler "\tdins\t" } } */ /* { dg-final { scan-assembler "\tdins\t" } } */
/* { dg-final { scan-assembler-not "\tdsll\t" } } */ /* { dg-final { scan-assembler-not "\tdsll\t" } } */
/* { dg-final { scan-assembler-not "\tdsrl\t" } } */ /* { dg-final { scan-assembler-not "\tdsrl\t" } } */
......
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