![Andi Kleen](/assets/img/avatar_default.png)
B stepping were the first shipping Opterons. memcpy/memset/copy_page/ clear_page had special optimized version for them. These are really old and in the minority now and the difference to the generic versions (using rep microcode) is not that big anyways. So just remove them. TODO: figure out optimized versions for Intel Netburst based EM64T Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
33 lines
422 B
ArmAsm
33 lines
422 B
ArmAsm
/* Copyright 2002 Andi Kleen */
|
|
|
|
#include <asm/cpufeature.h>
|
|
/*
|
|
* memcpy - Copy a memory block.
|
|
*
|
|
* Input:
|
|
* rdi destination
|
|
* rsi source
|
|
* rdx count
|
|
*
|
|
* Output:
|
|
* rax original destination
|
|
*
|
|
* TODO: check best memcpy for PSC
|
|
*/
|
|
|
|
.globl __memcpy
|
|
.globl memcpy
|
|
.p2align 4
|
|
__memcpy:
|
|
memcpy:
|
|
movq %rdi,%rax
|
|
movl %edx,%ecx
|
|
shrl $3,%ecx
|
|
andl $7,%edx
|
|
rep
|
|
movsq
|
|
movl %edx,%ecx
|
|
rep
|
|
movsb
|
|
ret
|