1# Some generic SPARC and SPARC64 tests 2 3# FIXME: The tests here aren't really bullet proof. A mistake in the opcode 4# table can slip through since we use the same table for assembly and 5# disassembly. The way to fix this is to include a hex dump of the insns 6# and test that as well. Later. 7 8# Find out if these binutils are either sparc64*-*-* or 9# sparc*-*-* with --enable-targets=sparc64-*-* 10proc gas_64_check { } { 11 global NM 12 global NMFLAGS 13 global srcdir 14 15 catch "exec $srcdir/lib/run $NM $NMFLAGS --help" nm_help 16 return [regexp "elf64\[_-\]sparc" $nm_help]; 17} 18 19proc sparc_elf_setup { } { 20 setup_xfail "sparc*-*-*aout*" "sparc*-*-sunos4*" "sparc*-*-vxworks*" 21 setup_xfail "sparc*-fujitsu-none" "sparc*-*-*n*bsd*" 22 setup_xfail "sparc*-*-coff" "sparc*-*-lynxos*" 23 clear_xfail "sparc64*-*-*n*bsd*" 24 clear_xfail "sparc*-*-netbsdelf*" 25} 26 27if [istarget sparc*-*-*] { 28 run_dump_test "synth" 29 # The next three tests are ELF only. 30 sparc_elf_setup 31 run_dump_test "unalign" 32 sparc_elf_setup 33 run_dump_test "pcrel" 34 sparc_elf_setup 35 run_dump_test "plt" 36 if [gas_64_check] { 37 run_dump_test "asi" 38 run_dump_test "membar" 39 run_dump_test "prefetch" 40 run_dump_test "set64" 41 run_dump_test "synth64" 42 run_dump_test "rdpr" 43 run_dump_test "wrpr" 44 run_dump_test "reloc64" 45 run_dump_test "pcrel64" 46 run_dump_test "plt64" 47 } 48} 49 50if [istarget sparclet*-*-*] { 51 run_dump_test "splet" 52 run_dump_test "splet-2" 53} 54