dslinux/linux-2.6.x/arch/arm/lib bitops.h testchangebit.S testclearbit.S testsetbit.S

amadeus dslinux_amadeus at user.in-berlin.de
Sun Aug 13 12:28:48 CEST 2006


Update of /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib
In directory antilope:/tmp/cvs-serv20508/linux-2.6.x/arch/arm/lib

Modified Files:
	bitops.h testchangebit.S testclearbit.S testsetbit.S 
Log Message:
8bit write cleanup

Index: bitops.h
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib/bitops.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- bitops.h	20 Feb 2006 16:31:28 -0000	1.2
+++ bitops.h	13 Aug 2006 10:28:46 -0000	1.3
@@ -37,7 +37,12 @@
 	save_and_disable_irqs ip, r2
 	ldrb	r2, [r1, r0, lsr #3]
 	\instr	r2, r2, r3
+#ifdef CONFIG_NDS_ROM8BIT
+	add	r1, r1, r0, lsr #3
+	swpb	r3, r2, [r1]
+##else
 	strb	r2, [r1, r0, lsr #3]
+#endif
 	restore_irqs ip
 	mov	pc, lr
 	.endm
@@ -58,7 +63,11 @@
 	ldrb	r2, [r1]
 	tst	r2, r0, lsl r3
 	\instr	r2, r2, r0, lsl r3
+#ifdef CONFIG_NDS_ROM8BIT
+	\store	r3, r2, [r1]	@ store is swpxxb here
+#else
 	\store	r2, [r1]
+#endif
 	restore_irqs ip
 	moveq	r0, #0
 	mov	pc, lr

Index: testclearbit.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib/testclearbit.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- testclearbit.S	20 Feb 2006 16:31:28 -0000	1.2
+++ testclearbit.S	13 Aug 2006 10:28:46 -0000	1.3
@@ -10,9 +10,14 @@
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include "bitops.h"
+#include <linux/config.h>
                 .text
 
 ENTRY(_test_and_clear_bit_be)
 		eor	r0, r0, #0x18		@ big endian byte ordering
 ENTRY(_test_and_clear_bit_le)
+#ifdef CONFIG_NDS_ROM8BIT
+	testop	bicne, swpneb
+#else
 	testop	bicne, strneb
+#endif

Index: testsetbit.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib/testsetbit.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- testsetbit.S	20 Feb 2006 16:31:28 -0000	1.2
+++ testsetbit.S	13 Aug 2006 10:28:46 -0000	1.3
@@ -10,9 +10,15 @@
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include "bitops.h"
+#include <linux/config.h>
+
                 .text
 
 ENTRY(_test_and_set_bit_be)
 		eor	r0, r0, #0x18		@ big endian byte ordering
 ENTRY(_test_and_set_bit_le)
+#ifdef CONFIG_NDS_ROM8BIT
+	testop	orreq, swpeqb
+#else
 	testop	orreq, streqb
+#endif

Index: testchangebit.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib/testchangebit.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- testchangebit.S	20 Feb 2006 16:31:28 -0000	1.2
+++ testchangebit.S	13 Aug 2006 10:28:46 -0000	1.3
@@ -10,9 +10,14 @@
 #include <linux/linkage.h>
 #include <asm/assembler.h>
 #include "bitops.h"
+#include <linux/config.h>
                 .text
 
 ENTRY(_test_and_change_bit_be)
 		eor	r0, r0, #0x18		@ big endian byte ordering
 ENTRY(_test_and_change_bit_le)
+#ifdef CONFIG_NDS_ROM8BIT
+	testop	eor, swpb
+#else
 	testop	eor, strb
+#endif




More information about the dslinux-commit mailing list