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