From bc9b880c6075c57c54003869d98c6a249eef7cbd Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Wed, 3 Sep 2008 14:22:49 -0600 Subject: [PATCH] h8300.c (expand_a_shift): Avoid invalid RTL sharing. * h8300.c (expand_a_shift): Avoid invalid RTL sharing. From-SVN: r139953 --- gcc/ChangeLog | 4 ++++ gcc/config/h8300/h8300.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 42f70cd84f9a..90d5ef828caa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2008-09-03 Jeff Law + + * h8300.c (expand_a_shift): Avoid invalid RTL sharing. + 2008-09-03 Richard Henderson * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 992c73a4c1b3..4e0970531098 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -3659,7 +3659,7 @@ expand_a_shift (enum machine_mode mode, int code, rtx operands[]) break; } - emit_move_insn (operands[0], operands[1]); + emit_move_insn (copy_rtx (operands[0]), operands[1]); /* Need a loop to get all the bits we want - we generate the code at emit time, but need to allocate a scratch reg now. */ @@ -3667,9 +3667,9 @@ expand_a_shift (enum machine_mode mode, int code, rtx operands[]) emit_insn (gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, - gen_rtx_SET (VOIDmode, operands[0], + gen_rtx_SET (VOIDmode, copy_rtx (operands[0]), gen_rtx_fmt_ee (code, mode, - operands[0], operands[2])), + copy_rtx (operands[0]), operands[2])), gen_rtx_CLOBBER (VOIDmode, gen_rtx_SCRATCH (QImode))))); return true; -- 2.43.5