Commit | Line | Data |
---|---|---|
252b5132 RH |
1 | # |
2 | # Some ARM tests | |
3 | # | |
2ad6300c RE |
4 | proc run_errors_test { name opts tname} { |
5 | global srcdir subdir | |
6 | set testname "$tname" | |
7 | set file $srcdir/$subdir/$name | |
8 | gas_run ${name}.s $opts ">&${name}.out" | |
9 | if { [regexp_diff "${name}.out" "${file}.l"] } then { | |
10 | fail $testname | |
11 | verbose "output is [file_contents "${name}.out"]" 2 | |
12 | return | |
13 | } | |
14 | pass $testname | |
15 | } | |
16 | ||
077b8428 | 17 | if {[istarget *arm*-*-*] || [istarget "xscale-*-*"]} then { |
252b5132 | 18 | |
250355db NC |
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" | |
24 | } else { | |
25 | run_dump_test "inst" | |
26 | run_dump_test "ldconst" | |
27 | run_dump_test "arm7t" | |
28 | run_dump_test "copro" | |
29 | } | |
e28cd48c | 30 | |
49e5c6c5 | 31 | gas_test "arm3.s" "-mcpu=arm3" $stdoptlist "Arm 3 instructions" |
49e5c6c5 | 32 | gas_test "arm6.s" "-mcpu=arm6" $stdoptlist "Arm 6 instructions" |
49e5c6c5 | 33 | gas_test "arm7dm.s" "-mcpu=arm7dm" $stdoptlist "Arm 7DM instructions" |
49e5c6c5 | 34 | gas_test "arch4t.s" "-march=armv4t" $stdoptlist "Arm architecture 4t instructions" |
252b5132 | 35 | gas_test "immed.s" "" $stdoptlist "immediate expressions" |
2fd303f5 | 36 | gas_test "float.s" "-mcpu=arm7tdmi -mfpu=fpa" $stdoptlist "Core floating point instructions" |
376eb240 | 37 | gas_test "offset.s" "" $stdoptlist "OFFSET_IMM regression" |
077b8428 | 38 | |
376eb240 NC |
39 | run_dump_test "armv1" |
40 | run_dump_test "arch5tej" | |
50463d2a | 41 | run_dump_test "fpa-monadic" |
50463d2a | 42 | run_dump_test "fpa-dyadic" |
50463d2a | 43 | run_dump_test "fpa-mem" |
bfae80f2 | 44 | run_dump_test "vfp1xD" |
bfae80f2 | 45 | run_dump_test "vfp1" |
e45d0630 | 46 | run_dump_test "vfp2" |
077b8428 | 47 | run_dump_test "xscale" |
ca6489f9 | 48 | run_dump_test "adrl" |
376eb240 NC |
49 | run_dump_test "reg-alias" |
50 | run_dump_test "maverick" | |
09d92015 | 51 | run_dump_test "archv6" |
09d92015 | 52 | run_dump_test "thumbv6" |
885fc257 | 53 | run_dump_test "thumbv6k" |
0dd132b6 | 54 | run_dump_test "arch6zk" |
376eb240 NC |
55 | |
56 | run_errors_test "vfp-bad" "-mfpu=vfp" "VFP errors" | |
57 | run_errors_test "req" "-mcpu=arm7m" ".req errors" | |
58 | run_errors_test "armv1-bad" "-mcpu=arm7m" "ARM v1 errors" | |
4249f881 PB |
59 | run_errors_test "r15-bad" "" "Invalid use of r15 errors" |
60 | ||
25742a2c NC |
61 | if {[istarget *-*-*coff] || [istarget *-*-pe] || [istarget *-*-wince] || |
62 | [istarget *-*-*aout*] || [istarget *-*-netbsd] || [istarget *-*-riscix*]} then { | |
63 | # COFF and aout based ports use a different naming convention for local labels. | |
64 | run_errors_test "undefined_coff" "" "Undefined local label error" | |
65 | } else { | |
66 | # For ELF based ports we can run some additional tests as well. | |
a3a4c9c4 | 67 | run_errors_test "undefined" "" "Undefined local label error" |
25742a2c | 68 | |
ca6489f9 | 69 | run_dump_test "pic" |
6057a28f | 70 | run_dump_test "mapping" |
1f216d09 | 71 | gas_test "bignum1.s" "" $stdoptlist "bignums" |
7ed4c4c5 | 72 | run_dump_test "unwind" |
ca6489f9 | 73 | } |
8fbf1ae5 | 74 | |
376eb240 NC |
75 | if {! [istarget arm*-*-aout] && ![istarget arm-*-pe]} then { |
76 | # The arm-aout port does not support Thumb mode. | |
77 | gas_test "thumb.s" "-mcpu=arm7t" $stdoptlist "Thumb instructions" | |
78 | } | |
252b5132 RH |
79 | } |
80 | ||
81 | # Not all arm targets are bi-endian, so only run this test on ones | |
82 | # we know that are. FIXME: We should probably also key off armeb/armel. | |
83 | ||
84 | if [istarget arm-*-pe] { | |
85 | run_dump_test "le-fpconst" | |
86 | ||
87 | # Since big-endian numbers have the normal format, this doesn't exist. | |
88 | #run_dump_test "be-fpconst" | |
89 | } | |
03b1477f | 90 | |
e16bb312 NC |
91 | if [istarget xscale-*] { |
92 | run_dump_test "iwmmxt" | |
8bfee9a1 | 93 | run_errors_test "iwmmxt-bad" "-mcpu=iwmmxt" "iWMMXt errors" |
e16bb312 | 94 | } |