* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL
[binutils.git] / gas / testsuite / gas / i386 / intel.s
blob2a4afb27cbb40a0b53177b944b111fb4585ade31
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
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
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
235 not byte ptr 0x90909090[eax]
236 not dword ptr 0x90909090[eax]
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
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
570 gs_foo:
573 short_foo:
576 bar:
577 call gs_foo
578 call short_foo
579 fstp QWORD PTR [eax+edx*8]
580 mov ecx, OFFSET FLAT:ss
581 mov BYTE PTR [esi+edx], al
582 mov BYTE PTR [edx+esi], al
583 mov BYTE PTR [edx*2+esi], al
584 mov BYTE PTR [esi+edx*2], al
585 jmp short rot5
586 ins byte ptr es:[edi], dx
587 xadd 0x90909090[eax], dx
588 and %eax, -8
589 rot5:
590 mov %eax, DWORD PTR [%esi+4+%ecx*8]
591 ins BYTE PTR es:[edi], dx
592 or al, 0x90
593 or eax, 0x90909090
594 push cs
595 mov eax, [ebx*2]
596 adc BYTE PTR [eax*4+0x90909090], dl
598 jmp 0x9090,0x90909090
599 movs WORD PTR es:[edi], WORD PTR ds:[esi]
600 jo .+2-0x70
603 jne 1b
604 movq mm6, [DWORD PTR .LC5+40]
605 add edi, dword ptr [ebx+8*eax]
606 movd mm0, dword ptr [ebx+8*eax+4]
607 add edi, dword ptr [ebx+8*ecx+((4095+1)*8)]
608 movd mm1, dword ptr [ebx+8*ecx+((4095+1)*8)+4]
609 movd mm2, dword ptr [ebx+8*eax+(2*(4095+1)*8)+4]
610 add edi, dword ptr [ebx+8*eax+(2*(4095+1)*8)]
611 mov ax, word ptr [ebx+2*eax]
612 mov cx, word ptr [ebx+2*ecx+((4095+1)*2)]
613 mov ax, word ptr [ebx+2*eax+(2*(4095+1)*2)]
614 jmp eax
615 jmp [eax]
616 jmp [bar]
617 jmp bar
618 .p2align 4,0