Commit | Line | Data |
---|---|---|
7f56bc95 L |
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 | |
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 | |
261 | movsx (%rax),%ax | |
7f56bc95 L |
262 | movsxb (%rax), %dx |
263 | movsxb (%rax), %edx | |
264 | movsxb (%rax), %rdx | |
265 | movsxw (%rax), %edx | |
266 | movsxw (%rax), %rdx | |
267 | movsxl (%rax), %rdx | |
268 | movsxd (%rax),%rax | |
269 | movzx (%rax),%ax | |
7f56bc95 L |
270 | movzxb (%rax), %dx |
271 | movzxb (%rax), %edx | |
272 | movzxb (%rax), %rdx | |
273 | movzxw (%rax), %edx | |
274 | movzxw (%rax), %rdx | |
275 | ||
276 | movnti %eax, (%rax) | |
277 | movntil %eax, (%rax) | |
278 | movnti %rax, (%rax) | |
279 | movntiq %rax, (%rax) | |
280 | ||
281 | .intel_syntax noprefix | |
282 | ||
283 | movsx ax, BYTE PTR [rax] | |
284 | movsx eax, BYTE PTR [rax] | |
285 | movsx eax, WORD PTR [rax] | |
286 | movsx rax, WORD PTR [rax] | |
287 | movsx rax, DWORD PTR [rax] | |
288 | movsxd rax, [rax] | |
289 | movzx ax, BYTE PTR [rax] | |
290 | movzx eax, BYTE PTR [rax] | |
291 | movzx eax, WORD PTR [rax] | |
292 | movzx rax, WORD PTR [rax] | |
293 | ||
294 | movnti dword ptr [rax], eax | |
295 | movnti qword ptr [rax], rax |