diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-14 04:19:34 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-14 04:19:34 +0000 |
commit | ae9660c87616b7088dee7ed41b203b5fdea0217c (patch) | |
tree | ddfa019fe74f8976a92fcdd7a45d5f6e82b77a46 /gcc/recog.h | |
parent | d3cc0e20db1d458bd162b59a3ed4eb423ea9eb2c (diff) | |
download | gcc-ae9660c87616b7088dee7ed41b203b5fdea0217c.tar.gz |
* recog.h (INSN_OUTPUT_FORMAT_*): New.
(struct insn_data): Merge `template' and `outfun' into `output'.
Add `output_format'.
* genoutput.c (INSN_OUTPUT_FORMAT_*): New.
(struct data): Remove `outfun'; add `output_format'.
(name_for_index): Remove declaration.
(output_insn_data): Handle output formats.
(process_template): Emit the bare array for @.
(gen_expand, gen_split): Set output_format to NONE.
* output.h (get_insn_template): Declare.
* final.c (get_insn_template): New.
(final_scan_insn): Use it.
* toplev.c (compile_file): Likewise.
* c4x/c4x.c (c4x_process_after_reload): Likewise.
* i860/i860.c (output_delayed_branch): Likewise.
(output_delay_insn): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29389 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/recog.h')
-rw-r--r-- | gcc/recog.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/recog.h b/gcc/recog.h index 0d4cc977cf5..e5875d59293 100644 --- a/gcc/recog.h +++ b/gcc/recog.h @@ -211,17 +211,24 @@ struct insn_operand_data char strict_low; }; +/* Legal values for insn_data.output_format. Indicate what type of data + is stored in insn_data.output. */ +#define INSN_OUTPUT_FORMAT_NONE 0 /* abort */ +#define INSN_OUTPUT_FORMAT_SINGLE 1 /* const char * */ +#define INSN_OUTPUT_FORMAT_MULTI 2 /* const char * const * */ +#define INSN_OUTPUT_FORMAT_FUNCTION 3 /* const char * (*)(...) */ + struct insn_data { const char *name; - const char *template; - insn_output_fn outfun; + const PTR output; insn_gen_fn genfun; const struct insn_operand_data *operand; unsigned char n_operands; unsigned char n_dups; unsigned char n_alternatives; + unsigned char output_format; }; extern const struct insn_data insn_data[]; |