AnyPS5/core/relinker/codegen/include/codegen
Achraf Reyani ce8dbc977f fix(relinker): decode XOP instructions
The x86 decoder had no XOP (AMD 8F escape) support and read 8F E8.. as
POP r/m, losing instruction boundaries. Since #2238 roots code addresses
taken by RIP-relative LEA, code analysis reaches CPU-dispatched XOP
paths, such as the vpperm routines in Stremio Plus (PPSA74126), OpenNOW
(PPSA99082) and PPSA99420, and their Windows conversion failed with
"Code analysis: overlapping instruction boundaries". Decode 8F followed
by a map of 8 or more as a three-byte XOP prefix (8F can only be POP r/m
with ModRM.reg 0) with a ModRM operand, an 8-bit immediate in map 8 and
a 32-bit immediate in map 0Ah, in both the length and operand decoders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:27:24 +13:00
..
x86 fix(relinker): decode XOP instructions 2026-10-10 19:27:24 +13:00
CodegenException.hpp refactor(core): seprated folders for relinker and libs 2026-09-11 14:53:01 +03:00
CodegenTypes.hpp feat(relinker): relocate RIP-relative operands into --to-intel stubs 2026-10-08 11:10:38 +02:00
IAmd64OnlyConverter.hpp refactor(core): seprated folders for relinker and libs 2026-09-11 14:53:01 +03:00
IInstructionDecoder.hpp refactor(core): seprated folders for relinker and libs 2026-09-11 14:53:01 +03:00
IInstructionRewriter.hpp refactor(core): seprated folders for relinker and libs 2026-09-11 14:53:01 +03:00
IInstructionScanner.hpp refactor(core): seprated folders for relinker and libs 2026-09-11 14:53:01 +03:00