Commit | Line | Data |
---|---|---|
252b5132 RH |
1 | # |
2 | # i386 tests | |
3 | # | |
b96d3a20 JH |
4 | proc gas_64_check { } { |
5 | global NM | |
6 | global NMFLAGS | |
252b5132 | 7 | |
7f6a71ff JM |
8 | set status [gas_host_run "$NM $NMFLAGS --help" ""] |
9 | return [regexp "targets:.*x86-64" [lindex $status 1]]; | |
b96d3a20 | 10 | } |
6e0b89ee | 11 | |
b96d3a20 JH |
12 | proc gas_32_check { } { |
13 | global NM | |
14 | global NMFLAGS | |
b96d3a20 | 15 | |
7f6a71ff JM |
16 | set status [gas_host_run "$NM $NMFLAGS --help" ""] |
17 | return [regexp "targets:.*i386" [lindex $status 1]]; | |
b96d3a20 JH |
18 | } |
19 | ||
b96d3a20 JH |
20 | if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] then { |
21 | ||
22 | global ASFLAGS | |
23 | set old_ASFLAGS "$ASFLAGS" | |
24 | set ASFLAGS "$ASFLAGS --32" | |
252b5132 | 25 | |
1efbbeb4 L |
26 | run_list_test "float" "-al -mmnemonic=att" |
27 | run_list_test "general" "-al --listing-lhs-width=2 -mold-gcc" | |
252b5132 | 28 | run_list_test "inval" "-al" |
4cc91dba L |
29 | run_list_test "segment" "-al" |
30 | run_list_test "inval-seg" "-al" | |
252b5132 | 31 | run_list_test "modrm" "-al --listing-lhs-width=2" |
3f9ed93b | 32 | run_dump_test "naked" |
252b5132 | 33 | run_dump_test "opcode" |
8a82f7e3 JB |
34 | run_dump_test "opcode-intel" |
35 | run_dump_test "opcode-suffix" | |
cc5ca5ce | 36 | run_dump_test "intel" |
be66c492 | 37 | run_dump_test "intel16" |
9306ca4a JB |
38 | run_list_test "intelbad" "" |
39 | run_dump_test "intelok" | |
252b5132 RH |
40 | run_dump_test "prefix" |
41 | run_dump_test "amd" | |
c608c12e | 42 | run_dump_test "katmai" |
a3d1c52b | 43 | run_dump_test "jump" |
de9d65b5 JH |
44 | run_dump_test "ssemmx2" |
45 | run_dump_test "sse2" | |
4dd8d67b | 46 | run_dump_test "sub" |
ca164297 | 47 | run_dump_test "prescott" |
2033b4b9 | 48 | run_dump_test "sib" |
db51cc60 | 49 | run_dump_test "sib-intel" |
90700ea2 | 50 | run_dump_test "vmx" |
47dd174c | 51 | run_dump_test "smx" |
22cbf2e7 | 52 | run_dump_test "suffix" |
9cd96992 | 53 | run_dump_test "immed32" |
4d1bb795 | 54 | run_dump_test "equ" |
5157cd8a | 55 | run_dump_test "divide" |
26f07657 | 56 | run_dump_test "padlock" |
c4a530c5 JB |
57 | run_dump_test "crx" |
58 | run_list_test "cr-err" "" | |
30123838 | 59 | run_dump_test "svme" |
050dfa73 | 60 | run_dump_test "amdfam10" |
331d2d0d | 61 | run_dump_test "merom" |
35c52694 L |
62 | run_dump_test "rep" |
63 | run_dump_test "rep-suffix" | |
5645cf1e | 64 | run_dump_test "fp" |
15965411 | 65 | run_dump_test "nops" |
76bc74dc | 66 | run_dump_test "nops16-1" |
ccc9c027 L |
67 | run_dump_test "nops-1" |
68 | run_dump_test "nops-1-i386" | |
76bc74dc | 69 | run_dump_test "nops-1-i386-i686" |
ccc9c027 | 70 | run_dump_test "nops-1-i686" |
76bc74dc | 71 | run_dump_test "nops-1-k8" |
ccc9c027 L |
72 | run_dump_test "nops-1-merom" |
73 | run_dump_test "nops-2" | |
74 | run_dump_test "nops-2-i386" | |
75 | run_dump_test "nops-2-merom" | |
c0f91ba6 | 76 | run_dump_test "nops-3" |
76bc74dc L |
77 | run_dump_test "nops-3-i386" |
78 | run_dump_test "nops-3-i686" | |
79 | run_dump_test "nops-4" | |
80 | run_dump_test "nops-4-i386" | |
81 | run_dump_test "nops-4-i686" | |
539e75ad L |
82 | run_dump_test "addr16" |
83 | run_dump_test "addr32" | |
42903f7f | 84 | run_dump_test "sse4_1" |
c3ad16c0 | 85 | run_dump_test "sse4_1-intel" |
381d071f | 86 | run_dump_test "sse4_2" |
c3ad16c0 | 87 | run_dump_test "sse4_2-intel" |
9344ff29 L |
88 | run_dump_test "crc32" |
89 | run_dump_test "crc32-intel" | |
20592a94 | 90 | run_list_test "inval-crc32" "-al" |
09a2c6cf L |
91 | run_dump_test "simd" |
92 | run_dump_test "simd-intel" | |
8a72226a | 93 | run_dump_test "simd-suffix" |
d9a5e5e5 L |
94 | run_dump_test "mem" |
95 | run_dump_test "mem-intel" | |
b844680a L |
96 | run_dump_test "reg" |
97 | run_dump_test "reg-intel" | |
ca61edf2 | 98 | run_dump_test "i386" |
9d141669 L |
99 | run_dump_test "compat" |
100 | run_dump_test "compat-intel" | |
8d79a8c8 L |
101 | run_dump_test "arch-1" |
102 | run_dump_test "arch-2" | |
103 | run_dump_test "arch-3" | |
104 | run_dump_test "arch-4" | |
252b5132 | 105 | |
a3d1c52b AM |
106 | # These tests require support for 8 and 16 bit relocs, |
107 | # so we only run them for ELF and COFF targets. | |
62e88f3c | 108 | if {[is_elf_format] || [istarget "*-*-coff*"]} then { |
252b5132 | 109 | run_dump_test "reloc" |
a3d1c52b | 110 | run_dump_test "jump16" |
252b5132 | 111 | run_list_test "white" "-al --listing-lhs-width=3" |
3d983505 NC |
112 | |
113 | # These tests should in theory work for PE targets as well, | |
114 | # but the relocs we currently produce are slightly different | |
115 | # from those produced for ELF/COFF based toolchains. | |
116 | # So for now we ignore PE targets. | |
117 | run_dump_test "pcrel" | |
118 | run_dump_test "absrel" | |
252b5132 | 119 | } |
00687228 | 120 | |
62e88f3c NC |
121 | # ELF specific tests |
122 | if [is_elf_format] then { | |
123 | # PIC is only supported on ELF targets. | |
124 | run_dump_test "intelpic" | |
125 | ||
00687228 | 126 | run_dump_test "relax" |
2bbd9c25 | 127 | run_dump_test "gotpc" |
13ae64f3 JJ |
128 | run_dump_test "tlsd" |
129 | run_dump_test "tlspic" | |
130 | run_dump_test "tlsnopic" | |
8a75718c | 131 | run_dump_test "bss" |
3956db08 JB |
132 | run_dump_test "reloc32" |
133 | run_list_test "reloc32" "--defsym _bad_=1" | |
4fa24527 | 134 | run_dump_test "mixed-mode-reloc32" |
00687228 L |
135 | } |
136 | ||
6482c264 NC |
137 | # This is a PE specific test. |
138 | if { [istarget "*-*-cygwin*"] || [istarget "*-*-pe"] | |
139 | || [istarget "*-*-mingw*"] | |
140 | } then { | |
141 | run_dump_test "secrel" | |
142 | } | |
143 | ||
b96d3a20 JH |
144 | set ASFLAGS "$old_ASFLAGS" |
145 | } | |
6e0b89ee | 146 | |
fc847f15 | 147 | if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] then { |
b96d3a20 JH |
148 | |
149 | global ASFLAGS | |
150 | set old_ASFLAGS "$ASFLAGS" | |
151 | set ASFLAGS "$ASFLAGS --64" | |
152 | ||
153 | run_dump_test "x86_64" | |
20f0a1fc | 154 | run_dump_test "x86-64-addr32" |
185b1163 | 155 | run_dump_test "x86-64-addr32-intel" |
831b02f6 | 156 | run_dump_test "x86-64-opcode" |
ae8887b5 | 157 | run_dump_test "x86-64-pcrel" |
20f0a1fc | 158 | run_dump_test "x86-64-rip" |
185b1163 | 159 | run_dump_test "x86-64-rip-intel" |
1a114b12 JB |
160 | run_dump_test "x86-64-stack" |
161 | run_dump_test "x86-64-stack-intel" | |
162 | run_dump_test "x86-64-stack-suffix" | |
831b02f6 | 163 | run_list_test "x86-64-inval" "-al" |
4cc91dba L |
164 | run_list_test "x86-64-segment" "-al" |
165 | run_list_test "x86-64-inval-seg" "-al" | |
003519a7 | 166 | run_dump_test "x86-64-branch" |
30123838 | 167 | run_dump_test "svme64" |
050dfa73 | 168 | run_dump_test "x86-64-amdfam10" |
90700ea2 | 169 | run_dump_test "x86-64-vmx" |
9cd96992 | 170 | run_dump_test "immed64" |
cb712a9e | 171 | run_dump_test "x86-64-prescott" |
6dd5059a L |
172 | run_dump_test "x86-64-crx" |
173 | run_dump_test "x86-64-crx-suffix" | |
a1cfb73e L |
174 | run_dump_test "x86-64-drx" |
175 | run_dump_test "x86-64-drx-suffix" | |
331d2d0d | 176 | run_dump_test "x86-64-merom" |
35c52694 L |
177 | run_dump_test "x86-64-rep" |
178 | run_dump_test "x86-64-rep-suffix" | |
a35ca55a JB |
179 | run_dump_test "x86-64-cbw" |
180 | run_dump_test "x86-64-cbw-intel" | |
52fd6d94 JB |
181 | run_dump_test "x86-64-io" |
182 | run_dump_test "x86-64-io-intel" | |
183 | run_dump_test "x86-64-io-suffix" | |
cb6d3433 | 184 | run_dump_test "x86-64-gidt" |
15965411 | 185 | run_dump_test "x86-64-nops" |
872ce6ff | 186 | run_dump_test "x86-64-nops-1" |
ccc9c027 L |
187 | run_dump_test "x86-64-nops-1-k8" |
188 | run_dump_test "x86-64-nops-1-nocona" | |
189 | run_dump_test "x86-64-nops-1-merom" | |
76bc74dc L |
190 | run_dump_test "x86-64-nops-2" |
191 | run_dump_test "x86-64-nops-3" | |
192 | run_dump_test "x86-64-nops-4" | |
193 | run_dump_test "x86-64-nops-4-core2" | |
194 | run_dump_test "x86-64-nops-4-k8" | |
42903f7f | 195 | run_dump_test "x86-64-sse4_1" |
c3ad16c0 | 196 | run_dump_test "x86-64-sse4_1-intel" |
381d071f | 197 | run_dump_test "x86-64-sse4_2" |
c3ad16c0 | 198 | run_dump_test "x86-64-sse4_2-intel" |
9344ff29 L |
199 | run_dump_test "x86-64-crc32" |
200 | run_dump_test "x86-64-crc32-intel" | |
20592a94 | 201 | run_list_test "x86-64-inval-crc32" "-al" |
09a2c6cf L |
202 | run_dump_test "x86-64-simd" |
203 | run_dump_test "x86-64-simd-intel" | |
8a72226a | 204 | run_dump_test "x86-64-simd-suffix" |
85f10a01 | 205 | run_dump_test "x86-64-sse5" |
d9a5e5e5 L |
206 | run_dump_test "x86-64-mem" |
207 | run_dump_test "x86-64-mem-intel" | |
5cee3fe6 L |
208 | run_dump_test "x86-64-reg" |
209 | run_dump_test "x86-64-reg-intel" | |
db51cc60 L |
210 | run_dump_test "x86-64-sib" |
211 | run_dump_test "x86-64-sib-intel" | |
7c52e0e8 L |
212 | run_dump_test "x86-64-opcode-inval" |
213 | run_dump_test "x86-64-opcode-inval-intel" | |
b96d3a20 | 214 | |
b1905489 JB |
215 | if { ![istarget "*-*-aix*"] |
216 | && ![istarget "*-*-beos*"] | |
217 | && ![istarget "*-*-*bsd*"] | |
218 | && ![istarget "*-*-chaos*"] | |
219 | && ![istarget "*-*-kaos*"] | |
220 | && ![istarget "*-*-lynx*"] | |
221 | && ![istarget "*-*-moss*"] | |
222 | && ![istarget "*-*-nto-qnx*"] | |
223 | && ![istarget "*-*-rtems*"] | |
224 | && ![istarget "*-*-sco*"] | |
225 | && ![istarget "*-*-solaris*"] | |
226 | && ![istarget "*-*-sysv*"] } then { | |
227 | run_dump_test "rex" | |
228 | } | |
229 | ||
d2b2c203 DJ |
230 | # For ELF targets verify that @unwind works. |
231 | if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] | |
232 | || [istarget "*-*-solaris2.*"]) | |
233 | && ![istarget *-*-linux*aout*] | |
234 | && ![istarget *-*-linux*oldld*] } then { | |
235 | run_dump_test "x86-64-unwind" | |
236 | } | |
237 | ||
3956db08 JB |
238 | # ELF specific tests |
239 | if [is_elf_format] then { | |
240 | run_dump_test "reloc64" | |
241 | run_list_test "reloc64" "--defsym _bad_=1" | |
4fa24527 | 242 | run_dump_test "mixed-mode-reloc64" |
3956db08 JB |
243 | } |
244 | ||
b96d3a20 | 245 | set ASFLAGS "$old_ASFLAGS" |
252b5132 | 246 | } |