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