[x86] Fix MOV8ao8 et al for 16-bit mode, fix up disassembler to understand
[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 // moffset forms of moves
53
54 // CHECK: movb 0, %al  # encoding: [0xa0,0x00,0x00]
55 movb    0, %al
56
57 // CHECK: movw 0, %ax  # encoding: [0xa1,0x00,0x00]
58 movw    0, %ax
59
60 // CHECK: movl 0, %eax  # encoding: [0x66,0xa1,0x00,0x00]
61 movl    0, %eax
62
63 into
64 // CHECK: into
65 // CHECK:  encoding: [0xce]
66 int3
67 // CHECK: int3
68 // CHECK:  encoding: [0xcc]
69 int $4
70 // CHECK: int $4
71 // CHECK:  encoding: [0xcd,0x04]
72 int $255
73 // CHECK: int $255
74 // CHECK:  encoding: [0xcd,0xff]
75
76 // CHECK: pushfw        # encoding: [0x9c]
77         pushf
78 // CHECK: pushfl        # encoding: [0x66,0x9c]
79         pushfl
80 // CHECK: popfw         # encoding: [0x9d]
81         popf
82 // CHECK: popfl         # encoding: [0x66,0x9d]
83         popfl
84
85 retl
86 // CHECK: ret
87 // CHECK:  encoding: [0x66,0xc3]
88
89 // CHECK: cmoval        %eax, %edx
90 // CHECK:  encoding: [0x66,0x0f,0x47,0xd0]
91                 cmoval  %eax,%edx
92
93 // CHECK: cmovael       %eax, %edx
94 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
95                 cmovael %eax,%edx
96
97 // CHECK: cmovbel       %eax, %edx
98 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
99                 cmovbel %eax,%edx
100
101 // CHECK: cmovbl        %eax, %edx
102 // CHECK:  encoding: [0x66,0x0f,0x42,0xd0]
103                 cmovbl  %eax,%edx
104
105 // CHECK: cmovbw %bx, %bx
106 cmovnae %bx,%bx
107
108
109 // CHECK: cmovbel       %eax, %edx
110 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
111                 cmovbel %eax,%edx
112
113 // CHECK: cmovbl        %eax, %edx
114 // CHECK:  encoding: [0x66,0x0f,0x42,0xd0]
115                 cmovcl  %eax,%edx
116
117 // CHECK: cmovel        %eax, %edx
118 // CHECK:  encoding: [0x66,0x0f,0x44,0xd0]
119                 cmovel  %eax,%edx
120
121 // CHECK: cmovgl        %eax, %edx
122 // CHECK:  encoding: [0x66,0x0f,0x4f,0xd0]
123                 cmovgl  %eax,%edx
124
125 // CHECK: cmovgel       %eax, %edx
126 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
127                 cmovgel %eax,%edx
128
129 // CHECK: cmovll        %eax, %edx
130 // CHECK:  encoding: [0x66,0x0f,0x4c,0xd0]
131                 cmovll  %eax,%edx
132
133 // CHECK: cmovlel       %eax, %edx
134 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
135                 cmovlel %eax,%edx
136
137 // CHECK: cmovbel       %eax, %edx
138 // CHECK:  encoding: [0x66,0x0f,0x46,0xd0]
139                 cmovnal %eax,%edx
140
141 // CHECK: cmovnel       %eax, %edx
142 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
143                 cmovnel %eax,%edx
144
145 // CHECK: cmovael       %eax, %edx
146 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
147                 cmovnbl %eax,%edx
148
149 // CHECK: cmoval        %eax, %edx
150 // CHECK:  encoding: [0x66,0x0f,0x47,0xd0]
151                 cmovnbel        %eax,%edx
152
153 // CHECK: cmovael       %eax, %edx
154 // CHECK:  encoding: [0x66,0x0f,0x43,0xd0]
155                 cmovncl %eax,%edx
156
157 // CHECK: cmovnel       %eax, %edx
158 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
159                 cmovnel %eax,%edx
160
161 // CHECK: cmovlel       %eax, %edx
162 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
163                 cmovngl %eax,%edx
164
165 // CHECK: cmovgel       %eax, %edx
166 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
167                 cmovnl  %eax,%edx
168
169 // CHECK: cmovnel       %eax, %edx
170 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
171                 cmovnel %eax,%edx
172
173 // CHECK: cmovlel       %eax, %edx
174 // CHECK:  encoding: [0x66,0x0f,0x4e,0xd0]
175                 cmovngl %eax,%edx
176
177 // CHECK: cmovll        %eax, %edx
178 // CHECK:  encoding: [0x66,0x0f,0x4c,0xd0]
179                 cmovngel        %eax,%edx
180
181 // CHECK: cmovgel       %eax, %edx
182 // CHECK:  encoding: [0x66,0x0f,0x4d,0xd0]
183                 cmovnll %eax,%edx
184
185 // CHECK: cmovgl        %eax, %edx
186 // CHECK:  encoding: [0x66,0x0f,0x4f,0xd0]
187                 cmovnlel        %eax,%edx
188
189 // CHECK: cmovnol       %eax, %edx
190 // CHECK:  encoding: [0x66,0x0f,0x41,0xd0]
191                 cmovnol %eax,%edx
192
193 // CHECK: cmovnpl       %eax, %edx
194 // CHECK:  encoding: [0x66,0x0f,0x4b,0xd0]
195                 cmovnpl %eax,%edx
196
197 // CHECK: cmovnsl       %eax, %edx
198 // CHECK:  encoding: [0x66,0x0f,0x49,0xd0]
199                 cmovnsl %eax,%edx
200
201 // CHECK: cmovnel       %eax, %edx
202 // CHECK:  encoding: [0x66,0x0f,0x45,0xd0]
203                 cmovnzl %eax,%edx
204
205 // CHECK: cmovol        %eax, %edx
206 // CHECK:  encoding: [0x66,0x0f,0x40,0xd0]
207                 cmovol  %eax,%edx
208
209 // CHECK: cmovpl        %eax, %edx
210 // CHECK:  encoding: [0x66,0x0f,0x4a,0xd0]
211                 cmovpl  %eax,%edx
212
213 // CHECK: cmovsl        %eax, %edx
214 // CHECK:  encoding: [0x66,0x0f,0x48,0xd0]
215                 cmovsl  %eax,%edx
216
217 // CHECK: cmovel        %eax, %edx
218 // CHECK:  encoding: [0x66,0x0f,0x44,0xd0]
219                 cmovzl  %eax,%edx
220
221 // CHECK: fmul  %st(0)
222 // CHECK:  encoding: [0xd8,0xc8]
223         fmul %st(0), %st
224
225 // CHECK: fadd  %st(0)
226 // CHECK:  encoding: [0xd8,0xc0]
227         fadd %st(0), %st
228
229 // CHECK: fsub  %st(0)
230 // CHECK:  encoding: [0xd8,0xe0]
231         fsub %st(0), %st
232
233 // CHECK: fsubr %st(0)
234 // CHECK:  encoding: [0xd8,0xe8]
235         fsubr %st(0), %st
236
237 // CHECK: fdivr %st(0)
238 // CHECK:  encoding: [0xd8,0xf8]
239         fdivr %st(0), %st
240
241 // CHECK: fdiv  %st(0)
242 // CHECK:  encoding: [0xd8,0xf0]
243         fdiv %st(0), %st
244
245 // CHECK: movl  %cs, %eax
246 // CHECK:  encoding: [0x66,0x8c,0xc8]
247         movl %cs, %eax
248
249 // CHECK: movw  %cs, %ax
250 // CHECK:  encoding: [0x8c,0xc8]
251         movw %cs, %ax
252
253 // CHECK: movl  %cs, (%eax)
254 // CHECK:  encoding: [0x67,0x66,0x8c,0x08]
255         movl %cs, (%eax)
256
257 // CHECK: movw  %cs, (%eax)
258 // CHECK:  encoding: [0x67,0x8c,0x08]
259         movw %cs, (%eax)
260
261 // CHECK: movl  %eax, %cs
262 // CHECK:  encoding: [0x66,0x8e,0xc8]
263         movl %eax, %cs
264
265 // CHECK: movl  (%eax), %cs
266 // CHECK:  encoding: [0x67,0x66,0x8e,0x08]
267         movl (%eax), %cs
268
269 // CHECK: movw  (%eax), %cs
270 // CHECK:  encoding: [0x67,0x8e,0x08]
271         movw (%eax), %cs
272
273 // CHECK: movl  %cr0, %eax
274 // CHECK:  encoding: [0x0f,0x20,0xc0]
275         movl %cr0,%eax
276
277 // CHECK: movl  %cr1, %eax
278 // CHECK:  encoding: [0x0f,0x20,0xc8]
279         movl %cr1,%eax
280
281 // CHECK: movl  %cr2, %eax
282 // CHECK:  encoding: [0x0f,0x20,0xd0]
283         movl %cr2,%eax
284
285 // CHECK: movl  %cr3, %eax
286 // CHECK:  encoding: [0x0f,0x20,0xd8]
287         movl %cr3,%eax
288
289 // CHECK: movl  %cr4, %eax
290 // CHECK:  encoding: [0x0f,0x20,0xe0]
291         movl %cr4,%eax
292
293 // CHECK: movl  %dr0, %eax
294 // CHECK:  encoding: [0x0f,0x21,0xc0]
295         movl %dr0,%eax
296
297 // CHECK: movl  %dr1, %eax
298 // CHECK:  encoding: [0x0f,0x21,0xc8]
299         movl %dr1,%eax
300
301 // CHECK: movl  %dr1, %eax
302 // CHECK:  encoding: [0x0f,0x21,0xc8]
303         movl %dr1,%eax
304
305 // CHECK: movl  %dr2, %eax
306 // CHECK:  encoding: [0x0f,0x21,0xd0]
307         movl %dr2,%eax
308
309 // CHECK: movl  %dr3, %eax
310 // CHECK:  encoding: [0x0f,0x21,0xd8]
311         movl %dr3,%eax
312
313 // CHECK: movl  %dr4, %eax
314 // CHECK:  encoding: [0x0f,0x21,0xe0]
315         movl %dr4,%eax
316
317 // CHECK: movl  %dr5, %eax
318 // CHECK:  encoding: [0x0f,0x21,0xe8]
319         movl %dr5,%eax
320
321 // CHECK: movl  %dr6, %eax
322 // CHECK:  encoding: [0x0f,0x21,0xf0]
323         movl %dr6,%eax
324
325 // CHECK: movl  %dr7, %eax
326 // CHECK:  encoding: [0x0f,0x21,0xf8]
327         movl %dr7,%eax
328
329 // CHECK: wait
330 // CHECK:  encoding: [0x9b]
331         fwait
332
333 // CHECK: [0x65,0x66,0x8b,0x06,0x7c,0x00]
334 // FIXME: This is a correct bug poor encoding: Use 65 66 a1 7c 00
335         movl    %gs:124, %eax
336
337 // CHECK: pusha
338 // CHECK:  encoding: [0x60]
339                 pusha
340
341 // CHECK: popa
342 // CHECK:  encoding: [0x61]
343                 popa
344
345 // CHECK: pushaw
346 // CHECK:  encoding: [0x60]
347                 pushaw
348
349 // CHECK: popaw
350 // CHECK:  encoding: [0x61]
351                 popaw
352
353 // CHECK: pushal
354 // CHECK:  encoding: [0x66,0x60]
355                 pushal
356
357 // CHECK: popal
358 // CHECK:  encoding: [0x66,0x61]
359                 popal
360
361 // CHECK: jmpw *8(%eax)
362 // CHECK:   encoding: [0x67,0xff,0x60,0x08]
363         jmp     *8(%eax)
364
365 // CHECK: jmpl *8(%eax)
366 // CHECK:   encoding: [0x67,0x66,0xff,0x60,0x08]
367         jmpl    *8(%eax)
368
369 // CHECK: lcalll $2, $4660
370 // CHECK:   encoding: [0x66,0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
371 lcalll $0x2, $0x1234
372
373
374 L1:
375   jcxz L1
376 // CHECK: jcxz L1
377 // CHECK:   encoding: [0xe3,A]
378   jecxz L1
379 // CHECK: jecxz L1
380 // CHECK:   encoding: [0x67,0xe3,A]
381
382 iret
383 // CHECK: iretw
384 // CHECK: encoding: [0xcf]
385 iretw
386 // CHECK: iretw
387 // CHECK: encoding: [0xcf]
388 iretl
389 // CHECK: iretl
390 // CHECK: encoding: [0x66,0xcf]
391
392 sysret
393 // CHECK: sysretl
394 // CHECK: encoding: [0x0f,0x07]
395 sysretl
396 // CHECK: sysretl
397 // CHECK: encoding: [0x0f,0x07]
398
399 testl   %ecx, -24(%ebp)
400 // CHECK: testl -24(%ebp), %ecx
401 testl   -24(%ebp), %ecx
402 // CHECK: testl -24(%ebp), %ecx
403
404
405 push %cs
406 // CHECK: pushw %cs
407 // CHECK: encoding: [0x0e]
408 push %ds
409 // CHECK: pushw %ds
410 // CHECK: encoding: [0x1e]
411 push %ss
412 // CHECK: pushw %ss
413 // CHECK: encoding: [0x16]
414 push %es
415 // CHECK: pushw %es
416 // CHECK: encoding: [0x06]
417 push %fs
418 // CHECK: pushw %fs
419 // CHECK: encoding: [0x0f,0xa0]
420 push %gs
421 // CHECK: pushw %gs
422 // CHECK: encoding: [0x0f,0xa8]
423
424 pushw %cs
425 // CHECK: pushw %cs
426 // CHECK: encoding: [0x0e]
427 pushw %ds
428 // CHECK: pushw %ds
429 // CHECK: encoding: [0x1e]
430 pushw %ss
431 // CHECK: pushw %ss
432 // CHECK: encoding: [0x16]
433 pushw %es
434 // CHECK: pushw %es
435 // CHECK: encoding: [0x06]
436 pushw %fs
437 // CHECK: pushw %fs
438 // CHECK: encoding: [0x0f,0xa0]
439 pushw %gs
440 // CHECK: pushw %gs
441 // CHECK: encoding: [0x0f,0xa8]
442
443 pushl %cs
444 // CHECK: pushl %cs
445 // CHECK: encoding: [0x66,0x0e]
446 pushl %ds
447 // CHECK: pushl %ds
448 // CHECK: encoding: [0x66,0x1e]
449 pushl %ss
450 // CHECK: pushl %ss
451 // CHECK: encoding: [0x66,0x16]
452 pushl %es
453 // CHECK: pushl %es
454 // CHECK: encoding: [0x66,0x06]
455 pushl %fs
456 // CHECK: pushl %fs
457 // CHECK: encoding: [0x66,0x0f,0xa0]
458 pushl %gs
459 // CHECK: pushl %gs
460 // CHECK: encoding: [0x66,0x0f,0xa8]
461
462 pop %ss
463 // CHECK: popw  %ss
464 // CHECK: encoding: [0x17]
465 pop %ds
466 // CHECK: popw  %ds
467 // CHECK: encoding: [0x1f]
468 pop %es
469 // CHECK: popw  %es
470 // CHECK: encoding: [0x07]
471
472 popl %ss
473 // CHECK: popl  %ss
474 // CHECK: encoding: [0x66,0x17]
475 popl %ds
476 // CHECK: popl  %ds
477 // CHECK: encoding: [0x66,0x1f]
478 popl %es
479 // CHECK: popl  %es
480 // CHECK: encoding: [0x66,0x07]
481
482 pushfd
483 // CHECK: pushfl
484 popfd
485 // CHECK: popfl
486 pushfl
487 // CHECK: pushfl
488 popfl
489 // CHECK: popfl
490
491
492         setc    %bl
493         setnae  %bl
494         setnb   %bl
495         setnc   %bl
496         setna   %bl
497         setnbe  %bl
498         setpe   %bl
499         setpo   %bl
500         setnge  %bl
501         setnl   %bl
502         setng   %bl
503         setnle  %bl
504
505         setneb  %cl // CHECK: setne %cl
506         setcb   %bl // CHECK: setb %bl
507         setnaeb %bl // CHECK: setb %bl
508
509
510 // CHECK: lcalll        $31438, $31438
511 // CHECK: lcalll        $31438, $31438
512 // CHECK: ljmpl $31438, $31438
513 // CHECK: ljmpl $31438, $31438
514
515 calll   $0x7ace,$0x7ace
516 lcalll  $0x7ace,$0x7ace
517 jmpl    $0x7ace,$0x7ace
518 ljmpl   $0x7ace,$0x7ace
519
520 // CHECK: lcallw        $31438, $31438
521 // CHECK: lcallw        $31438, $31438
522 // CHECK: ljmpw $31438, $31438
523 // CHECK: ljmpw $31438, $31438
524
525 callw   $0x7ace,$0x7ace
526 lcallw  $0x7ace,$0x7ace
527 jmpw    $0x7ace,$0x7ace
528 ljmpw   $0x7ace,$0x7ace
529
530 // CHECK: lcallw        $31438, $31438
531 // CHECK: lcallw        $31438, $31438
532 // CHECK: ljmpw $31438, $31438
533 // CHECK: ljmpw $31438, $31438
534
535 call    $0x7ace,$0x7ace
536 lcall   $0x7ace,$0x7ace
537 jmp     $0x7ace,$0x7ace
538 ljmp    $0x7ace,$0x7ace
539
540 // CHECK: calll a
541  calll a
542
543 // CHECK:       incb    %al # encoding: [0xfe,0xc0]
544         incb %al
545
546 // CHECK:       incw    %ax # encoding: [0x40]
547         incw %ax
548
549 // CHECK:       incl    %eax # encoding: [0x66,0x40]
550         incl %eax
551
552 // CHECK:       decb    %al # encoding: [0xfe,0xc8]
553         decb %al
554
555 // CHECK:       decw    %ax # encoding: [0x48]
556         decw %ax
557
558 // CHECK:       decl    %eax # encoding: [0x66,0x48]
559         decl %eax
560
561 // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
562 pshufw $14, %mm4, %mm0
563
564 // CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
565 pshufw $90, %mm4, %mm0
566
567 // CHECK: aaa
568 // CHECK:  encoding: [0x37]
569                 aaa
570
571 // CHECK: aad   $1
572 // CHECK:  encoding: [0xd5,0x01]
573                 aad     $1
574
575 // CHECK: aad
576 // CHECK:  encoding: [0xd5,0x0a]
577                 aad     $0xA
578
579 // CHECK: aad
580 // CHECK:  encoding: [0xd5,0x0a]
581                 aad
582
583 // CHECK: aam   $2
584 // CHECK:  encoding: [0xd4,0x02]
585                 aam     $2
586
587 // CHECK: aam
588 // CHECK:  encoding: [0xd4,0x0a]
589                 aam     $0xA
590
591 // CHECK: aam
592 // CHECK:  encoding: [0xd4,0x0a]
593                 aam
594
595 // CHECK: aas
596 // CHECK:  encoding: [0x3f]
597                 aas
598
599 // CHECK: daa
600 // CHECK:  encoding: [0x27]
601                 daa
602
603 // CHECK: das
604 // CHECK:  encoding: [0x2f]
605                 das
606
607 // CHECK: retw  $31438
608 // CHECK:  encoding: [0xc2,0xce,0x7a]
609                 retw    $0x7ace
610
611 // CHECK: lretw $31438
612 // CHECK:  encoding: [0xca,0xce,0x7a]
613                 lretw   $0x7ace
614
615 // CHECK: retw  $31438
616 // CHECK:  encoding: [0xc2,0xce,0x7a]
617                 ret     $0x7ace
618
619 // CHECK: lretw $31438
620 // CHECK:  encoding: [0xca,0xce,0x7a]
621                 lret    $0x7ace
622
623 // CHECK: retl  $31438
624 // CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
625                 retl    $0x7ace
626
627 // CHECK: lretl $31438
628 // CHECK:  encoding: [0x66,0xca,0xce,0x7a]
629                 lretl   $0x7ace
630
631 // CHECK: bound 2(%eax), %bx
632 // CHECK:  encoding: [0x67,0x62,0x58,0x02]
633                 bound   2(%eax),%bx
634
635 // CHECK: bound 4(%ebx), %ecx
636 // CHECK:  encoding: [0x67,0x66,0x62,0x4b,0x04]
637                 bound   4(%ebx),%ecx
638
639 // CHECK: arpl  %bx, %bx
640 // CHECK:  encoding: [0x63,0xdb]
641                 arpl    %bx,%bx
642
643 // CHECK: arpl  %bx, 6(%ecx)
644 // CHECK:  encoding: [0x67,0x63,0x59,0x06]
645                 arpl    %bx,6(%ecx)
646
647 // CHECK: lgdtw 4(%eax)
648 // CHECK:  encoding: [0x67,0x0f,0x01,0x50,0x04]
649                 lgdtw   4(%eax)
650
651 // CHECK: lgdtw 4(%eax)
652 // CHECK:  encoding: [0x67,0x0f,0x01,0x50,0x04]
653                 lgdt    4(%eax)
654
655 // CHECK: lgdtl 4(%eax)
656 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x50,0x04]
657                 lgdtl   4(%eax)
658
659 // CHECK: lidtw 4(%eax)
660 // CHECK:  encoding: [0x67,0x0f,0x01,0x58,0x04]
661                 lidtw   4(%eax)
662
663 // CHECK: lidtw 4(%eax)
664 // CHECK:  encoding: [0x67,0x0f,0x01,0x58,0x04]
665                 lidt    4(%eax)
666
667 // CHECK: lidtl 4(%eax)
668 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x58,0x04]
669                 lidtl   4(%eax)
670
671 // CHECK: sgdtw 4(%eax)
672 // CHECK:  encoding: [0x67,0x0f,0x01,0x40,0x04]
673                 sgdtw   4(%eax)
674
675 // CHECK: sgdtw 4(%eax)
676 // CHECK:  encoding: [0x67,0x0f,0x01,0x40,0x04]
677                 sgdt    4(%eax)
678
679 // CHECK: sgdtl 4(%eax)
680 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x40,0x04]
681                 sgdtl   4(%eax)
682
683 // CHECK: sidtw 4(%eax)
684 // CHECK:  encoding: [0x67,0x0f,0x01,0x48,0x04]
685                 sidtw   4(%eax)
686
687 // CHECK: sidtw 4(%eax)
688 // CHECK:  encoding: [0x67,0x0f,0x01,0x48,0x04]
689                 sidt    4(%eax)
690
691 // CHECK: sidtl 4(%eax)
692 // CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x48,0x04]
693                 sidtl   4(%eax)
694
695 // CHECK: fcompi        %st(2)
696 // CHECK:  encoding: [0xdf,0xf2]
697                 fcompi  %st(2), %st
698
699 // CHECK: fcompi        %st(2)
700 // CHECK:  encoding: [0xdf,0xf2]
701                 fcompi  %st(2)
702
703 // CHECK: fcompi
704 // CHECK:  encoding: [0xdf,0xf1]
705                 fcompi
706
707 // CHECK: fucompi       %st(2)
708 // CHECK:  encoding: [0xdf,0xea]
709                 fucompi %st(2),%st
710
711 // CHECK: fucompi       %st(2)
712 // CHECK:  encoding: [0xdf,0xea]
713                 fucompi %st(2)
714
715 // CHECK: fucompi
716 // CHECK:  encoding: [0xdf,0xe9]
717                 fucompi
718
719 // CHECK: fldcw 32493
720 // CHECK:  encoding: [0xd9,0x2e,0xed,0x7e]
721                 fldcww  0x7eed
722
723 // CHECK: fldcw 32493
724 // CHECK:  encoding: [0xd9,0x2e,0xed,0x7e]
725                 fldcw   0x7eed
726
727 // CHECK: fnstcw        32493
728 // CHECK:  encoding: [0xd9,0x3e,0xed,0x7e]
729                 fnstcww 0x7eed
730
731 // CHECK: fnstcw        32493
732 // CHECK:  encoding: [0xd9,0x3e,0xed,0x7e]
733                 fnstcw  0x7eed
734
735 // CHECK: wait
736 // CHECK:  encoding: [0x9b]
737                 fstcww  0x7eed
738
739 // CHECK: wait
740 // CHECK:  encoding: [0x9b]
741                 fstcw   0x7eed
742
743 // CHECK: fnstsw        32493
744 // CHECK:  encoding: [0xdd,0x3e,0xed,0x7e]
745                 fnstsww 0x7eed
746
747 // CHECK: fnstsw        32493
748 // CHECK:  encoding: [0xdd,0x3e,0xed,0x7e]
749                 fnstsw  0x7eed
750
751 // CHECK: wait
752 // CHECK:  encoding: [0x9b]
753                 fstsww  0x7eed
754
755 // CHECK: wait
756 // CHECK:  encoding: [0x9b]
757                 fstsw   0x7eed
758
759 // CHECK: verr  32493
760 // CHECK:  encoding: [0x0f,0x00,0x26,0xed,0x7e]
761                 verrw   0x7eed
762
763 // CHECK: verr  32493
764 // CHECK:  encoding: [0x0f,0x00,0x26,0xed,0x7e]
765                 verr    0x7eed
766
767 // CHECK: wait
768 // CHECK:  encoding: [0x9b]
769                 fclex
770
771 // CHECK: fnclex
772 // CHECK:  encoding: [0xdb,0xe2]
773                 fnclex
774
775 // CHECK: ud2
776 // CHECK:  encoding: [0x0f,0x0b]
777                 ud2
778
779 // CHECK: ud2
780 // CHECK:  encoding: [0x0f,0x0b]
781                 ud2a
782
783 // CHECK: ud2b
784 // CHECK:  encoding: [0x0f,0xb9]
785                 ud2b
786
787 // CHECK: loope 0
788 // CHECK: encoding: [0xe1,A]
789         loopz 0
790
791 // CHECK: loopne 0
792 // CHECK: encoding: [0xe0,A]
793         loopnz 0
794
795 // CHECK: outsb # encoding: [0x6e]
796 // CHECK: outsb
797 // CHECK: outsb
798         outsb
799         outsb   %ds:(%si), %dx
800         outsb   (%si), %dx
801
802 // CHECK: outsw # encoding: [0x6f]
803 // CHECK: outsw
804 // CHECK: outsw
805         outsw
806         outsw   %ds:(%si), %dx
807         outsw   (%si), %dx
808
809 // CHECK: outsl # encoding: [0x66,0x6f]
810 // CHECK: outsl
811         outsl
812         outsl   %ds:(%si), %dx
813         outsl   (%si), %dx
814
815 // CHECK: insb # encoding: [0x6c]
816 // CHECK: insb
817         insb
818         insb    %dx, %es:(%di)
819
820 // CHECK: insw # encoding: [0x6d]
821 // CHECK: insw
822         insw
823         insw    %dx, %es:(%di)
824
825 // CHECK: insl # encoding: [0x66,0x6d]
826 // CHECK: insl
827         insl
828         insl    %dx, %es:(%di)
829
830 // CHECK: movsb # encoding: [0xa4]
831 // CHECK: movsb
832 // CHECK: movsb
833         movsb
834         movsb   %ds:(%si), %es:(%di)
835         movsb   (%si), %es:(%di)
836
837 // CHECK: movsw # encoding: [0xa5]
838 // CHECK: movsw
839 // CHECK: movsw
840         movsw
841         movsw   %ds:(%si), %es:(%di)
842         movsw   (%si), %es:(%di)
843
844 // CHECK: movsl # encoding: [0x66,0xa5]
845 // CHECK: movsl
846 // CHECK: movsl
847         movsl
848         movsl   %ds:(%si), %es:(%di)
849         movsl   (%si), %es:(%di)
850
851 // CHECK: lodsb # encoding: [0xac]
852 // CHECK: lodsb
853 // CHECK: lodsb
854 // CHECK: lodsb
855 // CHECK: lodsb
856         lodsb
857         lodsb   %ds:(%si), %al
858         lodsb   (%si), %al
859         lods    %ds:(%si), %al
860         lods    (%si), %al
861
862 // CHECK: lodsw # encoding: [0xad]
863 // CHECK: lodsw
864 // CHECK: lodsw
865 // CHECK: lodsw
866 // CHECK: lodsw
867         lodsw
868         lodsw   %ds:(%si), %ax
869         lodsw   (%si), %ax
870         lods    %ds:(%si), %ax
871         lods    (%si), %ax
872
873 // CHECK: lodsl # encoding: [0x66,0xad]
874 // CHECK: lodsl
875 // CHECK: lodsl
876 // CHECK: lodsl
877 // CHECK: lodsl
878         lodsl
879         lodsl   %ds:(%si), %eax
880         lodsl   (%si), %eax
881         lods    %ds:(%si), %eax
882         lods    (%si), %eax
883
884 // CHECK: stosb # encoding: [0xaa]
885 // CHECK: stosb
886 // CHECK: stosb
887         stosb
888         stosb   %al, %es:(%di)
889         stos    %al, %es:(%di)
890
891 // CHECK: stosw # encoding: [0xab]
892 // CHECK: stosw
893 // CHECK: stosw
894         stosw
895         stosw   %ax, %es:(%di)
896         stos    %ax, %es:(%di)
897
898 // CHECK: stosl # encoding: [0x66,0xab]
899 // CHECK: stosl
900 // CHECK: stosl
901         stosl
902         stosl   %eax, %es:(%di)
903         stos    %eax, %es:(%di)
904
905 // CHECK: strw
906 // CHECK: encoding: [0x0f,0x00,0xc8]
907         str %ax
908
909 // CHECK: strl
910 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
911         str %eax
912
913
914 // CHECK: fsubp
915 // CHECK: encoding: [0xde,0xe1]
916 fsubp %st,%st(1)
917
918 // CHECK: fsubp %st(2)
919 // CHECK: encoding: [0xde,0xe2]
920 fsubp   %st, %st(2)
921
922 // CHECK: xchgl %eax, %eax
923 // CHECK: encoding: [0x66,0x90]
924 xchgl %eax, %eax
925
926 // CHECK: xchgw %ax, %ax
927 // CHECK: encoding: [0x90]
928 xchgw %ax, %ax
929
930 // CHECK: xchgl %ecx, %eax
931 // CHECK: encoding: [0x66,0x91]
932 xchgl %ecx, %eax
933
934 // CHECK: xchgl %ecx, %eax
935 // CHECK: encoding: [0x66,0x91]
936 xchgl %eax, %ecx
937
938 // CHECK: retw
939 // CHECK: encoding: [0xc3]
940 retw
941
942 // CHECK: retl
943 // CHECK: encoding: [0x66,0xc3]
944 retl
945
946 // CHECK: lretw
947 // CHECK: encoding: [0xcb]
948 lretw
949
950 // CHECK: lretl
951 // CHECK: encoding: [0x66,0xcb]
952 lretl