]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
authorrobertmh <robertmh@localhost>
Mon, 29 Jun 2009 15:55:42 +0000 (15:55 +0000)
committerrobertmh <robertmh@localhost>
Mon, 29 Jun 2009 15:55:42 +0000 (15:55 +0000)
        * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
        assembly in final jump, using register constraints.

ChangeLog
loader/i386/linux.c

index cd45a3b9b1b93428892a6603ec250d5a918bdcc5..ab44fb5d93818a4a450530df5b0addaf2d33948d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>
+
+       * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
+       assembly in final jump, using register constraints.
+
 2009-06-29  Robert Millan  <rmh.grub@aybabtu.com>
 
        * include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro.
index e89baaadcbaa91d6276cefaa71b00ac22a0ad960..da2e34c4f59c16037462595f07600b0be3deca0f 100644 (file)
@@ -554,14 +554,8 @@ grub_linux_boot (void)
   asm volatile ("lidt %0" : : "m" (idt_desc));
   asm volatile ("lgdt %0" : : "m" (gdt_desc));
 
-  /* Pass parameters.  */
-  asm volatile ("movl %0, %%ecx" : : "m" (params->code32_start));
-  asm volatile ("movl %0, %%esi" : : "m" (real_mode_mem));
-
-  asm volatile ("xorl %%ebx, %%ebx" : : );
-
   /* Enter Linux.  */
-  asm volatile ("jmp *%%ecx" : : );
+  asm volatile ("jmp *%2" : : "b" (0), "S" (real_mode_mem), "g" (params->code32_start));
 
 #endif