]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/testsuite/gas/sparc/sparc.exp
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / sparc / sparc.exp
index a2e362dbba115f8eea8c0792eb5a416ae6d34d49..63e14c9487d01f0f2fde40ecc4d85c579e20a2c8 100644 (file)
@@ -1,3 +1,19 @@
+# Copyright (C) 2012-2024 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  
+
 # Some generic SPARC and SPARC64 tests
 
 # FIXME: The tests here aren't really bullet proof.  A mistake in the opcode
 proc gas_64_check { } {
     global NM
     global NMFLAGS
-    global srcdir
 
-    catch "exec $srcdir/lib/run $NM $NMFLAGS --help" nm_help
-    return [regexp "elf64\[_-\]sparc" $nm_help]
+    set status [gas_host_run "$NM $NMFLAGS --help" ""]
+    return [regexp "elf64\[_-\]sparc" [lindex $status 1]]
 }
 
-proc sparc_elf_setup { } {
-    setup_xfail "sparc*-*-*aout*" "sparc*-*-sunos4*"
-    setup_xfail "sparc*-fujitsu-none" "sparc*-*-*n*bsd*"
-    setup_xfail "sparc*-*-coff" "sparc*-*-lynxos*"
-    clear_xfail "sparc64*-*-*n*bsd*"
-    clear_xfail "sparc*-*-netbsdelf*"
+# Until binutils support Solaris-style capabilities, specify the arch
+# necessary to disassemble the ISA extensions used.
+proc set_tests_arch {arch} {
+    global OBJDUMPFLAGS
+
+    if [istarget "sparc*-*-solaris*"] {
+       if { $arch != "" } {
+           set OBJDUMPFLAGS "-msparc:$arch"
+       } else {
+           set OBJDUMPFLAGS ""
+       }
+    }
 }
 
 if [istarget sparc*-*-*] {
-    run_dump_test "synth"
-    # The next three tests are ELF only.
-    sparc_elf_setup
-    run_dump_test "unalign"
-    sparc_elf_setup
-    run_dump_test "pcrel"
-    sparc_elf_setup
-    run_dump_test "plt"
+
+    if [is_elf_format] {
+        # The next five tests are ELF only.
+        run_dump_test "unalign"
+        run_dump_test "pcrel"
+        run_dump_test "plt"
+        run_dump_test "gotop32"
+        run_dump_test "pc2210"
+        # The features tested in the tests below are not ELF-specific.
+        # However, these features are not present in practice in COFF
+        # and a.out targets.  Running them only in ELF targets allows
+        # us to don't have to replicate pattern test files as that
+        # would bring no practical advantage.
+        run_dump_test "natural-32"
+        run_list_test "pr4587" ""
+        run_dump_test "ticc-imm-reg"
+        run_dump_test "v8-movwr-imm"
+        run_dump_test "save-args"
+        run_dump_test "leon"
+        run_dump_test "v8branch"
+
+       set_tests_arch "v9c"
+       run_dump_test "ldtxa"
+
+       set_tests_arch "v9d"
+       run_dump_test "edge"
+
+       set_tests_arch "v9v"
+       run_dump_test "cfr"
+       run_dump_test "crypto"
+       run_dump_test "hpcvis3"
+       run_dump_test "ima"
+       run_dump_test "pause"
+
+       set_tests_arch "v9m"
+       run_dump_test "mcdper"
+       run_dump_test "mwait"
+       run_dump_test "sparc5vis4"
+       run_dump_test "xcrypto"
+
+       set_tests_arch "v9m8"
+       run_dump_test "fpcmpshl"
+       run_dump_test "ldm-stm"
+       run_dump_test "ldmf-stmf"
+       run_dump_test "on"
+       run_dump_test "rle"
+       run_dump_test "sparc6"
+
+       set_tests_arch ""
+        run_dump_test "flush"
+        run_dump_test "ld_st_fsr"
+        run_dump_test "ldtw_sttw"
+        run_dump_test "ldd_std"
+        run_dump_test "ldx_stx"
+        run_dump_test "ldx_efsr"
+        run_dump_test "v9branch1"
+        run_dump_test "imm-plus-rreg"
+        run_dump_test "dcti-couples-v9"
+        run_dump_test "call-relax"
+    } else {
+        # The next tests are a.out only.
+        run_dump_test "call-relax-aout"
+    }
+
     if [gas_64_check] {
        run_dump_test "asi"
+       set_tests_arch "v9v"
+       run_dump_test "cbcond"
+       set_tests_arch ""
+       run_dump_test "gotop64"
        run_dump_test "membar"
+       run_dump_test "natural"
+       run_dump_test "pcrel64"
+       run_dump_test "plt64"
        run_dump_test "prefetch"
+       run_dump_test "reloc64"
        run_dump_test "set64"
        run_dump_test "synth64"
-       run_dump_test "rdpr"
+       run_dump_test "window"
+       run_list_test "asi-arch-error" "-Av9"
+       run_list_test "asi-bump-warn" "-64 -bump"
+       run_list_test "cbcond-diag" "-64"
+       run_list_test "fpcmpshl-diag" "-64"
+       run_list_test "hwcaps-bump" "-64 -bump"
+       run_list_test "ldm-stm-diag" "-64"
+       run_list_test "ldmf-stmf-diag" "-64"
+       run_list_test "on-diag" "-64"
+       run_list_test "sparc6-diag" "-64"
+
+       set_tests_arch "v9m"
        run_dump_test "rdhpr"
-       run_dump_test "wrpr"
+       run_dump_test "rdpr"
+       run_dump_test "wrasr"
        run_dump_test "wrhpr"
-       run_dump_test "window"
-       run_dump_test "reloc64"
-       run_dump_test "pcrel64"
-       run_dump_test "plt64"
+       run_dump_test "wrpr"
+
+       set_tests_arch "v9m8"
+       run_dump_test "rdasr"
+       set_tests_arch ""
     }
+
+    run_dump_test "synth"
+    run_dump_test "v9branch2"
+    run_dump_test "v9branch3"
+    run_dump_test "v9branch4"
+    run_dump_test "v9branch5"
+    run_dump_test "pr19910-1"
+    run_list_test "pr19910-2"
+    run_dump_test "dcti-couples-v8"
+    run_dump_test "dcti-couples-v9c"
+    run_dump_test "pr20732"
 }
 
 if [istarget sparc-*-vxworks*] {