aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2004-05-28 05:47:36 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2004-05-28 05:47:36 +0000
commit4fbf3498e4c9f43d7143d22f7a0b0f0ce9a067bf (patch)
tree595306ca0fa8bb85bbca0c8297fc473749f5e607 /gcc
parente8a382b780014dfccb7a6559b71cb547a829047d (diff)
downloadgcc-4fbf3498e4c9f43d7143d22f7a0b0f0ce9a067bf.zip
gcc-4fbf3498e4c9f43d7143d22f7a0b0f0ce9a067bf.tar.gz
gcc-4fbf3498e4c9f43d7143d22f7a0b0f0ce9a067bf.tar.bz2
re PR target/13250 ([3.4 only] [SH] Gcc code for rotation clobbers the register, but gcc continues to use the register as if it was not clobbered)
PR target/13250 * config/sh/sh.md (rotlsi3): Use emit_move_insn. From-SVN: r82356
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.md2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9e1cc89..b45bea0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ PR target/13250
+ * config/sh/sh.md (rotlsi3): Use emit_move_insn.
+
2004-05-27 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md
index d3b4c94..174ae60 100644
--- a/gcc/config/sh/sh.md
+++ b/gcc/config/sh/sh.md
@@ -2194,7 +2194,7 @@
parts[0] = gen_reg_rtx (SImode);
parts[1] = gen_reg_rtx (SImode);
emit_insn (gen_rotlsi3_16 (parts[2-choice], operands[1]));
- parts[choice-1] = operands[1];
+ emit_move_insn (parts[choice-1], operands[1]);
emit_insn (gen_ashlsi3 (parts[0], parts[0], GEN_INT (8)));
emit_insn (gen_lshrsi3 (parts[1], parts[1], GEN_INT (8)));
emit_insn (gen_iorsi3 (operands[0], parts[0], parts[1]));