diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-15 09:35:03 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-15 09:35:03 +0000 |
commit | 48eb616d3c0c5b5f6f213bd8d65999f19bb9c3d8 (patch) | |
tree | eb9aba60245750798ddf9fd86d5946bc2c46db01 /gcc/genoutput.c | |
parent | fc367e101841a4d02fe3ad59348d73366e576e91 (diff) | |
download | gcc-48eb616d3c0c5b5f6f213bd8d65999f19bb9c3d8.tar.gz |
gcc/
* recog.h (insn_operand_data): Add an "allows_mem" field.
* genoutput.c (output_operand_data): Initialize it.
* optabs.c (maybe_legitimize_operand_same_code): New function.
(maybe_legitimize_operand): Use it when matching the original
op->value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172478 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genoutput.c')
-rw-r--r-- | gcc/genoutput.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/genoutput.c b/gcc/genoutput.c index 3e89cfd6df1..621439f479a 100644 --- a/gcc/genoutput.c +++ b/gcc/genoutput.c @@ -66,6 +66,8 @@ along with GCC; see the file COPYING3. If not see MATCH_OPERAND; it is zero for operands that should not be changed during register elimination such as MATCH_OPERATORs. + g. `allows_mem', is true for operands that accept MEM rtxes. + The code number of an insn is simply its position in the machine description; code numbers are assigned sequentially to entries in the description, starting with code number 0. @@ -256,6 +258,8 @@ output_operand_data (void) for (d = odata; d; d = d->next) { + struct pred_data *pred; + printf (" {\n"); printf (" %s,\n", @@ -269,7 +273,12 @@ output_operand_data (void) printf (" %d,\n", d->constraint == NULL ? 1 : 0); - printf (" %d\n", d->eliminable); + printf (" %d,\n", d->eliminable); + + pred = NULL; + if (d->predicate) + pred = lookup_predicate (d->predicate); + printf (" %d\n", pred && pred->codes[MEM]); printf(" },\n"); } |