diff options
author | Michael Brown <mcb30@etherboot.org> | 2008-11-18 01:52:40 +0000 |
---|---|---|
committer | Michael Brown <mcb30@etherboot.org> | 2008-11-18 01:52:40 +0000 |
commit | 54fbd11221e69eb2c840517b1fb7c1613930f899 (patch) | |
tree | 5a0d72d4c4af5a393109b2832037272173544221 /src/arch/i386/image/multiboot.c | |
parent | 464bf35cc0887ebc037de8015c1ff1f3b2cd89a8 (diff) | |
download | ipxe-54fbd11221e69eb2c840517b1fb7c1613930f899.tar.gz |
[build] Keep gcc 4.4 happy
gcc 4.4 adds another few warnings, and also seems to complain if we
place %ebp in the clobber list for any inline asm.
Diffstat (limited to 'src/arch/i386/image/multiboot.c')
-rw-r--r-- | src/arch/i386/image/multiboot.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/arch/i386/image/multiboot.c b/src/arch/i386/image/multiboot.c index a4a340fd2..49adf951b 100644 --- a/src/arch/i386/image/multiboot.c +++ b/src/arch/i386/image/multiboot.c @@ -282,11 +282,13 @@ static int multiboot_exec ( struct image *image ) { /* Jump to OS with flat physical addressing */ DBGC ( image, "MULTIBOOT %p starting execution at %lx\n", image, entry ); - __asm__ __volatile__ ( PHYS_CODE ( "call *%%edi\n\t" ) + __asm__ __volatile__ ( PHYS_CODE ( "pushl %%ebp\n\t" + "call *%%edi\n\t" + "popl %%ebp\n\t" ) : : "a" ( MULTIBOOT_BOOTLOADER_MAGIC ), "b" ( virt_to_phys ( &mbinfo ) ), "D" ( entry ) - : "ecx", "edx", "esi", "ebp", "memory" ); + : "ecx", "edx", "esi", "memory" ); DBGC ( image, "MULTIBOOT %p returned\n", image ); |