svn commit: r304986 - head/sys/amd64/amd64

Bruce Evans bde at FreeBSD.org
Mon Aug 29 06:07:45 UTC 2016


Author: bde
Date: Mon Aug 29 06:07:43 2016
New Revision: 304986
URL: https://svnweb.freebsd.org/changeset/base/304986

Log:
  Restore the nontemporal pagezero() under the name sse2_pagezero() (the
  same name as for i386).  It is not reconnected yet.
  
  Which method is better is too machine-dependent and system-dependent
  to replace the old method unconditionally.

Modified:
  head/sys/amd64/amd64/support.S

Modified: head/sys/amd64/amd64/support.S
==============================================================================
--- head/sys/amd64/amd64/support.S	Mon Aug 29 05:59:12 2016	(r304985)
+++ head/sys/amd64/amd64/support.S	Mon Aug 29 06:07:43 2016	(r304986)
@@ -72,6 +72,24 @@ ENTRY(pagezero)
 	ret
 END(pagezero)
 
+/* Address: %rdi */
+ENTRY(sse2_pagezero)
+	PUSH_FRAME_POINTER
+	movq	$-PAGE_SIZE,%rdx
+	subq	%rdx,%rdi
+	xorl	%eax,%eax
+1:
+	movnti	%rax,(%rdi,%rdx)
+	movnti	%rax,8(%rdi,%rdx)
+	movnti	%rax,16(%rdi,%rdx)
+	movnti	%rax,24(%rdi,%rdx)
+	addq	$32,%rdx
+	jne	1b
+	sfence
+	POP_FRAME_POINTER
+	ret
+END(pagezero)
+
 ENTRY(bcmp)
 	PUSH_FRAME_POINTER
 	movq	%rdx,%rcx


More information about the svn-src-head mailing list