select: fix 64-bit timeout truncation on pre-time64 kernels
[musl] / arch / i386 / atomic_arch.h
index 2b1a049..047fb68 100644 (file)
@@ -92,10 +92,17 @@ static inline int a_ctz_64(uint64_t x)
        return r;
 }
 
-#define a_ctz_l a_ctz_l
-static inline int a_ctz_l(unsigned long x)
+#define a_ctz_32 a_ctz_32
+static inline int a_ctz_32(uint32_t x)
 {
-       long r;
+       int r;
        __asm__( "bsf %1,%0" : "=r"(r) : "r"(x) );
        return r;
 }
+
+#define a_clz_32 a_clz_32
+static inline int a_clz_32(uint32_t x)
+{
+       __asm__( "bsr %1,%0 ; xor $31,%0" : "=r"(x) : "r"(x) );
+       return x;
+}