From 4fbf3498e4c9f43d7143d22f7a0b0f0ce9a067bf Mon Sep 17 00:00:00 2001 From: Kaz Kojima Date: Fri, 28 May 2004 05:47:36 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/sh/sh.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9e1cc8930d4..b45bea0c300 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-05-28 Kaz Kojima + + PR target/13250 + * config/sh/sh.md (rotlsi3): Use emit_move_insn. + 2004-05-27 Kaz Kojima * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index d3b4c9466ed..174ae609578 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])); -- 2.30.2