summaryrefslogtreecommitdiff
path: root/gcc/gensupport.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-08 23:33:23 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-08 23:33:23 +0000
commit6ef7f25dd1fb22842e958cb76d693e6d9ac1218d (patch)
tree194093c8f298ceeef7308a7c8b17bb1205b062b7 /gcc/gensupport.c
parent7653bea8e888a51ded5c23444d50585d7eca6d6e (diff)
downloadgcc-6ef7f25dd1fb22842e958cb76d693e6d9ac1218d.tar.gz
* gensupport.c (process_rtx): Copy and post-process each member
of the define_insn rtvec individually. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33780 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gensupport.c')
-rw-r--r--gcc/gensupport.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/gensupport.c b/gcc/gensupport.c
index 317d359b7e7..534f5531df5 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. */