# disassembly. The way to fix this is to include a hex dump of the insns
# and test that as well. Later.
-if [istarget sparc*-*-*] {
- run_dump_test "synth"
+# Find out if these binutils are either sparc64*-*-* or
+# sparc*-*-* with --enable-targets=sparc64-*-*
+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];
}
+proc sparc_elf_setup { } {
+ setup_xfail "sparc*-*-*aout*" "sparc*-*-sunos4*" "sparc*-*-vxworks*"
+ setup_xfail "sparc*-fujitsu-none" "sparc*-*-*n*bsd*"
+ setup_xfail "sparc*-*-coff" "sparc*-*-lynxos*"
+ clear_xfail "sparc64*-*-*n*bsd*"
+ clear_xfail "sparc*-*-netbsdelf*"
+}
-if [istarget sparc64*-*-*] {
- run_dump_test "asi"
- run_dump_test "membar"
- run_dump_test "prefetch"
- run_dump_test "set64"
- run_dump_test "synth64"
- run_dump_test "rdpr"
- run_dump_test "wrpr"
- run_dump_test "reloc64"
+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 [gas_64_check] {
+ run_dump_test "asi"
+ run_dump_test "membar"
+ run_dump_test "prefetch"
+ run_dump_test "set64"
+ run_dump_test "synth64"
+ run_dump_test "rdpr"
+ run_dump_test "wrpr"
+ run_dump_test "reloc64"
+ run_dump_test "pcrel64"
+ run_dump_test "plt64"
+ }
}
if [istarget sparclet*-*-*] {