Home | History | Annotate | Download | only in ilp32
      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
    197 	movsx	(%rax), %edx
    198 	movsx	(%rax), %rdx
    199 	movsx	(%rax), %dx
    200 	movsbl	(%rax), %edx
    201 	movsbq	(%rax), %rdx
    202 	movsbw	(%rax), %dx
    203 	movswl	(%rax), %edx
    204 	movswq	(%rax), %rdx
    205 
    206 	movzx	%al, %si
    207 	movzx	%al, %esi
    208 	movzx	%al, %rsi
    209 	movzx	%ax, %esi
    210 	movzx	%ax, %rsi
    211 	movzx	(%rax), %edx
    212 	movzx	(%rax), %rdx
    213 	movzx	(%rax), %dx
    214 	movzb	(%rax), %edx
    215 	movzb	(%rax), %rdx
    216 	movzb	(%rax), %dx
    217 	movzbl	(%rax), %edx
    218 	movzbq	(%rax), %rdx
    219 	movzbw	(%rax), %dx
    220 	movzwl	(%rax), %edx
    221 	movzwq	(%rax), %rdx
    222 
    223 	.intel_syntax noprefix
    224 	movsx	si,al
    225 	movsx	esi,al
    226 	movsx	rsi,al
    227 	movsx	esi,ax
    228 	movsx	rsi,ax
    229 	movsx	rsi,eax
    230 	movsx	edx,BYTE PTR [rax]
    231 	movsx	rdx,BYTE PTR [rax]
    232 	movsx	dx,BYTE PTR [rax]
    233 	movsx	edx,WORD PTR [rax]
    234 	movsx	rdx,WORD PTR [rax]
    235 
    236 	movzx	si,al
    237 	movzx	esi,al
    238 	movzx	rsi,al
    239 	movzx	esi,ax
    240 	movzx	rsi,ax
    241 	movzx	edx,BYTE PTR [rax]
    242 	movzx	rdx,BYTE PTR [rax]
    243 	movzx	dx,BYTE PTR [rax]
    244 	movzx	edx,WORD PTR [rax]
    245 	movzx	rdx,WORD PTR [rax]
    246 
    247 	movq	xmm1,QWORD PTR [rsp]
    248 	movq	xmm1,[rsp]
    249 	movq	QWORD PTR [rsp],xmm1
    250 	movq	[rsp],xmm1
    251 
    252 .att_syntax
    253 	fnstsw
    254 	fnstsw	%ax
    255 	fstsw
    256 	fstsw	%ax
    257 
    258 	.intel_syntax noprefix
    259 	fnstsw
    260 	fnstsw	ax
    261 	fstsw
    262 	fstsw	ax
    263 
    264 .att_syntax
    265 movsx (%rax),%ax
    266 movsx (%rax),%eax
    267 movsx (%rax),%rax
    268 movsxb	(%rax), %dx
    269 movsxb	(%rax), %edx
    270 movsxb	(%rax), %rdx
    271 movsxw	(%rax), %edx
    272 movsxw	(%rax), %rdx
    273 movsxl	(%rax), %rdx
    274 movsxd (%rax),%rax
    275 movzx (%rax),%ax
    276 movzx (%rax),%eax
    277 movzx (%rax),%rax
    278 movzxb	(%rax), %dx
    279 movzxb	(%rax), %edx
    280 movzxb	(%rax), %rdx
    281 movzxw	(%rax), %edx
    282 movzxw	(%rax), %rdx
    283 
    284 movnti %eax, (%rax)
    285 movntil %eax, (%rax)
    286 movnti %rax, (%rax)
    287 movntiq %rax, (%rax)
    288 
    289 .intel_syntax noprefix
    290 
    291 movsx ax, BYTE PTR [rax]
    292 movsx eax, BYTE PTR [rax]
    293 movsx eax, WORD PTR [rax]
    294 movsx rax, WORD PTR [rax]
    295 movsx rax, DWORD PTR [rax]
    296 movsxd rax, [rax]
    297 movzx ax, BYTE PTR [rax]
    298 movzx eax, BYTE PTR [rax]
    299 movzx eax, WORD PTR [rax]
    300 movzx rax, WORD PTR [rax]
    301 
    302 movnti dword ptr [rax], eax
    303 movnti qword ptr [rax], rax
    304