xref: /llvm-project/llvm/test/MC/X86/x86-16.s (revision 9a24ba2397ea72c5124dbc75b4dd9ee9db676518)
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: [0x65,0x66,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// CHECK: callw 42
553// CHECK: encoding: [0xe8,A,A]
554 calll a
555data32 call a
556data32 callw a
557callw 42
558
559// CHECK:      ljmpl $1, $2
560// CHECK-NEXT: ljmpl $1, $2
561data32 ljmp $1, $2
562data32 ljmpw $1, $2
563
564// CHECK:	incb	%al # encoding: [0xfe,0xc0]
565	incb %al
566
567// CHECK:	incw	%ax # encoding: [0x40]
568	incw %ax
569
570// CHECK:	incl	%eax # encoding: [0x66,0x40]
571	incl %eax
572
573// CHECK:	decb	%al # encoding: [0xfe,0xc8]
574	decb %al
575
576// CHECK:	decw	%ax # encoding: [0x48]
577	decw %ax
578
579// CHECK:	decl	%eax # encoding: [0x66,0x48]
580	decl %eax
581
582// CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
583pshufw $14, %mm4, %mm0
584
585// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
586pshufw $90, %mm4, %mm0
587
588// CHECK: aaa
589// CHECK:  encoding: [0x37]
590        	aaa
591
592// CHECK: aad	$1
593// CHECK:  encoding: [0xd5,0x01]
594        	aad	$1
595
596// CHECK: aad
597// CHECK:  encoding: [0xd5,0x0a]
598        	aad	$0xA
599
600// CHECK: aad
601// CHECK:  encoding: [0xd5,0x0a]
602        	aad
603
604// CHECK: aam	$2
605// CHECK:  encoding: [0xd4,0x02]
606        	aam	$2
607
608// CHECK: aam
609// CHECK:  encoding: [0xd4,0x0a]
610        	aam	$0xA
611
612// CHECK: aam
613// CHECK:  encoding: [0xd4,0x0a]
614        	aam
615
616// CHECK: aas
617// CHECK:  encoding: [0x3f]
618        	aas
619
620// CHECK: daa
621// CHECK:  encoding: [0x27]
622        	daa
623
624// CHECK: das
625// CHECK:  encoding: [0x2f]
626        	das
627
628// CHECK: retw	$31438
629// CHECK:  encoding: [0xc2,0xce,0x7a]
630        	retw	$0x7ace
631
632// CHECK: lretw	$31438
633// CHECK:  encoding: [0xca,0xce,0x7a]
634        	lretw	$0x7ace
635
636// CHECK: retw	$31438
637// CHECK:  encoding: [0xc2,0xce,0x7a]
638        	ret	$0x7ace
639
640// CHECK: lretw	$31438
641// CHECK:  encoding: [0xca,0xce,0x7a]
642        	lret	$0x7ace
643
644// CHECK: retl	$31438
645// CHECK:  encoding: [0x66,0xc2,0xce,0x7a]
646        	retl	$0x7ace
647
648// CHECK: lretl	$31438
649// CHECK:  encoding: [0x66,0xca,0xce,0x7a]
650        	lretl	$0x7ace
651
652// CHECK: bound	%bx, 2(%eax)
653// CHECK:  encoding: [0x67,0x62,0x58,0x02]
654        	bound	%bx,2(%eax)
655
656// CHECK: bound	%ecx, 4(%ebx)
657// CHECK:  encoding: [0x67,0x66,0x62,0x4b,0x04]
658        	bound	%ecx,4(%ebx)
659
660// CHECK: arpl	%bx, %bx
661// CHECK:  encoding: [0x63,0xdb]
662        	arpl	%bx,%bx
663
664// CHECK: arpl	%bx, 6(%ecx)
665// CHECK:  encoding: [0x67,0x63,0x59,0x06]
666        	arpl	%bx,6(%ecx)
667
668// CHECK: lgdtw	4(%eax)
669// CHECK:  encoding: [0x67,0x0f,0x01,0x50,0x04]
670        	lgdtw	4(%eax)
671
672// CHECK: lgdtw	4(%eax)
673// CHECK:  encoding: [0x67,0x0f,0x01,0x50,0x04]
674        	lgdt	4(%eax)
675
676// CHECK: lgdtl	4(%eax)
677// CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x50,0x04]
678        	lgdtl	4(%eax)
679
680// CHECK: lidtw	4(%eax)
681// CHECK:  encoding: [0x67,0x0f,0x01,0x58,0x04]
682        	lidtw	4(%eax)
683
684// CHECK: lidtw	4(%eax)
685// CHECK:  encoding: [0x67,0x0f,0x01,0x58,0x04]
686        	lidt	4(%eax)
687
688// CHECK: lidtl	4(%eax)
689// CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x58,0x04]
690        	lidtl	4(%eax)
691
692// CHECK: sgdtw	4(%eax)
693// CHECK:  encoding: [0x67,0x0f,0x01,0x40,0x04]
694        	sgdtw	4(%eax)
695
696// CHECK: sgdtw	4(%eax)
697// CHECK:  encoding: [0x67,0x0f,0x01,0x40,0x04]
698        	sgdt	4(%eax)
699
700// CHECK: sgdtl	4(%eax)
701// CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x40,0x04]
702        	sgdtl	4(%eax)
703
704// CHECK: sidtw	4(%eax)
705// CHECK:  encoding: [0x67,0x0f,0x01,0x48,0x04]
706        	sidtw	4(%eax)
707
708// CHECK: sidtw	4(%eax)
709// CHECK:  encoding: [0x67,0x0f,0x01,0x48,0x04]
710        	sidt	4(%eax)
711
712// CHECK: sidtl	4(%eax)
713// CHECK:  encoding: [0x67,0x66,0x0f,0x01,0x48,0x04]
714        	sidtl	4(%eax)
715
716// CHECK: fcompi	%st(2)
717// CHECK:  encoding: [0xdf,0xf2]
718        	fcompi	%st(2), %st
719
720// CHECK: fcompi	%st(2)
721// CHECK:  encoding: [0xdf,0xf2]
722        	fcompi	%st(2)
723
724// CHECK: fcompi
725// CHECK:  encoding: [0xdf,0xf1]
726        	fcompi
727
728// CHECK: fucompi	%st(2)
729// CHECK:  encoding: [0xdf,0xea]
730        	fucompi	%st(2),%st
731
732// CHECK: fucompi	%st(2)
733// CHECK:  encoding: [0xdf,0xea]
734        	fucompi	%st(2)
735
736// CHECK: fucompi
737// CHECK:  encoding: [0xdf,0xe9]
738        	fucompi
739
740// CHECK: fldcw	32493
741// CHECK:  encoding: [0xd9,0x2e,0xed,0x7e]
742        	fldcww	0x7eed
743
744// CHECK: fldcw	32493
745// CHECK:  encoding: [0xd9,0x2e,0xed,0x7e]
746        	fldcw	0x7eed
747
748// CHECK: fnstcw	32493
749// CHECK:  encoding: [0xd9,0x3e,0xed,0x7e]
750        	fnstcww	0x7eed
751
752// CHECK: fnstcw	32493
753// CHECK:  encoding: [0xd9,0x3e,0xed,0x7e]
754        	fnstcw	0x7eed
755
756// CHECK: wait
757// CHECK:  encoding: [0x9b]
758        	fstcww	0x7eed
759
760// CHECK: wait
761// CHECK:  encoding: [0x9b]
762        	fstcw	0x7eed
763
764// CHECK: fnstsw	32493
765// CHECK:  encoding: [0xdd,0x3e,0xed,0x7e]
766        	fnstsww	0x7eed
767
768// CHECK: fnstsw	32493
769// CHECK:  encoding: [0xdd,0x3e,0xed,0x7e]
770        	fnstsw	0x7eed
771
772// CHECK: wait
773// CHECK:  encoding: [0x9b]
774        	fstsww	0x7eed
775
776// CHECK: wait
777// CHECK:  encoding: [0x9b]
778        	fstsw	0x7eed
779
780// CHECK: verr	32493
781// CHECK:  encoding: [0x0f,0x00,0x26,0xed,0x7e]
782        	verrw	0x7eed
783
784// CHECK: verr	32493
785// CHECK:  encoding: [0x0f,0x00,0x26,0xed,0x7e]
786        	verr	0x7eed
787
788// CHECK: wait
789// CHECK:  encoding: [0x9b]
790        	fclex
791
792// CHECK: fnclex
793// CHECK:  encoding: [0xdb,0xe2]
794        	fnclex
795
796// CHECK: ud2
797// CHECK:  encoding: [0x0f,0x0b]
798        	ud2
799
800// CHECK: ud2
801// CHECK:  encoding: [0x0f,0x0b]
802        	ud2a
803
804// CHECK: ud1w %ax, %ax
805// CHECK:  encoding: [0x0f,0xb9,0xc0]
806        	ud1 %ax, %ax
807
808// CHECK: ud1w %ax, %ax
809// CHECK:  encoding: [0x0f,0xb9,0xc0]
810        	ud2b %ax, %ax
811
812// CHECK: loope 0
813// CHECK: encoding: [0xe1,A]
814	loopz 0
815
816// CHECK: loopne 0
817// CHECK: encoding: [0xe0,A]
818	loopnz 0
819
820// CHECK: outsb (%si), %dx # encoding: [0x6e]
821// CHECK: outsb
822// CHECK: outsb
823	outsb
824	outsb	%ds:(%si), %dx
825	outsb	(%si), %dx
826
827// CHECK: outsw (%si), %dx # encoding: [0x6f]
828// CHECK: outsw
829// CHECK: outsw
830	outsw
831	outsw	%ds:(%si), %dx
832	outsw	(%si), %dx
833
834// CHECK: outsl (%si), %dx # encoding: [0x66,0x6f]
835// CHECK: outsl
836	outsl
837	outsl	%ds:(%si), %dx
838	outsl	(%si), %dx
839
840// CHECK: insb %dx, %es:(%di) # encoding: [0x6c]
841// CHECK: insb
842	insb
843	insb	%dx, %es:(%di)
844
845// CHECK: insw %dx, %es:(%di) # encoding: [0x6d]
846// CHECK: insw
847	insw
848	insw	%dx, %es:(%di)
849
850// CHECK: insl %dx, %es:(%di) # encoding: [0x66,0x6d]
851// CHECK: insl
852	insl
853	insl	%dx, %es:(%di)
854
855// CHECK: movsb (%si), %es:(%di) # encoding: [0xa4]
856// CHECK: movsb
857// CHECK: movsb
858	movsb
859	movsb	%ds:(%si), %es:(%di)
860	movsb	(%si), %es:(%di)
861
862// CHECK: movsw (%si), %es:(%di) # encoding: [0xa5]
863// CHECK: movsw
864// CHECK: movsw
865	movsw
866	movsw	%ds:(%si), %es:(%di)
867	movsw	(%si), %es:(%di)
868
869// CHECK: movsl (%si), %es:(%di) # encoding: [0x66,0xa5]
870// CHECK: movsl
871// CHECK: movsl
872	movsl
873	movsl	%ds:(%si), %es:(%di)
874	movsl	(%si), %es:(%di)
875
876// CHECK: lodsb (%si), %al # encoding: [0xac]
877// CHECK: lodsb
878// CHECK: lodsb
879// CHECK: lodsb
880// CHECK: lodsb
881	lodsb
882	lodsb	%ds:(%si), %al
883	lodsb	(%si), %al
884	lods	%ds:(%si), %al
885	lods	(%si), %al
886
887// CHECK: lodsw (%si), %ax # encoding: [0xad]
888// CHECK: lodsw
889// CHECK: lodsw
890// CHECK: lodsw
891// CHECK: lodsw
892	lodsw
893	lodsw	%ds:(%si), %ax
894	lodsw	(%si), %ax
895	lods	%ds:(%si), %ax
896	lods	(%si), %ax
897
898// CHECK: lodsl (%si), %eax # encoding: [0x66,0xad]
899// CHECK: lodsl
900// CHECK: lodsl
901// CHECK: lodsl
902// CHECK: lodsl
903	lodsl
904	lodsl	%ds:(%si), %eax
905	lodsl	(%si), %eax
906	lods	%ds:(%si), %eax
907	lods	(%si), %eax
908
909// CHECK: stosb %al, %es:(%di) # encoding: [0xaa]
910// CHECK: stosb
911// CHECK: stosb
912	stosb
913	stosb	%al, %es:(%di)
914	stos	%al, %es:(%di)
915
916// CHECK: stosw %ax, %es:(%di) # encoding: [0xab]
917// CHECK: stosw
918// CHECK: stosw
919	stosw
920	stosw	%ax, %es:(%di)
921	stos	%ax, %es:(%di)
922
923// CHECK: stosl %eax, %es:(%di) # encoding: [0x66,0xab]
924// CHECK: stosl
925// CHECK: stosl
926	stosl
927	stosl	%eax, %es:(%di)
928	stos	%eax, %es:(%di)
929
930// CHECK: strw
931// CHECK: encoding: [0x0f,0x00,0xc8]
932	str %ax
933
934// CHECK: strl
935// CHECK: encoding: [0x66,0x0f,0x00,0xc8]
936	str %eax
937
938
939// CHECK: fsubp %st, %st(1)
940// CHECK: encoding: [0xde,0xe1]
941fsubp %st,%st(1)
942
943// CHECK: fsubp %st, %st(2)
944// CHECK: encoding: [0xde,0xe2]
945fsubp   %st, %st(2)
946
947// CHECK: xchgl %eax, %eax
948// CHECK: encoding: [0x66,0x90]
949xchgl %eax, %eax
950
951// CHECK: xchgw %ax, %ax
952// CHECK: encoding: [0x90]
953xchgw %ax, %ax
954
955// CHECK: xchgl %ecx, %eax
956// CHECK: encoding: [0x66,0x91]
957xchgl %ecx, %eax
958
959// CHECK: xchgl %ecx, %eax
960// CHECK: encoding: [0x66,0x91]
961xchgl %eax, %ecx
962
963// CHECK: retw
964// CHECK: encoding: [0xc3]
965retw
966
967// CHECK: retl
968// CHECK: encoding: [0x66,0xc3]
969retl
970
971// CHECK: lretw
972// CHECK: encoding: [0xcb]
973lretw
974
975// CHECK: lretl
976// CHECK: encoding: [0x66,0xcb]
977lretl
978
979// CHECK: data32
980// CHECK: encoding: [0x66]
981data32
982
983// CHECK: lgdtl 4(%eax)
984// CHECK-SAME:  encoding: [0x67,0x66,0x0f,0x01,0x50,0x04]
985data32 lgdt 4(%eax)
986
987// CHECK: wbnoinvd
988// CHECK:  encoding: [0xf3,0x0f,0x09]
989wbnoinvd
990
991// CHECK: umonitor %ax
992// CHECK:  encoding: [0xf3,0x0f,0xae,0xf0]
993umonitor %ax
994
995// CHECK: umonitor %eax
996// CHECK:  encoding: [0x67,0xf3,0x0f,0xae,0xf0]
997umonitor %eax
998
999// CHECK: movdir64b (%esi), %eax
1000// CHECK: encoding: [0x67,0x66,0x0f,0x38,0xf8,0x06]
1001movdir64b (%esi), %eax
1002
1003// CHECK: movdir64b (%si), %ax
1004// CHECK: encoding: [0x66,0x0f,0x38,0xf8,0x04]
1005movdir64b (%si), %ax
1006
1007// CHECK: enqcmd (%bx), %di
1008// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x3f]
1009enqcmd  (%bx), %di
1010
1011// CHECK: enqcmd 8128(%si), %ax
1012// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x84,0xc0,0x1f]
1013enqcmd  8128(%si), %ax
1014
1015// CHECK: enqcmd -8192(%di), %bx
1016// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x9d,0x00,0xe0]
1017enqcmd  -8192(%di), %bx
1018
1019// CHECK: enqcmd 7408, %cx
1020// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x0e,0xf0,0x1c]
1021enqcmd  7408, %cx
1022
1023// CHECK: enqcmds (%bx), %di
1024// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x3f]
1025enqcmds (%bx), %di
1026
1027// CHECK: enqcmds 8128(%si), %ax
1028// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x84,0xc0,0x1f]
1029enqcmds 8128(%si), %ax
1030
1031// CHECK: enqcmds -8192(%di), %bx
1032// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x9d,0x00,0xe0]
1033enqcmds -8192(%di), %bx
1034
1035// CHECK: enqcmds 7408, %cx
1036// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x0e,0xf0,0x1c]
1037enqcmds  7408, %cx
1038
1039// CHECK: enqcmd (%edi), %edi
1040// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x3f]
1041enqcmd  (%edi), %edi
1042
1043// CHECK: enqcmds (%edi), %edi
1044// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x3f]
1045enqcmds (%edi), %edi
1046
1047// CHECK: serialize
1048// CHECK: encoding: [0x0f,0x01,0xe8]
1049serialize
1050
1051// CHECK: xsusldtrk
1052// CHECK: encoding: [0xf2,0x0f,0x01,0xe8]
1053xsusldtrk
1054
1055// CHECK: xresldtrk
1056// CHECK: encoding: [0xf2,0x0f,0x01,0xe9]
1057xresldtrk
1058
1059// CHECK: jmp foo
1060// CHECK:  encoding: [0xe9,A,A]
1061// CHECK:  fixup A - offset: 1, value: foo-2, kind: FK_PCRel_2
1062{disp32} jmp foo
1063foo:
1064
1065// CHECK: je foo
1066// CHECK:  encoding: [0x0f,0x84,A,A]
1067// CHECK:  fixup A - offset: 2, value: foo-2, kind: FK_PCRel_2
1068{disp32} je foo
1069
1070// CHECK: movl nearer, %ebx
1071// CHECK:  encoding: [0x66,0x8b,0x1e,A,A]
1072// CHECK:  fixup A - offset: 3, value: nearer, kind: FK_Data_2
1073movl    nearer, %ebx
1074