On Sat, Aug 22, 2009 at 08:00:10PM +0200, Vladimir 'phcoder' Serbinenko wrote: > On Mon, Aug 10, 2009 at 1:41 PM, Robert Millan<r...@aybabtu.com> wrote: > > On Sat, Aug 08, 2009 at 10:44:25PM +0800, Bean wrote: > >> Hi, > >> > >> I also encounter this problem with apple gcc 4.0, the fix is to replace: > >> > >> asm volatile ("jmp *%2" : : "b" (0), "S" (real_mode_mem), "g" > >> (params->code32_start)); > >> > >> With: > >> asm volatile ("movl %0, %%ecx" : : "m" (params->code32_start)); > >> asm volatile ("movl %0, %%esi" : : "m" (real_mode_mem)); > >> > >> asm volatile ("xorl %%ebx, %%ebx" : : ); > >> asm volatile ("jmp *%%ecx" : : ); > > > > I think I did precisely the opposite change a while ago, with the purpose of > > general cleanup (to make it more compact and avoid generating unnecessary > > instructions). > What about following compromise: > [...]
I'm not sure what's the problem here. AFAIK inline assembly had this syntax with GCC 4.0 already. Did Apple cripple it in their version of GCC ? -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all." _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel