]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
mips.exp: Replace isa(_rev)=...!...
authorAdam Nemet <anemet@caviumnetworks.com>
Wed, 26 Aug 2009 20:49:34 +0000 (20:49 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 26 Aug 2009 20:49:34 +0000 (20:49 +0000)
gcc/testsuite/
2009-08-18  Adam Nemet  <anemet@caviumnetworks.com>
    Richard Sandiford  <rdsandiford@googlemail.com>

* 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.

Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
From-SVN: r151129

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/branch-1.c
gcc/testsuite/gcc.target/mips/dmult-1.c
gcc/testsuite/gcc.target/mips/extend-1.c
gcc/testsuite/gcc.target/mips/mips.exp

index 9ed0d6dde851dfcbf86ac82c425e4064ad51d4a2..a91b11f02bfb4005b1cd0c56c3e8d59816916bb9 100644 (file)
@@ -1,3 +1,12 @@
+2009-08-26  Adam Nemet  <anemet@caviumnetworks.com>
+           Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * 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  <rguenther@suse.de>
 
        PR middle-end/41163
index b70b2640f8c2552389a99901f5e3131301c07d45..62d6bbb619a46fb56da8e849919b01c40b6e2aa1 100644 (file)
@@ -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 (); }
index 6d4120435b7ee706acb4e0d1df795853f2a07f40..517e43ed54b1bb8a5ae7130db160a9eff22642f4 100644 (file)
@@ -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" } } */
index 952d4a0932cb654cc017672eccb0125344b04aff..4295106866b550f65b376b79ac497d9714a65d15 100644 (file)
@@ -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" } } */
index 30f9a2c9c3dc9b59c7cc0a9b666fd15189ed62af..a7a6bd57f7484f32e1204ffcdf29db80d85b26c8 100644 (file)
 # 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
 #   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:
 #
 #      "-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)