clear_page.s

来自「优龙2410linux2.6.8内核源代码」· S 代码 · 共 51 行

S
51
字号
/* * Zero a page. 	 * rdi	page */				.globl clear_page	.p2align 4clear_page:	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	retclear_page_end:			/* C stepping K8 run faster using the string instructions.	   It is also a lot simpler. Use this when possible */	#include <asm/cpufeature.h>	    		.section .altinstructions,"a"	.align 8	.quad  clear_page	.quad  clear_page_c	.byte  X86_FEATURE_K8_C	.byte  clear_page_end-clear_page		.byte  clear_page_c_end-clear_page_c	.previous	.section .altinstr_replacement,"ax"clear_page_c:	movl $4096/8,%ecx	xorl %eax,%eax	rep 	stosq	retclear_page_c_end:	.previous

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?