gas 2.8.1 CPU32 bug (Was: as: unrecognized option `-c68020')
Robin Kirkham
Robin.Kirkham@mlb.dmt.csiro.au
Tue Oct 21 23:03:00 GMT 1997
On Tue, 21 Oct 1997, Jim Wilson wrote:
>
> In article <199710220043.TAA19960.cygnus.crossgcc@eesn12.ews.uiuc.edu> you write:
> >> _floatdixf
> >> /tmp/cca12355.s: Assembler messages:
> >> /tmp/cca12355.s:70: Error: operands mismatch -- statement `tstl a4'
> ...
> The GNU as bug is fixed in binutils 2.8.
> ...
> This gcc bug is fixed in both the EGCS gcc sources and gcc2 sources, so
> the next release of either of them will not have this bug.
There remains a gas 2.8.1 bug, however, which shows up with exactly the same
symptoms when you configure EGCS to compile for the CPU32. This confused me
for a while.
The above-mentioned gas fix now only permits tst.[bwl] instructions with
PCR, immediate and An addressing modes on 68020's and up, and Coldfires.
However, the CPU32 can also execute these (and egcs will emit them).
The following simple patch I believe corrects this situation: apply it in the
binutils-2.8.1 directory.
Robin Kirkham CSIRO Manufacturing Science and Technology
Project Engineer Locked Bag 9, Preston 3072, Australia
robin.kirkham@mlb.dmt.csiro.au Phone: +61 3 9662-7756 Fax: +61 3 9662-7851
*** opcodes/m68k-opc.c Tue May 27 03:34:19 1997
--- opcodes/m68k-opc.c Wed Oct 22 15:35:54 1997
***************
*** 1825,1835 ****
{"trapv", one(0047166), one(0177777), "", m68000up },
! {"tstb", one(0045000), one(0177700), ";b", m68020up | mcf5200 },
{"tstb", one(0045000), one(0177700), "@b", m68000up },
! {"tstw", one(0045100), one(0177700), "*w", m68020up | mcf5200 },
{"tstw", one(0045100), one(0177700), "@w", m68000up },
! {"tstl", one(0045200), one(0177700), "*l", m68020up | mcf5200 },
{"tstl", one(0045200), one(0177700), "@l", m68000up },
{"unlk", one(0047130), one(0177770), "As", m68000up | mcf5200 },
--- 1825,1835 ----
{"trapv", one(0047166), one(0177777), "", m68000up },
! {"tstb", one(0045000), one(0177700), ";b", m68020up|cpu32|mcf5200 },
{"tstb", one(0045000), one(0177700), "@b", m68000up },
! {"tstw", one(0045100), one(0177700), "*w", m68020up|cpu32|mcf5200 },
{"tstw", one(0045100), one(0177700), "@w", m68000up },
! {"tstl", one(0045200), one(0177700), "*l", m68020up|cpu32|mcf5200 },
{"tstl", one(0045200), one(0177700), "@l", m68000up },
{"unlk", one(0047130), one(0177770), "As", m68000up | mcf5200 },
More information about the crossgcc
mailing list