From 4fe3ad2f99fc21db2f58c9bfb2a5e8cf5237cc63 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 9 Jul 2013 16:37:32 +0200 Subject: bsps/powerpc: Add ppc_count_leading_zeros() --- c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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. -- cgit v1.2.3