2 * Function calling ABI conversion from Linux to EFI for x86_64
4 * Copyright (C) 2007 Intel Corp
5 * Bibo Mao <bibo.mao@intel.com>
6 * Huang Ying <ying.huang@intel.com>
9 #include <linux/linkage.h>
10 #include <asm/segment.h>
12 #include <asm/processor-flags.h>
13 #include <asm/page_types.h>
22 mov %rax, 0x8(%rsp); \
23 movaps %xmm0, 0x60(%rsp); \
24 movaps %xmm1, 0x50(%rsp); \
25 movaps %xmm2, 0x40(%rsp); \
26 movaps %xmm3, 0x30(%rsp); \
27 movaps %xmm4, 0x20(%rsp); \
28 movaps %xmm5, 0x10(%rsp)
31 movaps 0x60(%rsp), %xmm0; \
32 movaps 0x50(%rsp), %xmm1; \
33 movaps 0x40(%rsp), %xmm2; \
34 movaps 0x30(%rsp), %xmm3; \
35 movaps 0x20(%rsp), %xmm4; \
36 movaps 0x10(%rsp), %xmm5; \
37 mov 0x8(%rsp), %rsi; \
43 movq %r15, efi_scratch(%rip)
44 movq %r14, efi_scratch+8(%rip)
50 movq efi_scratch+8(%rip), %r14
51 movq efi_scratch(%rip), %r15
55 cmpb $0, efi_scratch+24(%rip)
57 movq %r15, efi_scratch(%rip) # r15
60 movq %r15, efi_scratch+8(%rip) # prev_cr3
61 movq efi_scratch+16(%rip), %r15 # EFI pgt
67 cmpb $0, efi_scratch+24(%rip)
69 movq efi_scratch+8(%rip), %r15
71 movq efi_scratch(%rip), %r15