0001
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