------- Comment #13 from ramana at gcc dot gnu dot org 2010-04-01 17:11 -------
(In reply to comment #12)
> I see this on arm-eabi cross with gcc version 4.5.0 20100401 (experimental)
> [trunk revision 157899] (GCC)
>
> With the following command line options -
>
> ./xgcc -B`pwd` -S -O2 -mthumb -mcpu=cortex-a9 -mfpu=vfpv3-d16 ~/expr.i -da -g
Correction - this should read
./xgcc -B`pwd` -S -O2 -mthumb -mcpu=cortex-a9 -mfpu=vfpv3-d16 ~/expr.i -da -g
-mfloat-abi=softfp
>
> In 203r.sched2 I see the following insn sequence which appears to be wrong to
> my naked eye.
>
>
> (insn 5045 1929 5046 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (set (reg:SI
> 1
> r1)
> (plus:SI (reg/f:SI 13 sp)
> (const_int 272 [0x110]))) 4 {*arm_addsi3} (nil))
>
> (insn:TI 5046 5045 6004 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (set
> (reg:DI 0 r0)
> (mem/c:DI (reg:SI 1 r1) [87 %sfp S8 A64])) 587 {*thumb2_movdi_vfp}
> (nil))
>
> (insn 6004 5046 5042 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (parallel [
> (set (reg:SI 3 r3 [+4 ])
> (const_int 0 [0x0]))
> (clobber (reg:CC 24 cc))
> ]) 704 {*thumb2_movsi_shortim} (expr_list:REG_UNUSED (reg:CC 24 cc)
> (nil)))
>
> (insn:TI 5042 6004 6002 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (set
> (mem/c:SI (plus:SI (reg/f:SI 13 sp)
> (const_int 272 [0x110])) [87 %sfp+-544 S4 A64])
> (reg:SI 14 lr)) 585 {*thumb2_movsi_vfp} (expr_list:REG_DEAD (reg:SI 14
> lr)
> (nil)))
>
> (insn:TI 6002 5042 6003 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (parallel
> [
> (set (reg:SI 3 r3 [+4 ])
> (and:SI (reg:SI 3 r3 [+4 ])
> (reg:SI 1 r1 [+4 ])))
> (clobber (reg:CC 24 cc))
> ]) 700 {*thumb2_alusi3_short} (expr_list:REG_DEAD (reg:SI 1 r1 [+4 ])
> (expr_list:REG_UNUSED (reg:CC 24 cc)
> (nil))))
>
(In reply to comment #12)
> I see this on arm-eabi cross with gcc version 4.5.0 20100401 (experimental)
> [trunk revision 157899] (GCC)
>
> With the following command line options -
>
> ./xgcc -B`pwd` -S -O2 -mthumb -mcpu=cortex-a9 -mfpu=vfpv3-d16 ~/expr.i -da -g
>
>
> In 203r.sched2 I see the following insn sequence which appears to be wrong to
> my naked eye.
>
>
> (insn 5045 1929 5046 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (set (reg:SI
> 1
> r1)
> (plus:SI (reg/f:SI 13 sp)
> (const_int 272 [0x110]))) 4 {*arm_addsi3} (nil))
>
> (insn:TI 5046 5045 6004 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (set
> (reg:DI 0 r0)
> (mem/c:DI (reg:SI 1 r1) [87 %sfp S8 A64])) 587 {*thumb2_movdi_vfp}
> (nil))
>
> (insn 6004 5046 5042 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (parallel [
> (set (reg:SI 3 r3 [+4 ])
> (const_int 0 [0x0]))
> (clobber (reg:CC 24 cc))
> ]) 704 {*thumb2_movsi_shortim} (expr_list:REG_UNUSED (reg:CC 24 cc)
> (nil)))
>
> (insn:TI 5042 6004 6002 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (set
> (mem/c:SI (plus:SI (reg/f:SI 13 sp)
> (const_int 272 [0x110])) [87 %sfp+-544 S4 A64])
> (reg:SI 14 lr)) 585 {*thumb2_movsi_vfp} (expr_list:REG_DEAD (reg:SI 14
> lr)
> (nil)))
>
> (insn:TI 6002 5042 6003 167 /home/ramrad01/trunk/libcpp/expr.c:1281 (parallel
> [
> (set (reg:SI 3 r3 [+4 ])
> (and:SI (reg:SI 3 r3 [+4 ])
> (reg:SI 1 r1 [+4 ])))
> (clobber (reg:CC 24 cc))
> ]) 700 {*thumb2_alusi3_short} (expr_list:REG_DEAD (reg:SI 1 r1 [+4 ])
> (expr_list:REG_UNUSED (reg:CC 24 cc)
> (nil))))
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42509