]> gcc.gnu.org Git - gcc.git/commitdiff
expr.c (emit_move_insn_1): Revert 17 Dec change.
authorRichard Henderson <rth@cygnus.com>
Tue, 19 Jan 1999 21:11:00 +0000 (13:11 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 19 Jan 1999 21:11:00 +0000 (13:11 -0800)
        * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
        clobber during or after reload.

From-SVN: r24772

gcc/ChangeLog
gcc/expr.c

index 457463471328d64de31bc989b2bfa9325dab0277..bfd8a0b0151fcbfd4b77efb941c9876c155e84c3 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
+
+       * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
+       clobber during or after reload.
+
 Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
 
        * genoutput.c (name_for_index): New function.
index d84849d63093367b43b834e76565c3c95435e142..88ce1560c5cadd2d7e3b5b0bc4852b88ceea3f1b 100644 (file)
@@ -2578,17 +2578,13 @@ emit_move_insn_1 (x, y)
        }
       else
        {
-         /* Show the output dies here.  This is only necessary for pseudos.  */
-         if (x != y)
+         /* Show the output dies here.  This is necessary for pseudos;
+            hard regs shouldn't appear here except as return values.
+            We never want to emit such a clobber after reload.  */
+         if (x != y
+             && ! (reload_in_progress || reload_completed))
            {
-             rtx reg = x;
-             
-             while (GET_CODE (reg) == SUBREG)
-               reg = SUBREG_REG (reg);
-             
-             if (GET_CODE (reg) == REG
-                 && REGNO (reg) >= FIRST_PSEUDO_REGISTER)
-               emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
+             emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
            }
 
          emit_insn (GEN_FCN (mov_optab->handlers[(int) submode].insn_code)
@@ -2618,17 +2614,13 @@ emit_move_insn_1 (x, y)
        }
 #endif
                             
-      /* Show the output dies here.  This is only necessary for pseudos.  */
-      if (x != y)
+      /* Show the output dies here.  This is necessary for pseudos;
+        hard regs shouldn't appear here except as return values.
+        We never want to emit such a clobber after reload.  */
+      if (x != y
+         && ! (reload_in_progress || reload_completed))
        {
-         rtx reg = x;
-         
-         while (GET_CODE (reg) == SUBREG)
-           reg = SUBREG_REG (reg);
-         
-         if (GET_CODE (reg) == REG
-             && REGNO (reg) >= FIRST_PSEUDO_REGISTER)
-           emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
+         emit_insn (gen_rtx_CLOBBER (VOIDmode, x));
        }
 
       for (i = 0;
This page took 0.079001 seconds and 5 git commands to generate.