aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2014-11-01 13:34:15 +0000
committerAndrew Macleod <amacleod@gcc.gnu.org>2014-11-01 13:34:15 +0000
commitb0710fe1b155d3aff0fda3fcff291c09a727ec82 (patch)
treea1d684f3d10d3446cf010b46c1c96adbd1c76a84 /gcc/expr.h
parenta5474c4cb0cd4499437eeffd7223bb7533100d48 (diff)
downloadgcc-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/expr.h')
-rw-r--r--gcc/expr.h101
1 files changed, 2 insertions, 99 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index ba93693..5793560 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see
ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes, */
#include "tree-core.h"
/* For GET_MODE_BITSIZE, word_mode */
+#include "insn-config.h"
/* This is the 4th arg to `expand_expr'.
EXPAND_STACK_PARM means we are possibly expanding a call param onto
@@ -72,93 +73,6 @@ typedef struct separate_ops
tree op0, op1, op2;
} *sepops;
-/* Functions from optabs.c, commonly used, and without need for the optabs
- tables: */
-
-/* Passed to expand_simple_binop and expand_binop to say which options
- to try to use if the requested operation can't be open-coded on the
- requisite mode. Either OPTAB_LIB or OPTAB_LIB_WIDEN says try using
- a library call. Either OPTAB_WIDEN or OPTAB_LIB_WIDEN says try
- using a wider mode. OPTAB_MUST_WIDEN says try widening and don't
- try anything else. */
-
-enum optab_methods
-{
- OPTAB_DIRECT,
- OPTAB_LIB,
- OPTAB_WIDEN,
- OPTAB_LIB_WIDEN,
- OPTAB_MUST_WIDEN
-};
-
-/* Generate code for a simple binary or unary operation. "Simple" in
- this case means "can be unambiguously described by a (mode, code)
- pair and mapped to a single optab." */
-extern rtx expand_simple_binop (machine_mode, enum rtx_code, rtx,
- rtx, rtx, int, enum optab_methods);
-extern rtx expand_simple_unop (machine_mode, enum rtx_code, rtx, rtx,
- int);
-
-/* Report whether the machine description contains an insn which can
- perform the operation described by CODE and MODE. */
-extern int have_insn_for (enum rtx_code, machine_mode);
-
-/* Emit code to make a call to a constant function or a library call. */
-extern void emit_libcall_block (rtx, rtx, rtx, rtx);
-
-/* Create but don't emit one rtl instruction to perform certain operations.
- Modes must match; operands must meet the operation's predicates.
- Likewise for subtraction and for just copying. */
-extern rtx gen_add2_insn (rtx, rtx);
-extern rtx gen_add3_insn (rtx, rtx, rtx);
-extern rtx gen_addptr3_insn (rtx, rtx, rtx);
-extern rtx gen_sub2_insn (rtx, rtx);
-extern rtx gen_sub3_insn (rtx, rtx, rtx);
-extern rtx gen_move_insn (rtx, rtx);
-extern int have_add2_insn (rtx, rtx);
-extern int have_addptr3_insn (rtx, rtx, rtx);
-extern int have_sub2_insn (rtx, rtx);
-
-/* Emit a pair of rtl insns to compare two rtx's and to jump
- to a label if the comparison is true. */
-extern void emit_cmp_and_jump_insns (rtx, rtx, enum rtx_code, rtx,
- machine_mode, int, rtx, int prob=-1);
-
-/* Generate code to indirectly jump to a location given in the rtx LOC. */
-extern void emit_indirect_jump (rtx);
-
-/* Generate a conditional trap instruction. */
-extern rtx gen_cond_trap (enum rtx_code, rtx, rtx, rtx);
-
-#include "insn-config.h"
-
-#ifdef HAVE_conditional_move
-/* Emit a conditional move operation. */
-rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx, machine_mode,
- rtx, rtx, machine_mode, int);
-
-/* Return nonzero if the conditional move is supported. */
-int can_conditionally_move_p (machine_mode mode);
-
-#endif
-rtx emit_conditional_add (rtx, enum rtx_code, rtx, rtx, machine_mode,
- rtx, rtx, machine_mode, int);
-
-rtx expand_sync_operation (rtx, rtx, enum rtx_code);
-rtx expand_sync_fetch_operation (rtx, rtx, enum rtx_code, bool, rtx);
-rtx expand_sync_lock_test_and_set (rtx, rtx, rtx);
-
-rtx expand_atomic_exchange (rtx, rtx, rtx, enum memmodel);
-rtx expand_atomic_load (rtx, rtx, enum memmodel);
-rtx expand_atomic_store (rtx, rtx, enum memmodel, bool);
-rtx expand_atomic_fetch_op (rtx, rtx, rtx, enum rtx_code, enum memmodel,
- bool);
-rtx expand_atomic_test_and_set (rtx, rtx, enum memmodel);
-rtx expand_atomic_clear (rtx, enum memmodel);
-void expand_atomic_thread_fence (enum memmodel);
-void expand_atomic_signal_fence (enum memmodel);
-
-
/* Functions from expmed.c: */
/* Arguments MODE, RTX: return an rtx for the negation of that value.
@@ -334,6 +248,7 @@ extern rtx store_by_pieces (rtx, unsigned HOST_WIDE_INT,
/* Emit insns to set X from Y. */
extern rtx_insn *emit_move_insn (rtx, rtx);
+extern rtx gen_move_insn (rtx, rtx);
/* Emit insns to set X from Y, with no frills. */
extern rtx_insn *emit_move_insn_1 (rtx, rtx);
@@ -671,18 +586,6 @@ extern int safe_from_p (const_rtx, tree, int);
extern bool split_comparison (enum rtx_code, machine_mode,
enum rtx_code *, enum rtx_code *);
-/* Call this once to initialize the contents of the optabs
- appropriately for the current target machine. */
-extern void init_optabs (void);
-extern void init_all_optabs (struct target_optabs *);
-
-/* Call this to initialize an optab function entry. */
-extern rtx init_one_libfunc (const char *);
-extern rtx set_user_assembler_libfunc (const char *, const char *);
-
-/* Build a decl for a libfunc named NAME. */
-extern tree build_libfunc_function (const char *);
-
/* Get the personality libfunc for a function decl. */
rtx get_personality_function (tree);