diff options
Diffstat (limited to 'arch/arm/lib/io-writesw-armv4.S')
-rw-r--r-- | arch/arm/lib/io-writesw-armv4.S | 11 |
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) |