diff --git a/firmware/export/system.h b/firmware/export/system.h index d1b5df546b..505b167af9 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -205,7 +205,7 @@ int get_cpu_boost_counter(void); #define UNLIKELY(x) (x) #endif -/* returns index of first set bit + 1 or 0 if no bits are set */ +/* returns index of first set bit or 32 if no bits are set */ int find_first_set_bit(uint32_t val); static inline __attribute__((always_inline)) diff --git a/firmware/target/coldfire/ffs-coldfire.S b/firmware/target/coldfire/ffs-coldfire.S index 582970d5d6..40a7297802 100644 --- a/firmware/target/coldfire/ffs-coldfire.S +++ b/firmware/target/coldfire/ffs-coldfire.S @@ -57,7 +57,8 @@ find_first_set_bit: | now lookup in table indexed on top 6 bits of %d0 moveq.l #26, %d0 | %d0 = final shift count lsr.l %d0, %d1 | - clr.l %d0 | + + | the top 24 bits of d0 are 0 so just load the value over it move.b (%a0, %d1.l), %d0 | rts |