This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: problem with bad code generated by m68k cross compiler
- To: law at cygnus dot com
- Subject: Re: problem with bad code generated by m68k cross compiler
- From: Greg Ungerer <gerg at moreton dot com dot au>
- Date: Mon, 15 Feb 1999 08:36:30 +1000
- CC: egcs-bugs at cygnus dot com
- Organization: Moreton Bay Ventures
- References: <14173.918974996@hurl.cygnus.com>
Hi Jeff,
Jeffrey A Law wrote:
> In message <36BA3237.6032161@moreton.com.au>you write:
> > de: 2072 2c00 moveal %a2@(00000000,%d2:l:4),%a0
> > e2: 2028 0020 movel %a0@(32),%d0
> > e6: 7a09 moveq #9,%d5
> > e8: eaa8 lsrl %d5,%d0
> > ea: 4c00 0800 mulsl %d0,%d0
> > ee: 2140 0008 movel %d0,%a0@(8)
> Odd. I get:
>
> move.l (%a2,%d2.l*4),%a0
> move.l 32(%a0),%d0
> moveq.l #9,%d5
> lsr.l %d5,%d0
> muls.l (%a0),%d0
> move.l %d0,8(%a0)
>
> You might verify that the assembly file produced by gcc matches the diassembly
> produced by gdb/objdump.
Oops :-)
Sure enough the assembler output from gcc looks good.
It seems that gas is doing the mangling. Even a one line
assembler program like:
muls.l (%a0), %d0
passed through a gas generated from binutils-2.9.1 produces
a bad binary with "muls.l %d0, %d0" coming out...
Sorry to have wasted your time.
Thanks for the response though, much appreciated.
Regards
Greg