* h8300.c (expand_a_shift): Avoid invalid RTL sharing.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Sep 2008 20:22:49 +0000 (20:22 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Sep 2008 20:22:49 +0000 (20:22 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139953 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/h8300/h8300.c

index 42f70cd..90d5ef8 100644 (file)
@@ -1,3 +1,7 @@
+2008-09-03  Jeff Law  <law@redhat.com>
+
+       * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
+
 2008-09-03  Richard Henderson  <rth@redhat.com>
 
        * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
index 992c73a..4e09705 100644 (file)
@@ -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;