Conversation
There was a problem hiding this comment.
Pull request overview
Updates the bundled Zydis integration (and related build/test scaffolding) to a newer 5.x development snapshot, aligning radare2’s x86.zydis plugin and expected analysis output with upstream changes.
Changes:
- Switch Meson wrap from a fixed 4.1.0 amalgamated tarball to a pinned Zydis git revision.
- Update the x86 Zydis plugin to handle the Zydis 5 displacement field change (
mem.disp.has_displacement→mem.disp.size). - Refresh bundled Zydis amalgamated headers/patch metadata and adjust the corresponding analyzer test expectations.
Reviewed changes
Copilot reviewed 7 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| test/db/anal/x86_zydis | Updates expected aoj JSON output to match the new Zydis snapshot. |
| subprojects/zydis.wrap | Moves from wrap-file tarball to a pinned wrap-git checkout of Zydis. |
| subprojects/packagefiles/zydis/zydis-patches/unused-rex-token-aliases.patch | Updates patch hunk offsets to match the regenerated amalgamated source. |
| subprojects/packagefiles/zydis/README.radare2 | Documents the new Zydis commit snapshot and how to regenerate amalgamated-dist. |
| subprojects/packagefiles/zydis/meson.build | Bumps embedded subproject version metadata to 5.0.0. |
| subprojects/packagefiles/zydis/amalgamated-dist/Zydis.h | Updates vendored amalgamated header to Zydis 5 snapshot (new enums/fields/APX support, etc.). |
| libr/arch/p/x86/plugin_zydis.c | Adapts plugin logic for Zydis 5 displacement representation. |
| dist/nix/package.nix | Adjusts Nix packaging to use the vendored Zydis packagefiles directory rather than a fetched tarball. |
| lead_directory_missing = true | ||
| patch_directory = zydis No newline at end of file | ||
| patch_directory = zydis | ||
| depth = 1 |
| @@ -7802,6 +8306,14 @@ typedef struct ZydisEncoderRequest_ | |||
| * Specify `ZYAN_TRUE` for instructions with forced zeroing mask. | |||
| */ | |||
| ZyanBool zeroing_mask; | |||
| /** | |||
| * Supress status flags update for certain `APX` instructions. | |||
| * Supress status flags update for certain `APX` instructions. | ||
| */ | ||
| ZyanBool no_flags; |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 9 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
subprojects/packagefiles/zydis/amalgamated-dist/Zydis.h:8310
- Typo in comment: "Supress" should be "Suppress".
* Supress status flags update for certain `APX` instructions.
| #if defined(ZYDIS_DECODER_MODE_APX) | ||
| #define HAS_MEM_DISP(op) ((op)->mem.disp.size != 0) | ||
| #else | ||
| #define HAS_MEM_DISP(op) ((op)->mem.disp.has_displacement) | ||
| #endif |
|
treat the vendoring as temporary: when v5 tags, swap the in-tree copy back to a wrap. You gain APX decoding and network-free builds now, at the cost of a few MB of git history that stays forever even after reverting. |
Description