Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef __MIPS_ASM_BITREV_H__
0003 #define __MIPS_ASM_BITREV_H__
0004 
0005 #include <linux/swab.h>
0006 
0007 static __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x)
0008 {
0009     u32 ret;
0010 
0011     asm("bitswap    %0, %1" : "=r"(ret) : "r"(__swab32(x)));
0012     return ret;
0013 }
0014 
0015 static __always_inline __attribute_const__ u16 __arch_bitrev16(u16 x)
0016 {
0017     u16 ret;
0018 
0019     asm("bitswap    %0, %1" : "=r"(ret) : "r"(__swab16(x)));
0020     return ret;
0021 }
0022 
0023 static __always_inline __attribute_const__ u8 __arch_bitrev8(u8 x)
0024 {
0025     u8 ret;
0026 
0027     asm("bitswap    %0, %1" : "=r"(ret) : "r"(x));
0028     return ret;
0029 }
0030 
0031 #endif /* __MIPS_ASM_BITREV_H__ */