| 1 | # Copyright (C) 2012-2018 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 | gas_test_error "p13050-1.s" "-march=isab" "moveb (d8,An,Xi),(d16,An) unsupported on isab" |
| 94 | run_dump_test p13050-2 |
| 95 | |
| 96 | if { [istarget *-*-*aout] || [istarget *-*-netbsd] || [istarget *-*-openbsd*] } then { |
| 97 | run_dump_test p3041 |
| 98 | run_dump_test p3041data |
| 99 | run_dump_test p3041pcrel |
| 100 | } |
| 101 | |
| 102 | set testname "68000 operands" |
| 103 | gas_run "operands.s" "-m68000" "2>err.out" |
| 104 | if ![string match "child process exited abnormally" $comp_output] then { |
| 105 | send_log "$comp_output\n" |
| 106 | verbose "$comp_output" 3 |
| 107 | fail $testname |
| 108 | } else { |
| 109 | if [regexp_diff "err.out" "$srcdir/$subdir/op68000.d"] then { |
| 110 | fail $testname |
| 111 | } else { |
| 112 | pass $testname |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | if { [istarget m68k-*-linux*] } then { |
| 117 | run_dump_test tls-gd-3 |
| 118 | } |
| 119 | |
| 120 | if { ! [istarget fido-*-*] } then { |
| 121 | # The testcase uses an invalid instruction for this architecture. |
| 122 | run_dump_test pr11676 |
| 123 | } |
| 124 | |
| 125 | run_dump_test pmove |
| 126 | } |
| 127 | if [info exists errorInfo] then { |
| 128 | unset errorInfo |
| 129 | } |