u-boot-brain/arch/x86
Ivan Gorinov 9f0b0113c9 x86: use EFI calling convention for efi_main on x86_64
UEFI specifies the calling convention used in Microsoft compilers;
first arguments of a function are passed in (%rcx, %rdx, %r8, %r9).

All other compilers use System V ABI by default, passing first integer
arguments of a function in (%rdi, %rsi, %rdx, %rcx, %r8, %r9).

These ABI also specify different sets of registers that must be preserved
across function calls (callee-saved).

GCC allows using the Microsoft calling convention by adding the ms_abi
attribute to a function declaration.

Current EFI implementation in U-Boot specifies EFIAPI for efi_main()
in the test apps but uses default calling convention in lib/efi.

Save efi_main() arguments in the startup code on x86_64;
use EFI calling convention for _relocate() on x86_64;
consistently use EFI calling convention for efi_main() everywhere.

Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
2018-06-17 21:16:04 +08:00
..
cpu x86: irq: Support discrete PIRQ routing registers via device tree 2018-06-13 09:50:57 +08:00
dts x86: cherryhill: Fix DTC warning 2018-06-17 21:16:04 +08:00
include/asm x86: irq: Support discrete PIRQ routing registers via device tree 2018-06-13 09:50:57 +08:00
lib x86: use EFI calling convention for efi_main on x86_64 2018-06-17 21:16:04 +08:00
config.mk efi_selftest: allow building relocation code on x86_64 2018-06-03 15:27:20 +02:00
Kconfig x86: Conditionally build the pinctrl_ich6 driver 2018-06-13 09:50:57 +08:00
Makefile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00