i386: Also check R12-R15 registers when optimizing testq to testb
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / x86_64.s
CommitLineData
b96d3a20
JH
1.text
2.intel_syntax noprefix
3# REX prefix and addressing modes.
4add edx,ecx
5add edx,r9d
6add r10d,ecx
7add rdx,rcx
8add r10,r9
9add r8d,eax
10add r8w,ax
11add r8,rax
12add eax,0x44332211
13add rax,0xfffffffff4332211
14add ax,0x4433
15add rax,0x44332211
16add dl,cl
17add bh,dh
18add dil,sil
19add r15b,sil
20add dil,r14b
21add r15b,r14b
22PUSH RAX
23PUSH R8
24POP R9
25ADD AL,0x11
26ADD AH,0x11
27ADD SPL,0x11
28ADD R8B,0x11
29ADD R12B,0x11
30MOV RAX,CR0
31MOV R8,CR0
32MOV RAX,CR8
33MOV CR8,RAX
34REP MOVSQ #[RSI],[RDI]
35REP MOVSW #[RSI,[RDI]
36REP MOVSQ #[RSI],[RDI]
37MOV AL, 0x11
38MOV AH, 0x11
39MOV SPL, 0x11
40MOV R12B, 0x11
41MOV EAX,0x11223344
42MOV R8D,0x11223344
43MOV RAX,0x1122334455667788
44MOV R8,0x1122334455667788
45add eax,[rax]
46ADD EAX,[R8]
47ADD R8D,[R8]
48ADD RAX,[R8]
49ADD EAX,[0x22222222+RIP]
50ADD EAX,[RBP+0x00]
ee86248c 51ADD EAX,FLAT:[0x22222222]
b96d3a20
JH
52ADD EAX,[R13+0]
53ADD EAX,[RAX+RAX*4]
54ADD EAX,[R8+RAX*4]
55ADD R8D,[R8+RAX*4]
56ADD EAX,[R8+R8*4]
57ADD [RCX+R8*4],R8D
58ADD EDX,[RAX+RAX*8]
59ADD EDX,[RAX+RCX*8]
60ADD EDX,[RAX+RDX*8]
61ADD EDX,[RAX+RBX*8]
62ADD EDX,[RAX]
63ADD EDX,[RAX+RBP*8]
64ADD EDX,[RAX+RSI*8]
65ADD EDX,[RAX+RDI*8]
66ADD EDX,[RAX+R8*8]
67ADD EDX,[RAX+R9*8]
68ADD EDX,[RAX+R10*8]
69ADD EDX,[RAX+R11*8]
70ADD EDX,[RAX+R12*8]
71ADD EDX,[RAX+R13*8]
72ADD EDX,[RAX+R14*8]
73ADD EDX,[RAX+R15*8]
74ADD ECX,0x11
75ADD DWORD PTR [RAX],0x11
76ADD QWORD PTR [RAX],0x11
77ADD DWORD PTR [R8],0x11
78ADD DWORD PTR [RCX+RAX*4],0x11
79ADD DWORD PTR [R9+RAX*4],0x11
80ADD DWORD PTR [RCX+R8*4],0x11
81ADD DWORD PTR [0x22222222+RIP],0x33
82ADD QWORD PTR [RIP+0x22222222],0x33
83ADD DWORD PTR [RIP+0x22222222],0x33333333
84ADD QWORD PTR [RIP+0x22222222],0x33333333
85ADD DWORD PTR [RAX*8+0x22222222],0x33
86ADD DWORD PTR [RAX+0x22222222],0x33
87ADD DWORD PTR [RAX+0x22222222],0x33
88ADD DWORD PTR [R8+RBP*8],0x33
ee86248c 89ADD DWORD PTR FLAT:[0x22222222],0x33
b96d3a20 90#new instructions
ee86248c
JB
91MOVABS AL,FLAT:[0x8877665544332211]
92MOVABS EAX,FLAT:[0x8877665544332211]
93MOVABS FLAT:[0x8877665544332211],AL
94MOVABS FLAT:[0x8877665544332211],EAX
95MOVABS RAX,FLAT:[0x8877665544332211]
96MOVABS FLAT:[0x8877665544332211],RAX
b96d3a20
JH
97cqo
98cdqe
99movsx rax, eax
100movsx rax, ax
101movsx rax, al
102bar:
103.att_syntax
104#testcase for symbol references.
105
106#immediates - various sizes:
107
108mov $symbol, %al
109mov $symbol, %ax
110mov $symbol, %eax
111mov $symbol, %rax
112
113#addressing modes:
114
115#absolute 64bit addressing
116movabs symbol, %eax
117
118#absolute 32bit addressing
119mov symbol, %eax
120
121#arithmetic
122mov symbol(%rax), %eax
123
124#RIP relative
125mov symbol(%rip), %eax
126
127.intel_syntax noprefix
128
129#immediates - various sizes:
b7240065
JB
130mov al, offset flat:symbol
131mov ax, offset flat:symbol
132mov eax, offset flat:symbol
133mov rax, offset flat:symbol
b96d3a20 134
a724f0f4 135#parts aren't supported by the parser, yet (and not at all for symbol refs)
9306ca4a
JB
136#mov eax, high part symbol
137#mov eax, low part symbol
b96d3a20
JH
138
139#addressing modes
140
141#absolute 64bit addressing
142movabs eax, [symbol]
143
144#absolute 32bit addressing
145mov eax, [symbol]
146
147#arithmetic
148mov eax, [rax+symbol]
149
150#RIP relative
151mov eax, [rip+symbol]
152
b300c311
L
153foo:
154.att_syntax
155#absolute 64bit addressing
156mov 0x8877665544332211,%al
157mov 0x8877665544332211,%ax
158mov 0x8877665544332211,%eax
159mov 0x8877665544332211,%rax
160mov %al,0x8877665544332211
161mov %ax,0x8877665544332211
162mov %eax,0x8877665544332211
163mov %rax,0x8877665544332211
164movb 0x8877665544332211,%al
165movw 0x8877665544332211,%ax
166movl 0x8877665544332211,%eax
167movq 0x8877665544332211,%rax
168movb %al,0x8877665544332211
169movw %ax,0x8877665544332211
170movl %eax,0x8877665544332211
171movq %rax,0x8877665544332211
172
28a9d8f5
L
173#absolute signed 32bit addressing
174mov 0xffffffffff332211,%al
175mov 0xffffffffff332211,%ax
176mov 0xffffffffff332211,%eax
177mov 0xffffffffff332211,%rax
178mov %al,0xffffffffff332211
179mov %ax,0xffffffffff332211
180mov %eax,0xffffffffff332211
181mov %rax,0xffffffffff332211
182movb 0xffffffffff332211,%al
183movw 0xffffffffff332211,%ax
184movl 0xffffffffff332211,%eax
185movq 0xffffffffff332211,%rax
186movb %al,0xffffffffff332211
187movw %ax,0xffffffffff332211
188movl %eax,0xffffffffff332211
189movq %rax,0xffffffffff332211
190
f5804c90
L
191cmpxchg16b (%rax)
192
193.intel_syntax noprefix
fb9c77c7 194cmpxchg16b oword ptr [rax]
f5804c90 195
ca61edf2 196.att_syntax
321fd21e
L
197 movsx %al, %si
198 movsx %al, %esi
199 movsx %al, %rsi
200 movsx %ax, %esi
201 movsx %ax, %rsi
202 movsx %eax, %rsi
ca61edf2
L
203 movsx (%rax), %edx
204 movsx (%rax), %rdx
205 movsx (%rax), %dx
206 movsbl (%rax), %edx
207 movsbq (%rax), %rdx
208 movsbw (%rax), %dx
209 movswl (%rax), %edx
210 movswq (%rax), %rdx
211
321fd21e
L
212 movzx %al, %si
213 movzx %al, %esi
214 movzx %al, %rsi
215 movzx %ax, %esi
216 movzx %ax, %rsi
ca61edf2
L
217 movzx (%rax), %edx
218 movzx (%rax), %rdx
219 movzx (%rax), %dx
220 movzb (%rax), %edx
221 movzb (%rax), %rdx
222 movzb (%rax), %dx
223 movzbl (%rax), %edx
224 movzbq (%rax), %rdx
225 movzbw (%rax), %dx
226 movzwl (%rax), %edx
227 movzwq (%rax), %rdx
228
229 .intel_syntax noprefix
321fd21e
L
230 movsx si,al
231 movsx esi,al
232 movsx rsi,al
233 movsx esi,ax
234 movsx rsi,ax
235 movsx rsi,eax
ca61edf2
L
236 movsx edx,BYTE PTR [rax]
237 movsx rdx,BYTE PTR [rax]
238 movsx dx,BYTE PTR [rax]
239 movsx edx,WORD PTR [rax]
240 movsx rdx,WORD PTR [rax]
241
321fd21e
L
242 movzx si,al
243 movzx esi,al
244 movzx rsi,al
245 movzx esi,ax
246 movzx rsi,ax
ca61edf2
L
247 movzx edx,BYTE PTR [rax]
248 movzx rdx,BYTE PTR [rax]
249 movzx dx,BYTE PTR [rax]
250 movzx edx,WORD PTR [rax]
251 movzx rdx,WORD PTR [rax]
252
f2a9c676
L
253 movq xmm1,QWORD PTR [rsp]
254 movq xmm1,[rsp]
255 movq QWORD PTR [rsp],xmm1
256 movq [rsp],xmm1
257
7d5e4556
L
258.att_syntax
259 fnstsw
260 fnstsw %ax
261 fstsw
262 fstsw %ax
263
264 .intel_syntax noprefix
265 fnstsw
266 fnstsw ax
267 fstsw
268 fstsw ax
5c07affc
L
269
270.att_syntax
271movsx (%rax),%ax
272movsx (%rax),%eax
273movsx (%rax),%rax
321fd21e
L
274movsxb (%rax), %dx
275movsxb (%rax), %edx
276movsxb (%rax), %rdx
277movsxw (%rax), %edx
278movsxw (%rax), %rdx
279movsxl (%rax), %rdx
5c07affc
L
280movsxd (%rax),%rax
281movzx (%rax),%ax
282movzx (%rax),%eax
283movzx (%rax),%rax
321fd21e
L
284movzxb (%rax), %dx
285movzxb (%rax), %edx
286movzxb (%rax), %rdx
287movzxw (%rax), %edx
288movzxw (%rax), %rdx
5c07affc
L
289
290movnti %eax, (%rax)
291movntil %eax, (%rax)
292movnti %rax, (%rax)
293movntiq %rax, (%rax)
294
295.intel_syntax noprefix
296
297movsx ax, BYTE PTR [rax]
298movsx eax, BYTE PTR [rax]
299movsx eax, WORD PTR [rax]
300movsx rax, WORD PTR [rax]
301movsx rax, DWORD PTR [rax]
302movsxd rax, [rax]
303movzx ax, BYTE PTR [rax]
304movzx eax, BYTE PTR [rax]
305movzx eax, WORD PTR [rax]
306movzx rax, WORD PTR [rax]
307
308movnti dword ptr [rax], eax
309movnti qword ptr [rax], rax
This page took 1.002652 seconds and 4 git commands to generate.