mirror of
https://github.com/fluencelabs/musl
synced 2025-04-25 07:12:15 +00:00
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:
parent
0c6abb5882
commit
ea489b8b0d
@ -91,4 +91,16 @@ static inline int a_clz_32(uint32_t x)
|
|||||||
return 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
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user