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

◆ lsrX4()

uint8_t lsrX4 ( uint8_t 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 586 of file colorutils.cpp.

587{
588#if defined(__AVR__)
589 dividend /= 2;
590 dividend /= 2;
591 dividend /= 2;
592 dividend /= 2;
593#else
594 dividend >>= 4;
595#endif
596 return dividend;
597}

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

+ Here is the caller graph for this function: