]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/m32c/m32c-protos.h
backport: ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
[thirdparty/gcc.git] / gcc / config / m32c / m32c-protos.h
CommitLineData
38b2d076 1/* Target Prototypes for R8C/M16C/M32C
726a989a 2 Copyright (C) 2005, 2007, 2008
38b2d076
DD
3 Free Software Foundation, Inc.
4 Contributed by Red Hat.
5
6 This file is part of GCC.
7
8 GCC is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
2f83c7d6 10 by the Free Software Foundation; either version 3, or (at your
38b2d076
DD
11 option) any later version.
12
13 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
17
18 You should have received a copy of the GNU General Public License
2f83c7d6
NC
19 along with GCC; see the file COPYING3. If not see
20 <http://www.gnu.org/licenses/>. */
38b2d076
DD
21
22#define MM enum machine_mode
23#define UINT unsigned int
24
25int m32c_class_likely_spilled_p (int);
26void m32c_conditional_register_usage (void);
27int m32c_const_ok_for_constraint_p (HOST_WIDE_INT, char, const char *);
28UINT m32c_dwarf_frame_regnum (int);
29int m32c_eh_return_data_regno (int);
30void m32c_emit_epilogue (void);
31void m32c_emit_prologue (void);
32int m32c_epilogue_uses (int);
33int m32c_extra_address_constraint (char, const char *);
34int m32c_extra_memory_constraint (char, const char *);
35int m32c_function_arg_regno_p (int);
36void m32c_init_expanders (void);
37int m32c_initial_elimination_offset (int, int);
38void m32c_output_reg_pop (FILE *, int);
39void m32c_output_reg_push (FILE *, int);
40void m32c_override_options (void);
41int m32c_print_operand_punct_valid_p (int);
42int m32c_push_rounding (int);
43int m32c_reg_class_from_constraint (char, const char *);
44void m32c_register_pragmas (void);
45int m32c_regno_ok_for_base_p (int);
46int m32c_trampoline_alignment (void);
47int m32c_trampoline_size (void);
0166ff05 48void m32c_unpend_compare (void);
38b2d076
DD
49
50#if defined(RTX_CODE) && defined(TREE_CODE)
51
52rtx m32c_function_arg (CUMULATIVE_ARGS *, MM, tree, int);
586de218 53rtx m32c_function_value (const_tree, const_tree);
38b2d076
DD
54
55#endif
56
57#ifdef RTX_CODE
58
59int m32c_cannot_change_mode_class (MM, MM, int);
60int m32c_class_max_nregs (int, MM);
07127a0a 61rtx m32c_cmp_flg_0 (rtx);
38b2d076
DD
62rtx m32c_eh_return_stackadj_rtx (void);
63void m32c_emit_eh_epilogue (rtx);
07127a0a
DD
64int m32c_expand_cmpstr (rtx *);
65int m32c_expand_insv (rtx *);
66int m32c_expand_movcc (rtx *);
67int m32c_expand_movmemhi (rtx *);
68int m32c_expand_movstr (rtx *);
69void m32c_expand_neg_mulpsi3 (rtx *);
70int m32c_expand_setmemhi (rtx *);
0166ff05 71void m32c_expand_scc (int, rtx *);
38b2d076
DD
72int m32c_extra_constraint_p (rtx, char, const char *);
73int m32c_extra_constraint_p2 (rtx, char, const char *);
74int m32c_hard_regno_nregs (int, MM);
75int m32c_hard_regno_ok (int, MM);
f9b89438 76bool m32c_illegal_subreg_p (rtx);
ff485e71 77bool m32c_immd_dbl_mov (rtx *, MM);
38b2d076
DD
78rtx m32c_incoming_return_addr_rtx (void);
79void m32c_initialize_trampoline (rtx, rtx, rtx);
80int m32c_legitimate_address_p (MM, rtx, int);
81int m32c_legitimate_constant_p (rtx);
82int m32c_legitimize_address (rtx *, rtx, MM);
83int m32c_legitimize_reload_address (rtx *, MM, int, int, int);
84rtx m32c_libcall_value (MM);
85int m32c_limit_reload_class (MM, int);
86int m32c_memory_move_cost (MM, int, int);
38b2d076
DD
87int m32c_modes_tieable_p (MM, MM);
88bool m32c_mov_ok (rtx *, MM);
16659fcf 89char * m32c_output_compare (rtx, rtx *);
0166ff05 90void m32c_pend_compare (rtx *);
38b2d076
DD
91int m32c_preferred_output_reload_class (rtx, int);
92int m32c_preferred_reload_class (rtx, int);
93int m32c_prepare_move (rtx *, MM);
94int m32c_prepare_shift (rtx *, int, int);
95void m32c_print_operand (FILE *, rtx, int);
96void m32c_print_operand_address (FILE *, rtx);
97int m32c_reg_ok_for_base_p (rtx, int);
98int m32c_register_move_cost (MM, int, int);
99MM m32c_regno_reg_class (int);
100rtx m32c_return_addr_rtx (int);
07127a0a 101const char *m32c_scc_pattern (rtx *, RTX_CODE);
38b2d076
DD
102int m32c_secondary_reload_class (int, MM, rtx);
103int m32c_split_move (rtx *, MM, int);
104int m32c_split_psi_p (rtx *);
105
106#endif
107
108#ifdef TREE_CODE
109
110void m32c_function_arg_advance (CUMULATIVE_ARGS *, MM, tree, int);
726a989a 111tree m32c_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *);
38b2d076 112void m32c_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
586de218 113bool m32c_promote_function_return (const_tree);
5abd2125 114int m32c_special_page_vector_p (tree);
38b2d076
DD
115
116#endif
117
118#undef MM
119#undef UINT