mirror of
https://github.com/Inori/GPCS4.git
synced 2025-04-02 10:31:52 -04:00
1.9 KiB
1.9 KiB
Porting Guide v3 -> v4
API changes
ZydisDecodedInstruction
- Removed field
operands
- The
operands
array is passed to the desired decoder function as a separate argument instead
- The
- Added field
operand_count_visible
- Contains the number of visible (explicit and implicit) operands
ZydisDecoder
1
Removed:
ZYDIS_EXPORT ZyanStatus ZydisDecoderDecodeBuffer(const ZydisDecoder* decoder,
const void* buffer, ZyanUSize length, ZydisDecodedInstruction* instruction);
Replaced by:
ZYDIS_EXPORT ZyanStatus ZydisDecoderDecodeFull(const ZydisDecoder* decoder,
const void* buffer, ZyanUSize length, ZydisDecodedInstruction* instruction,
ZydisDecodedOperand* operands, ZyanU8 operand_count, ZydisDecodingFlags flags);
2
Added:
ZYDIS_EXPORT ZyanStatus ZydisDecoderDecodeInstruction(const ZydisDecoder* decoder,
ZydisDecoderContext* context, const void* buffer, ZyanUSize length,
ZydisDecodedInstruction* instruction);
Added:
ZYDIS_EXPORT ZyanStatus ZydisDecoderDecodeOperands(const ZydisDecoder* decoder,
const ZydisDecoderContext* context, const ZydisDecodedInstruction* instruction,
ZydisDecodedOperand* operands, ZyanU8 operand_count);
General
- Type renamed:
ZydisAddressWidth
->ZydisStackWidth
- Constants renamed:
ZYDIS_ADDRESS_WIDTH_XXX
->ZYDIS_STACK_WIDTH_XXX
- Constants renamed:
- Enum changed:
ZydisMemoryOperandType
- Constants added:
ZYDIS_MEMOP_TYPE_VSIB
- Constants added:
- Decoding behavior changed:
- In case of vector SIB addressing memory operands,
ZYDIS_MEMOP_TYPE_VSIB
will be reported by the decoder instead ofZYDIS_MEMOP_TYPE_MEM
(inZydisDecodedOperand.mem.type
)
- In case of vector SIB addressing memory operands,
- Constants renamed:
ZYDIS_STATIC_DEFINE
->ZYDIS_STATIC_BUILD
Zydis_EXPORTS
->ZYDIS_SHOULD_EXPORT
Changes relevant for language bindings
- The
ZYDIS_ATTRIB_
defines were rebased (underlying bits were changed) - New type:
ZydisDecodingFlags
- New type:
ZydisDecoderContext