[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH v2 04/23] x86/boot: call reloc() using cdecl call
From: |
Konrad Rzeszutek Wilk |
Subject: |
Re: [Xen-devel] [PATCH v2 04/23] x86/boot: call reloc() using cdecl calling convention |
Date: |
Mon, 10 Aug 2015 12:33:45 -0400 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, Jul 20, 2015 at 04:28:59PM +0200, Daniel Kiper wrote:
> Suggested-by: Jan Beulich <address@hidden>
> Signed-off-by: Daniel Kiper <address@hidden>
Reviewed-by: Konrad Rzeszutek Wilk <address@hidden>
> ---
> xen/arch/x86/boot/head.S | 4 +++-
> xen/arch/x86/boot/reloc.c | 20 ++++++++++++++++----
> 2 files changed, 19 insertions(+), 5 deletions(-)
>
> diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
> index ed42782..3cbb2e6 100644
> --- a/xen/arch/x86/boot/head.S
> +++ b/xen/arch/x86/boot/head.S
> @@ -119,8 +119,10 @@ __start:
>
> /* Save the Multiboot info struct (after relocation) for later use.
> */
> mov $sym_phys(cpu0_stack)+1024,%esp
> - push %ebx
> + push %ebx /* Multiboot information address. */
> + push %eax /* Boot trampoline address. */
> call reloc
> + add $8,%esp /* Remove reloc() args from stack. */
> mov %eax,sym_phys(multiboot_ptr)
>
> /* Initialize BSS (no nasty surprises!). */
> diff --git a/xen/arch/x86/boot/reloc.c b/xen/arch/x86/boot/reloc.c
> index 63045c0..708898f 100644
> --- a/xen/arch/x86/boot/reloc.c
> +++ b/xen/arch/x86/boot/reloc.c
> @@ -10,15 +10,27 @@
> * Keir Fraser <address@hidden>
> */
>
> -/* entered with %eax = BOOT_TRAMPOLINE */
> +/*
> + * This entry point is entered from xen/arch/x86/boot/head.S with:
> + * - 0x4(%esp) = BOOT_TRAMPOLINE_ADDRESS,
> + * - 0x8(%esp) = MULTIBOOT_INFORMATION_ADDRESS.
> + */
> asm (
> " .text \n"
> " .globl _start \n"
> "_start: \n"
> + " push %ebp \n"
> + " mov %esp,%ebp \n"
> " call 1f \n"
> - "1: pop %ebx \n"
> - " mov %eax,alloc-1b(%ebx) \n"
> - " jmp reloc \n"
> + "1: pop %ecx \n"
> + " mov 0x8(%ebp),%eax \n"
> + " mov %eax,alloc-1b(%ecx) \n"
> + " mov 0xc(%ebp),%eax \n"
> + " push %eax \n"
> + " call reloc \n"
> + " add $4,%esp \n"
> + " pop %ebp \n"
> + " ret \n"
> );
>
> /*
> --
> 1.7.10.4
>
>
> _______________________________________________
> Xen-devel mailing list
> address@hidden
> http://lists.xen.org/xen-devel
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Xen-devel] [PATCH v2 04/23] x86/boot: call reloc() using cdecl calling convention,
Konrad Rzeszutek Wilk <=