mirror of
https://github.com/bitdefender/bddisasm.git
synced 2024-11-18 13:38:07 +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.
87 lines
4.5 KiB
Plaintext
87 lines
4.5 KiB
Plaintext
0000000000000000 c7f8faffffff XBEGIN 0x0
|
|
DSIZE: 32, ASIZE: 64, VLEN: -
|
|
ISA Set: TSX, Ins cat: COND_BR, CET tracked: no
|
|
CPUID leaf: 0x00000007, sub-leaf: 0x00000000, reg: ebx, bit: 11
|
|
Valid modes
|
|
R0: yes, R1: yes, R2: yes, R3: yes
|
|
Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes
|
|
SMM: yes, SGX: yes, TSX: yes, VMXRoot: yes, VMXNonRoot: yes
|
|
Valid prefixes
|
|
REP: no, REPcc: no, LOCK: no
|
|
HLE: no, XACQUIRE only: no, XRELEASE only: no
|
|
BND: no, BHINT: no, DNT: no
|
|
Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 4, Encoding: D
|
|
Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1
|
|
Operand: 2, Acc: --, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1
|
|
|
|
0000000000000006 0f01d6 XTEST
|
|
DSIZE: 32, ASIZE: 64, VLEN: -
|
|
ISA Set: TSX, Ins cat: LOGIC, CET tracked: no
|
|
CPUID leaf: 0x00000007, sub-leaf: 0x00000000, reg: ebx, bit: 11
|
|
FLAGS access
|
|
CF: 0, PF: 0, AF: 0, ZF: m, SF: 0, OF: 0,
|
|
Valid modes
|
|
R0: yes, R1: yes, R2: yes, R3: yes
|
|
Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes
|
|
SMM: yes, SGX: yes, TSX: yes, VMXRoot: yes, VMXNonRoot: yes
|
|
Valid prefixes
|
|
REP: no, REPcc: no, LOCK: no
|
|
HLE: no, XACQUIRE only: no, XRELEASE only: no
|
|
BND: no, BHINT: no, DNT: no
|
|
Operand: 0, Acc: -W, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: Flags, RegSize: 4, RegId: 0, RegCount: 1
|
|
|
|
0000000000000009 c6f800 XABORT 0x00
|
|
DSIZE: 32, ASIZE: 64, VLEN: -
|
|
ISA Set: TSX, Ins cat: UNCOND_BR, CET tracked: no
|
|
CPUID leaf: 0x00000007, sub-leaf: 0x00000000, reg: ebx, bit: 11
|
|
Valid modes
|
|
R0: yes, R1: yes, R2: yes, R3: yes
|
|
Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes
|
|
SMM: yes, SGX: yes, TSX: no, VMXRoot: yes, VMXNonRoot: yes
|
|
Valid prefixes
|
|
REP: no, REPcc: no, LOCK: no
|
|
HLE: no, XACQUIRE only: no, XRELEASE only: no
|
|
BND: no, BHINT: no, DNT: no
|
|
Operand: 0, Acc: R-, Type: Immediate, Size: 1, RawSize: 1, Encoding: I
|
|
Operand: 1, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1
|
|
|
|
000000000000000C 0f01d5 XEND
|
|
DSIZE: 32, ASIZE: 64, VLEN: -
|
|
ISA Set: TSX, Ins cat: COND_BR, CET tracked: no
|
|
CPUID leaf: 0x00000007, sub-leaf: 0x00000000, reg: ebx, bit: 11
|
|
Valid modes
|
|
R0: yes, R1: yes, R2: yes, R3: yes
|
|
Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes
|
|
SMM: yes, SGX: yes, TSX: yes, VMXRoot: yes, VMXNonRoot: yes
|
|
Valid prefixes
|
|
REP: no, REPcc: no, LOCK: no
|
|
HLE: no, XACQUIRE only: no, XRELEASE only: no
|
|
BND: no, BHINT: no, DNT: no
|
|
|
|
000000000000000F f20f01e8 XSUSLDTRK
|
|
DSIZE: 32, ASIZE: 64, VLEN: -
|
|
ISA Set: TSXLDTRK, Ins cat: MISC, CET tracked: no
|
|
CPUID leaf: 0x00000007, sub-leaf: 0x00000000, reg: edx, bit: 16
|
|
Valid modes
|
|
R0: yes, R1: yes, R2: yes, R3: yes
|
|
Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes
|
|
SMM: yes, SGX: yes, TSX: yes, VMXRoot: yes, VMXNonRoot: yes
|
|
Valid prefixes
|
|
REP: no, REPcc: no, LOCK: no
|
|
HLE: no, XACQUIRE only: no, XRELEASE only: no
|
|
BND: no, BHINT: no, DNT: no
|
|
|
|
0000000000000013 f20f01e9 XRESLDTRK
|
|
DSIZE: 32, ASIZE: 64, VLEN: -
|
|
ISA Set: TSXLDTRK, Ins cat: MISC, CET tracked: no
|
|
CPUID leaf: 0x00000007, sub-leaf: 0x00000000, reg: edx, bit: 16
|
|
Valid modes
|
|
R0: yes, R1: yes, R2: yes, R3: yes
|
|
Real: yes, V8086: yes, Prot: yes, Compat: yes, Long: yes
|
|
SMM: yes, SGX: yes, TSX: yes, VMXRoot: yes, VMXNonRoot: yes
|
|
Valid prefixes
|
|
REP: no, REPcc: no, LOCK: no
|
|
HLE: no, XACQUIRE only: no, XRELEASE only: no
|
|
BND: no, BHINT: no, DNT: no
|
|
|