new port/wrong compilation of a mult with small values

Ian Lance Taylor iant@google.com
Tue Jun 16 14:56:00 GMT 2009


Florent DEFAY <spira.inhabitant@gmail.com> writes:

> (insn 8 7 9 toto.c:4 (set:HI (reg:HI 15)
>         (ashift:HI (reg:HI 15)
>             (const_int 1 [0x1]))) -1 (nil))
>
> (insn 9 8 10 toto.c:4 (set:HI (reg:HI 15)
>         (ashift:HI (reg:HI 15)
>             (const_int 1 [0x1]))) -1 (nil))
>
> (insn 10 9 11 toto.c:4 (set (reg:HI 16)
>         (reg:HI 15)) -1 (expr_list:REG_EQUAL (ashift:HI (reg:HI 15)
>             (const_int 2 [0x2]))
>         (nil)))

I would look at your define_expand for ashifthi3.  It loks like you are
modifying the input register when doing a shift by a constant.

Ian



More information about the Gcc-help mailing list