author | Rich Felker <dalias@aerifal.cx> | 2020年06月11日 00:12:48 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020年06月11日 00:12:48 -0400 |
commit | ca36573ecfbbef7a1563aaa1a8486081f8c9fdda (patch) | |
tree | 5f85ff1f9d9b28c986415d42b226009fb63daf0c /src/internal/atomic.h | |
parent | 1fc67fc117f9d25d240d46bbef78ebccacec7097 (diff) | |
download | musl-ca36573ecfbbef7a1563aaa1a8486081f8c9fdda.tar.gz |
-rw-r--r-- | src/internal/atomic.h | 15 |
diff --git a/src/internal/atomic.h b/src/internal/atomic.h index f938879b..99539cc0 100644 --- a/src/internal/atomic.h +++ b/src/internal/atomic.h @@ -315,4 +315,19 @@ static inline int a_clz_64(uint64_t x) } #endif +#ifndef a_clz_32 +#define a_clz_32 a_clz_32 +static inline int a_clz_32(uint32_t x) +{ + x--; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + x |= x >> 16; + x++; + return 31-a_ctz_32(x); +} +#endif + #endif |