x86: improve handling of insns with ambiguous operand sizes
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / opcode.s
1 .text
2 foo:
3 add %dl,0x90909090(%eax)
4 add %edx,0x90909090(%eax)
5 add 0x90909090(%eax),%dl
6 add 0x90909090(%eax),%edx
7 add $0x90,%al
8 add $0x90909090,%eax
9 push %es
10 pop %es
11 or %dl,0x90909090(%eax)
12 or %edx,0x90909090(%eax)
13 or 0x90909090(%eax),%dl
14 or 0x90909090(%eax),%edx
15 or $0x90,%al
16 or $0x90909090,%eax
17 push %cs
18 adc %dl,0x90909090(%eax)
19 adc %edx,0x90909090(%eax)
20 adc 0x90909090(%eax),%dl
21 adc 0x90909090(%eax),%edx
22 adc $0x90,%al
23 adc $0x90909090,%eax
24 push %ss
25 pop %ss
26 sbb %dl,0x90909090(%eax)
27 sbb %edx,0x90909090(%eax)
28 sbb 0x90909090(%eax),%dl
29 sbb 0x90909090(%eax),%edx
30 sbb $0x90,%al
31 sbb $0x90909090,%eax
32 push %ds
33 pop %ds
34 and %dl,0x90909090(%eax)
35 and %edx,0x90909090(%eax)
36 and 0x90909090(%eax),%dl
37 and 0x90909090(%eax),%edx
38 and $0x90,%al
39 and $0x90909090,%eax
40 daa
41 sub %dl,0x90909090(%eax)
42 sub %edx,0x90909090(%eax)
43 sub 0x90909090(%eax),%dl
44 sub 0x90909090(%eax),%edx
45 sub $0x90,%al
46 sub $0x90909090,%eax
47 das
48 xor %dl,0x90909090(%eax)
49 xor %edx,0x90909090(%eax)
50 xor 0x90909090(%eax),%dl
51 xor 0x90909090(%eax),%edx
52 xor $0x90,%al
53 xor $0x90909090,%eax
54 aaa
55 cmp %dl,0x90909090(%eax)
56 cmp %edx,0x90909090(%eax)
57 cmp 0x90909090(%eax),%dl
58 cmp 0x90909090(%eax),%edx
59 cmp $0x90,%al
60 cmp $0x90909090,%eax
61 aas
62 inc %eax
63 inc %ecx
64 inc %edx
65 inc %ebx
66 inc %esp
67 inc %ebp
68 inc %esi
69 inc %edi
70 dec %eax
71 dec %ecx
72 dec %edx
73 dec %ebx
74 dec %esp
75 dec %ebp
76 dec %esi
77 dec %edi
78 push %eax
79 push %ecx
80 push %edx
81 push %ebx
82 push %esp
83 push %ebp
84 push %esi
85 push %edi
86 pop %eax
87 pop %ecx
88 pop %edx
89 pop %ebx
90 pop %esp
91 pop %ebp
92 pop %esi
93 pop %edi
94 pusha
95 popa
96 bound %edx,0x90909090(%eax)
97 arpl %dx,0x90909090(%eax)
98 push $0x90909090
99 imul $0x90909090,0x90909090(%eax),%edx
100 push $0xffffff90
101 imul $0xffffff90,0x90909090(%eax),%edx
102 insb (%dx),%es:(%edi)
103 insl (%dx),%es:(%edi)
104 outsb %ds:(%esi),(%dx)
105 outsl %ds:(%esi),(%dx)
106 jo .+2-0x70
107 jno .+2-0x70
108 jb .+2-0x70
109 jae .+2-0x70
110 je .+2-0x70
111 jne .+2-0x70
112 jbe .+2-0x70
113 ja .+2-0x70
114 js .+2-0x70
115 jns .+2-0x70
116 jp .+2-0x70
117 jnp .+2-0x70
118 jl .+2-0x70
119 jge .+2-0x70
120 jle .+2-0x70
121 jg .+2-0x70
122 adcb $0x90,0x90909090(%eax)
123 adcl $0x90909090,0x90909090(%eax)
124 adcl $0xffffff90,0x90909090(%eax)
125 test %dl,0x90909090(%eax)
126 test %edx,0x90909090(%eax)
127 xchg %dl,0x90909090(%eax)
128 xchg %edx,0x90909090(%eax)
129 mov %dl,0x90909090(%eax)
130 mov %edx,0x90909090(%eax)
131 mov 0x90909090(%eax),%dl
132 mov 0x90909090(%eax),%edx
133 movw %ss,0x90909090(%eax)
134 lea 0x90909090(%eax),%edx
135 movw 0x90909090(%eax),%ss
136 popl 0x90909090(%eax)
137 xchg %eax,%eax
138 xchg %eax,%ecx
139 xchg %eax,%edx
140 xchg %eax,%ebx
141 xchg %eax,%esp
142 xchg %eax,%ebp
143 xchg %eax,%esi
144 xchg %eax,%edi
145 cwtl
146 cltd
147 lcall $0x9090,$0x90909090
148 fwait
149 pushf
150 popf
151 sahf
152 lahf
153 mov 0x90909090,%al
154 mov 0x90909090,%eax
155 mov %al,0x90909090
156 mov %eax,0x90909090
157 movsb %ds:(%esi),%es:(%edi)
158 movsl %ds:(%esi),%es:(%edi)
159 cmpsb %es:(%edi),%ds:(%esi)
160 cmpsl %es:(%edi),%ds:(%esi)
161 test $0x90,%al
162 test $0x90909090,%eax
163 stos %al,%es:(%edi)
164 stos %eax,%es:(%edi)
165 lods %ds:(%esi),%al
166 lods %ds:(%esi),%eax
167 scas %es:(%edi),%al
168 scas %es:(%edi),%eax
169 mov $0x90,%al
170 mov $0x90,%cl
171 mov $0x90,%dl
172 mov $0x90,%bl
173 mov $0x90,%ah
174 mov $0x90,%ch
175 mov $0x90,%dh
176 mov $0x90,%bh
177 mov $0x90909090,%eax
178 mov $0x90909090,%ecx
179 mov $0x90909090,%edx
180 mov $0x90909090,%ebx
181 mov $0x90909090,%esp
182 mov $0x90909090,%ebp
183 mov $0x90909090,%esi
184 mov $0x90909090,%edi
185 rclb $0x90,0x90909090(%eax)
186 rcll $0x90,0x90909090(%eax)
187 ret $0x9090
188 ret
189 les 0x90909090(%eax),%edx
190 lds 0x90909090(%eax),%edx
191 movb $0x90,0x90909090(%eax)
192 movl $0x90909090,0x90909090(%eax)
193 enter $0x9090,$0x90
194 leave
195 lret $0x9090
196 lret
197 int3
198 int $0x90
199 into
200 iret
201 rclb 0x90909090(%eax)
202 rcll 0x90909090(%eax)
203 rclb %cl,0x90909090(%eax)
204 rcll %cl,0x90909090(%eax)
205 aam $0xffffff90
206 aad $0xffffff90
207 xlat %ds:(%ebx)
208 fcoms 0x90909090(%eax)
209 fsts 0x90909090(%eax)
210 ficoml 0x90909090(%eax)
211 fistl 0x90909090(%eax)
212 fcoml 0x90909090(%eax)
213 fstl 0x90909090(%eax)
214 ficoms 0x90909090(%eax)
215 fists 0x90909090(%eax)
216 loopne .+2-0x70
217 loope .+2-0x70
218 loop .+2-0x70
219 jecxz .+2-0x70
220 in $0x90,%al
221 in $0x90,%eax
222 out %al,$0x90
223 out %eax,$0x90
224 call .+5+0x90909090
225 jmp .+5+0x90909090
226 ljmp $0x9090,$0x90909090
227 jmp .+2-0x70
228 in (%dx),%al
229 in (%dx),%eax
230 out %al,(%dx)
231 out %eax,(%dx)
232 hlt
233 cmc
234 notb 0x90909090(%eax)
235 notl 0x90909090(%eax)
236 clc
237 stc
238 cli
239 sti
240 cld
241 std
242 call *0x90909090(%eax)
243 lldt 0x90909090(%eax)
244 lgdt 0x90909090(%eax)
245 lar 0x90909090(%eax),%edx
246 lsl 0x90909090(%eax),%edx
247 clts
248 invd
249 wbinvd
250 ud2a
251 mov %cr2,%eax
252 mov %db2,%eax
253 mov %eax,%cr2
254 mov %eax,%db2
255 mov %tr2,%eax
256 mov %eax,%tr2
257 wrmsr
258 rdtsc
259 rdmsr
260 rdpmc
261 cmovo 0x90909090(%eax),%edx
262 cmovno 0x90909090(%eax),%edx
263 cmovb 0x90909090(%eax),%edx
264 cmovae 0x90909090(%eax),%edx
265 cmove 0x90909090(%eax),%edx
266 cmovne 0x90909090(%eax),%edx
267 cmovbe 0x90909090(%eax),%edx
268 cmova 0x90909090(%eax),%edx
269 cmovs 0x90909090(%eax),%edx
270 cmovns 0x90909090(%eax),%edx
271 cmovp 0x90909090(%eax),%edx
272 cmovnp 0x90909090(%eax),%edx
273 cmovl 0x90909090(%eax),%edx
274 cmovge 0x90909090(%eax),%edx
275 cmovle 0x90909090(%eax),%edx
276 cmovg 0x90909090(%eax),%edx
277 punpcklbw 0x90909090(%eax),%mm2
278 punpcklwd 0x90909090(%eax),%mm2
279 punpckldq 0x90909090(%eax),%mm2
280 packsswb 0x90909090(%eax),%mm2
281 pcmpgtb 0x90909090(%eax),%mm2
282 pcmpgtw 0x90909090(%eax),%mm2
283 pcmpgtd 0x90909090(%eax),%mm2
284 packuswb 0x90909090(%eax),%mm2
285 punpckhbw 0x90909090(%eax),%mm2
286 punpckhwd 0x90909090(%eax),%mm2
287 punpckhdq 0x90909090(%eax),%mm2
288 packssdw 0x90909090(%eax),%mm2
289 movd 0x90909090(%eax),%mm2
290 movq 0x90909090(%eax),%mm2
291 psrlw $0x90,%mm0
292 psrld $0x90,%mm0
293 psrlq $0x90,%mm0
294 pcmpeqb 0x90909090(%eax),%mm2
295 pcmpeqw 0x90909090(%eax),%mm2
296 pcmpeqd 0x90909090(%eax),%mm2
297 emms
298 movd %mm2,0x90909090(%eax)
299 movq %mm2,0x90909090(%eax)
300 jo .+6+0x90909090
301 jno .+6+0x90909090
302 jb .+6+0x90909090
303 jae .+6+0x90909090
304 je .+6+0x90909090
305 jne .+6+0x90909090
306 jbe .+6+0x90909090
307 ja .+6+0x90909090
308 js .+6+0x90909090
309 jns .+6+0x90909090
310 jp .+6+0x90909090
311 jnp .+6+0x90909090
312 jl .+6+0x90909090
313 jge .+6+0x90909090
314 jle .+6+0x90909090
315 jg .+6+0x90909090
316 seto 0x90909090(%eax)
317 setno 0x90909090(%eax)
318 setb 0x90909090(%eax)
319 setae 0x90909090(%eax)
320 sete 0x90909090(%eax)
321 setne 0x90909090(%eax)
322 setbe 0x90909090(%eax)
323 seta 0x90909090(%eax)
324 sets 0x90909090(%eax)
325 setns 0x90909090(%eax)
326 setp 0x90909090(%eax)
327 setnp 0x90909090(%eax)
328 setl 0x90909090(%eax)
329 setge 0x90909090(%eax)
330 setle 0x90909090(%eax)
331 setg 0x90909090(%eax)
332 push %fs
333 pop %fs
334 cpuid
335 bt %edx,0x90909090(%eax)
336 shld $0x90,%edx,0x90909090(%eax)
337 shld %cl,%edx,0x90909090(%eax)
338 push %gs
339 pop %gs
340 rsm
341 bts %edx,0x90909090(%eax)
342 shrd $0x90,%edx,0x90909090(%eax)
343 shrd %cl,%edx,0x90909090(%eax)
344 imul 0x90909090(%eax),%edx
345 cmpxchg %dl,0x90909090(%eax)
346 cmpxchg %edx,0x90909090(%eax)
347 lss 0x90909090(%eax),%edx
348 btr %edx,0x90909090(%eax)
349 lfs 0x90909090(%eax),%edx
350 lgs 0x90909090(%eax),%edx
351 movzbl 0x90909090(%eax),%edx
352 movzwl 0x90909090(%eax),%edx
353 ud2
354 btc %edx,0x90909090(%eax)
355 bsf 0x90909090(%eax),%edx
356 bsr 0x90909090(%eax),%edx
357 movsbl 0x90909090(%eax),%edx
358 movswl 0x90909090(%eax),%edx
359 xadd %dl,0x90909090(%eax)
360 xadd %edx,0x90909090(%eax)
361 bswap %eax
362 bswap %ecx
363 bswap %edx
364 bswap %ebx
365 bswap %esp
366 bswap %ebp
367 bswap %esi
368 bswap %edi
369 psrlw 0x90909090(%eax),%mm2
370 psrld 0x90909090(%eax),%mm2
371 psrlq 0x90909090(%eax),%mm2
372 pmullw 0x90909090(%eax),%mm2
373 psubusb 0x90909090(%eax),%mm2
374 psubusw 0x90909090(%eax),%mm2
375 pand 0x90909090(%eax),%mm2
376 paddusb 0x90909090(%eax),%mm2
377 paddusw 0x90909090(%eax),%mm2
378 pandn 0x90909090(%eax),%mm2
379 psraw 0x90909090(%eax),%mm2
380 psrad 0x90909090(%eax),%mm2
381 pmulhw 0x90909090(%eax),%mm2
382 psubsb 0x90909090(%eax),%mm2
383 psubsw 0x90909090(%eax),%mm2
384 por 0x90909090(%eax),%mm2
385 paddsb 0x90909090(%eax),%mm2
386 paddsw 0x90909090(%eax),%mm2
387 pxor 0x90909090(%eax),%mm2
388 psllw 0x90909090(%eax),%mm2
389 pslld 0x90909090(%eax),%mm2
390 psllq 0x90909090(%eax),%mm2
391 pmaddwd 0x90909090(%eax),%mm2
392 psubb 0x90909090(%eax),%mm2
393 psubw 0x90909090(%eax),%mm2
394 psubd 0x90909090(%eax),%mm2
395 paddb 0x90909090(%eax),%mm2
396 paddw 0x90909090(%eax),%mm2
397 paddd 0x90909090(%eax),%mm2
398 add %dx,0x90909090(%eax)
399 add 0x90909090(%eax),%dx
400 add $0x9090,%ax
401 pushw %es
402 popw %es
403 or %dx,0x90909090(%eax)
404 or 0x90909090(%eax),%dx
405 or $0x9090,%ax
406 pushw %cs
407 adc %dx,0x90909090(%eax)
408 adc 0x90909090(%eax),%dx
409 adc $0x9090,%ax
410 pushw %ss
411 popw %ss
412 sbb %dx,0x90909090(%eax)
413 sbb 0x90909090(%eax),%dx
414 sbb $0x9090,%ax
415 pushw %ds
416 popw %ds
417 and %dx,0x90909090(%eax)
418 and 0x90909090(%eax),%dx
419 and $0x9090,%ax
420 sub %dx,0x90909090(%eax)
421 sub 0x90909090(%eax),%dx
422 sub $0x9090,%ax
423 xor %dx,0x90909090(%eax)
424 xor 0x90909090(%eax),%dx
425 xor $0x9090,%ax
426 cmp %dx,0x90909090(%eax)
427 cmp 0x90909090(%eax),%dx
428 cmp $0x9090,%ax
429 inc %ax
430 inc %cx
431 inc %dx
432 inc %bx
433 inc %sp
434 inc %bp
435 inc %si
436 inc %di
437 dec %ax
438 dec %cx
439 dec %dx
440 dec %bx
441 dec %sp
442 dec %bp
443 dec %si
444 dec %di
445 push %ax
446 push %cx
447 push %dx
448 push %bx
449 push %sp
450 push %bp
451 push %si
452 push %di
453 pop %ax
454 pop %cx
455 pop %dx
456 pop %bx
457 pop %sp
458 pop %bp
459 pop %si
460 pop %di
461 pushaw
462 popaw
463 bound %dx,0x90909090(%eax)
464 pushw $0x9090
465 imul $0x9090,0x90909090(%eax),%dx
466 pushw $0xffffff90
467 imul $0xffffff90,0x90909090(%eax),%dx
468 insw (%dx),%es:(%edi)
469 outsw %ds:(%esi),(%dx)
470 adcw $0x9090,0x90909090(%eax)
471 adcw $0xffffff90,0x90909090(%eax)
472 test %dx,0x90909090(%eax)
473 xchg %dx,0x90909090(%eax)
474 mov %dx,0x90909090(%eax)
475 mov 0x90909090(%eax),%dx
476 movw %ss,0x90909090(%eax)
477 lea 0x90909090(%eax),%dx
478 popw 0x90909090(%eax)
479 xchg %ax,%cx
480 xchg %ax,%dx
481 xchg %ax,%bx
482 xchg %ax,%sp
483 xchg %ax,%bp
484 xchg %ax,%si
485 xchg %ax,%di
486 cbtw
487 cwtd
488 lcallw $0x9090,$0x9090
489 pushfw
490 popfw
491 mov 0x90909090,%ax
492 mov %ax,0x90909090
493 movsw %ds:(%esi),%es:(%edi)
494 cmpsw %es:(%edi),%ds:(%esi)
495 test $0x9090,%ax
496 stos %ax,%es:(%edi)
497 lods %ds:(%esi),%ax
498 scas %es:(%edi),%ax
499 mov $0x9090,%ax
500 mov $0x9090,%cx
501 mov $0x9090,%dx
502 mov $0x9090,%bx
503 mov $0x9090,%sp
504 mov $0x9090,%bp
505 mov $0x9090,%si
506 mov $0x9090,%di
507 rclw $0x90,0x90909090(%eax)
508 retw $0x9090
509 retw
510 les 0x90909090(%eax),%dx
511 lds 0x90909090(%eax),%dx
512 movw $0x9090,0x90909090(%eax)
513 enterw $0x9090,$0x90
514 leavew
515 lretw $0x9090
516 lretw
517 iretw
518 rclw 0x90909090(%eax)
519 rclw %cl,0x90909090(%eax)
520 in $0x90,%ax
521 out %ax,$0x90
522 callw .+3+0x9090
523 ljmpw $0x9090,$0x9090
524 in (%dx),%ax
525 out %ax,(%dx)
526 notw 0x90909090(%eax)
527 callw *0x90909090(%eax)
528 lar 0x90909090(%eax),%dx
529 lsl 0x90909090(%eax),%dx
530 cmovo 0x90909090(%eax),%dx
531 cmovno 0x90909090(%eax),%dx
532 cmovb 0x90909090(%eax),%dx
533 cmovae 0x90909090(%eax),%dx
534 cmove 0x90909090(%eax),%dx
535 cmovne 0x90909090(%eax),%dx
536 cmovbe 0x90909090(%eax),%dx
537 cmova 0x90909090(%eax),%dx
538 cmovs 0x90909090(%eax),%dx
539 cmovns 0x90909090(%eax),%dx
540 cmovp 0x90909090(%eax),%dx
541 cmovnp 0x90909090(%eax),%dx
542 cmovl 0x90909090(%eax),%dx
543 cmovge 0x90909090(%eax),%dx
544 cmovle 0x90909090(%eax),%dx
545 cmovg 0x90909090(%eax),%dx
546 pushw %fs
547 popw %fs
548 bt %dx,0x90909090(%eax)
549 shld $0x90,%dx,0x90909090(%eax)
550 shld %cl,%dx,0x90909090(%eax)
551 pushw %gs
552 popw %gs
553 bts %dx,0x90909090(%eax)
554 shrd $0x90,%dx,0x90909090(%eax)
555 shrd %cl,%dx,0x90909090(%eax)
556 imul 0x90909090(%eax),%dx
557 cmpxchg %dx,0x90909090(%eax)
558 lss 0x90909090(%eax),%dx
559 btr %dx,0x90909090(%eax)
560 lfs 0x90909090(%eax),%dx
561 lgs 0x90909090(%eax),%dx
562 movzbw 0x90909090(%eax),%dx
563 btc %dx,0x90909090(%eax)
564 bsf 0x90909090(%eax),%dx
565 bsr 0x90909090(%eax),%dx
566 movsbw 0x90909090(%eax),%dx
567 xadd %dx,0x90909090(%eax)
568
569 xchg %ax,%ax
570
571 sldt %eax
572 sldt %ax
573 sldt (%eax)
574 smsw %eax
575 smsw %ax
576 smsw (%eax)
577 str %eax
578 str %ax
579 str (%eax)
580
581 shrd %cl,%edx,%eax
582 shld %cl,%edx,%eax
583
584 test %eax,%ebx
585 test %ebx,%eax
586 test (%eax),%ebx
587
588 cmovpe 0x90909090(%eax),%edx
589 cmovpo 0x90909090(%eax),%edx
590 cmovpe 0x90909090(%eax),%dx
591 cmovpo 0x90909090(%eax),%dx
592
593 .byte 0x82, 0xc3, 0x01
594 .byte 0x82, 0xf3, 0x01
595 .byte 0x82, 0xd3, 0x01
596 .byte 0x82, 0xdb, 0x01
597 .byte 0x82, 0xe3, 0x01
598 .byte 0x82, 0xeb, 0x01
599 .byte 0x82, 0xf3, 0x01
600 .byte 0x82, 0xfb, 0x01
601
602 .byte 0x62, 0xf3, 0x7d, 0x08, 0x15, 0xe8, 0xab
603
604 .byte 0xf6, 0xc9, 0x01
605 .byte 0x66, 0xf7, 0xc9, 0x02, 0x00
606 .byte 0xf7, 0xc9, 0x04, 0x00, 0x00, 0x00
607 .byte 0xc0, 0xf0, 0x02
608 .byte 0xc1, 0xf0, 0x01
609 .byte 0xd0, 0xf0
610 .byte 0xd1, 0xf0
611 .byte 0xd2, 0xf0
612 .byte 0xd3, 0xf0
This page took 0.054462 seconds and 4 git commands to generate.