X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=arch%2Fx86_64%2Fatomic_arch.h;h=da4e203754804de83c0ba3c29f3ad52870b398e5;hb=59b64ff686cef2a87e9552658b2c8d2531f87176;hp=9f47f80893532b3eccd73997ed99aee38417e78a;hpb=16b55298dc4b6a54d287d7494e04542667ef8861;p=musl diff --git a/arch/x86_64/atomic_arch.h b/arch/x86_64/atomic_arch.h index 9f47f808..da4e2037 100644 --- a/arch/x86_64/atomic_arch.h +++ b/arch/x86_64/atomic_arch.h @@ -96,7 +96,7 @@ static inline void a_barrier() __asm__ __volatile__( "" : : : "memory" ); } -#define a_pause a_pause +#define a_spin a_spin static inline void a_spin() { __asm__ __volatile__( "pause" : : : "memory" ); @@ -114,3 +114,10 @@ static inline int a_ctz_64(uint64_t x) __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); return x; } + +#define a_clz_64 a_clz_64 +static inline int a_clz_64(uint64_t x) +{ + __asm__( "bsr %1,%0 ; xor $63,%0" : "=r"(x) : "r"(x) ); + return x; +}