1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-07 13:14:51 +00:00

arm64: Use store-pair to zero the kernel bss

While this won't be noticed by most users the time to zero the bss
while using instruction tracing in the Arm FVP models (simulators) is
noticeable.

Reduce this time by using a store-pair instruction to double the size
of memory we zero on each iteration of the loop.

Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D42733
This commit is contained in:
Andrew Turner 2024-08-20 18:14:28 +01:00
parent 78d69d0a3c
commit f1bc3750cf
2 changed files with 3 additions and 2 deletions

View File

@ -111,7 +111,7 @@ virtdone:
ldr x15, .Lbss
ldr x14, .Lend
1:
str xzr, [x15], #8
stp xzr, xzr, [x15], #16
cmp x15, x14
b.lo 1b

View File

@ -121,6 +121,7 @@ SECTIONS
.sdata : { *(.sdata) }
_edata = .;
PROVIDE (edata = .);
. = ALIGN(16);
__bss_start = .;
.sbss : { *(.sbss) *(.scommon) }
.bss :
@ -128,7 +129,7 @@ SECTIONS
*(.dynbss)
*(.bss)
*(COMMON)
. = ALIGN(8);
. = ALIGN(16);
__bss_end = .;
/* A section for the initial page table, it doesn't need to be in the
kernel file, however unlike normal .bss entries should not be zeroed