powerpc: Remove __arch_swab*
PATCH 1/1 powerpc: Remove __arch_swab*
The generic code uses gcc built-ins which work fine so there's no benefit in implementing our own anymore.
We can't completely remove the ld/st_le* functions as some historical cruft still uses them, but that's next on the radar
Signed-off-by Benjamin Herrenschmidt <[email protected]>
---
arch/powerpc/include/asm/swab.h +0 -43
@@ -9,10 +9,6 @@#include <uapi/asm/swab.h> -#ifdef __GNUC__ -#ifndef __powerpc64__ -#endif /* __powerpc64__ */ -static __inline____u16 ld_le16 (const volatile __u16 *addr) {__u16 val;
@@ -20,19 +16,12 @@ static __inline__ __u16 ld_le16(const volatile __u16 *addr) __asm__ __volatile__ ("lhbrx %0,0,%1" :"=r" (val) :"r" (addr),"m" (*addr));return val; } -#define __arch_swab16p ld_le16static __inline__void st_le16 (volatile __u16 *addr,const __u16 val) { __asm__ __volatile__ ("sthbrx %1,0,%2" :"=m" (*addr) :"r" (val),"r" (addr)); } -static inline void __arch_swab16s (__u16 *addr) -{ -st_le16 (addr, *addr); -} -#define __arch_swab16s __arch_swab16s -static __inline____u32 ld_le32 (const volatile __u32 *addr) {__u32 val;
@@ -40,42 +29,10 @@ static __inline__ __u32 ld_le32(const volatile __u32 *addr) __asm__ __volatile__ ("lwbrx %0,0,%1" :"=r" (val) :"r" (addr),"m" (*addr)); return val; } -#define __arch_swab32p ld_le32static __inline__void st_le32 (volatile __u32 *addr,const __u32 val) { __asm__ __volatile__ ("stwbrx %1,0,%2" :"=m" (*addr) :"r" (val),"r" (addr)); } -static inline void __arch_swab32s (__u32 *addr) -{ -st_le32 (addr, *addr); -} -#define __arch_swab32s __arch_swab32s - -static inline __attribute_const__ __u16 __arch_swab16(__u16 value) -{ -__u16 result; - - __asm__("rlwimi %0,%1,8,16,23" - :"=r" (result) - :"r" (value),"0" (value >>8 )); -return result; -} -#define __arch_swab16 __arch_swab16 - -static inline __attribute_const__ __u32 __arch_swab32(__u32 value) -{ -__u32 result; - - __asm__("rlwimi %0,%1,24,16,23\n\t" -"rlwimi %0,%1,8,8,15\n\t" -"rlwimi %0,%1,24,0,7" - :"=r" (result) - :"r" (value),"0" (value >>24 )); -return result; -} -#define __arch_swab32 __arch_swab32 - -#endif /* __GNUC__ */ #endif /* _ASM_POWERPC_SWAB_H */