summaryrefslogtreecommitdiffstats
path: root/arch/arm/lib/io-writesw-armv4.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/lib/io-writesw-armv4.S')
-rw-r--r--arch/arm/lib/io-writesw-armv4.S11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/arm/lib/io-writesw-armv4.S b/arch/arm/lib/io-writesw-armv4.S
index cd0aa7f2d8..ff4f71b579 100644
--- a/arch/arm/lib/io-writesw-armv4.S
+++ b/arch/arm/lib/io-writesw-armv4.S
@@ -22,8 +22,6 @@
#endif
.endm
-.section .text.writesw
-
.Loutsw_align: movs ip, r1, lsl #31
bne .Loutsw_noalign
@@ -31,7 +29,7 @@
sub r2, r2, #1
strh r3, [r0]
-ENTRY(writesw)
+ENTRY(__raw_writesw)
teq r2, #0
moveq pc, lr
ands r3, r1, #3
@@ -77,7 +75,10 @@ ENTRY(writesw)
#endif
.Loutsw_noalign:
- ldr r3, [r1, -r3]!
+ ARM( ldr r3, [r1, -r3]! )
+ THUMB( rsb r3, r3, #0 )
+ THUMB( ldr r3, [r1, r3] )
+ THUMB( sub r1, r3 )
subcs r2, r2, #1
bcs 2f
subs r2, r2, #2
@@ -96,4 +97,4 @@ ENTRY(writesw)
3: movne ip, r3, lsr #8
strneh ip, [r0]
mov pc, lr
-ENDPROC(writesw)
+ENDPROC(__raw_writesw)