Skip to contentSkip to conversation

Optimize swab operations

PATCH Applied Franck 3 participants 8 messages Jan 26, 2006 – Feb 2, 2006 MIPS

lore
Share & tools
lore

Franck

author
#0 lore raw

PATCH 1/1 Optimize swab operations

This patch uses 'wsbh' instruction to optimize swab operations. This instruction is part of the MIPS Release 2 instructions set.

---

 include/asm-mips/byteorder.h |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

4dc5b8c501404d1d133e45ea99f1cd54bbb8e37f

include/asm-mips/byteorder.h +27 -0
index d1fe9e5..f9f5059 100644
@@ -8,10 +8,37 @@
 #ifndef _ASM_BYTEORDER_H
 #define _ASM_BYTEORDER_H
 
+#include <linux/compiler.h>
 #include <asm/types.h>
 
 #ifdef __GNUC__
 
+#ifdef CONFIG_CPU_MIPSR2
+
+static __inline__ __attribute_const__ __u16 ___arch__swab16(__u16 x)
+{
+	__asm__(
+		"wsbh	%0, %1\n"
+		: "=r" (x)
+		: "r" (x));
+	return x;
+}
+
+static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
+{
+	__asm__(
+		"wsbh	%0, %1\n\t"
+		"rotr	%0, %0, 16\n"
+		: "=r" (x)
+		: "r" (x));
+	return x;
+}
+
+#define __arch__swab16(x)	___arch__swab16(x)
+#define __arch__swab32(x)	___arch__swab32(x)
+
+#endif /* CONFIG_CPU_MIPSR2 */
+
 #if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
 #  define __BYTEORDER_HAS_U64__
 #  define __SWAB_64_THRU_32__
#1 lore raw
Quoted 2 lines · Franck

This patch uses 'wsbh' instruction to optimize swab operations. This instruction is part of the MIPS Release 2 instructions set.

Will apply. Small nit - you must include <linux/config.h> in every file that is refering to a CONFIG_* symbols, I'll take care of that.

Ralf

author
#2 lore raw

2006/1/26, Ralf Baechle <[email protected]>:

Quoted 8 lines · Franck
Quoted 3 lines

This patch uses 'wsbh' instruction to optimize swab operations. This instruction is part of the MIPS Release 2 instructions set.

Will apply. Small nit - you must include <linux/config.h> in every file that is refering to a CONFIG_* symbols, I'll take care of that.

OK

Thanks
--
Franck

#3 lore raw
In reply to Ralf Baechle
Quoted 7 lines · Ralf Baechle
Quoted 2 lines · Franck

This patch uses 'wsbh' instruction to optimize swab operations. This instruction is part of the MIPS Release 2 instructions set.

Will apply. Small nit - you must include <linux/config.h> in every file that is refering to a CONFIG_* symbols, I'll take care of that.

That's not required anymore. the build system now implicitly includes it for every file.

#4 lore raw
Quoted 8 lines · Christoph Hellwig
Quoted 5 lines
Quoted 2 lines

This patch uses 'wsbh' instruction to optimize swab operations. This instruction is part of the MIPS Release 2 instructions set.

Will apply. Small nit - you must include <linux/config.h> in every file that is refering to a CONFIG_* symbols, I'll take care of that.

That's not required anymore. the build system now implicitly includes it for every file.

Wonderful. Was waiting for the day when this becomes the official religion. No more time wasted to make configcheck ...

Ralf

#6 lore raw

2006/1/26, Ralf Baechle <[email protected]>:

Quoted 4 lines · Franck

Applied.

I'm a bit disapointed the way you do it. You changed the patch (wrongly) and the authorships. At least you could have said: "thanks to" in your commit message. Bad experience for my first patch...

--
Franck

#7 lore raw
Quoted 3 lines · Franck Bui-Huu

I'm a bit disapointed the way you do it. You changed the patch (wrongly) and the authorships. At least you could have said: "thanks to" in your commit message. Bad experience for my first patch...

Sorry, yesterday was an extremly chaotic day and I had my thoughts elsewhere ...

When applying an emailed patch my scripts (git-applymbox that is) usually take care of proper attribution to people but since I had to edit your patch manually that didn't happen automatically.

Ralf