|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef __MIPS_ASM_BITREV_H__ | 
|  | #define __MIPS_ASM_BITREV_H__ | 
|  |  | 
|  | #include <linux/swab.h> | 
|  |  | 
|  | static __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x) | 
|  | { | 
|  | u32 ret; | 
|  |  | 
|  | asm("bitswap	%0, %1" : "=r"(ret) : "r"(__swab32(x))); | 
|  | return ret; | 
|  | } | 
|  |  | 
|  | static __always_inline __attribute_const__ u16 __arch_bitrev16(u16 x) | 
|  | { | 
|  | u16 ret; | 
|  |  | 
|  | asm("bitswap	%0, %1" : "=r"(ret) : "r"(__swab16(x))); | 
|  | return ret; | 
|  | } | 
|  |  | 
|  | static __always_inline __attribute_const__ u8 __arch_bitrev8(u8 x) | 
|  | { | 
|  | u8 ret; | 
|  |  | 
|  | asm("bitswap	%0, %1" : "=r"(ret) : "r"(x)); | 
|  | return ret; | 
|  | } | 
|  |  | 
|  | #endif /* __MIPS_ASM_BITREV_H__ */ |