i386: Also check R12-R15 registers when optimizing testq to testb
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / hlebad.s
1 # Check 32bit unsupported HLE instructions
2
3 .allow_index_reg
4 .text
5 _start:
6
7 # Tests for op imm8 al
8 xacquire adc $100,%al
9 xacquire lock adc $100,%al
10 lock xacquire adc $100,%al
11 xrelease adc $100,%al
12 xrelease lock adc $100,%al
13 lock xrelease adc $100,%al
14
15 # Tests for op imm16 ax
16 xacquire adc $1000,%ax
17 xacquire lock adc $1000,%ax
18 lock xacquire adc $1000,%ax
19 xrelease adc $1000,%ax
20 xrelease lock adc $1000,%ax
21 lock xrelease adc $1000,%ax
22
23 # Tests for op imm32 eax
24 xacquire adc $10000000,%eax
25 xacquire lock adc $10000000,%eax
26 lock xacquire adc $10000000,%eax
27 xrelease adc $10000000,%eax
28 xrelease lock adc $10000000,%eax
29 lock xrelease adc $10000000,%eax
30
31 # Tests for op imm8 regb/m8
32 xacquire adcb $100,%cl
33 xacquire lock adcb $100,%cl
34 lock xacquire adcb $100,%cl
35 xrelease adcb $100,%cl
36 xrelease lock adcb $100,%cl
37 lock xrelease adcb $100,%cl
38 xacquire adcb $100,(%ecx)
39 xrelease adcb $100,(%ecx)
40
41 # Tests for op imm16 regs/m16
42 xacquire adcw $1000,%cx
43 xacquire lock adcw $1000,%cx
44 lock xacquire adcw $1000,%cx
45 xrelease adcw $1000,%cx
46 xrelease lock adcw $1000,%cx
47 lock xrelease adcw $1000,%cx
48 xacquire adcw $1000,(%ecx)
49 xrelease adcw $1000,(%ecx)
50
51 # Tests for op imm32 regl/m32
52 xacquire adcl $10000000,%ecx
53 xacquire lock adcl $10000000,%ecx
54 lock xacquire adcl $10000000,%ecx
55 xrelease adcl $10000000,%ecx
56 xrelease lock adcl $10000000,%ecx
57 lock xrelease adcl $10000000,%ecx
58 xacquire adcl $10000000,(%ecx)
59 xrelease adcl $10000000,(%ecx)
60
61 # Tests for op imm8 regs/m16
62 xacquire adcw $100,%cx
63 xacquire lock adcw $100,%cx
64 lock xacquire adcw $100,%cx
65 xrelease adcw $100,%cx
66 xrelease lock adcw $100,%cx
67 lock xrelease adcw $100,%cx
68 xacquire adcw $100,(%ecx)
69 xrelease adcw $100,(%ecx)
70
71 # Tests for op imm8 regl/m32
72 xacquire adcl $100,%ecx
73 xacquire lock adcl $100,%ecx
74 lock xacquire adcl $100,%ecx
75 xrelease adcl $100,%ecx
76 xrelease lock adcl $100,%ecx
77 lock xrelease adcl $100,%ecx
78 xacquire adcl $100,(%ecx)
79 xrelease adcl $100,(%ecx)
80
81 # Tests for op imm8 regb/m8
82 xacquire adcb $100,%cl
83 xacquire lock adcb $100,%cl
84 lock xacquire adcb $100,%cl
85 xrelease adcb $100,%cl
86 xrelease lock adcb $100,%cl
87 lock xrelease adcb $100,%cl
88 xacquire adcb $100,(%ecx)
89 xrelease adcb $100,(%ecx)
90
91 # Tests for op regb regb/m8
92 # Tests for op regb/m8 regb
93 xacquire adcb %al,%cl
94 xacquire lock adcb %al,%cl
95 lock xacquire adcb %al,%cl
96 xrelease adcb %al,%cl
97 xrelease lock adcb %al,%cl
98 lock xrelease adcb %al,%cl
99 xacquire adcb %al,(%ecx)
100 xrelease adcb %al,(%ecx)
101 xacquire adcb %cl,%al
102 xacquire lock adcb %cl,%al
103 lock xacquire adcb %cl,%al
104 xrelease adcb %cl,%al
105 xrelease lock adcb %cl,%al
106 lock xrelease adcb %cl,%al
107 xacquire adcb (%ecx),%al
108 xacquire lock adcb (%ecx),%al
109 lock xacquire adcb (%ecx),%al
110 xrelease adcb (%ecx),%al
111 xrelease lock adcb (%ecx),%al
112 lock xrelease adcb (%ecx),%al
113
114 # Tests for op regs regs/m16
115 # Tests for op regs/m16 regs
116 xacquire adcw %ax,%cx
117 xacquire lock adcw %ax,%cx
118 lock xacquire adcw %ax,%cx
119 xrelease adcw %ax,%cx
120 xrelease lock adcw %ax,%cx
121 lock xrelease adcw %ax,%cx
122 xacquire adcw %ax,(%ecx)
123 xrelease adcw %ax,(%ecx)
124 xacquire adcw %cx,%ax
125 xacquire lock adcw %cx,%ax
126 lock xacquire adcw %cx,%ax
127 xrelease adcw %cx,%ax
128 xrelease lock adcw %cx,%ax
129 lock xrelease adcw %cx,%ax
130 xacquire adcw (%ecx),%ax
131 xacquire lock adcw (%ecx),%ax
132 lock xacquire adcw (%ecx),%ax
133 xrelease adcw (%ecx),%ax
134 xrelease lock adcw (%ecx),%ax
135 lock xrelease adcw (%ecx),%ax
136
137 # Tests for op regl regl/m32
138 # Tests for op regl/m32 regl
139 xacquire adcl %eax,%ecx
140 xacquire lock adcl %eax,%ecx
141 lock xacquire adcl %eax,%ecx
142 xrelease adcl %eax,%ecx
143 xrelease lock adcl %eax,%ecx
144 lock xrelease adcl %eax,%ecx
145 xacquire adcl %eax,(%ecx)
146 xrelease adcl %eax,(%ecx)
147 xacquire adcl %ecx,%eax
148 xacquire lock adcl %ecx,%eax
149 lock xacquire adcl %ecx,%eax
150 xrelease adcl %ecx,%eax
151 xrelease lock adcl %ecx,%eax
152 lock xrelease adcl %ecx,%eax
153 xacquire adcl (%ecx),%eax
154 xacquire lock adcl (%ecx),%eax
155 lock xacquire adcl (%ecx),%eax
156 xrelease adcl (%ecx),%eax
157 xrelease lock adcl (%ecx),%eax
158 lock xrelease adcl (%ecx),%eax
159
160 # Tests for op regs, regs/m16
161 xacquire btcw %ax,%cx
162 xacquire lock btcw %ax,%cx
163 lock xacquire btcw %ax,%cx
164 xrelease btcw %ax,%cx
165 xrelease lock btcw %ax,%cx
166 lock xrelease btcw %ax,%cx
167 xacquire btcw %ax,(%ecx)
168 xrelease btcw %ax,(%ecx)
169
170 # Tests for op regl regl/m32
171 xacquire btcl %eax,%ecx
172 xacquire lock btcl %eax,%ecx
173 lock xacquire btcl %eax,%ecx
174 xrelease btcl %eax,%ecx
175 xrelease lock btcl %eax,%ecx
176 lock xrelease btcl %eax,%ecx
177 xacquire btcl %eax,(%ecx)
178 xrelease btcl %eax,(%ecx)
179
180 # Tests for op regb/m8
181 xacquire decb %cl
182 xacquire lock decb %cl
183 lock xacquire decb %cl
184 xrelease decb %cl
185 xrelease lock decb %cl
186 lock xrelease decb %cl
187 xacquire decb (%ecx)
188 xrelease decb (%ecx)
189
190 # Tests for op regs/m16
191 xacquire decw %cx
192 xacquire lock decw %cx
193 lock xacquire decw %cx
194 xrelease decw %cx
195 xrelease lock decw %cx
196 lock xrelease decw %cx
197 xacquire decw (%ecx)
198 xrelease decw (%ecx)
199
200 # Tests for op regl/m32
201 xacquire decl %ecx
202 xacquire lock decl %ecx
203 lock xacquire decl %ecx
204 xrelease decl %ecx
205 xrelease lock decl %ecx
206 lock xrelease decl %ecx
207 xacquire decl (%ecx)
208 xrelease decl (%ecx)
209
210 # Tests for op m64
211 xacquire cmpxchg8bq (%ecx)
212 xrelease cmpxchg8bq (%ecx)
213
214 # Tests for op regb, regb/m8
215 xacquire cmpxchgb %cl,%al
216 xacquire lock cmpxchgb %cl,%al
217 lock xacquire cmpxchgb %cl,%al
218 xrelease cmpxchgb %cl,%al
219 xrelease lock cmpxchgb %cl,%al
220 lock xrelease cmpxchgb %cl,%al
221 xacquire cmpxchgb %cl,(%ecx)
222 xrelease cmpxchgb %cl,(%ecx)
223
224 .intel_syntax noprefix
225
226 # Tests for op imm8 al
227 xacquire adc al,100
228 xacquire lock adc al,100
229 lock xacquire adc al,100
230 xrelease adc al,100
231 xrelease lock adc al,100
232 lock xrelease adc al,100
233
234 # Tests for op imm16 ax
235 xacquire adc ax,1000
236 xacquire lock adc ax,1000
237 lock xacquire adc ax,1000
238 xrelease adc ax,1000
239 xrelease lock adc ax,1000
240 lock xrelease adc ax,1000
241
242 # Tests for op imm32 eax
243 xacquire adc eax,10000000
244 xacquire lock adc eax,10000000
245 lock xacquire adc eax,10000000
246 xrelease adc eax,10000000
247 xrelease lock adc eax,10000000
248 lock xrelease adc eax,10000000
249
250 # Tests for op imm8 regb/m8
251 xacquire adc cl,100
252 xacquire lock adc cl,100
253 lock xacquire adc cl,100
254 xrelease adc cl,100
255 xrelease lock adc cl,100
256 lock xrelease adc cl,100
257 xacquire adc BYTE PTR [ecx],100
258 xrelease adc BYTE PTR [ecx],100
259
260 # Tests for op imm16 regs/m16
261 xacquire adc cx,1000
262 xacquire lock adc cx,1000
263 lock xacquire adc cx,1000
264 xrelease adc cx,1000
265 xrelease lock adc cx,1000
266 lock xrelease adc cx,1000
267 xacquire adc WORD PTR [ecx],1000
268 xrelease adc WORD PTR [ecx],1000
269
270 # Tests for op imm32 regl/m32
271 xacquire adc ecx,10000000
272 xacquire lock adc ecx,10000000
273 lock xacquire adc ecx,10000000
274 xrelease adc ecx,10000000
275 xrelease lock adc ecx,10000000
276 lock xrelease adc ecx,10000000
277 xacquire adc DWORD PTR [ecx],10000000
278 xrelease adc DWORD PTR [ecx],10000000
279
280 # Tests for op imm8 regs/m16
281 xacquire adc cx,100
282 xacquire lock adc cx,100
283 lock xacquire adc cx,100
284 xrelease adc cx,100
285 xrelease lock adc cx,100
286 lock xrelease adc cx,100
287 xacquire adc WORD PTR [ecx],100
288 xrelease adc WORD PTR [ecx],100
289
290 # Tests for op imm8 regl/m32
291 xacquire adc ecx,100
292 xacquire lock adc ecx,100
293 lock xacquire adc ecx,100
294 xrelease adc ecx,100
295 xrelease lock adc ecx,100
296 lock xrelease adc ecx,100
297 xacquire adc DWORD PTR [ecx],100
298 xrelease adc DWORD PTR [ecx],100
299
300 # Tests for op imm8 regb/m8
301 xacquire adc cl,100
302 xacquire lock adc cl,100
303 lock xacquire adc cl,100
304 xrelease adc cl,100
305 xrelease lock adc cl,100
306 lock xrelease adc cl,100
307 xacquire adc BYTE PTR [ecx],100
308 xrelease adc BYTE PTR [ecx],100
309
310 # Tests for op regb regb/m8
311 # Tests for op regb/m8 regb
312 xacquire adc cl,al
313 xacquire lock adc cl,al
314 lock xacquire adc cl,al
315 xrelease adc cl,al
316 xrelease lock adc cl,al
317 lock xrelease adc cl,al
318 xacquire adc BYTE PTR [ecx],al
319 xrelease adc BYTE PTR [ecx],al
320 xacquire adc al,cl
321 xacquire lock adc al,cl
322 lock xacquire adc al,cl
323 xrelease adc al,cl
324 xrelease lock adc al,cl
325 lock xrelease adc al,cl
326 xacquire adc al,BYTE PTR [ecx]
327 xacquire lock adc al,BYTE PTR [ecx]
328 lock xacquire adc al,BYTE PTR [ecx]
329 xrelease adc al,BYTE PTR [ecx]
330 xrelease lock adc al,BYTE PTR [ecx]
331 lock xrelease adc al,BYTE PTR [ecx]
332
333 # Tests for op regs regs/m16
334 # Tests for op regs/m16 regs
335 xacquire adc cx,ax
336 xacquire lock adc cx,ax
337 lock xacquire adc cx,ax
338 xrelease adc cx,ax
339 xrelease lock adc cx,ax
340 lock xrelease adc cx,ax
341 xacquire adc WORD PTR [ecx],ax
342 xrelease adc WORD PTR [ecx],ax
343 xacquire adc ax,cx
344 xacquire lock adc ax,cx
345 lock xacquire adc ax,cx
346 xrelease adc ax,cx
347 xrelease lock adc ax,cx
348 lock xrelease adc ax,cx
349 xacquire adc ax,WORD PTR [ecx]
350 xacquire lock adc ax,WORD PTR [ecx]
351 lock xacquire adc ax,WORD PTR [ecx]
352 xrelease adc ax,WORD PTR [ecx]
353 xrelease lock adc ax,WORD PTR [ecx]
354 lock xrelease adc ax,WORD PTR [ecx]
355
356 # Tests for op regl regl/m32
357 # Tests for op regl/m32 regl
358 xacquire adc ecx,eax
359 xacquire lock adc ecx,eax
360 lock xacquire adc ecx,eax
361 xrelease adc ecx,eax
362 xrelease lock adc ecx,eax
363 lock xrelease adc ecx,eax
364 xacquire adc DWORD PTR [ecx],eax
365 xrelease adc DWORD PTR [ecx],eax
366 xacquire adc eax,ecx
367 xacquire lock adc eax,ecx
368 lock xacquire adc eax,ecx
369 xrelease adc eax,ecx
370 xrelease lock adc eax,ecx
371 lock xrelease adc eax,ecx
372 xacquire adc eax,DWORD PTR [ecx]
373 xacquire lock adc eax,DWORD PTR [ecx]
374 lock xacquire adc eax,DWORD PTR [ecx]
375 xrelease adc eax,DWORD PTR [ecx]
376 xrelease lock adc eax,DWORD PTR [ecx]
377 lock xrelease adc eax,DWORD PTR [ecx]
378
379 # Tests for op regs, regs/m16
380 xacquire btc cx,ax
381 xacquire lock btc cx,ax
382 lock xacquire btc cx,ax
383 xrelease btc cx,ax
384 xrelease lock btc cx,ax
385 lock xrelease btc cx,ax
386 xacquire btc WORD PTR [ecx],ax
387 xrelease btc WORD PTR [ecx],ax
388
389 # Tests for op regl regl/m32
390 xacquire btc ecx,eax
391 xacquire lock btc ecx,eax
392 lock xacquire btc ecx,eax
393 xrelease btc ecx,eax
394 xrelease lock btc ecx,eax
395 lock xrelease btc ecx,eax
396 xacquire btc DWORD PTR [ecx],eax
397 xrelease btc DWORD PTR [ecx],eax
398
399 # Tests for op regb/m8
400 xacquire dec cl
401 xacquire lock dec cl
402 lock xacquire dec cl
403 xrelease dec cl
404 xrelease lock dec cl
405 lock xrelease dec cl
406 xacquire dec BYTE PTR [ecx]
407 xrelease dec BYTE PTR [ecx]
408
409 # Tests for op regs/m16
410 xacquire dec cx
411 xacquire lock dec cx
412 lock xacquire dec cx
413 xrelease dec cx
414 xrelease lock dec cx
415 lock xrelease dec cx
416 xacquire dec WORD PTR [ecx]
417 xrelease dec WORD PTR [ecx]
418
419 # Tests for op regl/m32
420 xacquire dec ecx
421 xacquire lock dec ecx
422 lock xacquire dec ecx
423 xrelease dec ecx
424 xrelease lock dec ecx
425 lock xrelease dec ecx
426 xacquire dec DWORD PTR [ecx]
427 xrelease dec DWORD PTR [ecx]
428
429 # Tests for op m64
430 xacquire cmpxchg8b QWORD PTR [ecx]
431 xrelease cmpxchg8b QWORD PTR [ecx]
432
433 # Tests for op regb, regb/m8
434 xacquire cmpxchg al,cl
435 xacquire lock cmpxchg al,cl
436 lock xacquire cmpxchg al,cl
437 xrelease cmpxchg al,cl
438 xrelease lock cmpxchg al,cl
439 lock xrelease cmpxchg al,cl
440 xacquire cmpxchg BYTE PTR [ecx],cl
441 xrelease cmpxchg BYTE PTR [ecx],cl
This page took 0.039557 seconds and 4 git commands to generate.