[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] x86/boot: Simplify BSS zeroing
There is no need to load a non-flat %es to zero the BSS. Use sym_esi() instead, which is easier to follow, faster (avoids two segment loads) and doesn't require use of the stack. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wl@xxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> Looking through the code, almost everything that uses sym_fs() would be better using sym_esi(). It is unnecessary extra instruction stream bytes, and AGU hit for every memory operand. Most importantly however, the code is far more simple to reason about when it is consitent about being flat, rather than mixing and matching between flat and non-flat views of the same memory. --- xen/arch/x86/boot/head.S | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S index 82395e91dd..1b729c37f8 100644 --- a/xen/arch/x86/boot/head.S +++ b/xen/arch/x86/boot/head.S @@ -617,16 +617,12 @@ trampoline_setup: jnz 1f /* Initialize BSS (no nasty surprises!). */ - mov $sym_offs(__bss_start),%edi - mov $sym_offs(__bss_end),%ecx - push %fs - pop %es + lea sym_esi(__bss_start), %edi + lea sym_esi(__bss_end), %ecx sub %edi,%ecx xor %eax,%eax shr $2,%ecx rep stosl - push %ds - pop %es 1: /* Interrogate CPU extended features via CPUID. */ -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |