xref: /llvm-project/llvm/test/MC/Disassembler/X86/apx/rex2-format.txt (revision 91a55cf5adbe37d33dc7b3b90de4bbb0b90761a1)
1# RUN: llvm-mc -triple x86_64 -disassemble %s | FileCheck %s --check-prefix=ATT
2# RUN: llvm-mc -triple x86_64 -disassemble -output-asm-variant=1 %s | FileCheck %s --check-prefix=INTEL
3
4## AddRegFrm
5
6# ATT:   movl	$1, %r16d
7# INTEL: mov	r16d, 1
80xd5,0x10,0xb8,0x01,0x00,0x00,0x00
9
10## MRMSrcReg
11
12# ATT:   movslq	%r16d, %rax
13# INTEL: movsxd	rax, r16d
140xd5,0x18,0x63,0xc0
15
16# ATT:   movslq	%eax, %r16
17# INTEL: movsxd	r16, eax
180xd5,0x48,0x63,0xc0
19
20# ATT:   movslq	%r16d, %r17
21# INTEL: movsxd	r17, r16d
220xd5,0x58,0x63,0xc8
23
24# ATT-NOT: rep
25# ATT:   popcntl %r16d, %r17d
26# INTEL-NOT: rep
27# INTEL: popcnt r17d, r16d
280xf3,0xd5,0xd0,0xb8,0xc8
29
30## MRMSrcRegCC
31
32# ATT:   cmovll	%r16d, %eax
33# INTEL: cmovl	eax, r16d
340xd5,0x90,0x4c,0xc0
35
36# ATT:   cmovll	%eax, %r16d
37# INTEL: cmovl	r16d, eax
380xd5,0xc0,0x4c,0xc0
39
40# ATT:   cmovll	%r16d, %r17d
41# INTEL: cmovl	r17d, r16d
420xd5,0xd0,0x4c,0xc8
43
44## MRMSrcMem
45
46# ATT:   imull	(%r16,%rax), %ebx
47# INTEL: imul	ebx, dword ptr [r16 + rax]
480xd5,0x90,0xaf,0x1c,0x00
49
50# ATT:   imull	(%rax,%r16), %ebx
51# INTEL: imul	ebx, dword ptr [rax + r16]
520xd5,0xa0,0xaf,0x1c,0x00
53
54# ATT:   imull	(%rax,%rbx), %r16d
55# INTEL: imul	r16d, dword ptr [rax + rbx]
560xd5,0xc0,0xaf,0x04,0x18
57
58# ATT:   imull	(%r16,%r17), %eax
59# INTEL: imul	eax, dword ptr [r16 + r17]
600xd5,0xb0,0xaf,0x04,0x08
61
62# ATT:   imull	(%rax,%r16), %r17d
63# INTEL: imul	r17d, dword ptr [rax + r16]
640xd5,0xe0,0xaf,0x0c,0x00
65
66# ATT:   imull	(%r16,%rax), %r17d
67# INTEL: imul	r17d, dword ptr [r16 + rax]
680xd5,0xd0,0xaf,0x0c,0x00
69
70# ATT:   imull	(%r16,%r17), %r18d
71# INTEL: imul	r18d, dword ptr [r16 + r17]
720xd5,0xf0,0xaf,0x14,0x08
73
74## MRMSrcMemCC
75
76# ATT:   cmovll	(%r16,%rax), %ebx
77# INTEL: cmovl	ebx, dword ptr [r16 + rax]
780xd5,0x90,0x4c,0x1c,0x00
79
80# ATT:   cmovll	(%rax,%r16), %ebx
81# INTEL: cmovl	ebx, dword ptr [rax + r16]
820xd5,0xa0,0x4c,0x1c,0x00
83
84# ATT:   cmovll	(%rax,%rbx), %r16d
85# INTEL: cmovl	r16d, dword ptr [rax + rbx]
860xd5,0xc0,0x4c,0x04,0x18
87
88# ATT:   cmovll	(%r16,%r17), %eax
89# INTEL: cmovl	eax, dword ptr [r16 + r17]
900xd5,0xb0,0x4c,0x04,0x08
91
92# ATT:   cmovll	(%rax,%r16), %r17d
93# INTEL: cmovl	r17d, dword ptr [rax + r16]
940xd5,0xe0,0x4c,0x0c,0x00
95
96# ATT:   cmovll	(%r16,%rax), %r17d
97# INTEL: cmovl	r17d, dword ptr [r16 + rax]
980xd5,0xd0,0x4c,0x0c,0x00
99
100# ATT:   cmovll	(%r16,%r17), %r18d
101# INTEL: cmovl	r18d, dword ptr [r16 + r17]
1020xd5,0xf0,0x4c,0x14,0x08
103
104## MRMDestReg
105
106# ATT:   movl	%eax, %r16d
107# INTEL: mov	r16d, eax
1080xd5,0x10,0x89,0xc0
109
110# ATT:   movl	%r16d, %eax
111# INTEL: mov	eax, r16d
1120xd5,0x40,0x89,0xc0
113
114# ATT:   movl	%r16d, %r17d
115# INTEL: mov	r17d, r16d
1160xd5,0x50,0x89,0xc1
117
118## MRMDestMem
119
120# ATT:   movl	%ebx, (%r16,%rax)
121# INTEL: mov	dword ptr [r16 + rax], ebx
1220xd5,0x10,0x89,0x1c,0x00
123
124# ATT:   movl	%ebx, (%rax,%r16)
125# INTEL: mov	dword ptr [rax + r16], ebx
1260xd5,0x20,0x89,0x1c,0x00
127
128# ATT:   movl	%r16d, (%rax,%rbx)
129# INTEL: mov	dword ptr [rax + rbx], r16d
1300xd5,0x40,0x89,0x04,0x18
131
132# ATT:   movl	%eax, (%r16,%r17)
133# INTEL: mov	dword ptr [r16 + r17], eax
1340xd5,0x30,0x89,0x04,0x08
135
136# ATT:   movl	%r17d, (%rax,%r16)
137# INTEL: mov	dword ptr [rax + r16], r17d
1380xd5,0x60,0x89,0x0c,0x00
139
140# ATT:   movl	%r17d, (%r16,%rax)
141# INTEL: mov	dword ptr [r16 + rax], r17d
1420xd5,0x50,0x89,0x0c,0x00
143
144# ATT:   movl	%r18d, (%r16,%r17)
145# INTEL: mov	dword ptr [r16 + r17], r18d
1460xd5,0x70,0x89,0x14,0x08
147
148# ATT:   movb    %bpl, (%r16,%r14)
149# INTEL: mov    byte ptr [r16 + r14], bpl
1500xd5,0x12,0x88,0x2c,0x30
151
152## MRMXmCC
153
154# ATT:   sete	(%rax,%r16)
155# INTEL: sete	byte ptr [rax + r16]
1560xd5,0xa0,0x94,0x04,0x00
157
158# ATT:   sete	(%r16,%rax)
159# INTEL: sete	byte ptr [r16 + rax]
1600xd5,0x90,0x94,0x04,0x00
161
162# ATT:   sete	(%r16,%r17)
163# INTEL: sete	byte ptr [r16 + r17]
1640xd5,0xb0,0x94,0x04,0x08
165
166## MRMXm
167
168# ATT:   nopl	(%rax,%r16)
169# INTEL: nop	dword ptr [rax + r16]
1700xd5,0xa0,0x1f,0x04,0x00
171
172# ATT:   nopl	(%r16,%rax)
173# INTEL: nop	dword ptr [r16 + rax]
1740xd5,0x90,0x1f,0x04,0x00
175
176# ATT:   nopl	(%r16,%r17)
177# INTEL: nop	dword ptr [r16 + r17]
1780xd5,0xb0,0x1f,0x04,0x08
179
180## MRM0m
181
182# ATT:   incl	(%rax,%r16)
183# INTEL: inc	dword ptr [rax + r16]
1840xd5,0x20,0xff,0x04,0x00
185
186# ATT:   incl	(%r16,%rax)
187# INTEL: inc	dword ptr [r16 + rax]
1880xd5,0x10,0xff,0x04,0x00
189
190# ATT:   incl	(%r16,%r17)
191# INTEL: inc	dword ptr [r16 + r17]
1920xd5,0x30,0xff,0x04,0x08
193
194## MRM1m
195
196# ATT:   decl	(%rax,%r16)
197# INTEL: dec	dword ptr [rax + r16]
1980xd5,0x20,0xff,0x0c,0x00
199
200# ATT:   decl	(%r16,%rax)
201# INTEL: dec	dword ptr [r16 + rax]
2020xd5,0x10,0xff,0x0c,0x00
203
204# ATT:   decl	(%r16,%r17)
205# INTEL: dec	dword ptr [r16 + r17]
2060xd5,0x30,0xff,0x0c,0x08
207
208## MRM2m
209
210# ATT:   notl	(%rax,%r16)
211# INTEL: not	dword ptr [rax + r16]
2120xd5,0x20,0xf7,0x14,0x00
213
214# ATT:   notl	(%r16,%rax)
215# INTEL: not	dword ptr [r16 + rax]
2160xd5,0x10,0xf7,0x14,0x00
217
218# ATT:   notl	(%r16,%r17)
219# INTEL: not	dword ptr [r16 + r17]
2200xd5,0x30,0xf7,0x14,0x08
221
222## MRM3m
223
224# ATT:   negl	(%rax,%r16)
225# INTEL: neg	dword ptr [rax + r16]
2260xd5,0x20,0xf7,0x1c,0x00
227
228# ATT:   negl	(%r16,%rax)
229# INTEL: neg	dword ptr [r16 + rax]
2300xd5,0x10,0xf7,0x1c,0x00
231
232# ATT:   negl	(%r16,%r17)
233# INTEL: neg	dword ptr [r16 + r17]
2340xd5,0x30,0xf7,0x1c,0x08
235
236## MRM4m
237
238# ATT:   mull	(%rax,%r16)
239# INTEL: mul	dword ptr [rax + r16]
2400xd5,0x20,0xf7,0x24,0x00
241
242# ATT:   mull	(%r16,%rax)
243# INTEL: mul	dword ptr [r16 + rax]
2440xd5,0x10,0xf7,0x24,0x00
245
246# ATT:   mull	(%r16,%r17)
247# INTEL: mul	dword ptr [r16 + r17]
2480xd5,0x30,0xf7,0x24,0x08
249
250## MRM5m
251
252# ATT:   imull	(%rax,%r16)
253# INTEL: imul	dword ptr [rax + r16]
2540xd5,0x20,0xf7,0x2c,0x00
255
256# ATT:   imull	(%r16,%rax)
257# INTEL: imul	dword ptr [r16 + rax]
2580xd5,0x10,0xf7,0x2c,0x00
259
260# ATT:   imull	(%r16,%r17)
261# INTEL: imul	dword ptr [r16 + r17]
2620xd5,0x30,0xf7,0x2c,0x08
263
264## MRM6m
265
266# ATT:   divl	(%rax,%r16)
267# INTEL: div	dword ptr [rax + r16]
2680xd5,0x20,0xf7,0x34,0x00
269
270# ATT:   divl	(%r16,%rax)
271# INTEL: div	dword ptr [r16 + rax]
2720xd5,0x10,0xf7,0x34,0x00
273
274# ATT:   divl	(%r16,%r17)
275# INTEL: div	dword ptr [r16 + r17]
2760xd5,0x30,0xf7,0x34,0x08
277
278## MRM7m
279
280# ATT:   idivl	(%rax,%r16)
281# INTEL: idiv	dword ptr [rax + r16]
2820xd5,0x20,0xf7,0x3c,0x00
283
284# ATT:   idivl	(%r16,%rax)
285# INTEL: idiv	dword ptr [r16 + rax]
2860xd5,0x10,0xf7,0x3c,0x00
287
288# ATT:   idivl	(%r16,%r17)
289# INTEL: idiv	dword ptr [r16 + r17]
2900xd5,0x30,0xf7,0x3c,0x08
291
292## MRMXrCC
293
294# ATT:   sete	%r16b
295# INTEL: sete	r16b
2960xd5,0x90,0x94,0xc0
297
298## MRMXr
299
300# ATT:   nopl	%r16d
301# INTEL: nop	r16d
3020xd5,0x90,0x1f,0xc0
303
304## MRM0r
305
306# ATT:   incl	%r16d
307# INTEL: inc	r16d
3080xd5,0x10,0xff,0xc0
309
310## MRM1r
311
312# ATT:   decl	%r16d
313# INTEL: dec	r16d
3140xd5,0x10,0xff,0xc8
315
316## MRM2r
317
318# ATT:   notl	%r16d
319# INTEL: not	r16d
3200xd5,0x10,0xf7,0xd0
321
322## MRM3r
323
324# ATT:   negl	%r16d
325# INTEL: neg	r16d
3260xd5,0x10,0xf7,0xd8
327
328## MRM4r
329
330# ATT:   mull	%r16d
331# INTEL: mul	r16d
3320xd5,0x10,0xf7,0xe0
333
334## MRM5r
335
336# ATT:   imull	%r16d
337# INTEL: imul	r16d
3380xd5,0x10,0xf7,0xe8
339
340## MRM6r
341
342# ATT:   divl	%r16d
343# INTEL: div	r16d
3440xd5,0x10,0xf7,0xf0
345
346## MRM7r
347
348# ATT:   idivl	%r16d
349# INTEL: idiv	r16d
3500xd5,0x10,0xf7,0xf8
351