This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: i386 Intel synax assembler is broken.
- To: Diego Novillo <dnovillo at cygnus dot com>
- Subject: Re: i386 Intel synax assembler is broken.
- From: Alan Modra <alan at linuxcare dot com dot au>
- Date: Wed, 16 Aug 2000 16:13:49 +1000 (EST)
- cc: "H . J . Lu" <hjl at valinux dot com>, binutils at sourceware dot cygnus dot com
On Wed, 16 Aug 2000, Diego Novillo wrote:
> On Tue, 15 Aug 2000, H . J . Lu wrote:
>
> > This patch seems to work for me. I don't know if it is entirely correct.
> >
> Yes. That's the first thing I tried and it indeed fixes the
> regression. However, I do not know why the movzx and movsx
> templates have inconsistent IgnoreSize settings.
It would be nice to be enlightened about this. Perhaps the perptrators of
the intel mode support can remember? It's a little confusing, especially
since the actual machine instructions _don't_ ignore a data size prefix.
At least, that's the case on my old pentium; Adding a 0x66 prefix to
0x0fbf results in a "move signed word to word" operation rather than
"move signed word to long". Of course, the IgnoreSize may be there just
to prevent gas emitting a prefix under some circumstances.
> In any case, this patch does essentially the same thing except
> that it's not affected by relative instruction ordering in the
> opcode table. I don't feel strongly one way or another, though.
>
> Which one is preferrable?
On the absence of any indication that H.J.'s patch is wrong, I'd say his
should be installed, simply because it doesn't add code. There are
plenty of other places in include/opcode/i386.h where the ordering of
instructions is important.
Alan Modra
--
Linuxcare. Support for the Revolution.