perform the operation described by CODE and MODE. */
extern int have_insn_for (enum rtx_code, enum machine_mode);
+extern rtx prepare_operand (int, rtx, int, enum machine_mode, enum machine_mode,
+ int);
+
/* Emit code to make a call to a constant function or a library call. */
extern void emit_libcall_block (rtx, rtx, rtx, rtx);
the result is zero, or IF_TRUE_LABEL if the result is one. */
extern void do_jump (tree, rtx, rtx);
-/* Generate rtl to compare two rtx's, will call emit_cmp_insn. */
-extern rtx compare_from_rtx (rtx, rtx, enum rtx_code, int, enum machine_mode,
- rtx);
extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
enum machine_mode, rtx, rtx, rtx);
/* Return given rtx, copied into a new temp reg if it was in memory. */
extern rtx force_not_mem (rtx);
+/* Return mode and signedness to use when an argument or result in the
+ given mode is promoted. */
+extern enum machine_mode promote_function_mode (const_tree, enum machine_mode, int *,
+ const_tree, int);
+
+/* Return mode and signedness to use when an object in the given mode
+ is promoted. */
+extern enum machine_mode promote_mode (const_tree, enum machine_mode, int *);
+
/* Return mode and signedness to use when object is promoted. */
-extern enum machine_mode promote_mode (const_tree, enum machine_mode, int *, int);
+enum machine_mode promote_decl_mode (const_tree, int *);
/* Remove some bytes from the stack. An rtx says how many. */
extern void adjust_stack (rtx);
/* Return an rtx that refers to the value returned by a library call
in its original home. This becomes invalid if any more code is emitted. */
-extern rtx hard_libcall_value (enum machine_mode);
+extern rtx hard_libcall_value (enum machine_mode, rtx);
/* Return the mode desired by operand N of a particular bitfield
insert/extract insn, or MAX_MACHINE_MODE if no such insn is
extern rtx assemble_static_space (unsigned HOST_WIDE_INT);
extern int safe_from_p (const_rtx, tree, int);
+extern bool split_comparison (enum rtx_code, enum machine_mode,
+ enum rtx_code *, enum rtx_code *);
/* Call this once to initialize the contents of the optabs
appropriately for the current target machine. */