Commit | Line | Data |
---|---|---|
b96d3a20 JH |
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] | |
ee86248c | 51 | ADD EAX,FLAT:[0x22222222] |
b96d3a20 JH |
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 | |
ee86248c | 89 | ADD DWORD PTR FLAT:[0x22222222],0x33 |
b96d3a20 | 90 | #new instructions |
ee86248c JB |
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 | |
b96d3a20 JH |
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: | |
b7240065 JB |
130 | mov al, offset flat:symbol |
131 | mov ax, offset flat:symbol | |
132 | mov eax, offset flat:symbol | |
133 | mov 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 | |
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 | ||
b300c311 L |
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 | ||
28a9d8f5 L |
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 | ||
f5804c90 L |
191 | cmpxchg16b (%rax) |
192 | ||
193 | .intel_syntax noprefix | |
fb9c77c7 | 194 | cmpxchg16b 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 | |
271 | movsx (%rax),%ax | |
272 | movsx (%rax),%eax | |
273 | movsx (%rax),%rax | |
321fd21e L |
274 | movsxb (%rax), %dx |
275 | movsxb (%rax), %edx | |
276 | movsxb (%rax), %rdx | |
277 | movsxw (%rax), %edx | |
278 | movsxw (%rax), %rdx | |
279 | movsxl (%rax), %rdx | |
5c07affc L |
280 | movsxd (%rax),%rax |
281 | movzx (%rax),%ax | |
282 | movzx (%rax),%eax | |
283 | movzx (%rax),%rax | |
321fd21e L |
284 | movzxb (%rax), %dx |
285 | movzxb (%rax), %edx | |
286 | movzxb (%rax), %rdx | |
287 | movzxw (%rax), %edx | |
288 | movzxw (%rax), %rdx | |
5c07affc L |
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 |