From: Andrew Pinski Date: Fri, 25 May 2007 05:57:42 +0000 (+0000) Subject: spu.md (smulsi3_highpart): Unshare the rtl chain. X-Git-Tag: releases/gcc-4.3.0~4919 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=03fd30b180feb36cff3ae49be196c821d14b76c1;p=thirdparty%2Fgcc.git spu.md (smulsi3_highpart): Unshare the rtl chain. 2007-05-24 Andrew Pinski * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain. (umulsi3_highpart): Likewise. From-SVN: r125055 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 745e89a2b746..25eb0013b2b7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-05-24 Andrew Pinski + + * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain. + (umulsi3_highpart): Likewise. + 2007-05-24 Ian Lance Taylor PR rtl-optimization/32069 diff --git a/gcc/config/spu/spu.md b/gcc/config/spu/spu.md index ccaf485e1668..b4c59cb30b54 100644 --- a/gcc/config/spu/spu.md +++ b/gcc/config/spu/spu.md @@ -1396,7 +1396,7 @@ rtx t0_hi = gen_rtx_SUBREG (HImode, t0, 2); rtx t1_hi = gen_rtx_SUBREG (HImode, t1, 2); - emit_insn (gen_lshrsi3 (t0, operands[1], GEN_INT (16))); + rtx insn = emit_insn (gen_lshrsi3 (t0, operands[1], GEN_INT (16))); emit_insn (gen_lshrsi3 (t1, operands[2], GEN_INT (16))); emit_insn (gen_umulhisi3 (t2, op1_hi, op2_hi)); emit_insn (gen_mpyh_si (t3, operands[1], operands[2])); @@ -1425,6 +1425,7 @@ emit_insn (gen_extendhisi2 (t20, t18)); emit_insn (gen_addsi3 (t21, t19, t20)); emit_insn (gen_addsi3 (operands[0], t14, t21)); + unshare_all_rtl_in_chain (insn); DONE; }) @@ -1456,7 +1457,7 @@ rtx op2_hi = gen_rtx_SUBREG (HImode, operands[2], 2); rtx t0_hi = gen_rtx_SUBREG (HImode, t0, 2); - emit_insn (gen_rotlsi3 (t0, operands[2], GEN_INT (16))); + rtx insn = emit_insn (gen_rotlsi3 (t0, operands[2], GEN_INT (16))); emit_insn (gen_umulhisi3 (t1, op1_hi, op2_hi)); emit_insn (gen_umulhisi3 (t2, op1_hi, t0_hi)); emit_insn (gen_mpyhhu_si (t3, operands[1], t0)); @@ -1475,6 +1476,7 @@ emit_insn (gen_addx_si (t13, t4, t7, t10)); emit_insn (gen_addx_si (t14, t13, t8, t12)); emit_insn (gen_movsi (operands[0], t14)); + unshare_all_rtl_in_chain (insn); DONE; })