dslinux/linux-2.6.x/arch/arm/lib io-readsw-armv4.S
amadeus
dslinux_amadeus at user.in-berlin.de
Mon Aug 14 21:19:09 CEST 2006
Update of /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib
In directory antilope:/tmp/cvs-serv9176/linux-2.6.x/arch/arm/lib
Modified Files:
io-readsw-armv4.S
Log Message:
8bit write cleanup
Index: io-readsw-armv4.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/arch/arm/lib/io-readsw-armv4.S,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- io-readsw-armv4.S 20 Feb 2006 16:31:28 -0000 1.2
+++ io-readsw-armv4.S 14 Aug 2006 19:19:07 -0000 1.3
@@ -9,6 +9,7 @@
*/
#include <linux/linkage.h>
#include <asm/assembler.h>
+#include <linux/config.h>
.macro pack, rd, hw1, hw2
#ifndef __ARMEB__
@@ -100,7 +101,12 @@
ldrh ip, [r0]
sub r2, r2, #1
_BE_ONLY_( mov ip, ip, ror #8 )
+#ifdef CONFIG_NDS_ROM8BIT
+ swpb r4, ip, [r1]
+ add r1, r1, #1
+#else
strb ip, [r1], #1
+#endif
_LE_ONLY_( mov ip, ip, lsr #8 )
_BE_ONLY_( mov ip, ip, lsr #24 )
@@ -120,11 +126,25 @@
_BE_ONLY_( mov ip, ip, lsr #24 )
3: tst r2, #1
+#ifdef CONFIG_NDS_ROM8BIT
+ swpb r4, ip, [r1]
+ add r1, r1, #1
+#else
strb ip, [r1], #1
+#endif
ldrneh ip, [r0]
_BE_ONLY_( movne ip, ip, ror #8 )
+#ifdef CONFIG_NDS_ROM8BIT
+ swpneb r4, ip, [r1]
+ addne r1, r1, #1
+#else
strneb ip, [r1], #1
+#endif
_LE_ONLY_( movne ip, ip, lsr #8 )
_BE_ONLY_( movne ip, ip, lsr #24 )
+#ifdef CONFIG_NDS_ROM8BIT
+ swpneb r4, ip, [r1]
+#else
strneb ip, [r1]
+#endif
ldmfd sp!, {r4, pc}
More information about the dslinux-commit
mailing list