git: d1de5698dfe6 - main - amd64: retire sse2_pagezero
Mateusz Guzik
mjg at FreeBSD.org
Sat Jan 30 00:22:37 UTC 2021
The branch main has been updated by mjg:
URL: https://cgit.FreeBSD.org/src/commit/?id=d1de5698dfe6109308d4e5d6536a2ac93941d23a
commit d1de5698dfe6109308d4e5d6536a2ac93941d23a
Author: Mateusz Guzik <mjg at FreeBSD.org>
AuthorDate: 2021-01-30 00:17:15 +0000
Commit: Mateusz Guzik <mjg at FreeBSD.org>
CommitDate: 2021-01-30 00:17:15 +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.
---
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);
More information about the dev-commits-src-main
mailing list