provide optimized a_ctz_32 for arm

Provide an ARM specific a_ctz_32 helper function for architecture
versions for which it can be implemented efficiently via the "rbit"
instruction (ie all Thumb-2 capable versions of ARM v6 and above).
This commit is contained in:
Andre McCurdy 2018-04-18 17:41:00 -07:00 committed by Rich Felker
parent 0c6abb5882
commit ea489b8b0d
1 changed files with 12 additions and 0 deletions

View File

@ -91,4 +91,16 @@ static inline int a_clz_32(uint32_t x)
return x;
}
#if __ARM_ARCH_6T2__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH >= 7
#define a_ctz_32 a_ctz_32
static inline int a_ctz_32(uint32_t x)
{
uint32_t xr;
__asm__ ("rbit %0, %1" : "=r"(xr) : "r"(x));
return a_clz_32(xr);
}
#endif
#endif