FastLED 3.9.15
Loading...
Searching...
No Matches

◆ lsrX4()

fl::u8 fl::lsrX4 ( fl::u8 dividend)
inline

Helper function to divide a number by 16, aka four logical shift right (LSR)'s.

On avr-gcc, "u8 >> 4" generates a loop, which is big, and slow. merely forcing it to be four /=2's causes avr-gcc to emit a SWAP instruction followed by an AND 0x0F, which is faster, and smaller.

Definition at line 243 of file colorutils.cpp.hpp.

243 {
244#if defined(FL_IS_AVR)
245 dividend /= 2;
246 dividend /= 2;
247 dividend /= 2;
248 dividend /= 2;
249#else
250 dividend >>= 4;
251#endif
252 return dividend;
253}

Referenced by ColorFromPalette(), ColorFromPalette(), and ColorFromPalette().

+ Here is the caller graph for this function: