bitrev.h 451 B

123456789101112131415161718192021
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __ASM_BITREV_H
  3. #define __ASM_BITREV_H
  4. static __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x)
  5. {
  6. __asm__ ("rbit %0, %1" : "=r" (x) : "r" (x));
  7. return x;
  8. }
  9. static __always_inline __attribute_const__ u16 __arch_bitrev16(u16 x)
  10. {
  11. return __arch_bitrev32((u32)x) >> 16;
  12. }
  13. static __always_inline __attribute_const__ u8 __arch_bitrev8(u8 x)
  14. {
  15. return __arch_bitrev32((u32)x) >> 24;
  16. }
  17. #endif