summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/export/system.h2
-rw-r--r--firmware/target/coldfire/ffs-coldfire.S3
2 files changed, 3 insertions, 2 deletions
diff --git a/firmware/export/system.h b/firmware/export/system.h
index d1b5df5..505b167 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 582970d..40a7297 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 |