From c6c63b6dbffcdf32a59efa1fd6e578437fba06ff Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Wed, 8 Jan 2020 13:11:13 +0000 Subject: [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 Reviewed-by: Jan Beulich --- 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 8d0ffbd1b0..c730810461 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.30.2