GCC-H8300: major problems with -mint32
Toshi Morita
tm2@best.com
Wed Mar 28 15:03:00 GMT 2001
False alarm...it looks like GCC generates an SImode subtract to clear
a register, then it's converted to two HImode subtracts later
when the insn is emitted.
Toshi
>
> version: CVS
> host: i686-linux
> target: h8300-coff
>
> It looks like gcc has some serious problems generating code for the
> H8/300 series when -mint32 is used. Here's a few samples from
> engine_c.i compiled at -O2 -mint32 -S:
>
> _breakpoints:
> push r6
> mov.w r7,r6
> mov.w #8,r3
> sub.w r3,sp
> push r4
> push r5
> mov.w r0,@(-4,r6)
> mov.w r1,@(-2,r6)
> mov.w @_g_num_breakpoints,r4
> mov.w @_g_num_breakpoints+2,r5
> sub.w r2,r2 <- ???
> sub.w r3,r3 <- ???
> mov.w r2,@(-8,r6)
> mov.w r3,@(-6,r6)
> mov.w r4,r4 <- ???
> bgt .L15
> bne .L13
> mov.w r5,r5 <- ???
> beq .L13
>
> This just doesn't look right...
>
> engine_c.i is in stress-1.17.tar.gz in the usual place:
>
> ftp://shell14.ba.best.com/pub.t/tm2/stress-1.17.tar.gz
>
> Toshi
>
>
>
More information about the Gcc-bugs
mailing list