Home | History | Annotate | Download | only in m68k
      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 #
     18 # Some generic m68k tests
     19 #
     20 if [istarget "m68hc11-*-*"] then {
     21    return
     22 }
     23 if [istarget "m68hc12-*-*"] then {
     24    return
     25 }
     26 if [istarget "m6811-*-*"] then {
     27    return
     28 }
     29 if [istarget "m6812-*-*"] then {
     30    return
     31 }
     32 if { [istarget m68*-*-*] || [istarget fido*-*-*] } then {
     33     gas_test "t2.s" "" "" "cross-section branch"
     34     if [istarget m68*-motorola-sysv] then {
     35 	run_dump_test t2
     36     }
     37 
     38     gas_test "pic1.s" "" "" "PIC generation"
     39 
     40     gas_test "disperr.s" "-m68020" "" "Incorrect Displacement too long error"
     41 
     42     gas_test_error "p2410.s" "" "out-of-range 'bras'"
     43 
     44     # Reloc types etc. need changing for aout and coff to pass.
     45     setup_xfail "*-*"
     46     clear_xfail "*-*-*elf*" "*-*-sysv4*" "*-*-rtems*" "*-*-*linux*" "*-*-*gnu*" "*-*-psos*"
     47     run_dump_test pcrel
     48 
     49     # Since fido is basically CPU32, it does not support those
     50     # instructions beyond CPU32.  Disable those tests that test them.
     51     if ![istarget fido-*-*] then {
     52 	run_dump_test operands
     53 	run_dump_test cas
     54 	run_dump_test bitfield
     55     } else {
     56 	# Test fido-specific instructions.
     57 	run_dump_test fido
     58     }
     59 
     60     run_dump_test link
     61 
     62     # fido does not have a floating point unit.
     63     if ![istarget fido-*-*] then {
     64 	run_dump_test fmoveml
     65     }
     66 
     67     run_dump_test mcf-mov3q
     68     run_dump_test mcf-movsr
     69     run_dump_test mode5
     70     run_dump_test mode5 "{name {cf}} {as {-mcpu=5200}}"
     71     run_dump_test movem-offset
     72     run_dump_test movem-offset "{name {cf}} {as {-mcpu=5485}}"
     73     run_dump_test mcf-mac
     74     run_dump_test mcf-emac
     75     run_dump_test mcf-coproc
     76     run_dump_test mcf-fpu
     77     run_dump_test mcf-trap
     78     run_dump_test mcf-wdebug
     79     if { [istarget *-*-elf] || [istarget *-*-linux*] } then {
     80       run_dump_test arch-cpu-1
     81     }
     82     run_dump_test cpu32
     83 
     84     run_dump_test br-isaa
     85     run_dump_test br-isab
     86     run_dump_test br-isac
     87 
     88     run_dump_test ctrl-1
     89     run_dump_test ctrl-2
     90 
     91     gas_test_error "p11673.s" "-march=isab" "movel immediate with offset unsupported on isab"
     92 
     93     if { [istarget *-*-*aout] || [istarget *-*-netbsd] || [istarget *-*-openbsd*] } then {
     94       run_dump_test p3041
     95       run_dump_test p3041data
     96       run_dump_test p3041pcrel
     97     }
     98 
     99     set testname "68000 operands"
    100     gas_run "operands.s" "-m68000" "2>err.out"
    101     if ![string match "child process exited abnormally" $comp_output] then {
    102 	send_log "$comp_output\n"
    103 	verbose "$comp_output" 3
    104 	fail $testname
    105     } else {
    106 	if [regexp_diff "err.out" "$srcdir/$subdir/op68000.d"] then {
    107 	    fail $testname
    108 	} else {
    109 	    pass $testname
    110 	}
    111     }
    112 
    113     if { [istarget m68k-*-linux*] } then {
    114       run_dump_test tls-gd-3
    115     }
    116 
    117     if { ! [istarget fido-*-*] } then {
    118       # The testcase uses an invalid instruction for this architecture.
    119       run_dump_test pr11676
    120     }
    121 
    122     run_dump_test pmove
    123 }
    124 if [info exists errorInfo] then {
    125     unset errorInfo
    126 }
    127