aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-05-08 16:33:23 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-05-08 16:33:23 -0700
commitde4bfbcbaae0fab6d727639f75ab76d0ffd167b5 (patch)
tree194093c8f298ceeef7308a7c8b17bb1205b062b7
parente8e20f184bc4518d217e28a3be28cd854b6c4040 (diff)
downloadgcc-de4bfbcbaae0fab6d727639f75ab76d0ffd167b5.zip
gcc-de4bfbcbaae0fab6d727639f75ab76d0ffd167b5.tar.gz
gcc-de4bfbcbaae0fab6d727639f75ab76d0ffd167b5.tar.bz2
gensupport.c (process_rtx): Copy and post-process each member of the define_insn rtvec individually.
* gensupport.c (process_rtx): Copy and post-process each member of the define_insn rtvec individually. From-SVN: r33780
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/gensupport.c11
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 20873e6..c2d0209 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/gensupport.c b/gcc/gensupport.c
index 317d359..534f553 100644
--- a/gcc/gensupport.c
+++ b/gcc/gensupport.c
@@ -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. */