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

◆ wave8_expand_byte()

FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void fl::detail::wave8_expand_byte ( u8 byte_value,
const Wave8ByteExpansionLut & lut,
Wave8Byte * output )

Byte-indexed expansion (#2526): one indexed 8-byte copy.

Single lookup (no >>4/mask, no second index) into the 256×8 byte LUT; bit-identical to wave8_convert_byte_to_wave8byte(). ~half the index/issue work for the same memory traffic — the win on the in-order RV32 core.

Definition at line 69 of file wave8.hpp.

71 {
73 fl::bit_cast_ptr<const u32>(&lut.lut[byte_value]),
74 2); // 8 bytes = 2 x uint32_t
75}
FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memcpy_32(u32 *FL_RESTRICT_PARAM dst, const u32 *FL_RESTRICT_PARAM src, size_t count)
ISR-optimized 32-bit block copy for 4-byte aligned memory.
Definition memcpy.h:32
To * bit_cast_ptr(void *storage) FL_NOEXCEPT
Definition bit_cast.h:60

References fl::bit_cast_ptr(), and fl::isr::memcpy_32().

Referenced by fl::wave8Transpose_16(), fl::wave8Transpose_16x2_pipe2(), fl::wave8Transpose_16x4_pipe4(), fl::wave8Transpose_2(), fl::wave8Transpose_4(), and fl::wave8Transpose_8().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: