mirror of
https://github.com/bitdefender/bddisasm.git
synced 2024-12-23 06:28:13 +00:00
752bc626c4
Fixed VEX decoding in 32 bit mode - vex.vvvv bit 3 is simply ignored. Fixed several FMA instructions decoding (L/W flag should be ignored). Print the 64 bit immediate value in disassembly, instead of the raw immediate (note that the operand always contains the sign-extended, full immediate). XBEGIN always uses 32/64 bit RIP size (0x66 does not affect its size). Decode WBINVD even if it's preceded by 0x66/0xF2 prefixes. Several mnemonic fixes (FXSAVE64, FXRSTOR64, PUSHA/PUSHAD...). Properly decode VPERMIL2* instructions. Fixed SSE register decoding when it is encoded in immediate. Decode SCATTER instructions even though they use the VSIB index as source. Some disp8 fixes (t1s -> t1s8/t1s16). SYSCALL/SYSRET are decoded and executed in 32 bit compat modem, even though SDM states they are invalid. RDPID uses 32/64 bit reg size, never 16. Various other minor tweaks & fixes. Re-generated the test files, and added some more, new tests.
29 lines
3.0 KiB
Plaintext
29 lines
3.0 KiB
Plaintext
# Mnemonic Explicit Implicit Encoding Flags, Prefixes, Set, Category, Class, RW map, Additional ops
|
|
#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
PI2FW Pq,Qq nil [0x0F 0x0F /r 0x0C] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PI2FD Pq,Qq nil [0x0F 0x0F /r 0x0D] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PF2IW Pq,Qq nil [0x0F 0x0F /r 0x1C] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PF2ID Pq,Qq nil [0x0F 0x0F /r 0x1D] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFRCPV Pq,Qq nil [0x0F 0x0F /r 0x86] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFRSQRTV Pq,Qq nil [0x0F 0x0F /r 0x87] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFNACC Pq,Qq nil [0x0F 0x0F /r 0x8A] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFPNACC Pq,Qq nil [0x0F 0x0F /r 0x8E] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFCMPGE Pq,Qq nil [0x0F 0x0F /r 0x90] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFMIN Pq,Qq nil [0x0F 0x0F /r 0x94] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFRCP Pq,Qq nil [0x0F 0x0F /r 0x96] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFRSQRT Pq,Qq nil [0x0F 0x0F /r 0x97] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFSUB Pq,Qq nil [0x0F 0x0F /r 0x9A] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFADD Pq,Qq nil [0x0F 0x0F /r 0x9E] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFCMPGT Pq,Qq nil [0x0F 0x0F /r 0xA0] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFMAX Pq,Qq nil [0x0F 0x0F /r 0xA4] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFRCPIT1 Pq,Qq nil [0x0F 0x0F /r 0xA6] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFRSQIT1 Pq,Qq nil [0x0F 0x0F /r 0xA7] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFSUBR Pq,Qq nil [0x0F 0x0F /r 0xAA] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFACC Pq,Qq nil [0x0F 0x0F /r 0xAE] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFCMPEQ Pq,Qq nil [0x0F 0x0F /r 0xB0] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFMUL Pq,Qq nil [0x0F 0x0F /r 0xB4] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PFRCPIT2 Pq,Qq nil [0x0F 0x0F /r 0xB6] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PMULHRW Pq,Qq nil [0x0F 0x0F /r 0xB7] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PSWAPD Pq,Qq nil [0x0F 0x0F /r 0xBB] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|
|
PAVGUSB Pq,Qq nil [0x0F 0x0F /r 0xBF] s:3DNOW, t:3DNOW, w:RW|R, a:3DNOW
|