summaryrefslogtreecommitdiff
path: root/gcc/genemit.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-06-13 09:48:35 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2015-06-13 09:48:35 +0000
commit2ff8d4ae52e8294cc4647ded1d1a85e4c3e459e5 (patch)
tree73afaadfb9d218323d01fe93da665d1a87626ac0 /gcc/genemit.c
parent125a2cf7d2ef6e6730419425e4e587ceed2773be (diff)
downloadgcc-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.c30
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. */