From ace61c54d638a74d6e544c16e2c5f9d6b5e5fd5f Mon Sep 17 00:00:00 2001 From: Adrian-Ken Rueegsegger Date: Thu, 12 Mar 2015 17:36:56 +0100 Subject: [PATCH] hw_x86_64: Zero-fill BSS segment in x86_64 crt0.s Make sure all content of the BSS segment is initialized to zero. --- repos/base-hw/src/core/spec/x86_64/kernel/crt0.s | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/repos/base-hw/src/core/spec/x86_64/kernel/crt0.s b/repos/base-hw/src/core/spec/x86_64/kernel/crt0.s index a61f5635c..d8069a967 100644 --- a/repos/base-hw/src/core/spec/x86_64/kernel/crt0.s +++ b/repos/base-hw/src/core/spec/x86_64/kernel/crt0.s @@ -29,6 +29,16 @@ .global _start _start: + /** + * zero-fill BSS segment + */ + leal _bss_start, %edi + leal _bss_end, %ecx + sub %edi, %ecx + shr $2, %ecx + xor %eax, %eax + rep stosl + /* Enable PAE (prerequisite for IA-32e mode) and OSFXSR */ movl %cr4, %eax btsl $5, %eax