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