From 732915976a17446c0cc47d3a54bf3acde7191d21 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 26 Jan 2012 15:55:32 +0000 Subject: [PATCH] --- yaml --- r: 292701 b: refs/heads/master c: 9d8e22777e66f420e46490e9fc6f8cb7e0e2222b h: refs/heads/master i: 292699: 5db6115ee403a88c6c6d0beffd0f0bf25c5f7f33 v: v3 --- [refs] | 2 +- trunk/arch/x86/lib/memcpy_64.S | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 2b9d0305e6e7..308357d25685 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2ab560911a427fdc73bfd3a7d2944d8ee0ca6db8 +refs/heads/master: 9d8e22777e66f420e46490e9fc6f8cb7e0e2222b diff --git a/trunk/arch/x86/lib/memcpy_64.S b/trunk/arch/x86/lib/memcpy_64.S index 1235b04a9a60..1c273be7c97e 100644 --- a/trunk/arch/x86/lib/memcpy_64.S +++ b/trunk/arch/x86/lib/memcpy_64.S @@ -164,18 +164,19 @@ ENTRY(memcpy) retq .p2align 4 .Lless_3bytes: - cmpl $0, %edx - je .Lend + subl $1, %edx + jb .Lend /* * Move data from 1 bytes to 3 bytes. */ -.Lloop_1: - movb (%rsi), %r8b - movb %r8b, (%rdi) - incq %rdi - incq %rsi - decl %edx - jnz .Lloop_1 + movzbl (%rsi), %ecx + jz .Lstore_1byte + movzbq 1(%rsi), %r8 + movzbq (%rsi, %rdx), %r9 + movb %r8b, 1(%rdi) + movb %r9b, (%rdi, %rdx) +.Lstore_1byte: + movb %cl, (%rdi) .Lend: retq