binutils 2.9 is broken on x86
H.J. Lu
hjl@lucon.org
Wed Apr 8 21:20:00 GMT 1998
>
> From: hjl@lucon.org (H.J. Lu)
> Date: Wed, 8 Apr 1998 11:01:08 -0700 (PDT)
>
> > These are the testsuite results for egcs-2.91.22 on the
> > i386-pc-linux-gnulibc1 system. I had to add --disable-nls to configure
> > to compile egcs. What about making --disable-nls a default option for
> > the texinfo configure?
> >
> > Peter Schmid
> >
> > gcc:
> > gcc.sum:FAIL: gcc.c-torture/compile/980329-1.c, -O2
> > /tmp/cca17739.s: Assembler messages:
> > /tmp/cca17739.s:75: Error: register does not match opcode suffix
>
> This is an error which H.J. added to his version of the binutils. It
> is not yet in the GNU binutils.
>
> binutils 2.9 is broken on x86. It silently turns
>
> incb %di
>
> into
>
> incl %edi
>
> Although my binutils chokes on it, however it didn't generate
> bogus opcode. I will make binutils 2.8.1.0.30 to fix it. In
> the meantime, please don't go back to old binutils.
>
> Ian, please don't make 2.9 as is. It turns out my worry comes
> true. My x86 patch seems quite useful.
>
> Although H.J. doesn't mention it, gas has behaved this way for many
> years.
>
> I do not plan to delay the 2.9 release to change this behaviour. The
> potential bad consequences of adding errors, and thus failing to
> assemble existing code, are serious. Turning `incb %di' into `incl
> %edi' will almost always be harmless.
I am not sure about it. There is no "incb %di" in Intel x86
instrucntion set. It should be either "incw %di" or "incl %edi".
I am not sure if they are the same. In that case, I don't know
why egcs emits "incb %di". It doesn't look right.
H.J.
--
H.J. Lu (hjl@gnu.org)
More information about the Gcc
mailing list