This is the mail archive of the
mailing list for the GCC project.
Re: Change i386 assembler/disassembler for SIB with INDEX==4
- From: "H. J. Lu" <hjl at lucon dot org>
- To: "Allan B. Cruse" <cruse at cs dot usfca dot edu>
- Cc: binutils at sources dot redhat dot com, gcc at gcc dot gnu dot org,libc-alpha at sources dot redhat dot com, linux-kernel at vger dot kernel dot org
- Date: Thu, 13 Jan 2005 14:46:01 -0800
- Subject: Re: Change i386 assembler/disassembler for SIB with INDEX==4
- References: <20050113203328.1174721A3F@nexus.cs.usfca.edu>
On Thu, Jan 13, 2005 at 12:33:28PM -0800, Allan B. Cruse wrote:
> On Thu, 13 Jan 2005, "H. J. Lu" <firstname.lastname@example.org> wrote:
> > Subject: Change i386 assembler/disassembler for SIB with INDEX==4
> > I am proposing to change i386 assembler/disassembler for SIB with
> > INDEX==4
> > http://sources.redhat.com/bugzilla/show_bug.cgi?id=658
> > It will change the assembler output for (%ebx,). I am not too
> > worried about the disassembler output since assembler can't generate
> > SIB with INDEX==4 directly today. Any comments?
> > H.J.
> This change would give programmers the freedom to write instruction-
> syntax that the processor cannot actually execute, is that right?
No. Assemberl will turn "mov (%ebx,2),%eax" into "8b 04 63", which
is valid i386 machine code.
> Perhaps the downside to this would lie in the hours of debugging and
> private research each programmer would then be faced with, trying to
> figure out why " movl (%esi,2),%eax " wasn't doing what he/she had
> intended, and which the assembler had dutifully accepted. --ABC
What do you expect "movl (%esi,2),%eax" will do?