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


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

Re: gas 2.8.1 CPU32 bug (Was: as: unrecognized option `-c68020')


Are you sure your patch is completely correct? 

My reading of the Motorola manuals is that, of the 020/030/040
addressing modes only (bd,An,Xn) and (bd,PC,Xn) are supported by the CPU32
and then only for word and long accesses. Your patch appears to allow all
the 020/030/040 modes and any width?!

I used a much more paranoid patch to solve the problem, I JUST allowing
the (bd,An,Xn) mode - the (bd,PC,Xn) mode was not causing me a problem.

Does anyone know what the offical patch is that made it into the beta
binutils?

Cheers
Mark

FYI - my patch:-

-------------------cut here-----------------
*** opcodes/m68k-opc.c.orig	Tue May 20
10:33:18 1997
--- opcodes/m68k-opc.c	Tue May 20 11:32:43 1997
***************
*** 1828,1835 ****
--- 1828,1837 ----
  {"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(0045110),	one(0177700), "As", cpu32 },
  {"tstw",	one(0045100),	one(0177700), "@w", m68000up },
  {"tstl",	one(0045200),	one(0177700), "*l", m68020up | mcf5200 },
+ {"tstl",	one(0045210),	one(0177700), "As", cpu32 },
  {"tstl",	one(0045200),	one(0177700), "@l", m68000up },
  
  {"unlk",	one(0047130),	one(0177770), "As", m68000up | mcf5200 },
-------------------cut here-----------------


Mark S. Phillips        ESN 742 2461
msp@nortel.co.uk        Tel. +44 1279 402461

On Wed, 22 Oct 1997, Robin Kirkham wrote:

> 
> 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 },
>