… | |
… | |
327 | |
327 | |
328 | return r + ecb_ld32 (x); |
328 | return r + ecb_ld32 (x); |
329 | } |
329 | } |
330 | #endif |
330 | #endif |
331 | |
331 | |
|
|
332 | ecb_function_ ecb_bool ecb_is_pot32 (uint32_t x) ecb_const; |
|
|
333 | ecb_function_ ecb_bool ecb_is_pot32 (uint32_t x) { return !(x & (x - 1)); } |
|
|
334 | ecb_function_ ecb_bool ecb_is_pot64 (uint64_t x) ecb_const; |
|
|
335 | ecb_function_ ecb_bool ecb_is_pot64 (uint64_t x) { return !(x & (x - 1)); } |
|
|
336 | |
332 | ecb_function_ uint8_t ecb_bitrev8 (uint8_t x) ecb_const; |
337 | ecb_function_ uint8_t ecb_bitrev8 (uint8_t x) ecb_const; |
333 | ecb_function_ uint8_t ecb_bitrev8 (uint8_t x) |
338 | ecb_function_ uint8_t ecb_bitrev8 (uint8_t x) |
334 | { |
339 | { |
335 | return ( (x * 0x0802U & 0x22110U) |
340 | return ( (x * 0x0802U & 0x22110U) |
336 | | (x * 0x8020U & 0x88440U)) * 0x10101U >> 16; |
341 | | (x * 0x8020U & 0x88440U)) * 0x10101U >> 16; |