gensupport.c (process_rtx): Copy and post-process each member of the define_insn...
authorRichard Henderson <rth@cygnus.com>
Mon, 8 May 2000 23:33:23 +0000 (16:33 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 8 May 2000 23:33:23 +0000 (16:33 -0700)
        * gensupport.c (process_rtx): Copy and post-process each member
        of the define_insn rtvec individually.

From-SVN: r33780

gcc/ChangeLog
gcc/gensupport.c

index 20873e6878f1c9a9576d1791ee3d95b1d281f537..c2d0209427c8733291a76055cdcfdf2f6efc33e9 100644 (file)
@@ -5,6 +5,9 @@
        * config/ia64/ia64.md (extendsfdf2): Split the nop case out
        of existance.
 
+       * gensupport.c (process_rtx): Copy and post-process each member
+       of the define_insn rtvec individually.
+
 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
 
        * cpplex.c (spell_token): New function.
index 317d359b7e719682d631476a04810af9ef5c6353..534f5531df50b74ab6d8d9d09c6ccc2f385c8e83 100644 (file)
@@ -174,11 +174,18 @@ process_rtx (desc, lineno)
       {
        const char *split_cond;
        rtx split;
+       int i;
 
        /* Create a split with values from the insn_and_split. */
        split = rtx_alloc (DEFINE_SPLIT);
-       XEXP (split, 0) = copy_rtx (XEXP (desc, 1));
-       remove_constraints (XEXP (split, 0));
+
+       i = XVECLEN (desc, 1);
+       XEXP (split, 0) = rtvec_alloc (i);
+       while (--i >= 0)
+         {
+           XVECEXP (split, 0, i) = copy_rtx (XVECEXP (desc, 1, i));
+           remove_constraints (XVECEXP (split, 0, i));
+         }
 
        /* If the split condition starts with "&&", append it to the
           insn condition to create the new split condition.  */