Lower CLZERO out of line instead of failing the relink: the 64-byte line containing rAX (EAX with 67h) is cleared with four MOVNTDQ stores of zero, the same non-temporal, weakly ordered store. The line address is masked in xmm0 so RFLAGS stays untouched; xmm0 and rcx are spilled below the red zone. Short sites share stubs through MatchSequence. CLZERO with LOCK, an FS/GS override, a 66/F2/F3 prefix or longer than 15 bytes fails the relink. The decoder splits a REX followed by another prefix into a separate instruction, which would hide a prefix that changes what CLZERO or the next instruction does. The converter now fails the relink when such a prefix-only fragment directly precedes an AMD-only instruction or would be moved into a stub as a trailing instruction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| include/codegen | ||
| src | ||
| tests | ||