]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - arch/mips/include/asm/bitrev.h
Merge tag 'dm-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device...
[mirror_ubuntu-artful-kernel.git] / arch / mips / include / asm / bitrev.h
1 #ifndef __MIPS_ASM_BITREV_H__
2 #define __MIPS_ASM_BITREV_H__
3
4 #include <linux/swab.h>
5
6 static __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x)
7 {
8 u32 ret;
9
10 asm("bitswap %0, %1" : "=r"(ret) : "r"(__swab32(x)));
11 return ret;
12 }
13
14 static __always_inline __attribute_const__ u16 __arch_bitrev16(u16 x)
15 {
16 u16 ret;
17
18 asm("bitswap %0, %1" : "=r"(ret) : "r"(__swab16(x)));
19 return ret;
20 }
21
22 static __always_inline __attribute_const__ u8 __arch_bitrev8(u8 x)
23 {
24 u8 ret;
25
26 asm("bitswap %0, %1" : "=r"(ret) : "r"(x));
27 return ret;
28 }
29
30 #endif /* __MIPS_ASM_BITREV_H__ */