3 # REX prefix and addressing modes.
13 add rax,0xfffffffff4332211
34 REP MOVSQ #[RSI],[RDI]
36 REP MOVSQ #[RSI],[RDI]
43 MOV RAX,0x1122334455667788
44 MOV R8,0x1122334455667788
49 ADD EAX,[0x22222222+RIP]
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 [0x22222222],0x33
91 MOVABS AL,[0x8877665544332211]
92 MOVABS EAX,[0x8877665544332211]
93 MOVABS [0x8877665544332211],AL
94 MOVABS [0x8877665544332211],EAX
95 MOVABS RAX,[0x8877665544332211]
96 MOVABS [0x8877665544332211],RAX
104 #testcase for symbol references.
106 #immediates - various sizes:
115 #absolute 64bit addressing
118 #absolute 32bit addressing
122 mov symbol(%rax), %eax
125 mov symbol(%rip), %eax
127 .intel_syntax noprefix
129 #immediates - various sizes:
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
141 #absolute 64bit addressing
144 #absolute 32bit addressing
148 mov eax, [rax+symbol]
151 mov eax, [rip+symbol]
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
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
193 .intel_syntax noprefix
194 cmpxchg16b oword ptr [rax]
218 .intel_syntax noprefix
219 movsx edx,BYTE PTR [rax]
220 movsx rdx,BYTE PTR [rax]
221 movsx dx,BYTE PTR [rax]
222 movsx edx,WORD PTR [rax]
223 movsx rdx,WORD PTR [rax]
225 movzx edx,BYTE PTR [rax]
226 movzx rdx,BYTE PTR [rax]
227 movzx dx,BYTE PTR [rax]
228 movzx edx,WORD PTR [rax]
229 movzx rdx,WORD PTR [rax]
231 movq xmm1,QWORD PTR [rsp]
233 movq QWORD PTR [rsp],xmm1
242 .intel_syntax noprefix
262 .intel_syntax noprefix
264 movsx ax, BYTE PTR [rax]
265 movsx eax, BYTE PTR [rax]
266 movsx eax, WORD PTR [rax]
267 movsx rax, WORD PTR [rax]
268 movsx rax, DWORD PTR [rax]
270 movzx ax, BYTE PTR [rax]
271 movzx eax, BYTE PTR [rax]
272 movzx eax, WORD PTR [rax]
273 movzx rax, WORD PTR [rax]
275 movnti dword ptr [rax], eax
276 movnti qword ptr [rax], rax