On Wed, Feb 18, 2026 at 12:00:18PM +0100, Uros Bizjak wrote:
> Use !try_cmpxchg() instead of cmpxchg (*ptr, old, new) != old.
> x86 CMPXCHG instruction returns success in ZF flag, so this
> change saves a compare after CMPXCHG.
> 
> The generated assembly code improves from e.g.:
> 
>      415:     48 8b 44 24 30          mov    0x30(%rsp),%rax
>      41a:     48 8b 54 24 38          mov    0x38(%rsp),%rdx
>      41f:     f0 49 0f b1 91 a8 02    lock cmpxchg %rdx,0x2a8(%r9)
>      426:     00 00
>      428:     48 3b 44 24 30          cmp    0x30(%rsp),%rax
>      42d:     0f 84 09 ff ff ff       je     33c <...>
> 
> to:
> 
>      415:     48 8b 44 24 30          mov    0x30(%rsp),%rax
>      41a:     48 8b 54 24 38          mov    0x38(%rsp),%rdx
>      41f:     f0 49 0f b1 91 a8 02    lock cmpxchg %rdx,0x2a8(%r9)
>      426:     00 00
>      428:     0f 84 0e ff ff ff       je     33c <...>
> 
> No functional change intended.
> 
> Signed-off-by: Uros Bizjak <[email protected]>
> Cc: "K. Y. Srinivasan" <[email protected]>
> Cc: Haiyang Zhang <[email protected]>
> Cc: Wei Liu <[email protected]>
> Cc: Dexuan Cui <[email protected]>
> Cc: Long Li <[email protected]>

Applied. Thanks.

Reply via email to