* 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>
+
+ * 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.
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