X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fx86_64%2Flib%2Fclear_page.S;h=1f81b79b796cc04e47ef0f22b98a79174b51279c;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=30a9da458c152b8f1c426258ecf26fe4ea02e977;hpb=cee37fe97739d85991964371c1f3a745c00dd236;p=linux-2.6.git diff --git a/arch/x86_64/lib/clear_page.S b/arch/x86_64/lib/clear_page.S index 30a9da458..1f81b79b7 100644 --- a/arch/x86_64/lib/clear_page.S +++ b/arch/x86_64/lib/clear_page.S @@ -10,7 +10,7 @@ clear_page: .p2align 4 .Lloop: decl %ecx -#define PUT(x) movq %rax,x*8(%rdi) +#define PUT(x) movq %rax,x*8(%rdi) movq %rax,(%rdi) PUT(1) PUT(2) @@ -23,19 +23,19 @@ clear_page: jnz .Lloop nop ret -clear_page_end: - - /* C stepping K8 run faster using the string instructions. +clear_page_end: + + /* Some CPUs run faster using the string instructions. It is also a lot simpler. Use this when possible */ - + #include - + .section .altinstructions,"a" .align 8 .quad clear_page .quad clear_page_c - .byte X86_FEATURE_K8_C - .byte clear_page_end-clear_page + .byte X86_FEATURE_REP_GOOD + .byte clear_page_end-clear_page .byte clear_page_c_end-clear_page_c .previous