diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2013-06-04 08:56:32 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2013-06-04 08:56:32 +0000 |
commit | aadaf24ef0336560cb808406da288878a6120ca2 (patch) | |
tree | 4f8825d4fa1be11ed9e79f9aea1c1495ed811e18 /gcc/gensupport.c | |
parent | 0cd9e9eeeadf90b732ed7bbad30739d1b0d9128b (diff) | |
download | gcc-aadaf24ef0336560cb808406da288878a6120ca2.zip gcc-aadaf24ef0336560cb808406da288878a6120ca2.tar.gz gcc-aadaf24ef0336560cb808406da288878a6120ca2.tar.bz2 |
rtl.def: Add extra fourth optional field to define_cond_exec.
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.
From-SVN: r199640
Diffstat (limited to 'gcc/gensupport.c')
-rw-r--r-- | gcc/gensupport.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/gensupport.c b/gcc/gensupport.c index 1092bd8..19b9240 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); |