x86: replace adhoc (partly wrong) ambiguous operand checking for MOVSX/MOVZX
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / ilp32 / x86-64.s
CommitLineData
7f56bc95
L
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]
51ADD EAX,FLAT:[0x22222222]
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
89ADD DWORD PTR FLAT:[0x22222222],0x33
90#new instructions
91MOV AL,FLAT:[0x8877665544332211]
92MOV EAX,FLAT:[0x8877665544332211]
93MOV FLAT:[0x8877665544332211],AL
94MOV FLAT:[0x8877665544332211],EAX
95MOV RAX,FLAT:[0x8877665544332211]
96MOV FLAT:[0x8877665544332211],RAX
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 32bit addressing
116mov symbol, %eax
117
118#arithmetic
119mov symbol(%rax), %eax
120
121#RIP relative
122mov symbol(%rip), %eax
123
124.intel_syntax noprefix
125
126#immediates - various sizes:
127mov al, offset flat:symbol
128mov ax, offset flat:symbol
129mov eax, offset flat:symbol
130mov 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
139mov eax, [symbol]
140
141#arithmetic
142mov eax, [rax+symbol]
143
144#RIP relative
145mov eax, [rip+symbol]
146
147foo:
148.att_syntax
149#absolute 64bit addressing
150mov 0x8877665544332211,%al
151mov 0x8877665544332211,%ax
152mov 0x8877665544332211,%eax
153mov 0x8877665544332211,%rax
154mov %al,0x8877665544332211
155mov %ax,0x8877665544332211
156mov %eax,0x8877665544332211
157mov %rax,0x8877665544332211
158movb 0x8877665544332211,%al
159movw 0x8877665544332211,%ax
160movl 0x8877665544332211,%eax
161movq 0x8877665544332211,%rax
162movb %al,0x8877665544332211
163movw %ax,0x8877665544332211
164movl %eax,0x8877665544332211
165movq %rax,0x8877665544332211
166
167#absolute signed 32bit addressing
168mov 0xffffffffff332211,%al
169mov 0xffffffffff332211,%ax
170mov 0xffffffffff332211,%eax
171mov 0xffffffffff332211,%rax
172mov %al,0xffffffffff332211
173mov %ax,0xffffffffff332211
174mov %eax,0xffffffffff332211
175mov %rax,0xffffffffff332211
176movb 0xffffffffff332211,%al
177movw 0xffffffffff332211,%ax
178movl 0xffffffffff332211,%eax
179movq 0xffffffffff332211,%rax
180movb %al,0xffffffffff332211
181movw %ax,0xffffffffff332211
182movl %eax,0xffffffffff332211
183movq %rax,0xffffffffff332211
184
185cmpxchg16b (%rax)
186
187.intel_syntax noprefix
188cmpxchg16b 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
7f56bc95
L
197 movsx (%rax), %dx
198 movsbl (%rax), %edx
199 movsbq (%rax), %rdx
200 movsbw (%rax), %dx
201 movswl (%rax), %edx
202 movswq (%rax), %rdx
203
204 movzx %al, %si
205 movzx %al, %esi
206 movzx %al, %rsi
207 movzx %ax, %esi
208 movzx %ax, %rsi
7f56bc95
L
209 movzx (%rax), %dx
210 movzb (%rax), %edx
211 movzb (%rax), %rdx
212 movzb (%rax), %dx
213 movzbl (%rax), %edx
214 movzbq (%rax), %rdx
215 movzbw (%rax), %dx
216 movzwl (%rax), %edx
217 movzwq (%rax), %rdx
218
219 .intel_syntax noprefix
220 movsx si,al
221 movsx esi,al
222 movsx rsi,al
223 movsx esi,ax
224 movsx rsi,ax
225 movsx rsi,eax
226 movsx edx,BYTE PTR [rax]
227 movsx rdx,BYTE PTR [rax]
228 movsx dx,BYTE PTR [rax]
229 movsx edx,WORD PTR [rax]
230 movsx rdx,WORD PTR [rax]
231
232 movzx si,al
233 movzx esi,al
234 movzx rsi,al
235 movzx esi,ax
236 movzx rsi,ax
237 movzx edx,BYTE PTR [rax]
238 movzx rdx,BYTE PTR [rax]
239 movzx dx,BYTE PTR [rax]
240 movzx edx,WORD PTR [rax]
241 movzx rdx,WORD PTR [rax]
242
243 movq xmm1,QWORD PTR [rsp]
244 movq xmm1,[rsp]
245 movq QWORD PTR [rsp],xmm1
246 movq [rsp],xmm1
247
248.att_syntax
249 fnstsw
250 fnstsw %ax
251 fstsw
252 fstsw %ax
253
254 .intel_syntax noprefix
255 fnstsw
256 fnstsw ax
257 fstsw
258 fstsw ax
259
260.att_syntax
261movsx (%rax),%ax
7f56bc95
L
262movsxb (%rax), %dx
263movsxb (%rax), %edx
264movsxb (%rax), %rdx
265movsxw (%rax), %edx
266movsxw (%rax), %rdx
267movsxl (%rax), %rdx
268movsxd (%rax),%rax
269movzx (%rax),%ax
7f56bc95
L
270movzxb (%rax), %dx
271movzxb (%rax), %edx
272movzxb (%rax), %rdx
273movzxw (%rax), %edx
274movzxw (%rax), %rdx
275
276movnti %eax, (%rax)
277movntil %eax, (%rax)
278movnti %rax, (%rax)
279movntiq %rax, (%rax)
280
281.intel_syntax noprefix
282
283movsx ax, BYTE PTR [rax]
284movsx eax, BYTE PTR [rax]
285movsx eax, WORD PTR [rax]
286movsx rax, WORD PTR [rax]
287movsx rax, DWORD PTR [rax]
288movsxd rax, [rax]
289movzx ax, BYTE PTR [rax]
290movzx eax, BYTE PTR [rax]
291movzx eax, WORD PTR [rax]
292movzx rax, WORD PTR [rax]
293
294movnti dword ptr [rax], eax
295movnti qword ptr [rax], rax
This page took 0.458492 seconds and 4 git commands to generate.