diff options
author | Richard Henderson <rth@cygnus.com> | 2000-05-08 16:33:23 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-05-08 16:33:23 -0700 |
commit | de4bfbcbaae0fab6d727639f75ab76d0ffd167b5 (patch) | |
tree | 194093c8f298ceeef7308a7c8b17bb1205b062b7 /gcc/gensupport.c | |
parent | e8e20f184bc4518d217e28a3be28cd854b6c4040 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc/gensupport.c')
-rw-r--r-- | gcc/gensupport.c | 11 |
1 files changed, 9 insertions, 2 deletions
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. */ |