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