1*f8ca5d45SAhmad Khalifa/*- 2*f8ca5d45SAhmad Khalifa * Copyright (C) 1999 Hewlett-Packard Co. 3*f8ca5d45SAhmad Khalifa * Contributed by David Mosberger <davidm@hpl.hp.com>. 4*f8ca5d45SAhmad Khalifa * All rights reserved. 5*f8ca5d45SAhmad Khalifa * 6*f8ca5d45SAhmad Khalifa * Redistribution and use in source and binary forms, with or without 7*f8ca5d45SAhmad Khalifa * modification, are permitted provided that the following conditions 8*f8ca5d45SAhmad Khalifa * are met: 9*f8ca5d45SAhmad Khalifa * 1. Redistributions of source code must retain the above copyright 10*f8ca5d45SAhmad Khalifa * notice, this list of conditions and the following disclaimer. 11*f8ca5d45SAhmad Khalifa * 2. Redistributions in binary form must reproduce the above copyright 12*f8ca5d45SAhmad Khalifa * notice, this list of conditions and the following disclaimer in the 13*f8ca5d45SAhmad Khalifa * documentation and/or other materials provided with the distribution. 14*f8ca5d45SAhmad Khalifa * 3. Neither the name of Hewlett-Packard Co. nor the names of its 15*f8ca5d45SAhmad Khalifa * contributors may be used to endorse or promote products derived 16*f8ca5d45SAhmad Khalifa * from this software without specific prior written permission. 17*f8ca5d45SAhmad Khalifa * 18*f8ca5d45SAhmad Khalifa * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19*f8ca5d45SAhmad Khalifa * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20*f8ca5d45SAhmad Khalifa * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21*f8ca5d45SAhmad Khalifa * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22*f8ca5d45SAhmad Khalifa * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23*f8ca5d45SAhmad Khalifa * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24*f8ca5d45SAhmad Khalifa * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25*f8ca5d45SAhmad Khalifa * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26*f8ca5d45SAhmad Khalifa * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 27*f8ca5d45SAhmad Khalifa * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 28*f8ca5d45SAhmad Khalifa * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29*f8ca5d45SAhmad Khalifa * SUCH DAMAGE. 30*f8ca5d45SAhmad Khalifa */ 31*f8ca5d45SAhmad Khalifa 32*f8ca5d45SAhmad Khalifa/* 33*f8ca5d45SAhmad Khalifa * crt0-efi-ia32.S - x86 EFI startup code. 34*f8ca5d45SAhmad Khalifa */ 35*f8ca5d45SAhmad Khalifa 36*f8ca5d45SAhmad Khalifa .text 37*f8ca5d45SAhmad Khalifa .align 4 38*f8ca5d45SAhmad Khalifa 39*f8ca5d45SAhmad Khalifa .globl _start 40*f8ca5d45SAhmad Khalifa_start: 41*f8ca5d45SAhmad Khalifa pushl %ebp 42*f8ca5d45SAhmad Khalifa movl %esp, %ebp 43*f8ca5d45SAhmad Khalifa 44*f8ca5d45SAhmad Khalifa pushl 12(%ebp) 45*f8ca5d45SAhmad Khalifa pushl 8(%ebp) 46*f8ca5d45SAhmad Khalifa 47*f8ca5d45SAhmad Khalifa call 0f 48*f8ca5d45SAhmad Khalifa0: popl %eax 49*f8ca5d45SAhmad Khalifa movl %eax, %ebx 50*f8ca5d45SAhmad Khalifa 51*f8ca5d45SAhmad Khalifa addl $ImageBase-0b, %eax 52*f8ca5d45SAhmad Khalifa addl $_DYNAMIC-0b, %ebx 53*f8ca5d45SAhmad Khalifa 54*f8ca5d45SAhmad Khalifa pushl %ebx 55*f8ca5d45SAhmad Khalifa pushl %eax 56*f8ca5d45SAhmad Khalifa call self_reloc 57*f8ca5d45SAhmad Khalifa popl %ebx 58*f8ca5d45SAhmad Khalifa popl %ebx 59*f8ca5d45SAhmad Khalifa 60*f8ca5d45SAhmad Khalifa call setup 61*f8ca5d45SAhmad Khalifa 62*f8ca5d45SAhmad Khalifa.exit: 63*f8ca5d45SAhmad Khalifa leave 64*f8ca5d45SAhmad Khalifa ret 65*f8ca5d45SAhmad Khalifa 66*f8ca5d45SAhmad Khalifa /* 67*f8ca5d45SAhmad Khalifa * hand-craft a dummy .reloc section so EFI knows it's a relocatable 68*f8ca5d45SAhmad Khalifa * executable: 69*f8ca5d45SAhmad Khalifa */ 70*f8ca5d45SAhmad Khalifa 71*f8ca5d45SAhmad Khalifa .data 72*f8ca5d45SAhmad Khalifa .section .reloc, "a" 73*f8ca5d45SAhmad Khalifa .long 0 74*f8ca5d45SAhmad Khalifa .long 10 75*f8ca5d45SAhmad Khalifa .word 0 76