git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
x86_64
/
lib
/
memcpy.S
diff --git
a/arch/x86_64/lib/memcpy.S
b/arch/x86_64/lib/memcpy.S
index
c6c4649
..
5554948
100644
(file)
--- a/
arch/x86_64/lib/memcpy.S
+++ b/
arch/x86_64/lib/memcpy.S
@@
-24,11
+24,11
@@
memcpy:
movl %edx,%ecx
shrl $6,%ecx
jz .Lhandle_tail
movl %edx,%ecx
shrl $6,%ecx
jz .Lhandle_tail
-
+
.p2align 4
.Lloop_64:
decl %ecx
.p2align 4
.Lloop_64:
decl %ecx
-
+
movq (%rsi),%r11
movq 8(%rsi),%r8
movq (%rsi),%r11
movq 8(%rsi),%r8
@@
-40,7
+40,7
@@
memcpy:
movq %r9,2*8(%rdi)
movq %r10,3*8(%rdi)
movq %r9,2*8(%rdi)
movq %r10,3*8(%rdi)
-
+
movq 4*8(%rsi),%r11
movq 5*8(%rsi),%r8
movq 4*8(%rsi),%r11
movq 5*8(%rsi),%r8
@@
-63,10
+63,10
@@
memcpy:
shrl $3,%ecx
jz .Lhandle_7
.p2align 4
shrl $3,%ecx
jz .Lhandle_7
.p2align 4
-.Lloop_8:
+.Lloop_8:
decl %ecx
movq (%rsi),%r8
decl %ecx
movq (%rsi),%r8
- movq %r8,(%rdi)
+ movq %r8,(%rdi)
leaq 8(%rdi),%rdi
leaq 8(%rsi),%rsi
jnz .Lloop_8
leaq 8(%rdi),%rdi
leaq 8(%rsi),%rsi
jnz .Lloop_8
@@
-78,34
+78,34
@@
memcpy:
.p2align 4
.Lloop_1:
movb (%rsi),%r8b
.p2align 4
.Lloop_1:
movb (%rsi),%r8b
- movb %r8b,(%rdi)
+ movb %r8b,(%rdi)
incq %rdi
incq %rsi
decl %ecx
jnz .Lloop_1
incq %rdi
incq %rsi
decl %ecx
jnz .Lloop_1
-
-.Lende:
+
+.Lende:
popq %rbx
ret
.Lfinal:
popq %rbx
ret
.Lfinal:
-
- /*
C stepping K8
run faster using the string copy instructions.
+
+ /*
Some CPUs
run faster using the string copy instructions.
It is also a lot simpler. Use this when possible */
It is also a lot simpler. Use this when possible */
-
+
.section .altinstructions,"a"
.align 8
.quad memcpy
.quad memcpy_c
.section .altinstructions,"a"
.align 8
.quad memcpy
.quad memcpy_c
- .byte X86_FEATURE_
K8_C
+ .byte X86_FEATURE_
REP_GOOD
.byte .Lfinal-memcpy
.byte .Lfinal-memcpy
- .byte memcpy_c_end-memcpy_c
+ .byte memcpy_c_end-memcpy_c
.previous
.section .altinstr_replacement,"ax"
/* rdi destination
* rsi source
* rdx count
.previous
.section .altinstr_replacement,"ax"
/* rdi destination
* rsi source
* rdx count
- */
+ */
memcpy_c:
movq %rdi,%rax
movl %edx,%ecx
memcpy_c:
movq %rdi,%rax
movl %edx,%ecx