diff options
author | Julius Werner <jwerner@chromium.org> | 2016-08-05 21:27:47 -0700 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2016-08-13 02:46:19 +0200 |
commit | 1143d08f7e0a5c203312f054a08301445cafdec8 (patch) | |
tree | 469ada8209572fb7442e03341dc7b47ca9686bb0 /payloads/libpayload/arch/x86 | |
parent | 55ffccfbaea62c4c8e5a69c8956441758d657eb1 (diff) |
libpayload: head.S: Avoid clearing BSS (and heap) again
3 out of 4 architectures currently zero out the payload BSS in early
assembly code, which is pointless since the code loading the payload has
already done that (with a more efficient memset). ARM64 has never had
any code like this and can run just fine without it. This also defeats
the new optimization of moving the heap out of the BSS, since all three
implementations assume that everything between _edata and _end is BSS.
We should just take this out.
Change-Id: I45cd2dabd94da43ff0f77e990f11c877cee6cda1
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/16091
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'payloads/libpayload/arch/x86')
-rw-r--r-- | payloads/libpayload/arch/x86/head.S | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/payloads/libpayload/arch/x86/head.S b/payloads/libpayload/arch/x86/head.S index 3dd61336f9..fa9bb7374f 100644 --- a/payloads/libpayload/arch/x86/head.S +++ b/payloads/libpayload/arch/x86/head.S @@ -73,14 +73,6 @@ _init: movl %eax,loader_eax movl %ebx,loader_ebx - /* Clear the bss */ - cld - movl $.bss, %edi - movl $_end, %ecx - subl %edi, %ecx - xor %ax, %ax - rep stosb - /* Setup new stack. */ movl $_stack, %ebx |