aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <andrew_pinski@playstation.sony.com>2007-05-25 05:57:42 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2007-05-24 22:57:42 -0700
commit03fd30b180feb36cff3ae49be196c821d14b76c1 (patch)
tree33d8cfa196122dfa8e986614ad9dff79bdef6d04 /gcc
parent8132b797ecceb3c98d558e4e64e446f43abb16dd (diff)
downloadgcc-03fd30b180feb36cff3ae49be196c821d14b76c1.zip
gcc-03fd30b180feb36cff3ae49be196c821d14b76c1.tar.gz
gcc-03fd30b180feb36cff3ae49be196c821d14b76c1.tar.bz2
spu.md (smulsi3_highpart): Unshare the rtl chain.
2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com> * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain. (umulsi3_highpart): Likewise. From-SVN: r125055
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/spu/spu.md6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 745e89a..25eb001 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
+ (umulsi3_highpart): Likewise.
+
2007-05-24 Ian Lance Taylor <iant@google.com>
PR rtl-optimization/32069
diff --git a/gcc/config/spu/spu.md b/gcc/config/spu/spu.md
index ccaf485..b4c59cb 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;
})