mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-15 04:15:44 +03:00
Implement fast log2
This commit is contained in:
parent
cd2a259b14
commit
32480cf002
2 changed files with 4 additions and 2 deletions
|
@ -100,6 +100,8 @@ http://resnet.uoregon.edu/~gurney_j/jmpc/bitwise.html
|
|||
static inline int16_t cmp16(uint16_t a, uint16_t b) { return (int16_t)(a-b); }
|
||||
static inline int32_t cmp32(uint32_t a, uint32_t b) { return (int32_t)(a-b); }
|
||||
|
||||
static inline uint32_t llog2(uint32_t n) { return 31 - __builtin_clz(n | 1); }
|
||||
|
||||
// using memcpy_fn will force memcpy function call, instead of inlining it. In most cases function call takes fewer instructions
|
||||
// than inlined version (inlining is cheaper for very small moves < 8 bytes / 2 store instructions)
|
||||
#if defined(UNIT_TEST) || defined(SIMULATOR_BUILD)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue