+# 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.
+
#
# Some ARM tests
#
-proc run_errors_test { name opts tname} {
- global srcdir subdir
- set testname "$tname"
- set file $srcdir/$subdir/$name
- gas_run ${name}.s $opts ">&${name}.out"
- if { [regexp_diff "${name}.out" "${file}.l"] } then {
- fail $testname
- verbose "output is [file_contents "${name}.out"]" 2
- return
- }
- pass $testname
-}
-
-if {[istarget *arm*-*-*] || [istarget "xscale-*-*"]} then {
-
- if {[istarget *-wince-*]} then {
- run_dump_test "wince_inst"
- run_dump_test "wince_ldconst"
- run_dump_test "wince_arm7t"
- run_dump_test "wince_copro"
- } else {
- run_dump_test "inst"
- run_dump_test "ldconst"
- run_dump_test "arm7t"
- run_dump_test "copro"
- }
-
- run_dump_test "arm3"
- run_dump_test "arm6"
- run_dump_test "arm7dm"
- run_dump_test "arch4t"
- run_dump_test "immed"
- run_dump_test "float"
- run_dump_test "offset"
- run_dump_test "armv1"
- run_dump_test "arch5tej"
- run_dump_test "fpa-monadic"
- run_dump_test "fpa-dyadic"
- run_dump_test "fpa-mem"
- run_dump_test "vfp1xD"
- run_dump_test "vfp1"
- run_dump_test "vfp2"
- run_dump_test "xscale"
- run_dump_test "adrl"
- run_dump_test "reg-alias"
- run_dump_test "maverick"
- run_dump_test "archv6"
- run_dump_test "archv6t2"
- run_dump_test "thumbv6"
- run_dump_test "thumbv6k"
- run_dump_test "arch6zk"
- run_dump_test "tcompat"
- run_dump_test "tcompat2"
- run_dump_test "iwmmxt"
- run_dump_test "macro1"
-
- run_errors_test "vfp-bad" "-mfpu=vfp" "VFP errors"
- run_errors_test "req" "-mcpu=arm7m" ".req errors"
- run_errors_test "armv1-bad" "-mcpu=arm7m" "ARM v1 errors"
- run_errors_test "r15-bad" "" "Invalid use of r15 errors"
- run_errors_test "archv6t2-bad" "-march=armv6t2" "Invalid V6T2 instructions"
- run_errors_test "t16-bad" "-march=armv6k" "Valid ARM, invalid Thumb"
- run_errors_test "iwmmxt-bad" "-mcpu=iwmmxt" "iWMMXt errors"
-
- if {[istarget *-*-*coff] || [istarget *-*-pe] || [istarget *-*-wince] ||
- [istarget *-*-*aout*] || [istarget *-*-netbsd] || [istarget *-*-riscix*]} then {
- # COFF and aout based ports use a different naming convention for local labels.
- run_errors_test "undefined_coff" "" "Undefined local label error"
- } else {
- # For ELF based ports we can run some additional tests as well.
- run_errors_test "undefined" "" "Undefined local label error"
-
- run_dump_test "pic"
- run_dump_test "mapping"
- run_dump_test "bignum1"
- run_dump_test "unwind"
- run_dump_test "tls"
- }
-
- # The arm-aout port does not support Thumb branch relocations.
- if {! [istarget arm*-*-aout] && ![istarget arm-*-pe]} then {
- run_dump_test "thumb"
- run_dump_test "thumb32"
- }
- # Not all arm targets are bi-endian, so only run this test on ones
- # we know that are. FIXME: We should probably also key off armeb/armel.
- if [istarget *-*-pe] {
- run_dump_test "le-fpconst"
- }
+if {[istarget arm*-*-*]} {
+ run_dump_tests [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
}