From 1ca53b139354b01578c9df21252527e03a4030d3 Mon Sep 17 00:00:00 2001 From: rsandifo Date: Wed, 26 Aug 2009 20:49:34 +0000 Subject: [PATCH] gcc/testsuite/ 2009-08-18 Adam Nemet Richard Sandiford * gcc.target/mips/mips.exp: Replace isa(_rev)=...!... mechanism with "forbid_cpu". * gcc.target/mips/branch-1.c: Update accordingly. * gcc.target/mips/extend-1.c: Likewise. * gcc.target/mips/dmult-1.c: Likewise. Remove redundant isa=64. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151129 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/testsuite/ChangeLog | 9 ++++ gcc/testsuite/gcc.target/mips/branch-1.c | 2 +- gcc/testsuite/gcc.target/mips/dmult-1.c | 2 +- gcc/testsuite/gcc.target/mips/extend-1.c | 2 +- gcc/testsuite/gcc.target/mips/mips.exp | 90 +++++++++++++++----------------- 5 files changed, 54 insertions(+), 51 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9ed0d6d..a91b11f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2009-08-26 Adam Nemet + Richard Sandiford + + * gcc.target/mips/mips.exp: Replace isa(_rev)=...!... mechanism + with "forbid_cpu". + * gcc.target/mips/branch-1.c: Update accordingly. + * gcc.target/mips/extend-1.c: Likewise. + * gcc.target/mips/dmult-1.c: Likewise. Remove redundant isa=64. + 2009-08-26 Richard Guenther PR middle-end/41163 diff --git a/gcc/testsuite/gcc.target/mips/branch-1.c b/gcc/testsuite/gcc.target/mips/branch-1.c index b70b264..62d6bbb 100644 --- a/gcc/testsuite/gcc.target/mips/branch-1.c +++ b/gcc/testsuite/gcc.target/mips/branch-1.c @@ -2,7 +2,7 @@ but we test for "bbit" elsewhere. On other targets, we should implement the "if" statements using an "andi" instruction followed by a branch on zero. */ -/* { dg-options "-O2 isa=!octeon" } */ +/* { dg-options "-O2 forbid_cpu=octeon" } */ void bar (void); NOMIPS16 void f1 (int x) { if (x & 4) bar (); } diff --git a/gcc/testsuite/gcc.target/mips/dmult-1.c b/gcc/testsuite/gcc.target/mips/dmult-1.c index 6d41204..517e43e 100644 --- a/gcc/testsuite/gcc.target/mips/dmult-1.c +++ b/gcc/testsuite/gcc.target/mips/dmult-1.c @@ -1,4 +1,4 @@ -/* { dg-options "isa=64!octeon -mgp64" } */ +/* { dg-options "forbid_cpu=octeon -mgp64" } */ /* { dg-final { scan-assembler "\tdmult\t" } } */ /* { dg-final { scan-assembler "\tmflo\t" } } */ /* { dg-final { scan-assembler-not "\tdmul\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/extend-1.c b/gcc/testsuite/gcc.target/mips/extend-1.c index 952d4a0..4295106 100644 --- a/gcc/testsuite/gcc.target/mips/extend-1.c +++ b/gcc/testsuite/gcc.target/mips/extend-1.c @@ -1,4 +1,4 @@ -/* { dg-options "-O -mgp64 isa=!octeon" } */ +/* { dg-options "-O -mgp64 forbid_cpu=octeon" } */ /* { dg-final { scan-assembler-times "\tdsll\t" 5 } } */ /* { dg-final { scan-assembler-times "\tdsra\t" 5 } } */ /* { dg-final { scan-assembler-not "\tsll\t" } } */ diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp index 30f9a2c..a7a6bd5 100644 --- a/gcc/testsuite/gcc.target/mips/mips.exp +++ b/gcc/testsuite/gcc.target/mips/mips.exp @@ -137,13 +137,6 @@ # For example, "isa_rev>=1" selects a MIPS32 or MIPS64 processor, # "isa=4" selects a MIPS IV processor, and so on. # -# If certain processor-specific extensions are not applicable to the -# test you can list them as !CPU in the isa or isa_rev options. For -# example, isa=64!octeon enforces MIPS64 while avoiding octeon. You -# can also use ! without an ISA value. For example -# isa=!octeon!loongson2e disables octeon and loongson2e if otherwise -# you would compile for one of them. -# # There are also the following special pseudo-options: # # isa=loongson @@ -152,6 +145,10 @@ # addressing=absolute # force absolute addresses to be used # +# forbid_cpu=REGEXP +# forbid processors that match the given regexp; choose a +# generic ISA instead. +# # # In summary: # @@ -183,7 +180,7 @@ # "-mips32r2" or "-mips64r2". # # (6) If you need to disable processor-specific extensions use -# isa=!CPU instead of forcing a generic ISA. +# forbid_cpu=REGEXP instead of forcing a generic ISA. # # # Terminology @@ -232,6 +229,7 @@ set mips_option_groups { dump_pattern "-dp" endianness "-E(L|B)|-me(l|b)" float "-m(hard|soft)-float" + forbid_cpu "forbid_cpu=.*" fp "-mfp(32|64)" gp "-mgp(32|64)" long "-mlong(32|64)" @@ -856,60 +854,47 @@ proc mips-dg-options { args } { } } + # See whether forbid_cpu forces us to choose a new architecture. + set arch [mips_option mips_base_options arch] + set force_generic_isa_p [expr { + [regexp "forbid_cpu=(.*)" [mips_option options forbid_cpu] dummy spec] + && [regexp -- "^-march=$spec\$" $arch] + }] + # Interpret the special "isa" and "isa_rev" options. If we have # a choice of a 32-bit or a 64-bit architecture, prefer to keep # the -mgp setting the same. set spec [mips_option options arch] if { [regexp {^[^-]} $spec] } { - set arch [mips_option mips_base_options arch] if { [string equal $spec "isa=loongson"] } { if { ![regexp {^-march=loongson} $arch] } { set arch "-march=loongson2f" } } else { - # With ! and = the ISA value is optional. - if { ![regexp {^(isa(?:|_rev))(=|<=|>=)([0-9]*)((?:![^!]+)*)$} \ - $spec dummy prop relation value nocpus] - || ($value eq "" - && ($relation ne "=" - || $nocpus eq ""))} { + if { ![regexp {^(isa(?:|_rev))(=|<=|>=)([0-9]*)$} \ + $spec dummy prop relation value nocpus] } { error "Unrecognized isa specification: $spec" } - if { $value ne "" } { - set current [mips_arch_info $arch $prop] - if { ($current < $value && ![string equal $relation "<="]) - || ($current > $value && ![string equal $relation ">="]) - || ([mips_have_test_option_p options "-mgp64"] - && [mips_32bit_arch_p $arch]) } { - # The current setting is out of range; it cannot - # possibly be used. Find a replacement that can. - if { [string equal $prop "isa"] } { - set arch "-mips$value" - } elseif { $value == 0 } { - set arch "-mips4" + set current [mips_arch_info $arch $prop] + if { $force_generic_isa_p + || ($current < $value && ![string equal $relation "<="]) + || ($current > $value && ![string equal $relation ">="]) + || ([mips_have_test_option_p options "-mgp64"] + && [mips_32bit_arch_p $arch]) } { + # The current setting is out of range; it cannot + # possibly be used. Find a replacement that can. + if { [string equal $prop "isa"] } { + set arch "-mips$value" + } elseif { $value == 0 } { + set arch "-mips4" + } else { + if { [mips_have_option_p options "-mgp32"] } { + set arch "-mips32" } else { - if { [mips_have_option_p options "-mgp32"] } { - set arch "-mips32" - } else { - set arch "-mips64" - } - if { $value > 1 } { - append arch "r$value" - } + set arch "-mips64" } - } - } - # If we haven't switched to a generic ISA based on the - # isa* value, do it here if the processor-specific - # extension is not allowed. - if { $nocpus ne "" - && $arch eq [mips_option mips_base_options arch] } { - set cpu [regsub -- {-march=} $arch ""] - if { [regexp "!$cpu!" "$nocpus!"] } { - set isa_rev [mips_arch_info $arch isa_rev] - set arch "-mips[mips_arch_info $arch isa]" - if { $isa_rev > 1 } { - append arch "r$isa_rev" + if { $value > 1 } { + append arch "r$value" } } } @@ -994,6 +979,14 @@ proc mips-dg-options { args } { } else { mips_make_test_option options "-mips64r$isa_rev" } + # Otherwise, if the current choice of architecture is unacceptable, + # choose the equivalent generic architecture. + } elseif { $force_generic_isa_p } { + set arch "-mips[mips_arch_info $arch isa]" + if { $isa_rev > 1 } { + append arch "r$isa_rev" + } + mips_make_test_option options $arch } unset arch unset isa @@ -1140,6 +1133,7 @@ proc mips-dg-options { args } { # Add all options to the dg variable. set options(explicit_p,addressing) 0 + set options(explicit_p,forbid_cpu) 0 foreach { group regexp } $mips_option_groups { if { $options(explicit_p,$group) } { append extra_tool_flags " " $options(option,$group) -- 2.7.4