123456789101112131415161718192021222324252627282930 |
- #include <asm/segment.h>
- #include <asm/msr.h>
- #include <asm/processor-flags.h>
- #include "../../platform/efi/efi_stub_64.S"
- #ifdef CONFIG_EFI_MIXED
- .code64
- .text
- ENTRY(efi64_thunk)
- push %rbp
- push %rbx
- subq $16, %rsp
- leaq efi_exit32(%rip), %rax
- movl %eax, 8(%rsp)
- leaq efi_gdt64(%rip), %rax
- movl %eax, 4(%rsp)
- movl %eax, 2(%rax) /* Fixup the gdt base address */
- leaq efi32_boot_gdt(%rip), %rax
- movl %eax, (%rsp)
- call __efi64_thunk
- addq $16, %rsp
- pop %rbx
- pop %rbp
- ret
- ENDPROC(efi64_thunk)
- #endif /* CONFIG_EFI_MIXED */
|