uboot/arch/x86/lib/crt0_x86_64_efi.S
<<
>>
Prefs
   1/*
   2 * crt0-efi-x86_64.S - x86_64 EFI startup code.
   3 * Copyright (C) 1999 Hewlett-Packard Co.
   4 * Contributed by David Mosberger <davidm@hpl.hp.com>.
   5 * Copyright (C) 2005 Intel Co.
   6 * Contributed by Fenghua Yu <fenghua.yu@intel.com>.
   7 *
   8 * All rights reserved.
   9 * SPDX-License-Identifier:     BSD-3-Clause
  10 */
  11        .text
  12        .align 4
  13
  14        .globl _start
  15_start:
  16        subq $8, %rsp
  17        pushq %rcx
  18        pushq %rdx
  19
  200:
  21        lea image_base(%rip), %rdi
  22        lea _DYNAMIC(%rip), %rsi
  23
  24        popq %rcx
  25        popq %rdx
  26        pushq %rcx
  27        pushq %rdx
  28        call _relocate
  29
  30        popq %rdi
  31        popq %rsi
  32
  33        call efi_main
  34        addq $8, %rsp
  35
  36.exit:
  37        ret
  38
  39        /*
  40         * hand-craft a dummy .reloc section so EFI knows it's a relocatable
  41         * executable:
  42         */
  43        .data
  44dummy:  .long   0
  45
  46#define IMAGE_REL_ABSOLUTE      0
  47        .section .reloc, "a"
  48label1:
  49        .long   dummy-label1                            /* Page RVA */
  50        .long   10                                      /* Block Size (2*4+2) */
  51        .word   (IMAGE_REL_ABSOLUTE << 12) +  0         /* reloc for dummy */
  52