On Tue, Dec 25, 2007 at 07:37:04PM +0800, Bean wrote:
> 
> I use the 32-bit address to save space, maybe your compiler doesn't
> support it. anyway, you can try the following transformation:
> 
> leal  0x200 + data_start - data_next(%ebx,%eax), %eax
> 
> ->
> 
> addl %ebx, %eax
> addl $(0x200 + data_start - data_next), %eax
> 
> -----------
> 
> leal  (%esi, %eax), %esi
> leal  (%edi, %eax), %edi
> 
> ->
> 
> addl %eax, %esi
> addl %eax, %edi

I think it has more to do with the op being "leal" instead of "leaw" than
with the addressing argument having 3 members.

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to