From 4533b238522c6c3bf5e1e0a110e1c5525de5af88 Mon Sep 17 00:00:00 2001 From: Harvey Harrison Date: Tue, 6 Jan 2009 14:56:23 -0800 Subject: [PATCH] --- yaml --- r: 126877 b: refs/heads/master c: 8cdd3a9261e8efe36aeb6c708edb76d7e2b5d13f h: refs/heads/master i: 126875: c004d8555692a5138d335e542d4cbee16a2d9b38 v: v3 --- [refs] | 2 +- trunk/arch/mips/include/asm/Kbuild | 1 + trunk/arch/mips/include/asm/byteorder.h | 52 ++--------------------- trunk/arch/mips/include/asm/swab.h | 55 +++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 50 deletions(-) create mode 100644 trunk/arch/mips/include/asm/swab.h diff --git a/[refs] b/[refs] index 4494a7632e49..5b6e453a78a3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 292b4d0978e3bbb087a83ce77e389c7b462a093c +refs/heads/master: 8cdd3a9261e8efe36aeb6c708edb76d7e2b5d13f diff --git a/trunk/arch/mips/include/asm/Kbuild b/trunk/arch/mips/include/asm/Kbuild index 7897f05e3165..023866c0c102 100644 --- a/trunk/arch/mips/include/asm/Kbuild +++ b/trunk/arch/mips/include/asm/Kbuild @@ -1,3 +1,4 @@ include include/asm-generic/Kbuild.asm header-y += cachectl.h sgidefs.h sysmips.h +header-y += swab.h diff --git a/trunk/arch/mips/include/asm/byteorder.h b/trunk/arch/mips/include/asm/byteorder.h index 33790b9e0cc0..607b71830707 100644 --- a/trunk/arch/mips/include/asm/byteorder.h +++ b/trunk/arch/mips/include/asm/byteorder.h @@ -8,60 +8,14 @@ #ifndef _ASM_BYTEORDER_H #define _ASM_BYTEORDER_H -#include -#include +#include #if defined(__MIPSEB__) -# define __BIG_ENDIAN +#include #elif defined(__MIPSEL__) -# define __LITTLE_ENDIAN +#include #else # error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???" #endif -#define __SWAB_64_THRU_32__ - -#ifdef CONFIG_CPU_MIPSR2 - -static inline __attribute_const__ __u16 __arch_swab16(__u16 x) -{ - __asm__( - " wsbh %0, %1 \n" - : "=r" (x) - : "r" (x)); - - return x; -} -#define __arch_swab16 __arch_swab16 - -static inline __attribute_const__ __u32 __arch_swab32(__u32 x) -{ - __asm__( - " wsbh %0, %1 \n" - " rotr %0, %0, 16 \n" - : "=r" (x) - : "r" (x)); - - return x; -} -#define __arch_swab32 __arch_swab32 - -#ifdef CONFIG_CPU_MIPS64_R2 -static inline __attribute_const__ __u64 __arch_swab64(__u64 x) -{ - __asm__( - " dsbh %0, %1\n" - " dshd %0, %0" - : "=r" (x) - : "r" (x)); - - return x; -} -#define __arch_swab64 __arch_swab64 -#endif /* CONFIG_CPU_MIPS64_R2 */ - -#endif /* CONFIG_CPU_MIPSR2 */ - -#include - #endif /* _ASM_BYTEORDER_H */ diff --git a/trunk/arch/mips/include/asm/swab.h b/trunk/arch/mips/include/asm/swab.h new file mode 100644 index 000000000000..88f1f7d555cb --- /dev/null +++ b/trunk/arch/mips/include/asm/swab.h @@ -0,0 +1,55 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 1996, 99, 2003 by Ralf Baechle + */ +#ifndef _ASM_SWAB_H +#define _ASM_SWAB_H + +#include +#include + +#define __SWAB_64_THRU_32__ + +#ifdef CONFIG_CPU_MIPSR2 + +static inline __attribute_const__ __u16 __arch_swab16(__u16 x) +{ + __asm__( + " wsbh %0, %1 \n" + : "=r" (x) + : "r" (x)); + + return x; +} +#define __arch_swab16 __arch_swab16 + +static inline __attribute_const__ __u32 __arch_swab32(__u32 x) +{ + __asm__( + " wsbh %0, %1 \n" + " rotr %0, %0, 16 \n" + : "=r" (x) + : "r" (x)); + + return x; +} +#define __arch_swab32 __arch_swab32 + +#ifdef CONFIG_CPU_MIPS64_R2 +static inline __attribute_const__ __u64 __arch_swab64(__u64 x) +{ + __asm__( + " dsbh %0, %1\n" + " dshd %0, %0" + : "=r" (x) + : "r" (x)); + + return x; +} +#define __arch_swab64 __arch_swab64 +#endif /* CONFIG_CPU_MIPS64_R2 */ +#endif /* CONFIG_CPU_MIPSR2 */ +#endif /* _ASM_SWAB_H */