github zyantific/zydis v2.0.0
v2.0.0 Final

latest releases: v4.1.1, v4.1.0, v4.0.0...
8 years ago

This is the final release of Zydis 2.

Detailed changelog (since v2.0.0-beta1)

  • Improved instruction decoding

    • Fixed decoding of XOP instructions
    • Fixed handling of illegal LOCK prefixes for XOP/VEX/EVEX/MVEX instructions
    • Significantly improved detection of bad register values
    • Added check for invalid GATHER registers
    • Fixed EVEX/MVEX.R' not beeing ignored in 16- and 32-bit mode
  • Improved formatter

    • Omitting an operand by using formatter hooks will now correctly omit the semicolon as well
    • ZYDIS_FORMATTER_HOOK_PRE_OPERAND and ZYDIS_FORMATTER_HOOK_POST_OPERAND can now be used to omit a specific operand
    • Added ZydisFormatterFormatOperand and ZydisFormatterFormatOperandEx (this won't print AVX-512/KNC decorators)
    • User defined callbacks should return ZYDIS_STATUS_SKIP_OPERAND to omit an operand (returning ZYDIS_STATUS_SUCCESS without writing to the buffer is now deprecated)
  • Added new instructions

    • PCONFIG
    • EXTRQ, INSERTQ, MOVNTSD, MOVNTSS (SSE4a)
    • MONITORX, MWAITX
    • ENCLV
    • VPOPCNTD/VPOPCNTQ instructions with 128- and 256-bit vector-length
    • Added missing VEX-encoded GFNI instructions
  • Fixed some instruction definitions

    • Changed XSAVE/XSAVEOPT memory operand from W to RW
    • Changed amount of bytes popped from stack by the IRET instruction
    • Fixed LWPINS and LWPVAL instructions
    • Fixed exception-class of some GFNI instructions
    • Fixed RDRAND and RDSEED instructions
    • Fixed SYSRET instruction
    • Fixed XCHG R8, RAX falsely beeing decoded as NOP
    • Fixed operand size of some conditional jump instructions
    • Changed destination operand action of PEXT, PDEP and ANDN from read/write to write-only
  • Misc bugfixes

    • Fixed formatting of memory operands with explicit segment register
    • Fixed a bug in ZydisRegisterGetClass that caused the function to report invalid register-classes for IP and FLAGS registers
    • Changed type of implicit memory operands to ZYDIS_MEMOP_TYPE_MEM instead of ZYDIS_MEMOP_TYPE_INVALID

Don't miss a new zydis release

NewReleases is sending notifications on new releases.