This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


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

Re: problem with bad code generated by m68k cross compiler


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


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