[x86] Add JMP16[rm],CALL16[rm] instructions, and fix up aliases
[oota-llvm.git] / test / MC / X86 / x86-16.s
1 // RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
2
3         .code16
4
5         movl $0x12345678, %ebx
6 // CHECK: movl
7 // CHECK: encoding: [0x66,0xbb,0x78,0x56,0x34,0x12]
8         pause
9 // CHECK: pause
10 // CHECK: encoding: [0xf3,0x90]
11         sfence
12 // CHECK: sfence
13 // CHECK: encoding: [0x0f,0xae,0xf8]
14         lfence
15 // CHECK: lfence
16 // CHECK: encoding: [0x0f,0xae,0xe8]
17         mfence
18         stgi
19 // CHECK: stgi
20 // CHECK: encoding: [0x0f,0x01,0xdc]
21         clgi
22 // CHECK: clgi
23 // CHECK: encoding: [0x0f,0x01,0xdd]
24
25         rdtscp
26 // CHECK: rdtscp
27 // CHECK:  encoding: [0x0f,0x01,0xf9]
28
29
30 // CHECK: movl  %eax, 16(%ebp)          # encoding: [0x67,0x66,0x89,0x45,0x10]
31         movl    %eax, 16(%ebp)
32 // CHECK: movl  %eax, -16(%ebp)          # encoding: [0x67,0x66,0x89,0x45,0xf0]
33         movl    %eax, -16(%ebp)
34
35 // CHECK: testb %bl, %cl                # encoding: [0x84,0xcb]
36         testb %bl, %cl
37
38 // CHECK: cmpl  %eax, %ebx              # encoding: [0x66,0x39,0xc3]
39         cmpl %eax, %ebx
40
41 // CHECK: addw  %ax, %ax                # encoding: [0x01,0xc0]
42         addw %ax, %ax
43
44 // CHECK: shrl  %eax                    # encoding: [0x66,0xd1,0xe8]
45         shrl $1, %eax
46
47 // CHECK: shll  %eax                    # encoding: [0x66,0xd1,0xe0]
48         sall $1, %eax
49 // CHECK: shll  %eax                    # encoding: [0x66,0xd1,0xe0]
50         sal $1, %eax
51
52 into
53 // CHECK: into
54 // CHECK:  encoding: [0xce]
55 int3
56 // CHECK: int3
57 // CHECK:  encoding: [0xcc]
58 int $4
59 // CHECK: int $4
60 // CHECK:  encoding: [0xcd,0x04]
61 int $255
62 // CHECK: int $255
63 // CHECK:  encoding: [0xcd,0xff]
64
65 // CHECK: pushfw        # encoding: [0x9c]
66         pushf
67 // CHECK: pushfl        # encoding: [0x66,0x9c]
68         pushfl
69 // CHECK: popfw         # encoding: [0x9d]
70         popf
71 // CHECK: popfl         # encoding: [0x66,0x9d]
72         popfl
73
74 // CHECK: cmoval        %eax, %edx
75 // CHECK:  encoding: [0x66,0x0f,0x47,0xd0]
76                 cmoval  %eax,%edx
77
78 // CHECK: cmovael       %eax, %edx
79 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
80                 cmovael %eax,%edx
81
82 // CHECK: cmovbel       %eax, %edx
83 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
84                 cmovbel %eax,%edx
85
86 // CHECK: cmovbl        %eax, %edx
87 // CHECK:  encoding: [0x66,0x0f,0x42,0xd0]
88                 cmovbl  %eax,%edx
89
90 // CHECK: cmovbw %bx, %bx
91 cmovnae %bx,%bx
92
93
94 // CHECK: cmovbel       %eax, %edx
95 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
96                 cmovbel %eax,%edx
97
98 // CHECK: cmovbl        %eax, %edx
99 // CHECK:  encoding: [0x66,0x0f,0x42,0xd0]
100                 cmovcl  %eax,%edx
101
102 // CHECK: cmovel        %eax, %edx
103 // CHECK:  encoding: [0x66,0x0f,0x44,0xd0]
104                 cmovel  %eax,%edx
105
106 // CHECK: cmovgl        %eax, %edx
107 // CHECK:  encoding: [0x66,0x0f,0x4f,0xd0]
108                 cmovgl  %eax,%edx
109
110 // CHECK: cmovgel       %eax, %edx
111 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
112                 cmovgel %eax,%edx
113
114 // CHECK: cmovll        %eax, %edx
115 // CHECK:  encoding: [0x66,0x0f,0x4c,0xd0]
116                 cmovll  %eax,%edx
117
118 // CHECK: cmovlel       %eax, %edx
119 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
120                 cmovlel %eax,%edx
121
122 // CHECK: cmovbel       %eax, %edx
123 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
124                 cmovnal %eax,%edx
125
126 // CHECK: cmovnel       %eax, %edx
127 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
128                 cmovnel %eax,%edx
129
130 // CHECK: cmovael       %eax, %edx
131 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
132                 cmovnbl %eax,%edx
133
134 // CHECK: cmoval        %eax, %edx
135 // CHECK:  encoding: [0x66,0x0f,0x47,0xd0]
136                 cmovnbel        %eax,%edx
137
138 // CHECK: cmovael       %eax, %edx
139 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
140                 cmovncl %eax,%edx
141
142 // CHECK: cmovnel       %eax, %edx
143 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
144                 cmovnel %eax,%edx
145
146 // CHECK: cmovlel       %eax, %edx
147 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
148                 cmovngl %eax,%edx
149
150 // CHECK: cmovgel       %eax, %edx
151 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
152                 cmovnl  %eax,%edx
153
154 // CHECK: cmovnel       %eax, %edx
155 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
156                 cmovnel %eax,%edx
157
158 // CHECK: cmovlel       %eax, %edx
159 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
160                 cmovngl %eax,%edx
161
162 // CHECK: cmovll        %eax, %edx
163 // CHECK:  encoding: [0x66,0x0f,0x4c,0xd0]
164                 cmovngel        %eax,%edx
165
166 // CHECK: cmovgel       %eax, %edx
167 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
168                 cmovnll %eax,%edx
169
170 // CHECK: cmovgl        %eax, %edx
171 // CHECK:  encoding: [0x66,0x0f,0x4f,0xd0]
172                 cmovnlel        %eax,%edx
173
174 // CHECK: cmovnol       %eax, %edx
175 // CHECK:  encoding: [0x66,0x0f,0x41,0xd0]
176                 cmovnol %eax,%edx
177
178 // CHECK: cmovnpl       %eax, %edx
179 // CHECK:  encoding: [0x66,0x0f,0x4b,0xd0]
180                 cmovnpl %eax,%edx
181
182 // CHECK: cmovnsl       %eax, %edx
183 // CHECK:  encoding: [0x66,0x0f,0x49,0xd0]
184                 cmovnsl %eax,%edx
185
186 // CHECK: cmovnel       %eax, %edx
187 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
188                 cmovnzl %eax,%edx
189
190 // CHECK: cmovol        %eax, %edx
191 // CHECK:  encoding: [0x66,0x0f,0x40,0xd0]
192                 cmovol  %eax,%edx
193
194 // CHECK: cmovpl        %eax, %edx
195 // CHECK:  encoding: [0x66,0x0f,0x4a,0xd0]
196                 cmovpl  %eax,%edx
197
198 // CHECK: cmovsl        %eax, %edx
199 // CHECK:  encoding: [0x66,0x0f,0x48,0xd0]
200                 cmovsl  %eax,%edx
201
202 // CHECK: cmovel        %eax, %edx
203 // CHECK:  encoding: [0x66,0x0f,0x44,0xd0]
204                 cmovzl  %eax,%edx
205
206 // CHECK: fmul  %st(0)
207 // CHECK:  encoding: [0xd8,0xc8]
208         fmul %st(0), %st
209
210 // CHECK: fadd  %st(0)
211 // CHECK:  encoding: [0xd8,0xc0]
212         fadd %st(0), %st
213
214 // CHECK: fsub  %st(0)
215 // CHECK:  encoding: [0xd8,0xe0]
216         fsub %st(0), %st
217
218 // CHECK: fsubr %st(0)
219 // CHECK:  encoding: [0xd8,0xe8]
220         fsubr %st(0), %st
221
222 // CHECK: fdivr %st(0)
223 // CHECK:  encoding: [0xd8,0xf8]
224         fdivr %st(0), %st
225
226 // CHECK: fdiv  %st(0)
227 // CHECK:  encoding: [0xd8,0xf0]
228         fdiv %st(0), %st
229
230 // CHECK: movl  %cs, %eax
231 // CHECK:  encoding: [0x66,0x8c,0xc8]
232         movl %cs, %eax
233
234 // CHECK: movw  %cs, %ax
235 // CHECK:  encoding: [0x8c,0xc8]
236         movw %cs, %ax
237
238 // CHECK: movl  %cs, (%eax)
239 // CHECK:  encoding: [0x67,0x66,0x8c,0x08]
240         movl %cs, (%eax)
241
242 // CHECK: movw  %cs, (%eax)
243 // CHECK:  encoding: [0x67,0x8c,0x08]
244         movw %cs, (%eax)
245
246 // CHECK: movl  %eax, %cs
247 // CHECK:  encoding: [0x66,0x8e,0xc8]
248         movl %eax, %cs
249
250 // CHECK: movl  (%eax), %cs
251 // CHECK:  encoding: [0x67,0x66,0x8e,0x08]
252         movl (%eax), %cs
253
254 // CHECK: movw  (%eax), %cs
255 // CHECK:  encoding: [0x67,0x8e,0x08]
256         movw (%eax), %cs
257
258 // CHECK: movl  %cr0, %eax
259 // CHECK:  encoding: [0x0f,0x20,0xc0]
260         movl %cr0,%eax
261
262 // CHECK: movl  %cr1, %eax
263 // CHECK:  encoding: [0x0f,0x20,0xc8]
264         movl %cr1,%eax
265
266 // CHECK: movl  %cr2, %eax
267 // CHECK:  encoding: [0x0f,0x20,0xd0]
268         movl %cr2,%eax
269
270 // CHECK: movl  %cr3, %eax
271 // CHECK:  encoding: [0x0f,0x20,0xd8]
272         movl %cr3,%eax
273
274 // CHECK: movl  %cr4, %eax
275 // CHECK:  encoding: [0x0f,0x20,0xe0]
276         movl %cr4,%eax
277
278 // CHECK: movl  %dr0, %eax
279 // CHECK:  encoding: [0x0f,0x21,0xc0]
280         movl %dr0,%eax
281
282 // CHECK: movl  %dr1, %eax
283 // CHECK:  encoding: [0x0f,0x21,0xc8]
284         movl %dr1,%eax
285
286 // CHECK: movl  %dr1, %eax
287 // CHECK:  encoding: [0x0f,0x21,0xc8]
288         movl %dr1,%eax
289
290 // CHECK: movl  %dr2, %eax
291 // CHECK:  encoding: [0x0f,0x21,0xd0]
292         movl %dr2,%eax
293
294 // CHECK: movl  %dr3, %eax
295 // CHECK:  encoding: [0x0f,0x21,0xd8]
296         movl %dr3,%eax
297
298 // CHECK: movl  %dr4, %eax
299 // CHECK:  encoding: [0x0f,0x21,0xe0]
300         movl %dr4,%eax
301
302 // CHECK: movl  %dr5, %eax
303 // CHECK:  encoding: [0x0f,0x21,0xe8]
304         movl %dr5,%eax
305
306 // CHECK: movl  %dr6, %eax
307 // CHECK:  encoding: [0x0f,0x21,0xf0]
308         movl %dr6,%eax
309
310 // CHECK: movl  %dr7, %eax
311 // CHECK:  encoding: [0x0f,0x21,0xf8]
312         movl %dr7,%eax
313
314 // CHECK: wait
315 // CHECK:  encoding: [0x9b]
316         fwait
317
318 // CHECK: pusha
319 // CHECK:  encoding: [0x60]
320                 pusha
321
322 // CHECK: popa
323 // CHECK:  encoding: [0x61]
324                 popa
325
326 // CHECK: pushaw
327 // CHECK:  encoding: [0x60]
328                 pushaw
329
330 // CHECK: popaw
331 // CHECK:  encoding: [0x61]
332                 popaw
333
334 // CHECK: pushal
335 // CHECK:  encoding: [0x66,0x60]
336                 pushal
337
338 // CHECK: popal
339 // CHECK:  encoding: [0x66,0x61]
340                 popal
341
342 // CHECK: jmpw *8(%eax)
343 // CHECK:   encoding: [0x67,0xff,0x60,0x08]
344         jmp     *8(%eax)
345
346 // CHECK: jmpl *8(%eax)
347 // CHECK:   encoding: [0x67,0x66,0xff,0x60,0x08]
348         jmpl    *8(%eax)
349
350 // CHECK: lcalll $2, $4660
351 // CHECK:   encoding: [0x66,0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
352 lcalll $0x2, $0x1234
353
354
355 sysret
356 // CHECK: sysretl
357 // CHECK: encoding: [0x0f,0x07]
358 sysretl
359 // CHECK: sysretl
360 // CHECK: encoding: [0x0f,0x07]
361
362 testl   %ecx, -24(%ebp)
363 // CHECK: testl -24(%ebp), %ecx
364 testl   -24(%ebp), %ecx
365 // CHECK: testl -24(%ebp), %ecx
366
367
368 push %cs
369 // CHECK: pushw %cs
370 // CHECK: encoding: [0x0e]
371 push %ds
372 // CHECK: pushw %ds
373 // CHECK: encoding: [0x1e]
374 push %ss
375 // CHECK: pushw %ss
376 // CHECK: encoding: [0x16]
377 push %es
378 // CHECK: pushw %es
379 // CHECK: encoding: [0x06]
380 push %fs
381 // CHECK: pushw %fs
382 // CHECK: encoding: [0x0f,0xa0]
383 push %gs
384 // CHECK: pushw %gs
385 // CHECK: encoding: [0x0f,0xa8]
386
387 pushw %cs
388 // CHECK: pushw %cs
389 // CHECK: encoding: [0x0e]
390 pushw %ds
391 // CHECK: pushw %ds
392 // CHECK: encoding: [0x1e]
393 pushw %ss
394 // CHECK: pushw %ss
395 // CHECK: encoding: [0x16]
396 pushw %es
397 // CHECK: pushw %es
398 // CHECK: encoding: [0x06]
399 pushw %fs
400 // CHECK: pushw %fs
401 // CHECK: encoding: [0x0f,0xa0]
402 pushw %gs
403 // CHECK: pushw %gs
404 // CHECK: encoding: [0x0f,0xa8]
405
406 pushl %cs
407 // CHECK: pushl %cs
408 // CHECK: encoding: [0x66,0x0e]
409 pushl %ds
410 // CHECK: pushl %ds
411 // CHECK: encoding: [0x66,0x1e]
412 pushl %ss
413 // CHECK: pushl %ss
414 // CHECK: encoding: [0x66,0x16]
415 pushl %es
416 // CHECK: pushl %es
417 // CHECK: encoding: [0x66,0x06]
418 pushl %fs
419 // CHECK: pushl %fs
420 // CHECK: encoding: [0x66,0x0f,0xa0]
421 pushl %gs
422 // CHECK: pushl %gs
423 // CHECK: encoding: [0x66,0x0f,0xa8]
424
425 pop %ss
426 // CHECK: popw  %ss
427 // CHECK: encoding: [0x17]
428 pop %ds
429 // CHECK: popw  %ds
430 // CHECK: encoding: [0x1f]
431 pop %es
432 // CHECK: popw  %es
433 // CHECK: encoding: [0x07]
434
435 popl %ss
436 // CHECK: popl  %ss
437 // CHECK: encoding: [0x66,0x17]
438 popl %ds
439 // CHECK: popl  %ds
440 // CHECK: encoding: [0x66,0x1f]
441 popl %es
442 // CHECK: popl  %es
443 // CHECK: encoding: [0x66,0x07]
444
445 pushfd
446 // CHECK: pushfl
447 popfd
448 // CHECK: popfl
449 pushfl
450 // CHECK: pushfl
451 popfl
452 // CHECK: popfl
453
454
455         setc    %bl
456         setnae  %bl
457         setnb   %bl
458         setnc   %bl
459         setna   %bl
460         setnbe  %bl
461         setpe   %bl
462         setpo   %bl
463         setnge  %bl
464         setnl   %bl
465         setng   %bl
466         setnle  %bl
467
468         setneb  %cl // CHECK: setne %cl
469         setcb   %bl // CHECK: setb %bl
470         setnaeb %bl // CHECK: setb %bl
471
472
473 // CHECK: lcalll        $31438, $31438
474 // CHECK: lcalll        $31438, $31438
475 // CHECK: ljmpl $31438, $31438
476 // CHECK: ljmpl $31438, $31438
477
478 calll   $0x7ace,$0x7ace
479 lcalll  $0x7ace,$0x7ace
480 jmpl    $0x7ace,$0x7ace
481 ljmpl   $0x7ace,$0x7ace
482
483 // CHECK: lcallw        $31438, $31438
484 // CHECK: lcallw        $31438, $31438
485 // CHECK: ljmpw $31438, $31438
486 // CHECK: ljmpw $31438, $31438
487
488 callw   $0x7ace,$0x7ace
489 lcallw  $0x7ace,$0x7ace
490 jmpw    $0x7ace,$0x7ace
491 ljmpw   $0x7ace,$0x7ace
492
493 // CHECK: lcallw        $31438, $31438
494 // CHECK: lcallw        $31438, $31438
495 // CHECK: ljmpw $31438, $31438
496 // CHECK: ljmpw $31438, $31438
497
498 call    $0x7ace,$0x7ace
499 lcall   $0x7ace,$0x7ace
500 jmp     $0x7ace,$0x7ace
501 ljmp    $0x7ace,$0x7ace
502
503 // CHECK: calll a
504  calll a
505
506 // CHECK:       incb    %al # encoding: [0xfe,0xc0]
507         incb %al
508
509 // CHECK:       incw    %ax # encoding: [0x40]
510         incw %ax
511
512 // CHECK:       incl    %eax # encoding: [0x66,0x40]
513         incl %eax
514
515 // CHECK:       decb    %al # encoding: [0xfe,0xc8]
516         decb %al
517
518 // CHECK:       decw    %ax # encoding: [0x48]
519         decw %ax
520
521 // CHECK:       decl    %eax # encoding: [0x66,0x48]
522         decl %eax
523
524 // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
525 pshufw $14, %mm4, %mm0
526
527 // CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
528 pshufw $90, %mm4, %mm0
529
530 // CHECK: aaa
531 // CHECK:  encoding: [0x37]
532                 aaa
533
534 // CHECK: aad   $1
535 // CHECK:  encoding: [0xd5,0x01]
536                 aad     $1
537
538 // CHECK: aad
539 // CHECK:  encoding: [0xd5,0x0a]
540                 aad     $0xA
541
542 // CHECK: aad
543 // CHECK:  encoding: [0xd5,0x0a]
544                 aad
545
546 // CHECK: aam   $2
547 // CHECK:  encoding: [0xd4,0x02]
548                 aam     $2
549
550 // CHECK: aam
551 // CHECK:  encoding: [0xd4,0x0a]
552                 aam     $0xA
553
554 // CHECK: aam
555 // CHECK:  encoding: [0xd4,0x0a]
556                 aam
557
558 // CHECK: aas
559 // CHECK:  encoding: [0x3f]
560                 aas
561
562 // CHECK: daa
563 // CHECK:  encoding: [0x27]
564                 daa
565
566 // CHECK: das
567 // CHECK:  encoding: [0x2f]
568                 das
569
570 // CHECK: bound 2(%eax), %bx
571 // CHECK:  encoding: [0x67,0x62,0x58,0x02]
572                 bound   2(%eax),%bx
573
574 // CHECK: bound 4(%ebx), %ecx
575 // CHECK:  encoding: [0x67,0x66,0x62,0x4b,0x04]
576                 bound   4(%ebx),%ecx
577
578 // CHECK: arpl  %bx, %bx
579 // CHECK:  encoding: [0x63,0xdb]
580                 arpl    %bx,%bx
581
582 // CHECK: arpl  %bx, 6(%ecx)
583 // CHECK:  encoding: [0x67,0x63,0x59,0x06]
584                 arpl    %bx,6(%ecx)
585
586 // CHECK: fcompi        %st(2)
587 // CHECK:  encoding: [0xdf,0xf2]
588                 fcompi  %st(2), %st
589
590 // CHECK: fcompi        %st(2)
591 // CHECK:  encoding: [0xdf,0xf2]
592                 fcompi  %st(2)
593
594 // CHECK: fcompi
595 // CHECK:  encoding: [0xdf,0xf1]
596                 fcompi
597
598 // CHECK: fucompi       %st(2)
599 // CHECK:  encoding: [0xdf,0xea]
600                 fucompi %st(2),%st
601
602 // CHECK: fucompi       %st(2)
603 // CHECK:  encoding: [0xdf,0xea]
604                 fucompi %st(2)
605
606 // CHECK: fucompi
607 // CHECK:  encoding: [0xdf,0xe9]
608                 fucompi
609
610 // CHECK: wait
611 // CHECK:  encoding: [0x9b]
612                 fclex
613
614 // CHECK: fnclex
615 // CHECK:  encoding: [0xdb,0xe2]
616                 fnclex
617
618 // CHECK: ud2
619 // CHECK:  encoding: [0x0f,0x0b]
620                 ud2
621
622 // CHECK: ud2
623 // CHECK:  encoding: [0x0f,0x0b]
624                 ud2a
625
626 // CHECK: ud2b
627 // CHECK:  encoding: [0x0f,0xb9]
628                 ud2b
629
630 // CHECK: loope 0
631 // CHECK: encoding: [0xe1,A]
632         loopz 0
633
634 // CHECK: loopne 0
635 // CHECK: encoding: [0xe0,A]
636         loopnz 0
637
638 // CHECK: outsb # encoding: [0x6e]
639 // CHECK: outsb
640 // CHECK: outsb
641         outsb
642         outsb   %ds:(%si), %dx
643         outsb   (%si), %dx
644
645 // CHECK: outsw # encoding: [0x6f]
646 // CHECK: outsw
647 // CHECK: outsw
648         outsw
649         outsw   %ds:(%si), %dx
650         outsw   (%si), %dx
651
652 // CHECK: outsl # encoding: [0x66,0x6f]
653 // CHECK: outsl
654         outsl
655         outsl   %ds:(%si), %dx
656         outsl   (%si), %dx
657
658 // CHECK: insb # encoding: [0x6c]
659 // CHECK: insb
660         insb
661         insb    %dx, %es:(%di)
662
663 // CHECK: insw # encoding: [0x6d]
664 // CHECK: insw
665         insw
666         insw    %dx, %es:(%di)
667
668 // CHECK: insl # encoding: [0x66,0x6d]
669 // CHECK: insl
670         insl
671         insl    %dx, %es:(%di)
672
673 // CHECK: movsb # encoding: [0xa4]
674 // CHECK: movsb
675 // CHECK: movsb
676         movsb
677         movsb   %ds:(%si), %es:(%di)
678         movsb   (%si), %es:(%di)
679
680 // CHECK: movsw # encoding: [0xa5]
681 // CHECK: movsw
682 // CHECK: movsw
683         movsw
684         movsw   %ds:(%si), %es:(%di)
685         movsw   (%si), %es:(%di)
686
687 // CHECK: movsl # encoding: [0x66,0xa5]
688 // CHECK: movsl
689 // CHECK: movsl
690         movsl
691         movsl   %ds:(%si), %es:(%di)
692         movsl   (%si), %es:(%di)
693
694 // CHECK: lodsb # encoding: [0xac]
695 // CHECK: lodsb
696 // CHECK: lodsb
697 // CHECK: lodsb
698 // CHECK: lodsb
699         lodsb
700         lodsb   %ds:(%si), %al
701         lodsb   (%si), %al
702         lods    %ds:(%si), %al
703         lods    (%si), %al
704
705 // CHECK: lodsw # encoding: [0xad]
706 // CHECK: lodsw
707 // CHECK: lodsw
708 // CHECK: lodsw
709 // CHECK: lodsw
710         lodsw
711         lodsw   %ds:(%si), %ax
712         lodsw   (%si), %ax
713         lods    %ds:(%si), %ax
714         lods    (%si), %ax
715
716 // CHECK: lodsl # encoding: [0x66,0xad]
717 // CHECK: lodsl
718 // CHECK: lodsl
719 // CHECK: lodsl
720 // CHECK: lodsl
721         lodsl
722         lodsl   %ds:(%si), %eax
723         lodsl   (%si), %eax
724         lods    %ds:(%si), %eax
725         lods    (%si), %eax
726
727 // CHECK: stosb # encoding: [0xaa]
728 // CHECK: stosb
729 // CHECK: stosb
730         stosb
731         stosb   %al, %es:(%di)
732         stos    %al, %es:(%di)
733
734 // CHECK: stosw # encoding: [0xab]
735 // CHECK: stosw
736 // CHECK: stosw
737         stosw
738         stosw   %ax, %es:(%di)
739         stos    %ax, %es:(%di)
740
741 // CHECK: stosl # encoding: [0x66,0xab]
742 // CHECK: stosl
743 // CHECK: stosl
744         stosl
745         stosl   %eax, %es:(%di)
746         stos    %eax, %es:(%di)
747
748 // CHECK: strw
749 // CHECK: encoding: [0x0f,0x00,0xc8]
750         str %ax
751
752 // CHECK: strl
753 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
754         str %eax
755
756
757 // CHECK: fsubp
758 // CHECK: encoding: [0xde,0xe1]
759 fsubp %st,%st(1)
760
761 // CHECK: fsubp %st(2)
762 // CHECK: encoding: [0xde,0xe2]
763 fsubp   %st, %st(2)
764
765 // CHECK: xchgl %eax, %eax
766 // CHECK: encoding: [0x66,0x90]
767 xchgl %eax, %eax
768
769 // CHECK: xchgw %ax, %ax
770 // CHECK: encoding: [0x90]
771 xchgw %ax, %ax
772
773 // CHECK: xchgl %ecx, %eax
774 // CHECK: encoding: [0x66,0x91]
775 xchgl %ecx, %eax
776
777 // CHECK: xchgl %ecx, %eax
778 // CHECK: encoding: [0x66,0x91]
779 xchgl %eax, %ecx