Skip to content

Conversation

@mappzor
Copy link
Contributor

@mappzor mappzor commented Aug 24, 2025

OPERAND_DEFINITIONS table contains 8300+ entries and it's pretty big (105 KB). For comparison all DECODER_TREE_* tables combined are around 150 KB. Each ZydisOperandDefinition entry is 13 bytes and this PR reduces it to just 5 bytes. This has been achieved by moving two major size contributors to their own deduplicated tables.

size field has been moved to OPERAND_SIZES and saves around 40 KB (just 27 entries after deduplication). op union is now ZydisOperandDetails (OPERAND_DETAILS) which saves another 24 KB for grand total of 64 KB saved.

Most importantly this also resolves zyantific/zydis#523

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Undefined behavior in ZydisGetOperandSizeFromElementSize (memory alignment)

3 participants