x86, mem: Optimize memmove for small size and unaligned cases
authorMa Ling <ling.ma@intel.com>
Thu, 16 Sep 2010 19:12:40 +0000 (03:12 +0800)
committerH. Peter Anvin <hpa@zytor.com>
Sat, 25 Sep 2010 01:57:11 +0000 (18:57 -0700)
commit3b4b682becdfa9f42321aa024d5cc84f71f06d8c
tree807cac0bfbc45d45f156dae742b31f9a66aaa559
parent59daa706fbec745684702741b9f5373142dd9fdc
x86, mem: Optimize memmove for small size and unaligned cases

movs instruction will combine data to accelerate moving data,
however we need to concern two cases about it.

1. movs instruction need long lantency to startup,
   so here we use general mov instruction to copy data.
2. movs instruction is not good for unaligned case,
   even if src offset is 0x10, dest offset is 0x0,
   we avoid and handle the case by general mov instruction.

Signed-off-by: Ma Ling <ling.ma@intel.com>
LKML-Reference: <1284664360-6138-1-git-send-email-ling.ma@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/lib/memcpy_32.c
arch/x86/lib/memmove_64.c