Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Feb 2021 12:41:06 GMT
From:      Mateusz Guzik <mjg@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: be03df57d62f - stable/13 - amd64: retire sse2_pagezero
Message-ID:  <202102011241.111Cf6kA098460@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by mjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=be03df57d62f4cc6161349f9127309ea20395c0d

commit be03df57d62f4cc6161349f9127309ea20395c0d
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2021-01-30 00:17:15 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2021-02-01 12:39:18 +0000

    amd64: retire sse2_pagezero
    
    All page zeroing is using temporal stores with rep movs*, the routine is
    unused for several years.
    
    Should a need arise for zeroing using non-temporal stores, a more
    optimized variant can be implemented with a more descriptive name.
    
    (cherry picked from commit d1de5698dfe6109308d4e5d6536a2ac93941d23a)
---
 sys/amd64/amd64/support.S  | 24 ------------------------
 sys/amd64/include/md_var.h |  1 -
 2 files changed, 25 deletions(-)

diff --git a/sys/amd64/amd64/support.S b/sys/amd64/amd64/support.S
index 35e73e413e87..49baa50ac294 100644
--- a/sys/amd64/amd64/support.S
+++ b/sys/amd64/amd64/support.S
@@ -81,30 +81,6 @@ ENTRY(pagecopy)
 	ret
 END(pagecopy)
 
-/* Address: %rdi */
-ENTRY(sse2_pagezero)
-	PUSH_FRAME_POINTER
-	movq	$-PAGE_SIZE,%rdx
-	subq	%rdx,%rdi
-	xorl	%eax,%eax
-	jmp	1f
-	/*
-	 * The loop takes 29 bytes.  Ensure that it doesn't cross a 32-byte
-	 * cache line.
-	 */
-	.p2align 5,0x90
-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(sse2_pagezero)
-
 /*
  * memcmpy(b1, b2, len)
  *	   rdi,rsi,rdx
diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h
index 6b6201e4c0f1..3b2454a4b441 100644
--- a/sys/amd64/include/md_var.h
+++ b/sys/amd64/include/md_var.h
@@ -85,7 +85,6 @@ void	gsbase_load_fault(void) __asm(__STRING(gsbase_load_fault));
 void	fpstate_drop(struct thread *td);
 void	pagezero(void *addr);
 void	setidt(int idx, alias_for_inthand_t *func, int typ, int dpl, int ist);
-void	sse2_pagezero(void *addr);
 void	set_top_of_stack_td(struct thread *td);
 struct savefpu *get_pcb_user_save_td(struct thread *td);
 struct savefpu *get_pcb_user_save_pcb(struct pcb *pcb);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202102011241.111Cf6kA098460>