AnyPS5/core/relinker
ljkx d54dfb1595 fix(relinker): ignore a REX prefix that is followed by another prefix
In 64-bit mode a REX prefix only takes effect when it immediately
precedes the opcode; a REX followed by a legacy prefix or another REX is
ignored. The instruction decoder, the rewriter's reference classifier,
DecodedInstruction and the SSE4a, SHA-256 and CLZERO operand decoders
read legacy prefixes and then at most one REX. `48 F3 0F 2B 00`
(MOVNTSS) was therefore scanned as `[48 F3][0F 2B 00]` and kept, and
`48 67 0F 01 FC` lost its address-size prefix.

All of them now accept REX bytes among the prefixes and keep only one
that directly precedes the opcode. The converter's guard against
prefix-only fragments is removed, since the decoder no longer produces
them, and the TechnicalDebt entry describing the split is dropped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 13:09:11 +02:00
..
cli feat(relinker): exclude single sce_module files, tolerate a zero code tail 2026-09-29 21:22:11 +03:00
codegen fix(relinker): ignore a REX prefix that is followed by another prefix 2026-10-01 13:09:11 +02:00
domain/include/domain fix(relinker): resolve guest dependencies and lifecycle arrays 2026-10-01 11:57:13 +03:00
elfpatcher feat(relinker): lower CLZERO for --to-intel 2026-10-01 12:30:35 +02:00
io fix(relinker): reject overflowing buffer offsets 2026-09-30 18:07:26 +02:00
relinker fix(relinker): resolve guest dependencies and lifecycle arrays 2026-10-01 11:57:13 +03:00
CMakeLists.txt feat(relinker): lower CLZERO for --to-intel 2026-10-01 12:30:35 +02:00
main.cpp feat(relinker): exclude single sce_module files, tolerate a zero code tail 2026-09-29 21:22:11 +03:00