]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/m32c/m32c-protos.h
The various TARGET_ASM_..._MAX_SKIP hooks take an insn
[thirdparty/gcc.git] / gcc / config / m32c / m32c-protos.h
CommitLineData
38b2d076 1/* Target Prototypes for R8C/M16C/M32C
23a5b65a 2 Copyright (C) 2005-2014 Free Software Foundation, Inc.
38b2d076
DD
3 Contributed by Red Hat.
4
5 This file is part of GCC.
6
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published
2f83c7d6 9 by the Free Software Foundation; either version 3, or (at your
38b2d076
DD
10 option) any later version.
11
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
16
17 You should have received a copy of the GNU General Public License
2f83c7d6
NC
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
38b2d076 20
d6d17ae7 21void m32c_conditional_register_usage (void);
984514ac 22unsigned int m32c_dwarf_frame_regnum (int);
38b2d076
DD
23int m32c_eh_return_data_regno (int);
24void m32c_emit_epilogue (void);
25void m32c_emit_prologue (void);
26int m32c_epilogue_uses (int);
38b2d076
DD
27int m32c_function_arg_regno_p (int);
28void m32c_init_expanders (void);
29int m32c_initial_elimination_offset (int, int);
30void m32c_output_reg_pop (FILE *, int);
31void m32c_output_reg_push (FILE *, int);
444d6efe 32unsigned int m32c_push_rounding (int);
38b2d076 33void m32c_register_pragmas (void);
f6052f86 34void m32c_note_pragma_address (const char *, unsigned);
38b2d076
DD
35int m32c_regno_ok_for_base_p (int);
36int m32c_trampoline_alignment (void);
37int m32c_trampoline_size (void);
38
38b2d076
DD
39#ifdef RTX_CODE
40
984514ac 41int m32c_cannot_change_mode_class (enum machine_mode, enum machine_mode, int);
38b2d076
DD
42rtx m32c_eh_return_stackadj_rtx (void);
43void m32c_emit_eh_epilogue (rtx);
07127a0a
DD
44int m32c_expand_cmpstr (rtx *);
45int m32c_expand_insv (rtx *);
46int m32c_expand_movcc (rtx *);
47int m32c_expand_movmemhi (rtx *);
48int m32c_expand_movstr (rtx *);
49void m32c_expand_neg_mulpsi3 (rtx *);
50int m32c_expand_setmemhi (rtx *);
03dd17b1 51bool m32c_matches_constraint_p (rtx, int);
984514ac
JM
52int m32c_hard_regno_nregs (int, enum machine_mode);
53int m32c_hard_regno_ok (int, enum machine_mode);
f9b89438 54bool m32c_illegal_subreg_p (rtx);
984514ac 55bool m32c_immd_dbl_mov (rtx *, enum machine_mode);
38b2d076 56rtx m32c_incoming_return_addr_rtx (void);
984514ac
JM
57int m32c_legitimize_reload_address (rtx *, enum machine_mode, int, int, int);
58int m32c_limit_reload_class (enum machine_mode, int);
59int m32c_modes_tieable_p (enum machine_mode, enum machine_mode);
60bool m32c_mov_ok (rtx *, enum machine_mode);
16659fcf 61char * m32c_output_compare (rtx, rtx *);
984514ac 62int m32c_prepare_move (rtx *, enum machine_mode);
38b2d076 63int m32c_prepare_shift (rtx *, int, int);
38b2d076 64int m32c_reg_ok_for_base_p (rtx, int);
444d6efe 65enum reg_class m32c_regno_reg_class (int);
38b2d076 66rtx m32c_return_addr_rtx (int);
07127a0a 67const char *m32c_scc_pattern (rtx *, RTX_CODE);
984514ac
JM
68int m32c_secondary_reload_class (int, enum machine_mode, rtx);
69int m32c_split_move (rtx *, enum machine_mode, int);
38b2d076 70int m32c_split_psi_p (rtx *);
444d6efe 71int current_function_special_page_vector (rtx);
38b2d076
DD
72
73#endif
74
75#ifdef TREE_CODE
76
726a989a 77tree m32c_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *);
38b2d076 78void m32c_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
586de218 79bool m32c_promote_function_return (const_tree);
5abd2125 80int m32c_special_page_vector_p (tree);
f6052f86
DD
81void m32c_output_aligned_common (FILE *, tree, const char *,
82 int, int, int);
38b2d076
DD
83
84#endif