OSDN Git Service

* recog.c (validate_replace_rtx): Replace in operands of
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Feb 2001 19:14:09 +0000 (19:14 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Feb 2001 19:14:09 +0000 (19:14 +0000)
ZERO_EXTRACT in SET_DEST.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39773 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/recog.c

index ec4bd1f..44b5be5 100644 (file)
@@ -8,6 +8,9 @@
 
 Fri Feb 16 12:41:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
+       * recog.c (validate_replace_rtx): Replace in operands of
+       ZERO_EXTRACT in SET_DEST.
+
        * cse.c (new_label_ref): New variable.
        (insert): Set it instead of recorded_label_ref.
        (cse_basic_block): Set recorded_label_ref if new_label_ref use, has
index 4dab907..f778f60 100644 (file)
@@ -732,8 +732,7 @@ validate_replace_rtx (from, to, insn)
   return apply_change_group ();
 }
 
-/* Try replacing every occurrence of FROM in INSN with TO.  After all
-   changes have been made, validate by seeing if INSN is still valid.  */
+/* Try replacing every occurrence of FROM in INSN with TO.  */
 
 void
 validate_replace_rtx_group (from, to, insn)
@@ -758,6 +757,14 @@ validate_replace_src (from, to, insn)
   if (GET_CODE (SET_DEST (PATTERN (insn))) == MEM)
     validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 0),
                            from, to, insn);
+  else if (GET_CODE (SET_DEST (PATTERN (insn))) == ZERO_EXTRACT)
+    {
+      validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 1),
+                             from, to, insn);
+      validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 2),
+                             from, to, insn);
+    }
+
   return apply_change_group ();
 }
 \f