summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorWilco <wdijkstr@arm.com>2014-08-07 14:30:31 +0000
committerWilco <wdijkstr@arm.com>2014-08-07 14:30:31 +0000
commit538e9e454de75c5528d1a7c8f57ede9ccad39d00 (patch)
tree6b01d243ec02bd67ca0ff1fb0f1fcdfd3d05c3ab /sysdeps
parentd4795e4a43e6f0c221bc5dc64c612206a21a177b (diff)
Fix performance issue in misaligned strcpy.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/arm/armv6/strcpy.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/arm/armv6/strcpy.S b/sysdeps/arm/armv6/strcpy.S
index 833a83c28f..67bd9d8af1 100644
--- a/sysdeps/arm/armv6/strcpy.S
+++ b/sysdeps/arm/armv6/strcpy.S
@@ -159,7 +159,7 @@ ENTRY (strcpy)
@ Prologue to unaligned loop. Seed shifted non-zero bytes.
uqsub8 r4, r7, r2 @ Find EOS
uqsub8 r5, r7, r3
- mvns r4, r4 @ EOS in first word?
+ cmp r4, #0 @ EOS in first word?
it ne
subne r1, r1, #8
bne .Lbyte_loop
@@ -179,7 +179,7 @@ ENTRY (strcpy)
@ Rotated unaligned copy loop. The tail of the prologue is
@ shared with the loop itself.
.balign 8
-1: mvns r5, r5 @ EOS in second word?
+1: cmp r5, #0 @ EOS in second word?
bne 4f
@ Combine first and second words
orr r2, r2, r3, lsh_gt #(\unalign*8)
@@ -194,7 +194,7 @@ ENTRY (strcpy)
sfi_pld r1, #128
uqsub8 r5, r7, r3
sfi_pld r0, #128
- mvns r4, r4 @ EOS in first word?
+ cmp r4, #0 @ EOS in first word?
bne 3f
@ Combine the leftover and the first word
orr r6, r6, r2, lsh_gt #(\unalign*8)