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