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

#
# Test the m68k MRI compatibility mode.
#
# I originally thought that most of tests applied to any MRI
# assembler, but it turns out that different MRI assemblers use
# different syntaxes.
#

if ![istarget "m68*-*-*"] {
    return
}

# These tests are generic MRI tests: they don't rely on M68K opcodes.
run_dump_test label
run_dump_test equ
run_dump_test float
run_dump_test char
run_dump_test expr
run_dump_test common
run_dump_test comment
gas_test "empty.s" "-M" "" "MRI empty macro"
run_dump_test semi

if {[istarget "m6811-*"] || [istarget "m6812-*"] || [istarget "m68hc*-*"]} {
    return
}

# Next tests contain 68K opcodes
run_dump_test constants
run_dump_test immconst
run_dump_test for
run_dump_test if
run_dump_test repeat
run_dump_test while
run_dump_test moveml
