------- Comment #5 from pinskia at gcc dot gnu dot org 2006-11-19 21:01 ------- regstack is broken. Before: (insn:TI 70 69 71 3 (set (reg:SF 13 st(5) [orig:80 pretmp.77 ] [80]) (plus:SF (reg:SF 13 st(5) [orig:80 pretmp.77 ] [80]) (reg:SF 12 st(4) [orig:70 pretmp.92 ] [70]))) 417 {*fop_sf_comm_i387} (nil) (expr_list:REG_DEAD (reg:SF 12 st(4) [orig:70 pretmp.92 ] [70]) (nil)))
(insn:TI 71 70 72 3 (set (reg:SF 13 st(5) [orig:80 pretmp.77 ] [80]) (plus:SF (reg:SF 13 st(5) [orig:80 pretmp.77 ] [80]) (reg:SF 10 st(2) [orig:76 pretmp.84 ] [76]))) 417 {*fop_sf_comm_i387} (nil) (expr_list:REG_DEAD (reg:SF 10 st(2) [orig:76 pretmp.84 ] [76]) (nil))) After: (insn:TI 70 69 71 3 (set (reg:SF 9 st(1)) (plus:SF (reg:SF 9 st(1)) (reg:SF 8 st))) 417 {*fop_sf_comm_i387} (nil) (expr_list:REG_DEAD (reg:SF 8 st) (nil))) (insn:TI 71 70 72 3 (set (reg:SF 11 st(3)) (plus:SF (reg:SF 11 st(3)) (reg:SF 8 st))) 417 {*fop_sf_comm_i387} (nil) (expr_list:REG_DEAD (reg:SF 8 st) (nil))) See how we replace "reg:SF 13 st(5) " once with "(reg:SF 9 st(1))" but the second time with "(reg:SF 11 st(3))" -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29900