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:
parent
78d69d0a3c
commit
f1bc3750cf
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user