xchg edi, eax
cwde
cdq
- call 0x9090,0x90909090
+ call 0x9090:0x90909090
fwait
pushf
popf
sahf
lahf
- mov al, [0x90909090]
- mov eax, [0x90909090]
- mov [0x90909090], al
- mov [0x90909090], eax
+ mov al, FLAT:[0x90909090]
+ mov eax, FLAT:[0x90909090]
+ mov FLAT:[0x90909090], al
+ mov FLAT:[0x90909090], eax
movs byte ptr es:[edi], byte ptr ds:[esi]
movs dword ptr es:[edi], dword ptr ds:[esi]
cmps byte ptr ds:[esi], byte ptr es:[edi]
mov dword ptr 0x90909090[eax], 0x90909090
enter 0x9090, 0x90
leave
+ retf 0x9090
+ retf
lret 0x9090
lret
int3
out 0x90, eax
call .+5+0x90909090
jmp .+5+0x90909090
- jmp 0x9090,0x90909090
+ jmp 0x9090:0x90909090
jmp .+2-0x70
in al, dx
in eax, dx
lgs edx, 0x90909090[eax]
movzx edx, byte ptr 0x90909090[eax]
movzx edx, word ptr 0x90909090[eax]
- ud2b
+ ud2
btc 0x90909090[eax], edx
bsf edx, 0x90909090[eax]
bsr edx, 0x90909090[eax]
xchg di, ax
cbw
cwd
- callw 0x9090,0x9090
+ callw 0x9090:0x9090
pushfw
popfw
- mov ax, [0x90909090]
- mov [0x90909090], ax
+ mov ax, FLAT:[0x90909090]
+ mov FLAT:[0x90909090], ax
movs word ptr es:[edi], word ptr ds:[esi]
cmps word ptr ds:[esi], word ptr es:[edi]
test ax, 0x9090
mov word ptr 0x90909090[eax], 0x9090
enterw 0x9090, 0x90
leavew
+ retfw 0x9090
+ retfw
lretw 0x9090
lretw
iretw
in ax, 0x90
out 0x90, ax
callw .+3+0x9090
- jmpw 0x9090,0x9090
+ jmpw 0x9090:0x9090
in ax, dx
out dx, ax
not word ptr 0x90909090[eax]
mov eax, [ebx*2]
adc BYTE PTR [eax*4+0x90909090], dl
das
- jmp 0x9090,0x90909090
+ jmp 0x9090:0x90909090
movs WORD PTR es:[edi], WORD PTR ds:[esi]
jo .+2-0x70
mov ax, word ptr [ebx+2*eax+(2*(4095+1)*2)]
jmp eax
jmp [eax]
- jmp [bar]
+ jmp FLAT:[bar]
jmp bar
# Check arithmetic operators
fdivp
fdivp st(3)
fdivp st(3),st
-fdivp st,st(3)
+fdiv st,st(3)
fdivr
fdivr st(3)
fdivr st,st(3)
fdivrp
fdivrp st(3)
fdivrp st(3),st
-fdivrp st,st(3)
+fdivr st,st(3)
fmul
fmul st(3)
fmul st,st(3)
fsub QWORD PTR [ebx]
fsubp
fsubp st(3)
-fsubp st,st(3)
+fsub st,st(3)
fsubp st(3),st
fsubr st(3)
fsubr st,st(3)
fsubrp
fsubrp st(3)
fsubrp st(3),st
-fsubrp st,st(3)
+fsubr st,st(3)
+
+fidivr word ptr [ebx]
+fidivr dword ptr [ebx]
+
+ cmovpe edx, 0x90909090[eax]
+ cmovpo edx, 0x90909090[eax]
+ cmovpe dx, 0x90909090[eax]
+ cmovpo dx, 0x90909090[eax]
+
+ # Check base/index swapping
+ .allow_index_reg
+ mov eax, [eax+esp]
+ mov eax, [eiz+eax]
+ vgatherdps xmm0, [xmm1+eax], xmm2
+
+ # Test that disassembly of a partial instruction shows the partial byte:
+ # https://www.sourceware.org/ml/binutils/2015-08/msg00226.html
+ .byte 0x24
+ .byte 0x2f
+ .byte 0x0f
+barn:
+ .byte 0x0f
+ .byte 0xba
+ .byte 0xe2
+ .byte 0x03