On Thu, Sep 17, 2026 at 5:33 AM Richard Henderson
<[email protected]> wrote:
>
> Use comparisons vs memory, short branches, and
> an indirect memory jump.

Not in the posted patch, but in the version now on your tcg-matt
branch (a4f48ea23a):

    unsigned free = (ALL_GENERAL_REGS & ~s->reserved_regs & ~(1 << ptr)
                     & ~(const_fl ? 0 : fl));
    TCGReg scratch = ctz32(free);

fl is a register number there, not a mask, so this clears bits by
value instead of excluding the register. With fl in %rbp (5) it clears
bits 0 and 2 and leaves bit 5 set, and scratch can then be allocated
on top of a live fl. Wants ~(1u << fl), same as ptr above.

Reply via email to