⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clear_page_64.s

📁 linux 内核源代码
💻 S
字号:
#include <linux/linkage.h>#include <asm/dwarf2.h>/* * Zero a page. 	 * rdi	page */				ALIGNclear_page_c:	CFI_STARTPROC	movl $4096/8,%ecx	xorl %eax,%eax	rep stosq	ret	CFI_ENDPROCENDPROC(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

⌨️ 快捷键说明

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