From 399486e8fb8f5b402f1833e496dbed11aa0ac669 Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Thu, 6 Dec 2012 13:54:29 -0800 Subject: Unify assembler function handling Instead of adding regparm(0) to each assembler function called by coreboot, add an asmlinkage macro (like the Linux kernel does) that can be different per architecture (and that is empty on ARM right now) Change-Id: I7ad10c463f6c552f1201f77ae24ed354ac48e2d9 Signed-off-by: Stefan Reinauer Reviewed-on: http://review.coreboot.org/1973 Reviewed-by: David Hendricks Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/arch/x86/include/arch/cpu.h | 5 +++++ src/arch/x86/include/arch/stages.h | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src/arch/x86/include') diff --git a/src/arch/x86/include/arch/cpu.h b/src/arch/x86/include/arch/cpu.h index abe3f7fba7..ed8148e465 100644 --- a/src/arch/x86/include/arch/cpu.h +++ b/src/arch/x86/include/arch/cpu.h @@ -1,6 +1,8 @@ #ifndef ARCH_CPU_H #define ARCH_CPU_H +#include + /* * EFLAGS bits */ @@ -205,6 +207,9 @@ static void inline get_fms(struct cpuinfo_x86 *c, uint32_t tfms) c->x86_model += ((tfms >> 16) & 0xF) << 4; } + +#define asmlinkage __attribute__((regparm(0))) + #endif #endif /* ARCH_CPU_H */ diff --git a/src/arch/x86/include/arch/stages.h b/src/arch/x86/include/arch/stages.h index 3ddba51783..0d00144cba 100644 --- a/src/arch/x86/include/arch/stages.h +++ b/src/arch/x86/include/arch/stages.h @@ -19,6 +19,9 @@ #ifndef __ARCH_STAGES_H #define __ARCH_STAGES_H -void __attribute__((regparm(0))) copy_and_run(unsigned cpu_reset); -void __attribute__((regparm(0))) copy_and_run_ap_code_in_car(unsigned ret_addr); + +#include + +void asmlinkage copy_and_run(unsigned cpu_reset); +void asmlinkage copy_and_run_ap_code_in_car(unsigned ret_addr); #endif -- cgit v1.2.3