dslinux/linux-2.6.x/arch/arm/lib io-readsb.S io-readsl.S

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


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

Modified Files:
	io-readsb.S io-readsl.S 
Log Message:
8bit write cleanup

Index: io-readsl.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib/io-readsl.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- io-readsl.S	20 Feb 2006 16:31:28 -0000	1.2
+++ io-readsl.S	13 Aug 2006 10:31:36 -0000	1.3
@@ -9,6 +9,7 @@
  */
 #include <linux/linkage.h>
 #include <asm/assembler.h>
+#include <linux/config.h>
 
 ENTRY(__raw_readsl)
 		teq	r2, #0		@ do we have to check for the zero len?
@@ -38,14 +39,28 @@
 3:		ldr	r3, [r0]
 		cmp	ip, #2
 		mov	ip, r3, get_byte_0
+#ifdef CONFIG_NDS_ROM8BIT
+		swpb	ip, ip, [r1]
+		add	r1, r1, #1
+#else
 		strb	ip, [r1], #1
+#endif
 		bgt	6f
 		mov	ip, r3, get_byte_1
+#ifdef CONFIG_NDS_ROM8BIT
+		swpb	ip, ip, [r1]
+		add	r1, r1, #1
+#else
 		strb	ip, [r1], #1
+#endif
 		beq	5f
 		mov	ip, r3, get_byte_2
+#ifdef CONFIG_NDS_ROM8BIT
+		swpb	ip, ip, [r1]
+		add	r1, r1, #1
+#else
 		strb	ip, [r1], #1
-
+#endif
 4:		subs	r2, r2, #1
 		mov	ip, r3, pull #24
 		ldrne	r3, [r0]
@@ -70,9 +85,23 @@
 		bne	6b
 
 		mov	r3, ip, get_byte_2
+#ifdef CONFIG_NDS_ROM8BIT
+		add	r2, r1, #2
+		swpb	r3, r3, [r2]
+#else
 		strb	r3, [r1, #2]
+#endif
 7:		mov	r3, ip, get_byte_1
+#ifdef CONFIG_NDS_ROM8BIT
+		add	r2, r1, #1
+		swpb	r3, r3, [r2]
+#else
 		strb	r3, [r1, #1]
+#endif
 8:		mov	r3, ip, get_byte_0
+#ifdef CONFIG_NDS_ROM8BIT
+		swpb	r3, r3, [r1]
+#else
 		strb	r3, [r1, #0]
+#endif
 		mov	pc, lr

Index: io-readsb.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib/io-readsb.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- io-readsb.S	20 Feb 2006 16:31:28 -0000	1.2
+++ io-readsb.S	13 Aug 2006 10:31:36 -0000	1.3
@@ -9,17 +9,33 @@
  */
 #include <linux/linkage.h>
 #include <asm/assembler.h>
+#include <linux/config.h>
 
 .insb_align:	rsb	ip, ip, #4
 		cmp	ip, r2
 		movgt	ip, r2
 		cmp	ip, #2
 		ldrb	r3, [r0]
+#ifdef CONFIG_NDS_ROM8BIT
+		swpb	r3, r3, [r1]
+		add	r1, r1, #1
+#else
 		strb	r3, [r1], #1
+#endif
 		ldrgeb	r3, [r0]
+#ifdef CONFIG_NDS_ROM8BIT
+		swpgeb	r3, r3, [r1]
+		addge	r1, r1, #1
+#else
 		strgeb	r3, [r1], #1
+#endif
 		ldrgtb	r3, [r0]
+#ifdef CONFIG_NDS_ROM8BIT
+		swpgtb	r3, r3, [r1]
+		addgt	r1, r1, #1
+#else
 		strgtb	r3, [r1], #1
+#endif
 		subs	r2, r2, ip
 		bne	.insb_aligned
 
@@ -113,10 +129,23 @@
 
 		cmp	r2, #2
 		ldrb	r3, [r0]
+#ifdef CONFIG_NDS_ROM8BIT
+		swpb	r3, r3, [r1]
+		add	r1, r1, #1
+#else
 		strb	r3, [r1], #1
+#endif
 		ldrgeb	r3, [r0]
+#ifdef CONFIG_NDS_ROM8BIT
+		swpgeb	r3, r3, [r1]
+		addge	r1, r1, #1	
+#else
 		strgeb	r3, [r1], #1
+#endif
 		ldrgtb	r3, [r0]
+#ifdef CONFIG_NDS_ROM8BIT
+		swpgtb	r3, r3, [r1]
+#else
 		strgtb	r3, [r1]
-
+#endif
 		LOADREGS(fd, sp!, {r4 - r6, pc})




More information about the dslinux-commit mailing list