target m68k-elf, -m5200, -O2 generates incorrect code for ColdFire
Peter Jakubek
pjak@lasergraph-dsp.de
Tue Jul 9 06:56:00 GMT 2002
Franz Sirl wrote:
>
> OK, a few hints :-).
>
> I compiled your code with -save-temps -dap -fverbose-asm added and got
> this in the .s:
>
> moveq.l #1,%d7 | 267 *m68k.md:993/1
> add.l %d7,-2(%a6) | i1 | 186 *addsi3_5200/1
> move.w -2(%a6),%a0 | i1, i1 | 37 extendhisi2/2
> move.l %a0,%a3 | i1, i1 | 234 *m68k.md:993/1
>
> Checking out m68k.md shows that addsi3_5200 calls output_addsi3 in
> m68k.c. I'm not sure if the bug is there or maybe in reload, cause if
> you look at the debug RTL dumps you'll notice that the addsi3_5200 first
> shows up in the .greg dump. Maybe the HImode add shouldn't be converted
> to a SImode add?
>
> Franz.
>
Thanks for the hint!
It really seems the HImode add is converted incorrectly to SImode add.
But my understanding of gcc/RTL is not sufficient to locate the problem.
Will have to dig deeper into it...
Peter Jakubek
LaserAnimation Sollinger GmbH
pjak@lasergraph-dsp.de
More information about the Gcc-bugs
mailing list