| 1 | # Copyright (C) 2012-2014 Free Software Foundation, Inc. |
| 2 | |
| 3 | # This program is free software; you can redistribute it and/or modify |
| 4 | # it under the terms of the GNU General Public License as published by |
| 5 | # the Free Software Foundation; either version 3 of the License, or |
| 6 | # (at your option) any later version. |
| 7 | # |
| 8 | # This program is distributed in the hope that it will be useful, |
| 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | # GNU General Public License for more details. |
| 12 | # |
| 13 | # You should have received a copy of the GNU General Public License |
| 14 | # along with this program; if not, write to the Free Software |
| 15 | # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. |
| 16 | |
| 17 | # Some generic SPARC and SPARC64 tests |
| 18 | |
| 19 | # FIXME: The tests here aren't really bullet proof. A mistake in the opcode |
| 20 | # table can slip through since we use the same table for assembly and |
| 21 | # disassembly. The way to fix this is to include a hex dump of the insns |
| 22 | # and test that as well. Later. |
| 23 | |
| 24 | # Find out if these binutils are either sparc64*-*-* or |
| 25 | # sparc*-*-* with --enable-targets=sparc64-*-* |
| 26 | proc gas_64_check { } { |
| 27 | global NM |
| 28 | global NMFLAGS |
| 29 | |
| 30 | set status [gas_host_run "$NM $NMFLAGS --help" ""] |
| 31 | return [regexp "elf64\[_-\]sparc" [lindex $status 1]] |
| 32 | } |
| 33 | |
| 34 | proc sparc_elf_setup { } { |
| 35 | setup_xfail "sparc*-*-*aout*" "sparc*-*-sunos4*" |
| 36 | setup_xfail "sparc*-fujitsu-none" "sparc*-*-*n*bsd*" |
| 37 | setup_xfail "sparc*-*-coff" "sparc*-*-lynxos*" |
| 38 | clear_xfail "sparc64*-*-*n*bsd*" |
| 39 | clear_xfail "sparc*-*-netbsdelf*" |
| 40 | } |
| 41 | |
| 42 | if [istarget sparc*-*-*] { |
| 43 | run_dump_test "synth" |
| 44 | # The next four tests are ELF only. |
| 45 | sparc_elf_setup |
| 46 | run_dump_test "unalign" |
| 47 | sparc_elf_setup |
| 48 | run_dump_test "pcrel" |
| 49 | sparc_elf_setup |
| 50 | run_dump_test "plt" |
| 51 | sparc_elf_setup |
| 52 | run_dump_test "gotop32" |
| 53 | if [gas_64_check] { |
| 54 | run_dump_test "asi" |
| 55 | run_dump_test "membar" |
| 56 | run_dump_test "prefetch" |
| 57 | run_dump_test "set64" |
| 58 | run_dump_test "synth64" |
| 59 | run_dump_test "rdpr" |
| 60 | run_dump_test "rdhpr" |
| 61 | run_dump_test "wrpr" |
| 62 | run_dump_test "wrhpr" |
| 63 | run_dump_test "window" |
| 64 | run_dump_test "reloc64" |
| 65 | run_dump_test "pcrel64" |
| 66 | run_dump_test "plt64" |
| 67 | run_dump_test "gotop64" |
| 68 | } |
| 69 | run_dump_test "imm-plus-rreg" |
| 70 | run_dump_test "ticc-imm-reg" |
| 71 | run_dump_test "v8-movwr-imm" |
| 72 | run_dump_test "save-args" |
| 73 | run_dump_test "v9branch1" |
| 74 | run_dump_test "v9branch2" |
| 75 | run_dump_test "v9branch3" |
| 76 | run_dump_test "v9branch4" |
| 77 | run_dump_test "v9branch5" |
| 78 | run_dump_test "pc2210" |
| 79 | run_dump_test "hpcvis3" |
| 80 | run_dump_test "ima" |
| 81 | run_dump_test "crypto" |
| 82 | run_dump_test "cbcond" |
| 83 | run_dump_test "pause" |
| 84 | run_dump_test "cfr" |
| 85 | run_dump_test "ldtw_sttw" |
| 86 | run_dump_test "ldd_std" |
| 87 | run_dump_test "edge" |
| 88 | run_dump_test "flush" |
| 89 | |
| 90 | run_list_test "pr4587" "" |
| 91 | } |
| 92 | |
| 93 | if [istarget sparc-*-vxworks*] { |
| 94 | run_dump_test "vxworks-pic" |
| 95 | } |
| 96 | |
| 97 | if [istarget sparclet*-*-*] { |
| 98 | run_dump_test "splet" |
| 99 | run_dump_test "splet-2" |
| 100 | } |