4 proc run_errors_test { name opts tname} {
7 set file $srcdir/$subdir/$name
8 gas_run ${name}.s $opts ">&${name}.out"
9 if { [regexp_diff "${name}.out" "${file}.l"] } then {
11 verbose "output is [file_contents "${name}.out"]" 2
17 if {[istarget *arm*-*-*] || [istarget "xscale-*-*"]} then {
19 if {[istarget *-wince-*]} then {
20 run_dump_test "wince_inst"
21 run_dump_test "wince_ldconst"
22 run_dump_test "wince_arm7t"
23 run_dump_test "wince_copro"
26 run_dump_test "ldconst"
33 run_dump_test "arm7dm"
34 run_dump_test "arch4t"
37 run_dump_test "offset"
39 run_dump_test "arch5tej"
40 run_dump_test "fpa-monadic"
41 run_dump_test "fpa-dyadic"
42 run_dump_test "fpa-mem"
43 run_dump_test "vfp1xD"
46 run_dump_test "xscale"
48 run_dump_test "reg-alias"
49 run_dump_test "maverick"
50 run_dump_test "archv6"
51 run_dump_test "archv6t2"
52 run_dump_test "thumbv6"
53 run_dump_test "thumbv6k"
54 run_dump_test "arch6zk"
55 run_dump_test "tcompat"
56 run_dump_test "tcompat2"
57 run_dump_test "iwmmxt"
58 run_dump_test "macro1"
60 run_errors_test "vfp-bad" "-mfpu=vfp" "VFP errors"
61 run_errors_test "req" "-mcpu=arm7m" ".req errors"
62 run_errors_test "armv1-bad" "-mcpu=arm7m" "ARM v1 errors"
63 run_errors_test "r15-bad" "" "Invalid use of r15 errors"
64 run_errors_test "archv6t2-bad" "-march=armv6t2" "Invalid V6T2 instructions"
65 run_errors_test "t16-bad" "-march=armv6k" "Valid ARM, invalid Thumb"
66 run_errors_test "iwmmxt-bad" "-mcpu=iwmmxt" "iWMMXt errors"
68 if {[istarget *-*-*coff] || [istarget *-*-pe] || [istarget *-*-wince] ||
69 [istarget *-*-*aout*] || [istarget *-*-netbsd] || [istarget *-*-riscix*]} then {
70 # COFF and aout based ports use a different naming convention for local labels.
71 run_errors_test "undefined_coff" "" "Undefined local label error"
73 # For ELF based ports we can run some additional tests as well.
74 run_errors_test "undefined" "" "Undefined local label error"
77 run_dump_test "mapping"
78 run_dump_test "bignum1"
79 run_dump_test "unwind"
83 # The arm-aout port does not support Thumb branch relocations.
84 if {! [istarget arm*-*-aout] && ![istarget arm-*-pe]} then {
86 run_dump_test "thumb32"
89 # Not all arm targets are bi-endian, so only run this test on ones
90 # we know that are. FIXME: We should probably also key off armeb/armel.
91 if [istarget *-*-pe] {
92 run_dump_test "le-fpconst"