# Copyright (C) 2012-2014 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.  

# Blackfin assembler testsuite

if [istarget bfin*-*-*] {
	run_dump_test "allinsn16"
	run_dump_test "arithmetic"
	run_dump_test "arith_mode"
	run_dump_test "bit"
	run_dump_test "bit2"
	run_dump_test "cache"
	run_dump_test "cache2"
	run_dump_test "control_code"
	run_dump_test "control_code2"
	run_dump_test "event"
	run_dump_test "event2"
	run_list_test "expected_errors" ""
	run_list_test "expected_move_errors" ""
	run_list_test "expected_comparison_errors" ""
	run_dump_test "flow"
	run_dump_test "flow2"
	run_list_test "invalid_arith_mode" ""
	run_list_test "line_number" ""
	run_dump_test "load"
	run_dump_test "logical"
	run_dump_test "logical2"
	run_dump_test "loop"
	run_dump_test "loop2"
	run_dump_test "loop3"
	run_dump_test "loop_label"
	run_dump_test "loop_label2"
	run_dump_test "loop_temps"
	run_dump_test "misc"
	run_dump_test "move"
	run_dump_test "move2"
	run_dump_test "parallel"
	run_dump_test "parallel2"
	run_dump_test "parallel3"
	run_dump_test "parallel4"
	run_dump_test "parallel_illegal"
	run_dump_test "pseudo"
	run_dump_test "reloc"
	run_list_test "resource_conflict" ""
	run_dump_test "shift"
	run_dump_test "shift2"
	run_dump_test "stack"
	run_dump_test "stack2"
	run_dump_test "store"
	run_dump_test "vector"
	run_dump_test "vector2"
	run_dump_test "video"
	run_dump_test "video2"
}
