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]
51 ADD EAX,FLAT:[0x22222222]
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
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
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:
130 mov al, offset flat:symbol
131 mov ax, offset flat:symbol
132 mov eax, offset flat:symbol
133 mov rax, offset flat:symbol
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]
229 .intel_syntax noprefix
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]
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]
253 movq xmm1,QWORD PTR [rsp]
255 movq QWORD PTR [rsp],xmm1
264 .intel_syntax noprefix
295 .intel_syntax noprefix
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]
303 movzx ax, BYTE PTR [rax]
304 movzx eax, BYTE PTR [rax]
305 movzx eax, WORD PTR [rax]
306 movzx rax, WORD PTR [rax]
308 movnti dword ptr [rax], eax
309 movnti qword ptr [rax], rax