This is the mail archive of the gas2@sourceware.cygnus.com mailing list for the gas2 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: binutils 2.9 is broken on x86


>    > 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.

It is not an error in my 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 guess it is ok for short term. If I am correct, as on SCO doesn't
like it either. My egcs patch should fix gcc.c-torture/compile/980329-1.c
on SCO too. That is a real bug in egcs. But the current gas doesn't
catch it. Mine and as on SCO do.


-- 
H.J. Lu (hjl@gnu.org)