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
/
copy_page.S
diff --git
a/arch/x86_64/lib/copy_page.S
b/arch/x86_64/lib/copy_page.S
index
dd3aa47
..
8fa19d9
100644
(file)
--- a/
arch/x86_64/lib/copy_page.S
+++ b/
arch/x86_64/lib/copy_page.S
@@
-12,10
+12,10
@@
copy_page:
movq %rbx,(%rsp)
movq %r12,1*8(%rsp)
movq %r13,2*8(%rsp)
movq %rbx,(%rsp)
movq %r12,1*8(%rsp)
movq %r13,2*8(%rsp)
-
+
movl $(4096/64)-5,%ecx
.p2align 4
movl $(4096/64)-5,%ecx
.p2align 4
-.Loop64:
+.Loop64:
dec %rcx
movq (%rsi), %rax
dec %rcx
movq (%rsi), %rax
@@
-45,7
+45,7
@@
copy_page:
movl $5,%ecx
.p2align 4
movl $5,%ecx
.p2align 4
-.Loop2:
+.Loop2:
decl %ecx
movq (%rsi), %rax
decl %ecx
movq (%rsi), %rax
@@
-65,28
+65,28
@@
copy_page:
movq %r10, 40 (%rdi)
movq %r11, 48 (%rdi)
movq %r12, 56 (%rdi)
movq %r10, 40 (%rdi)
movq %r11, 48 (%rdi)
movq %r12, 56 (%rdi)
-
- leaq 64(%rdi),%rdi
- leaq 64(%rsi),%rsi
-
- jnz .Loop2
-
+
+ leaq 64(%rdi),%rdi
+ leaq 64(%rsi),%rsi
+
+ jnz .Loop2
+
movq (%rsp),%rbx
movq 1*8(%rsp),%r12
movq 2*8(%rsp),%r13
addq $3*8,%rsp
ret
movq (%rsp),%rbx
movq 1*8(%rsp),%r12
movq 2*8(%rsp),%r13
addq $3*8,%rsp
ret
-
- /*
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 */
-#include <asm/cpufeature.h>
-
+#include <asm/cpufeature.h>
+
.section .altinstructions,"a"
.align 8
.quad copy_page
.quad copy_page_c
.section .altinstructions,"a"
.align 8
.quad copy_page
.quad copy_page_c
- .byte X86_FEATURE_
K8_C
+ .byte X86_FEATURE_
REP_GOOD
.byte copy_page_c_end-copy_page_c
.byte copy_page_c_end-copy_page_c
.previous
.byte copy_page_c_end-copy_page_c
.byte copy_page_c_end-copy_page_c
.previous