# Copyright 2012
# 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.  

#
# ia64 tests
#
if [istarget "ia64-*"] then {

    run_dump_test "regs"
    run_dump_test "opc-a"
    run_list_test "opc-a-err" ""
    run_dump_test "opc-b"
    run_dump_test "opc-f"
    run_dump_test "opc-i"
    run_dump_test "opc-m"
    run_dump_test "opc-x"
    run_dump_test "psn"
    run_dump_test "pseudo"
    run_dump_test "nop_x"
    run_dump_test "mov-ar"
    run_list_test "operands" ""
    run_list_test "reg-err" ""

    run_list_test "dv-raw-err" ""
    run_list_test "dv-waw-err" ""
    run_list_test "dv-war-err" ""
    run_list_test "dv-entry-err" ""
    run_list_test "dv-mutex-err" ""
    run_dump_test "dv-branch"
    run_dump_test "dv-imply"
    run_dump_test "dv-mutex"
    gas_test "pred-rel.s" "" "" ".pred.rel alternative forms"
    run_dump_test "dv-safe"
    run_dump_test "dv-srlz"
    run_list_test "regval" ""
    run_dump_test "tls"
    run_dump_test "ldxmov-1"
    run_list_test "ldxmov-2" ""
    run_dump_test "ltoff22x-1"
    run_dump_test "ltoff22x-2"
    run_dump_test "ltoff22x-3"
    run_dump_test "ltoff22x-4"
    run_dump_test "ltoff22x-5"

    run_dump_test "nostkreg"
    run_list_test "invalid-ar" ""

    run_dump_test "nostkreg"
    run_list_test "invalid-ar" ""

    run_dump_test "dependency-1"

    run_dump_test "reloc"
    run_dump_test "reloc-mlx"
    run_list_test "reloc-bad" ""
    run_dump_test "pcrel"

    run_dump_test "real"
    run_dump_test "align"
    run_dump_test "order"
    run_dump_test "global"
    if [istarget "ia64-*-hpux*"] then {
	run_dump_test "secname-ilp32"
	run_dump_test "unwind-ilp32"
	run_dump_test "alias-ilp32"
	run_dump_test "xdata-ilp32"
	run_dump_test "reloc-uw-ilp32"
    } else {
	run_dump_test "secname"
	run_dump_test "unwind"
	run_dump_test "alias"
	run_dump_test "xdata"
	run_dump_test "reloc-uw"
	run_dump_test "group-1"
	run_dump_test "group-2"
    }

    run_list_test "alloc" ""
    run_dump_test "bundling"
    run_dump_test "forward"
    run_list_test "index" ""
    run_list_test "label" ""
    run_list_test "last" ""
    run_list_test "no-fit" ""
    run_list_test "pound" "-al"
    run_list_test "proc" "-munwind-check=error"
    run_list_test "radix" ""
    run_list_test "rotX" ""
    run_list_test "slot2" ""
    run_dump_test "strange"
    run_list_test "unwind-bad" ""
    run_list_test "unwind-err" "-munwind-check=error"
    run_dump_test "unwind-ok"
    run_dump_test "operand-or"
    run_list_test "hint.b-err" ""
    run_list_test "hint.b-warn" "-mhint.b=warning"

    if [istarget "ia64-*-*vms*"] then {
	run_dump_test "slotcount"
    }

    if { [istarget "ia64-*-elf*"] || [istarget "ia64-*-linux*"] } {
	run_dump_test "pr13167"
    }
}
