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