blob: 0a6a494344ad40b8aacfc58a98ab743a7e361306 [file] [log] [blame]
# Copyright (C) 2012-2016 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
# 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 "rdasr"
run_dump_test "rdpr"
run_dump_test "rdhpr"
run_dump_test "wrasr"
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 "imm-plus-rreg"
run_dump_test "ticc-imm-reg"
run_dump_test "v8-movwr-imm"
run_dump_test "save-args"
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_dump_test "hpcvis3"
run_dump_test "ima"
run_dump_test "crypto"
run_dump_test "xcrypto"
run_dump_test "cbcond"
run_dump_test "pause"
run_dump_test "cfr"
run_dump_test "ldtw_sttw"
run_dump_test "ldd_std"
run_dump_test "ldx_stx"
run_dump_test "ldx_efsr"
run_dump_test "ld_st_fsr"
run_dump_test "edge"
run_dump_test "flush"
run_dump_test "mwait"
run_dump_test "mcdper"
run_dump_test "sparc5vis4"
run_dump_test "natural"
run_dump_test "natural-32"
run_list_test "pr4587" ""
run_dump_test "pr19910-1"
run_list_test "pr19910-2"
}
if [istarget sparc-*-vxworks*] {
run_dump_test "vxworks-pic"
}
if [istarget sparclet*-*-*] {
run_dump_test "splet"
run_dump_test "splet-2"
}