summaryrefslogtreecommitdiff
path: root/firmware/export/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/export/system.h')
-rw-r--r--firmware/export/system.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/firmware/export/system.h b/firmware/export/system.h
index f6d441ef2a..0a13ec2208 100644
--- a/firmware/export/system.h
+++ b/firmware/export/system.h
@@ -157,7 +157,12 @@ int get_cpu_boost_counter(void);
((type *)((intptr_t)(memberptr) - OFFSETOF(type, membername)))
/* returns index of first set bit or 32 if no bits are set */
+#if defined(CPU_ARM) && ARM_ARCH >= 5 && !defined(__thumb__)
+static inline int find_first_set_bit(uint32_t val)
+ { return LIKELY(val) ? __builtin_ctz(val) : 32; }
+#else
int find_first_set_bit(uint32_t val);
+#endif
static inline __attribute__((always_inline))
uint32_t isolate_first_bit(uint32_t val)