diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2014-11-01 13:34:15 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2014-11-01 13:34:15 +0000 |
commit | b0710fe1b155d3aff0fda3fcff291c09a727ec82 (patch) | |
tree | a1d684f3d10d3446cf010b46c1c96adbd1c76a84 /gcc/genopinit.c | |
parent | a5474c4cb0cd4499437eeffd7223bb7533100d48 (diff) | |
download | gcc-b0710fe1b155d3aff0fda3fcff291c09a727ec82.zip gcc-b0710fe1b155d3aff0fda3fcff291c09a727ec82.tar.gz gcc-b0710fe1b155d3aff0fda3fcff291c09a727ec82.tar.bz2 |
2014-11-01 Andrew MacLeod <amacleod@redhat,com>
* optabs.h: Flatten insn-codes.h to source files. Move some prototypes
and structs to genopinit.c. Adjust protyoptypes to match optabs.c.
* genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
* optabs.c: (gen_move_insn): Move to expr.c.
* expr.h: Move protypes and enums to optabs.h.
* expr.c: (gen_move_insn): Relocate from optabs.c.
* genemit.c (main): Include insn-codes.h.
* gengtype.c (open_base_files): Include insn-codes.h.
* asan.c: Include insn-codes.h.
* bb-reorder.c: Ditto.
* builtins.c: Ditto.
* calls.c: Ditto.
* cfgexpand.c: Ditto.
* cilk-common.c: Ditto.
* combine.c: Ditto.
* dojump.c: Ditto.
* dse.c: Ditto.
* except.c: Ditto.
* explow.c: Ditto.
* expmed.c: Ditto.
* function.c: Ditto.
* ifcvt.c: Ditto.
* internal-fn.c: Ditto.
* loop-unroll.c: Ditto.
* lra.c: Ditto.
* modulo-sched.c: Ditto.
* omp-low.c: Ditto.
* postreload.c: Ditto.
* ree.c: Ditto.
* reload.c: Ditto.
* reload1.c: Ditto.
* shrink-wrap.c: Ditto.
* simplify-rtx.c: Ditto.
* stmt.c: Ditto.
* target-globals.c: Ditto.
* targhooks.c: Ditto.
* toplev.c: Ditto.
* tree-if-conv.c: Ditto.
* tree-ssa-forwprop.c: Ditto.
* tree-ssa-loop-prefetch.c: Ditto.
* tree-ssa-math-opts.c: Ditto.
* tree-ssa-phiopt.c: Ditto.
* tree-ssa-reassoc.c: Ditto.
* tree-switch-conversion.c: Ditto.
* tree-vect-data-refs.c: Ditto.
* tree-vect-generic.c: Ditto.
* tree-vect-loop.c: Ditto.
* tree-vect-patterns.c: Ditto.
* tree-vect-slp.c: Ditto.
* tree-vect-stmts.c: Ditto.
* tree-vrp.c: Ditto.
* value-prof.c: Ditto.
* config/aarch64/aarch64-builtins.c: Ditto.
* config/alpha/alpha.c: Ditto.
* config/arm/arm.c: Ditto.
* config/cris/cris.c: Ditto.
* config/epiphany/epiphany.c: Ditto.
* config/frv/frv.c: Ditto.
* config/h8300/h8300.c: Ditto.
* config/ia64/ia64.c: Ditto.
* config/iq2000/iq2000.c: Ditto.
* config/m32c/m32c.c: Ditto.
* config/mep/mep.c: Ditto.
* config/microblaze/microblaze.c: Ditto.
* config/mips/mips.c: Ditto.
* config/mn10300/mn10300.c: Ditto.
* config/moxie/moxie.c: Ditto.
* config/msp430/msp430.c: Ditto.
* config/nios2/nios2.c: Ditto.
* config/pa/pa.c: Ditto.
* config/rl78/rl78.c: Ditto.
* config/rs6000/rs6000.c: Ditto.
* config/rx/rx.c: Ditto.
* config/s390/s390.c: Ditto.
* config/sh/sh.c: Ditto.
* config/sh/sh_treg_combine.cc: Ditto.
* config/spu/spu.c: Ditto.
* config/stormy16/stormy16.c: Ditto.
* config/tilegx/mul-tables.c: Ditto.
* config/tilegx/tilegx.c: Ditto.
* config/tilepro/mul-tables.c: Ditto.
* config/tilepro/tilepro.c: Ditto.
* config/vax/vax.c: Ditto.
From-SVN: r217005
Diffstat (limited to 'gcc/genopinit.c')
-rw-r--r-- | gcc/genopinit.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gcc/genopinit.c b/gcc/genopinit.c index b8a2827..2d14d12 100644 --- a/gcc/genopinit.c +++ b/gcc/genopinit.c @@ -398,6 +398,68 @@ main (int argc, char **argv) fprintf (h_file, "#define NUM_OPTAB_PATTERNS %u\n", (unsigned) patterns.length ()); + fprintf (h_file, + "typedef enum optab_tag optab;\n" + "typedef enum optab_tag convert_optab;\n" + "typedef enum optab_tag direct_optab;\n" + "\n" + "struct optab_libcall_d\n" + "{\n" + " char libcall_suffix;\n" + " const char *libcall_basename;\n" + " void (*libcall_gen) (optab, const char *name,\n" + " char suffix, machine_mode);\n" + "};\n" + "\n" + "struct convert_optab_libcall_d\n" + "{\n" + " const char *libcall_basename;\n" + " void (*libcall_gen) (convert_optab, const char *name,\n" + " machine_mode, machine_mode);\n" + "};\n" + "\n" + "/* Given an enum insn_code, access the function to construct\n" + " the body of that kind of insn. */\n" + "#define GEN_FCN(CODE) (insn_data[CODE].genfun)\n" + "\n" + "/* Contains the optab used for each rtx code, and vice-versa. */\n" + "extern const optab code_to_optab_[NUM_RTX_CODE];\n" + "extern const enum rtx_code optab_to_code_[NUM_OPTABS];\n" + "\n" + "static inline optab\n" + "code_to_optab (enum rtx_code code)\n" + "{\n" + " return code_to_optab_[code];\n" + "}\n" + "\n" + "static inline enum rtx_code\n" + "optab_to_code (optab op)\n" + "{\n" + " return optab_to_code_[op];\n" + "}\n" + "\n" + "extern const struct convert_optab_libcall_d convlib_def[NUM_CONVLIB_OPTABS];\n" + "extern const struct optab_libcall_d normlib_def[NUM_NORMLIB_OPTABS];\n" + "\n" + "/* Returns the active icode for the given (encoded) optab. */\n" + "extern enum insn_code raw_optab_handler (unsigned);\n" + "extern bool swap_optab_enable (optab, machine_mode, bool);\n" + "\n" + "/* Target-dependent globals. */\n" + "struct target_optabs {\n" + " /* Patterns that are used by optabs that are enabled for this target. */\n" + " bool pat_enable[NUM_OPTAB_PATTERNS];\n" + "};\n" + "extern void init_all_optabs (struct target_optabs *);\n" + "\n" + "extern struct target_optabs default_target_optabs;\n" + "extern struct target_optabs *this_fn_optabs;\n" + "#if SWITCHABLE_TARGET\n" + "extern struct target_optabs *this_target_optabs;\n" + "#else\n" + "#define this_target_optabs (&default_target_optabs)\n" + "#endif\n"); + fprintf (s_file, "#include \"config.h\"\n" "#include \"system.h\"\n" @@ -413,6 +475,7 @@ main (int argc, char **argv) "#include \"flags.h\"\n" "#include \"insn-config.h\"\n" "#include \"expr.h\"\n" + "#include \"insn-codes.h\"\n" "#include \"optabs.h\"\n" "\n" "struct optab_pat {\n" |