Patch for PR4587 + move proc run_list_test into gas-defs.exp
authorNick Clifton <nickc@redhat.com>
Tue, 5 Jun 2007 17:00:33 +0000 (17:00 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 5 Jun 2007 17:00:33 +0000 (17:00 +0000)
29 files changed:
gas/ChangeLog
gas/config/tc-sparc.c
gas/testsuite/ChangeLog
gas/testsuite/gas/alpha/alpha.exp
gas/testsuite/gas/bfin/bfin.exp
gas/testsuite/gas/cfi/cfi.exp
gas/testsuite/gas/crx/allinsn.exp
gas/testsuite/gas/d10v/d10v.exp
gas/testsuite/gas/d30v/d30.exp
gas/testsuite/gas/elf/elf.exp
gas/testsuite/gas/frv/allinsn.exp
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i860/i860.exp
gas/testsuite/gas/ia64/ia64.exp
gas/testsuite/gas/lns/lns.exp
gas/testsuite/gas/macros/macros.exp
gas/testsuite/gas/maxq10/maxq10.exp
gas/testsuite/gas/maxq20/maxq20.exp
gas/testsuite/gas/mips/mips.exp
gas/testsuite/gas/mmix/mmix-list.exp
gas/testsuite/gas/mn10300/basic.exp
gas/testsuite/gas/msp430/msp430.exp
gas/testsuite/gas/pdp11/pdp11.exp
gas/testsuite/gas/ppc/ppc.exp
gas/testsuite/gas/s390/s390.exp
gas/testsuite/gas/sparc/pr4587.l [new file with mode: 0644]
gas/testsuite/gas/sparc/pr4587.s [new file with mode: 0644]
gas/testsuite/gas/sparc/sparc.exp
gas/testsuite/lib/gas-defs.exp

index 24bb9209d7547c09dcf2bc33efc7cf8920e1361f..15c33fae27a121076df65b7501ab846cfd58414b 100644 (file)
@@ -1,3 +1,8 @@
+2007-06-05  Nick Clifton  <nickc@redhat.com>
+
+       PR gas/4587
+       * config/tc-sparc.c (sparc_ip): Terminate tls_ops array.
+
 2007-06-05  Alan Modra  <amodra@bigpond.net.au>
 
        * config/tc-spu.c (spu_cons): Use deferred_expression.  Handle
index 84472b3cbd50dc86dcd8de438b9eb81a7cd417ce..d4a409fbc345cebe19c10a75d77b49a91624fbdc 100644 (file)
@@ -1860,7 +1860,8 @@ sparc_ip (str, pinsn)
            case '\0':          /* End of args.  */
              if (s[0] == ',' && s[1] == '%')
                {
-                 static const struct tls_ops {
+                 static const struct tls_ops
+                 {
                    /* The name as it appears in assembler.  */
                    char *name;
                    /* strlen (name), precomputed for speed */
@@ -1869,7 +1870,9 @@ sparc_ip (str, pinsn)
                    int reloc;
                    /* 1 if call.  */
                    int call;
-                 } tls_ops[] = {
+                 }
+                 tls_ops[] =
+                 {
                    { "tgd_add", 7, BFD_RELOC_SPARC_TLS_GD_ADD, 0 },
                    { "tgd_call", 8, BFD_RELOC_SPARC_TLS_GD_CALL, 1 },
                    { "tldm_add", 8, BFD_RELOC_SPARC_TLS_LDM_ADD, 0 },
@@ -1877,7 +1880,8 @@ sparc_ip (str, pinsn)
                    { "tldo_add", 8, BFD_RELOC_SPARC_TLS_LDO_ADD, 0 },
                    { "tie_ldx", 7, BFD_RELOC_SPARC_TLS_IE_LDX, 0 },
                    { "tie_ld", 6, BFD_RELOC_SPARC_TLS_IE_LD, 0 },
-                   { "tie_add", 7, BFD_RELOC_SPARC_TLS_IE_ADD, 0 }
+                   { "tie_add", 7, BFD_RELOC_SPARC_TLS_IE_ADD, 0 },
+                   { NULL, 0, 0, 0 }
                  };
                  const struct tls_ops *o;
                  char *s1;
index e3a93e09787b50dbd3e8bc698e6cf04efb458707..4bd02902651484e82c050ac9a7cad409f399f18d 100644 (file)
@@ -1,3 +1,36 @@
+2007-06-05  Nick Clifton  <nickc@redhat.com>
+
+       PR gas/4587
+       * gas/sparc/sparc.exp: Run pr4587 list test.
+       * gas/sparc/pr4587.s: New test case.
+       * gas/sparc/pr4587.l: Expected assembler output.
+
+2007-06-05  Nick Clifton  <nickc@redhat.com>
+
+       * lib/gas-defs.exp (run_list_test): New proc.
+       * gas/alpha/alpha.exp: Delete proc run_list_test.
+       * gas/bfin/bfin.exp : Likewise.
+       * gas/cfi/cfi.exp : Likewise.
+       * gas/crx/allinsn.exp : Likewise.
+       * gas/d10v/d10v.exp : Likewise.
+       * gas/d30v/d30v.exp : Likewise.
+       * gas/frv/allinsn.exp : Likewise.
+       * gas/i386/i386.exp : Likewise.
+       * gas/i860.i860.exp : Likewise.
+       * gas/ia64/ia64.exp : Likewise.
+       * gas/lns/lns.exp : Likewise.
+       * gas/macros/macros.exp : Likewise.
+       * gas/maxq10/maxq10.exp : Likewise.
+       * gas/maxq20/maxq20.exp : Likewise.
+       * gas/mips/mips.exp : Likewise.
+       * gas/mmix/mmix-list.exp : Likewise.
+       * gas/mn10300/basic.exp : Likewise.
+       * gas/msp430/msp430.exp : Likewise.
+       * gas/pdp11/pdp11.exp : Likewise.
+       * gas/ppc/ppc.exp : Likewise.
+       * gas/s390/s390.exp : Likewise.
+       * gas/elf/elf.exp (proc run_list_test): Rename to run_elf_list_test.
+
 2007-05-29  Jakub Jelinek  <jakub@redhat.com>
 
        PR gas/4558
index da785ae04043270ea7d5fad1e716722744a518b5..04d99329dd7a9b489eaa5f2f91d286764bb47c19 100644 (file)
@@ -2,19 +2,6 @@
 # Some generic alpha tests
 #
 
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "alpha $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 if { [istarget alpha*-*-*] } then {
 
     set elf [expr [istarget *-*-elf*] \
index 51690a16fe0507365f4a0ef8db4b9c972ea10946..9f7849b27b9a656c606e9a3245a8f5192cf5b249 100644 (file)
@@ -1,17 +1,5 @@
 # Blackfin assembler testsuite
 
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "bfin $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
 if [istarget bfin*-*-*] {
        run_dump_test "arithmetic"
        run_dump_test "bit"
index 3a5650559cc515d10e7524c6c334b0929806fbfd..b396f9e85235e001853f1a06b2a5d684b642e9f0 100644 (file)
@@ -1,17 +1,3 @@
-# ??? This probably shouldn't be replicated here...
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "cfi $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-        fail $testname
-        verbose "output is [file_contents "dump.out"]" 2
-        return
-    }
-    pass $testname
-}
-
 if ![is_elf_format] then {
     return
 }
index f3f8ae80a58e207ea8c4f518b7c641a7aec0a05d..2a52f701b5c181497c7f5c7a7fba00899eb55a54 100644 (file)
@@ -2,19 +2,6 @@
 # Driver for CRX assembler testsuite
 #
 
-proc run_list_test { name opts } {
-  global srcdir subdir
-  set testname "CRX $name"
-  set file $srcdir/$subdir/$name
-  gas_run ${name}.s $opts ">&dump.out"
-  if {[regexp_diff "dump.out" "${file}.l"] } {
-    fail $testname
-    verbose "output is [file_contents "dump.out"]" 2
-    return
-  }
-  pass $testname
-}
-
 if ![istarget crx-*-*] {
     return
 }
index 6169ecf1aa63a89cdcf635c73007a4e98040fc9e..0b152b016a1558e4a68953da7a61e45e0c042e27 100644 (file)
@@ -1,19 +1,6 @@
 #
 # Driver for D10V assembler testsuite
 #
-proc run_list_test { name opts } {
-  global srcdir subdir
-  set testname "D10V $name"
-  set file $srcdir/$subdir/$name
-  gas_run ${name}.s $opts ">&dump.out"
-  if {[regexp_diff "dump.out" "${file}.l"] } {
-    fail $testname
-    verbose "output is [file_contents "dump.out"]" 2
-    return
-  }
-  pass $testname
-}
-
 if {[istarget d10v-*-*]} {
     run_dump_test "inst"
     run_dump_test "address-001"
index 275b0e06df1d83d968c2dbab8241dc94fab452c6..d06f6066c63644b8f3e851932861a6dfd0d4ebbf 100644 (file)
@@ -2,19 +2,6 @@
 # D30V assembler tests
 #
 
-proc run_list_test { name opts } {
-  global srcdir subdir
-  set testname "D30V $name"
-  set file $srcdir/$subdir/$name
-  gas_run ${name}.s $opts ">&dump.out"
-  if {[regexp_diff "dump.out" "${file}.l"] } {
-    fail $testname
-    verbose "output is [file_contents "dump.out"]" 2
-    return
-  }
-  pass $testname
-}
-
 if {[istarget d30v-*-*]} {
   run_dump_test "inst"
   run_dump_test "align"
index 7f7365d5b50e8626a14f07725a0a14a9e05263b0..227b77ef472ed5121145fe763b9f69132ef1911f 100644 (file)
@@ -2,7 +2,7 @@
 # elf tests
 #
 
-proc run_list_test { name suffix opts readelf_opts readelf_pipe } {
+proc run_elf_list_test { name suffix opts readelf_opts readelf_pipe } {
     global READELF
     global srcdir subdir
     set testname "elf $name list"
@@ -89,11 +89,11 @@ if { ([istarget "*-*-*elf*"]
     }
     run_dump_test "section0" 
     run_dump_test "section1" 
-    run_list_test "section2" "$target_machine" "-al" "-s" ""
+    run_elf_list_test "section2" "$target_machine" "-al" "-s" ""
     run_dump_test "section3" 
     run_dump_test "section4"
-    run_list_test "section5" "" "-al" "-SW" "| grep \" \\\\.test\\\[0-9\\\]\""
+    run_elf_list_test "section5" "" "-al" "-SW" "| grep \" \\\\.test\\\[0-9\\\]\""
     run_dump_test "struct" 
     run_dump_test "symver" 
-    run_list_test "type" "" "" "-s" "| grep \"1 \\\[FONT\\\]\""
+    run_elf_list_test "type" "" "" "-s" "| grep \"1 \\\[FONT\\\]\""
 }
index ed29d20893b312fe56c475ac7f0429b59b095bce..b6950aeb614ca3a72bfc8c38e179b4b228f6fcb1 100644 (file)
@@ -1,31 +1,19 @@
 # FRV assembler testsuite.
 
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "$name error test ($opts)"
-    gas_run $name.s $opts >&dump.out
-    if {[regexp_diff dump.out $srcdir/$subdir/$name.l]} {
-       fail $testname
-       verbose "output is [file_contents dump.out]" 2
-       return
-    }
-    pass $testname
-}
-
 if [istarget frv*-*-*] {
     run_dump_test "allinsn"
 
     run_dump_test "fdpic"
     run_dump_test "reloc1"
     run_dump_test "fr405-insn"
-    run_list_test "fr405-insn" "-mcpu=fr400"
-    run_list_test "fr405-insn" "-mcpu=fr500"
+    run_list_test "fr405-insn" "-mcpu=fr400" "fr405-insn -mcpu=fr400"
+    run_list_test "fr405-insn" "-mcpu=fr500" "fr405-insn -mcpu=fr500"
 
     run_dump_test "fr450-spr"
     run_dump_test "fr450-insn"
-    run_list_test "fr450-insn" "-mcpu=fr405"
-    run_list_test "fr450-insn" "-mcpu=fr400"
-    run_list_test "fr450-insn" "-mcpu=fr500"
+    run_list_test "fr450-insn" "-mcpu=fr405" "fr450-insn -mcpu=fr405"
+    run_list_test "fr450-insn" "-mcpu=fr400" "fr450-insn -mcpu=fr400"
+    run_list_test "fr450-insn" "-mcpu=fr500" "fr450-insn -mcpu=fr500"
     run_list_test "fr450-media-issue" "-mcpu=fr450"
 
     run_dump_test "fr550-pack1"
index e0702f59d3f7dce1b0546dacb8f1df4966c46934..0c419d2ee99e8aeef90aa9c6daae883c5f0a815b 100644 (file)
@@ -1,19 +1,6 @@
 #
 # i386 tests
 #
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "i386 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 proc gas_64_check { } {
     global NM
     global NMFLAGS
index 041d859cc92a713c8d9d2d0e4beb71334fafa9d9..39e40af26fd827352b15e6865eead9ab1dae3c09 100644 (file)
@@ -1,18 +1,5 @@
 # i860 assembler testsuite.
 
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "i860 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-        fail $testname
-        verbose "output is [file_contents "dump.out"]" 2
-        return
-    }
-    pass $testname
-}
-
 if [istarget i860-*-*] {
     run_dump_test "bitwise"
     run_dump_test "branch"
index f68c107f528bd60b8c921597d6af046c3170b498..3dfd10b8c343daf0fb6bd000f068454b193b0918 100644 (file)
@@ -1,19 +1,6 @@
 #
 # ia64 tests
 #
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "ia64 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 if [istarget "ia64-*"] then {
 
     run_dump_test "regs"
index 055c14029efb4e336bac381354124eff70d37632..2373290e84257b25e4a6a03cd4c1fb733a60bda7 100644 (file)
@@ -1,17 +1,3 @@
-# ??? This probably shouldn't be replicated here...
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "lns $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-        fail $testname
-        verbose "output is [file_contents "dump.out"]" 2
-        return
-    }
-    pass $testname
-}
-
 if ![is_elf_format] then {
     return
 }
index e175ad9a53ecd04737de4ec13a13003b655db69e..62392ec3b48cf7dc4e754ae80a754a33fd19054e 100644 (file)
@@ -1,18 +1,5 @@
 # Run some tests of gas macros.
 
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "macros $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 if { ![istarget hppa*-*-*] || [istarget *-*-linux*] } {
     run_dump_test test1
 }
@@ -69,6 +56,7 @@ run_dump_test app3
 run_dump_test app4
 
 run_list_test badarg ""
+
 case $target_triplet in {
     { *c54x*-*-* } { }
     { *c4x*-*-* } { }
index 482bd4ca2c239fc53bed679393d8996f16bc0537..8887b53494eb6728c7364e06944797015125eb48 100644 (file)
@@ -1,19 +1,6 @@
 #
 # MAXQ10 tests
 #
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "maxq10 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 proc gas_64_check { } {
     global NM
     global NMFLAGS
index d2857f617b96f6684921104208ad5399984f3c14..6d952e9e3ed52ecb658f33c17fdebb42a25a6107 100644 (file)
@@ -1,19 +1,6 @@
 #
 # MAXQ20 tests
 #
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "maxq20 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 proc gas_64_check { } {
     global NM
     global NMFLAGS
index ae0276d7d18a962966b975d03733af648da023b6..523a7738242a14b1a9d50d8427cf0e996be77720 100644 (file)
@@ -292,27 +292,6 @@ proc run_dump_test_arches { name arch_list } {
     }
 }
 
-# run_list_test NAME OPTS (optional): TESTNAME
-#
-# Assemble the file "NAME.d" and compare the assembler standard error
-# output against the regular expressions given in the file "NAME.l".
-# The assembler is passed the flags given in OPTS.  If TESTNAME is
-# provided, it will be used as the name of the test.
-proc run_list_test { name opts {testname {}} } {
-    global srcdir subdir
-    if { [string length $testname] == 0 } then {
-           set testname "MIPS $name"
-    }
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 # run_list_test_arch NAME OPTS ARCH
 #
 # Invoke "run_list_test" for test NAME with options OPTS, with extra
index 8d2a294f7c5b0c8b00a0382d6087fd3bbe7469bc..e4a98d0cd80b472d0fa819c25b0410e23196a667 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2001 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2007 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -18,24 +18,6 @@ if { ! [istarget "mmix-*"] } {
     return
 }
 
-proc run_list_test { name opts } {
-    global srcdir subdir runtests
-
-    if ![runtest_file_p $runtests $name] then {
-       return
-    }
-
-    set testname "mmix list $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 proc run_mmix_list_tests { } {
     global srcdir subdir runtests
     foreach test_name [lsort [find ${srcdir}/${subdir} *.l]] {
index b80e006cd215b55613c16adedefa931c22f73546..37c1972738ff1c91f77e7a5bc01cfa95d54200bf 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 1996, 2000, 2002, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2000, 2002, 2004, 2007 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -1768,20 +1768,6 @@ proc do_am33_8 {} {
     if [expr $x==67] then { pass $testname } else { fail $testname }
 }
 
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "mn10300 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
-
 if [istarget mn10300*-*-*] then {
     # Test the basic instruction parser.
     do_add
index a45ae4b630b531deabb7c04c694d83e34dd995ab..c5e8052e0422de1d4239f3ac65f4b92f498c9058 100644 (file)
@@ -1,19 +1,6 @@
 #
 # msp430 tests
 #
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "msp430 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       exit
-       return
-    }
-    pass $testname
-}
 
 if [expr [istarget "msp430-*-*"]]  then {
     run_dump_test "opcode"
index 9ee6435df12a747d3d22f6ef31db9c0ef662ae1f..91ccddbb2ef22a719fb4ee6dc531bd03fe65ce3b 100644 (file)
@@ -1,19 +1,6 @@
 #
 # pdp11/pdp11 tests
 #
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "pdp11 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       exit
-       return
-    }
-    pass $testname
-}
 
 if [expr [istarget "pdp11-*-*"]]  then {
 
index 0f0e9bf01b71b6c38a87e73b8e7eb44a63e66ed4..0e2db22c66eecfb85c3b159c6e973d14dee15037 100644 (file)
@@ -2,19 +2,6 @@
 # Some PowerPC tests
 #
 
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "ppc $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       return
-    }
-    pass $testname
-}
-
 # These tests are currently ELF specific, only because nobody has
 # converted them to look for XCOFF relocations.
 
index db49134775f18eebb7326f9d77005f80cc6c7ccd..8739bdd93272b5db05b13bd48eb4acd98e5f1506 100644 (file)
@@ -1,19 +1,6 @@
 #
 # s390/s390x tests
 #
-proc run_list_test { name opts } {
-    global srcdir subdir
-    set testname "s390 $name"
-    set file $srcdir/$subdir/$name
-    gas_run ${name}.s $opts ">&dump.out"
-    if { [regexp_diff "dump.out" "${file}.l"] } then {
-       fail $testname
-       verbose "output is [file_contents "dump.out"]" 2
-       exit
-       return
-    }
-    pass $testname
-}
 
 if [expr [istarget "s390-*-*"] ||  [istarget "s390x-*-*"]]  then {
 
diff --git a/gas/testsuite/gas/sparc/pr4587.l b/gas/testsuite/gas/sparc/pr4587.l
new file mode 100644 (file)
index 0000000..fd05091
--- /dev/null
@@ -0,0 +1,2 @@
+.*pr4587.s: Assembler messages:
+.*pr4587.s:18: Error: Illegal operands
diff --git a/gas/testsuite/gas/sparc/pr4587.s b/gas/testsuite/gas/sparc/pr4587.s
new file mode 100644 (file)
index 0000000..a058c1d
--- /dev/null
@@ -0,0 +1,22 @@
+       .section .data
+       .align 4
+zero: .single 0.0
+
+       .section .text
+       .align 4
+       .global main
+main:
+    save %sp, -96, %sp
+
+    ! Zero-out the first FP register
+    set zero, %l0
+    ld [%l0], %f0
+
+    ! Compare it to itself
+    ! The third reg (%f0) will cause a segfault in as
+    ! fcmps only takes two regs... this should be illegal operand error
+    fcmps %f0, %f0, %f0
+
+    ! Return 0
+    ret
+    restore %g0, %g0, %o0
index 60ca24f122cab3c6ec1c1172b0ba8e477ffdeabd..876f9acf80111153f7207754770a243326e6d6e9 100644 (file)
@@ -53,6 +53,8 @@ if [istarget sparc*-*-*] {
     run_dump_test "v9branch3"
     run_dump_test "v9branch4"
     run_dump_test "v9branch5"
+
+    run_list_test "pr4587" ""
 }
 
 if [istarget sparc-*-vxworks*] {
index 3b21719615f059eb6f7e1eec53d4c0770f1e102d..eabd018add9ee645107317cdadc4449faabb2418 100644 (file)
@@ -1,5 +1,5 @@
 # Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-# 2004, 2005 Free Software Foundation, Inc.
+# 2004, 2005, 2007 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -888,3 +888,25 @@ if ![string length [info proc prune_warnings]] {
        return $text
     }
 }
+
+# run_list_test NAME OPTS (optional): TESTNAME
+#
+# Assemble the file "NAME.d" with command line options OPTS and
+# compare the assembler standard error output against thee regular
+# expressions given in the file "NAME.l".  If TESTNAME is provided,
+# it will be used as the name of the test.
+
+proc run_list_test { name opts {testname {}} } {
+    global srcdir subdir
+    if { [string length $testname] == 0 } then {
+       set testname "[file tail $subdir] $name"
+    }
+    set file $srcdir/$subdir/$name
+    gas_run ${name}.s $opts ">&dump.out"
+    if { [regexp_diff "dump.out" "${file}.l"] } then {
+       fail $testname
+       verbose "output is [file_contents "dump.out"]" 2
+       return
+    }
+    pass $testname
+}
This page took 0.051246 seconds and 4 git commands to generate.