i386: Check for reserved VEX.vvvv and EVEX.vvvv
[external/binutils.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