summaryrefslogtreecommitdiff
path: root/gcc/gensupport.c
diff options
context:
space:
mode:
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-04 08:56:32 +0000
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-04 08:56:32 +0000
commit8c45824dd66c1f2371c68ada279f5bae54191a44 (patch)
tree4f8825d4fa1be11ed9e79f9aea1c1495ed811e18 /gcc/gensupport.c
parent8744b4c5b5a838296875f5a4d5f2274048305388 (diff)
downloadgcc-8c45824dd66c1f2371c68ada279f5bae54191a44.tar.gz
2013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* rtl.def: Add extra fourth optional field to define_cond_exec. * gensupport.c (process_one_cond_exec): Process attributes from define_cond_exec. * doc/md.texi: Document fourth field in define_cond_exec. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199640 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gensupport.c')
-rw-r--r--gcc/gensupport.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/gensupport.c b/gcc/gensupport.c
index 1092bd8111e..19b92408dc4 100644
--- a/gcc/gensupport.c
+++ b/gcc/gensupport.c
@@ -1717,6 +1717,21 @@ process_one_cond_exec (struct queue_elem *ce_elem)
XVECEXP (insn, 1, 0) = pattern;
}
+ if (XVEC (ce_elem->data, 3) != NULL)
+ {
+ rtvec attributes = rtvec_alloc (XVECLEN (insn, 4)
+ + XVECLEN (ce_elem->data, 3));
+ int i = 0;
+ int j = 0;
+ for (i = 0; i < XVECLEN (insn, 4); i++)
+ RTVEC_ELT (attributes, i) = XVECEXP (insn, 4, i);
+
+ for (j = 0; j < XVECLEN (ce_elem->data, 3); j++, i++)
+ RTVEC_ELT (attributes, i) = XVECEXP (ce_elem->data, 3, j);
+
+ XVEC (insn, 4) = attributes;
+ }
+
XSTR (insn, 2) = alter_test_for_insn (ce_elem, insn_elem);
XTMPL (insn, 3) = alter_output_for_insn (ce_elem, insn_elem,
alternatives, max_operand);