ef887d5b5f3bcd0685b97d3e273897f94c33a745
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / 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 MOVABS AL,FLAT:[0x8877665544332211]
92 MOVABS EAX,FLAT:[0x8877665544332211]
93 MOVABS FLAT:[0x8877665544332211],AL
94 MOVABS FLAT:[0x8877665544332211],EAX
95 MOVABS RAX,FLAT:[0x8877665544332211]
96 MOVABS 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 64bit addressing
116 movabs symbol, %eax
117
118 #absolute 32bit addressing
119 mov symbol, %eax
120
121 #arithmetic
122 mov symbol(%rax), %eax
123
124 #RIP relative
125 mov symbol(%rip), %eax
126
127 .intel_syntax noprefix
128
129 #immediates - various sizes:
130 mov al, offset flat:symbol
131 mov ax, offset flat:symbol
132 mov eax, offset flat:symbol
133 mov rax, offset flat:symbol
134
135 #parts aren't supported by the parser, yet (and not at all for symbol refs)
136 #mov eax, high part symbol
137 #mov eax, low part symbol
138
139 #addressing modes
140
141 #absolute 64bit addressing
142 movabs eax, [symbol]
143
144 #absolute 32bit addressing
145 mov eax, [symbol]
146
147 #arithmetic
148 mov eax, [rax+symbol]
149
150 #RIP relative
151 mov eax, [rip+symbol]
152
153 foo:
154 .att_syntax
155 #absolute 64bit addressing
156 mov 0x8877665544332211,%al
157 mov 0x8877665544332211,%ax
158 mov 0x8877665544332211,%eax
159 mov 0x8877665544332211,%rax
160 mov %al,0x8877665544332211
161 mov %ax,0x8877665544332211
162 mov %eax,0x8877665544332211
163 mov %rax,0x8877665544332211
164 movb 0x8877665544332211,%al
165 movw 0x8877665544332211,%ax
166 movl 0x8877665544332211,%eax
167 movq 0x8877665544332211,%rax
168 movb %al,0x8877665544332211
169 movw %ax,0x8877665544332211
170 movl %eax,0x8877665544332211
171 movq %rax,0x8877665544332211
172
173 #absolute signed 32bit addressing
174 mov 0xffffffffff332211,%al
175 mov 0xffffffffff332211,%ax
176 mov 0xffffffffff332211,%eax
177 mov 0xffffffffff332211,%rax
178 mov %al,0xffffffffff332211
179 mov %ax,0xffffffffff332211
180 mov %eax,0xffffffffff332211
181 mov %rax,0xffffffffff332211
182 movb 0xffffffffff332211,%al
183 movw 0xffffffffff332211,%ax
184 movl 0xffffffffff332211,%eax
185 movq 0xffffffffff332211,%rax
186 movb %al,0xffffffffff332211
187 movw %ax,0xffffffffff332211
188 movl %eax,0xffffffffff332211
189 movq %rax,0xffffffffff332211
190
191 cmpxchg16b (%rax)
192
193 .intel_syntax noprefix
194 cmpxchg16b oword ptr [rax]
195
196 .att_syntax
197 movsx %al, %si
198 movsx %al, %esi
199 movsx %al, %rsi
200 movsx %ax, %esi
201 movsx %ax, %rsi
202 movsx %eax, %rsi
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
212 movzx %al, %si
213 movzx %al, %esi
214 movzx %al, %rsi
215 movzx %ax, %esi
216 movzx %ax, %rsi
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
230 movsx si,al
231 movsx esi,al
232 movsx rsi,al
233 movsx esi,ax
234 movsx rsi,ax
235 movsx rsi,eax
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
242 movzx si,al
243 movzx esi,al
244 movzx rsi,al
245 movzx esi,ax
246 movzx rsi,ax
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
253 movq xmm1,QWORD PTR [rsp]
254 movq xmm1,[rsp]
255 movq QWORD PTR [rsp],xmm1
256 movq [rsp],xmm1
257
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
269
270 .att_syntax
271 movsx (%rax),%ax
272 movsx (%rax),%eax
273 movsx (%rax),%rax
274 movsxb (%rax), %dx
275 movsxb (%rax), %edx
276 movsxb (%rax), %rdx
277 movsxw (%rax), %edx
278 movsxw (%rax), %rdx
279 movsxl (%rax), %rdx
280 movsxd (%rax),%rax
281 movzx (%rax),%ax
282 movzx (%rax),%eax
283 movzx (%rax),%rax
284 movzxb (%rax), %dx
285 movzxb (%rax), %edx
286 movzxb (%rax), %rdx
287 movzxw (%rax), %edx
288 movzxw (%rax), %rdx
289
290 movnti %eax, (%rax)
291 movntil %eax, (%rax)
292 movnti %rax, (%rax)
293 movntiq %rax, (%rax)
294
295 .intel_syntax noprefix
296
297 movsx ax, BYTE PTR [rax]
298 movsx eax, BYTE PTR [rax]
299 movsx eax, WORD PTR [rax]
300 movsx rax, WORD PTR [rax]
301 movsx rax, DWORD PTR [rax]
302 movsxd rax, [rax]
303 movzx ax, BYTE PTR [rax]
304 movzx eax, BYTE PTR [rax]
305 movzx eax, WORD PTR [rax]
306 movzx rax, WORD PTR [rax]
307
308 movnti dword ptr [rax], eax
309 movnti qword ptr [rax], rax
This page took 0.03629 seconds and 3 git commands to generate.