semaphores: fix missed wakes from ABA bug in waiter count logic
[musl] / arch / x86_64 / atomic_arch.h
index 55fc6fb..da4e203 100644 (file)
@@ -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;
+}