arch/x86,cpu/x86: Move cpu_info initialization instructions into macro

This will help reduce duplication and make it easier to add new members
to the cpu_info struct.

BUG=b:194391185, b:179699789
TEST=Compare assembly of romstage and ramstage before and after

Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: I31f264f4bb8b605fa3cb3bfff0d9bf79224072aa
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57859
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
This commit is contained in:
Raul E Rangel 2021-09-22 10:45:51 -06:00 committed by Patrick Georgi
parent 9f17fa33f9
commit da68c9d378
3 changed files with 14 additions and 14 deletions

View File

@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
#include <cpu/x86/cpu_info.S.inc>
#include <rules.h> #include <rules.h>
/* /*
@ -35,13 +36,7 @@ _start:
/* reset stack pointer to CAR/EARLYRAM stack */ /* reset stack pointer to CAR/EARLYRAM stack */
mov $_STACK_TOP, %esp mov $_STACK_TOP, %esp
#if CONFIG(COOP_MULTITASKING) push_cpu_info
/* Push the thread pointer. */
push $0
#endif
/* Push the CPU index and struct CPU */
push $0
push $0
/* clear .bss section as it is not shared */ /* clear .bss section as it is not shared */
cld cld

View File

@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
#include <cpu/x86/cpu_info.S.inc>
#include <cpu/x86/post_code.h> #include <cpu/x86/post_code.h>
#include <arch/ram_segs.h> #include <arch/ram_segs.h>
@ -76,13 +77,7 @@ _start:
movl $_estack, %esp movl $_estack, %esp
andl $(~(CONFIG_STACK_SIZE-1)), %esp andl $(~(CONFIG_STACK_SIZE-1)), %esp
#if CONFIG(COOP_MULTITASKING) push_cpu_info
/* Push the thread pointer. */
push $0
#endif
/* Push the CPU index and struct CPU */
push $0
push $0
/* /*
* Now we are finished. Memory is up, data is copied and * Now we are finished. Memory is up, data is copied and

View File

@ -0,0 +1,10 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Push struct cpu_info */
.macro push_cpu_info index=$0
#if CONFIG(COOP_MULTITASKING)
push $0 /* *thread */
#endif
push \index /* index */
push $0 /* *cpu */
.endm