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