diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-09 16:37:32 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-09 16:42:00 +0200 |
commit | 4fe3ad2f99fc21db2f58c9bfb2a5e8cf5237cc63 (patch) | |
tree | 8178b465c1cf79e819bbb60cc12967da82a56f73 /c/src/lib/libcpu | |
parent | bsp/csb337: Use IRQ extensions API (diff) | |
download | rtems-4fe3ad2f99fc21db2f58c9bfb2a5e8cf5237cc63.tar.bz2 |
bsps/powerpc: Add ppc_count_leading_zeros()
Diffstat (limited to 'c/src/lib/libcpu')
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h index 79024ebaf2..71567d5814 100644 --- a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h +++ b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h @@ -407,6 +407,19 @@ static inline void ppc_external_exceptions_disable(uint32_t msr) RTEMS_COMPILER_MEMORY_BARRIER(); } +static inline uint32_t ppc_count_leading_zeros(uint32_t value) +{ + uint32_t count; + + __asm__ ( + "cntlzw %0, %1;" + : "=r" (count) + : "r" (value) + ); + + return count; +} + /* * Simple spin delay in microsecond units for device drivers. * This is very dependent on the clock speed of the target. |