Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0068f260578fc54aa7d10bb3e4a25118287f00f7 Commit: 0068f260578fc54aa7d10bb3e4a25118287f00f7 Parent: c9954d39e7d8b2f12517aa02d4d7b96eb4761a1d Author: Thomas Gleixner <[EMAIL PROTECTED]> AuthorDate: Thu Oct 11 11:15:36 2007 +0200 Committer: Thomas Gleixner <[EMAIL PROTECTED]> CommitDate: Thu Oct 11 11:15:36 2007 +0200
x86_64: prepare shared lib/clear_page.S Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]> Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]> --- arch/x86_64/lib/Makefile | 2 +- arch/x86_64/lib/clear_page.S | 59 --------------------------------------- arch/x86_64/lib/clear_page_64.S | 59 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 60 deletions(-) diff --git a/arch/x86_64/lib/Makefile b/arch/x86_64/lib/Makefile index 4ecc618..4611996 100644 --- a/arch/x86_64/lib/Makefile +++ b/arch/x86_64/lib/Makefile @@ -9,5 +9,5 @@ obj-$(CONFIG_SMP) += msr-on-cpu.o lib-y := csum-partial.o csum-copy_64.o csum-wrappers.o delay.o \ usercopy.o getuser.o putuser.o \ - thunk_64.o clear_page.o copy_page_64.o bitstr_64.o bitops.o + thunk_64.o clear_page_64.o copy_page_64.o bitstr_64.o bitops.o lib-y += memcpy.o memmove.o memset.o copy_user.o rwlock.o copy_user_nocache.o diff --git a/arch/x86_64/lib/clear_page.S b/arch/x86_64/lib/clear_page.S deleted file mode 100644 index 9a10a78..0000000 --- a/arch/x86_64/lib/clear_page.S +++ /dev/null @@ -1,59 +0,0 @@ -#include <linux/linkage.h> -#include <asm/dwarf2.h> - -/* - * Zero a page. - * rdi page - */ - ALIGN -clear_page_c: - CFI_STARTPROC - movl $4096/8,%ecx - xorl %eax,%eax - rep stosq - ret - CFI_ENDPROC -ENDPROC(clear_page) - -ENTRY(clear_page) - CFI_STARTPROC - xorl %eax,%eax - movl $4096/64,%ecx - .p2align 4 -.Lloop: - decl %ecx -#define PUT(x) movq %rax,x*8(%rdi) - movq %rax,(%rdi) - PUT(1) - PUT(2) - PUT(3) - PUT(4) - PUT(5) - PUT(6) - PUT(7) - leaq 64(%rdi),%rdi - jnz .Lloop - nop - ret - CFI_ENDPROC -.Lclear_page_end: -ENDPROC(clear_page) - - /* Some CPUs run faster using the string instructions. - It is also a lot simpler. Use this when possible */ - -#include <asm/cpufeature.h> - - .section .altinstr_replacement,"ax" -1: .byte 0xeb /* jmp <disp8> */ - .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ -2: - .previous - .section .altinstructions,"a" - .align 8 - .quad clear_page - .quad 1b - .byte X86_FEATURE_REP_GOOD - .byte .Lclear_page_end - clear_page - .byte 2b - 1b - .previous diff --git a/arch/x86_64/lib/clear_page_64.S b/arch/x86_64/lib/clear_page_64.S new file mode 100644 index 0000000..9a10a78 --- /dev/null +++ b/arch/x86_64/lib/clear_page_64.S @@ -0,0 +1,59 @@ +#include <linux/linkage.h> +#include <asm/dwarf2.h> + +/* + * Zero a page. + * rdi page + */ + ALIGN +clear_page_c: + CFI_STARTPROC + movl $4096/8,%ecx + xorl %eax,%eax + rep stosq + ret + CFI_ENDPROC +ENDPROC(clear_page) + +ENTRY(clear_page) + CFI_STARTPROC + xorl %eax,%eax + movl $4096/64,%ecx + .p2align 4 +.Lloop: + decl %ecx +#define PUT(x) movq %rax,x*8(%rdi) + movq %rax,(%rdi) + PUT(1) + PUT(2) + PUT(3) + PUT(4) + PUT(5) + PUT(6) + PUT(7) + leaq 64(%rdi),%rdi + jnz .Lloop + nop + ret + CFI_ENDPROC +.Lclear_page_end: +ENDPROC(clear_page) + + /* Some CPUs run faster using the string instructions. + It is also a lot simpler. Use this when possible */ + +#include <asm/cpufeature.h> + + .section .altinstr_replacement,"ax" +1: .byte 0xeb /* jmp <disp8> */ + .byte (clear_page_c - clear_page) - (2f - 1b) /* offset */ +2: + .previous + .section .altinstructions,"a" + .align 8 + .quad clear_page + .quad 1b + .byte X86_FEATURE_REP_GOOD + .byte .Lclear_page_end - clear_page + .byte 2b - 1b + .previous - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html