| # Some generic SPARC and SPARC64 tests |
| |
| # FIXME: The tests here aren't really bullet proof. A mistake in the opcode |
| # table can slip through since we use the same table for assembly and |
| # disassembly. The way to fix this is to include a hex dump of the insns |
| # and test that as well. Later. |
| |
| # Find out if these binutils are either sparc64*-*-* or |
| # sparc*-*-* with --enable-targets=sparc64-*-* |
| proc gas_64_check { } { |
| global NM |
| global NMFLAGS |
| |
| 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*" |
| } |
| |
| if [istarget sparc*-*-*] { |
| run_dump_test "synth" |
| # The next four 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" |
| sparc_elf_setup |
| run_dump_test "gotop32" |
| 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 "rdhpr" |
| run_dump_test "wrpr" |
| run_dump_test "wrhpr" |
| run_dump_test "window" |
| run_dump_test "reloc64" |
| run_dump_test "pcrel64" |
| run_dump_test "plt64" |
| run_dump_test "gotop64" |
| } |
| run_dump_test "v9branch1" |
| run_dump_test "v9branch2" |
| run_dump_test "v9branch3" |
| run_dump_test "v9branch4" |
| run_dump_test "v9branch5" |
| run_dump_test "pc2210" |
| |
| run_list_test "pr4587" "" |
| } |
| |
| if [istarget sparc-*-vxworks*] { |
| run_dump_test "vxworks-pic" |
| } |
| |
| if [istarget sparclet*-*-*] { |
| run_dump_test "splet" |
| run_dump_test "splet-2" |
| } |