diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-06-13 09:48:35 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-06-13 09:48:35 +0000 |
commit | 2ff8d4ae52e8294cc4647ded1d1a85e4c3e459e5 (patch) | |
tree | 73afaadfb9d218323d01fe93da665d1a87626ac0 /gcc/genemit.c | |
parent | 125a2cf7d2ef6e6730419425e4e587ceed2773be (diff) | |
download | gcc-2ff8d4ae52e8294cc4647ded1d1a85e4c3e459e5.tar.gz |
gcc/
* gensupport.h (add_implicit_parallel): Declare.
* genrecog.c (add_implicit_parallel): Move to...
* gensupport.c (add_implicit_parallel): ...here.
(process_one_cond_exec): Use it.
* genemit.c (gen_insn): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224454 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genemit.c')
-rw-r--r-- | gcc/genemit.c | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/gcc/genemit.c b/gcc/genemit.c index 29437b95dae..b6df49cd959 100644 --- a/gcc/genemit.c +++ b/gcc/genemit.c @@ -378,27 +378,15 @@ gen_insn (rtx insn, int lineno) /* Output code to construct and return the rtl for the instruction body. */ - if (XVECLEN (insn, 1) == 1) - { - printf (" return "); - gen_exp (XVECEXP (insn, 1, 0), DEFINE_INSN, NULL); - printf (";\n}\n\n"); - } - else - { - char *used = XCNEWVEC (char, stats.num_generator_args); - - printf (" return gen_rtx_PARALLEL (VOIDmode, gen_rtvec (%d", - XVECLEN (insn, 1)); - - for (i = 0; i < XVECLEN (insn, 1); i++) - { - printf (",\n\t\t"); - gen_exp (XVECEXP (insn, 1, i), DEFINE_INSN, used); - } - printf ("));\n}\n\n"); - XDELETEVEC (used); - } + rtx pattern = add_implicit_parallel (XVEC (insn, 1)); + /* ??? This is the traditional behavior, but seems suspect. */ + char *used = (XVECLEN (insn, 1) == 1 + ? NULL + : XCNEWVEC (char, stats.num_generator_args)); + printf (" return "); + gen_exp (pattern, DEFINE_INSN, used); + printf (";\n}\n\n"); + XDELETEVEC (used); } /* Generate the `gen_...' function for a DEFINE_EXPAND. */ |