Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/frv/frv-protos.h @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
rev | line source |
---|---|
0 | 1 /* Frv prototypes. |
145 | 2 Copyright (C) 1999-2020 Free Software Foundation, Inc. |
0 | 3 Contributed by Red Hat, Inc. |
4 | |
5 This file is part of GCC. | |
6 | |
7 GCC is free software; you can redistribute it and/or modify | |
8 it under the terms of the GNU General Public License as published by | |
9 the Free Software Foundation; either version 3, or (at your option) | |
10 any later version. | |
11 | |
12 GCC is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with GCC; see the file COPYING3. If not see | |
19 <http://www.gnu.org/licenses/>. */ | |
20 | |
21 /* Define functions defined in frv.c */ | |
22 extern void frv_expand_prologue (void); | |
23 extern void frv_expand_epilogue (bool); | |
24 extern frv_stack_t *frv_stack_info (void); | |
25 extern void frv_debug_stack (frv_stack_t *); | |
26 extern int frv_initial_elimination_offset (int, int); | |
111 | 27 extern void frv_ifcvt_machdep_init (void *); |
0 | 28 |
29 #ifdef RTX_CODE | |
111 | 30 extern int frv_legitimate_address_p_1 (machine_mode, rtx, |
0 | 31 int, int, int); |
32 extern rtx frv_find_base_term (rtx); | |
33 | |
34 #ifdef TREE_CODE | |
35 extern void frv_init_cumulative_args (CUMULATIVE_ARGS *, tree, | |
36 rtx, tree, int); | |
37 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
38 extern bool frv_function_value_regno_p (const unsigned int); |
0 | 39 #endif /* TREE_CODE */ |
40 | |
41 extern int frv_expand_block_move (rtx *); | |
42 extern int frv_expand_block_clear (rtx *); | |
43 extern rtx frv_dynamic_chain_address (rtx); | |
44 extern rtx frv_return_addr_rtx (int, rtx); | |
111 | 45 extern rtx frv_index_memory (rtx, machine_mode, int); |
0 | 46 extern const char *frv_asm_output_opcode |
47 (FILE *, const char *); | |
111 | 48 extern void frv_final_prescan_insn (rtx_insn *, rtx *, int); |
49 extern void frv_emit_move (machine_mode, rtx, rtx); | |
0 | 50 extern int frv_emit_movsi (rtx, rtx); |
51 extern const char *output_move_single (rtx *, rtx); | |
52 extern const char *output_move_double (rtx *, rtx); | |
53 extern const char *output_condmove_single | |
54 (rtx *, rtx); | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
55 extern int frv_emit_cond_branch (rtx *); |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
56 extern int frv_emit_scc (rtx *); |
0 | 57 extern rtx frv_split_scc (rtx, rtx, rtx, rtx, HOST_WIDE_INT); |
58 extern int frv_emit_cond_move (rtx, rtx, rtx, rtx); | |
59 extern rtx frv_split_cond_move (rtx *); | |
60 extern rtx frv_split_minmax (rtx *); | |
61 extern rtx frv_split_abs (rtx *); | |
62 extern void frv_split_double_load (rtx, rtx); | |
63 extern void frv_split_double_store (rtx, rtx); | |
64 #ifdef BB_HEAD | |
111 | 65 extern void frv_ifcvt_init_extra_fields (struct ce_if_block *); |
66 extern void frv_ifcvt_modify_tests (struct ce_if_block *, rtx *, rtx *); | |
0 | 67 extern void frv_ifcvt_modify_multiple_tests |
111 | 68 (struct ce_if_block *, basic_block, |
0 | 69 rtx *, rtx *); |
131 | 70 extern rtx frv_ifcvt_modify_insn (struct ce_if_block *, rtx, rtx_insn *); |
111 | 71 extern void frv_ifcvt_modify_final (struct ce_if_block *); |
72 extern void frv_ifcvt_modify_cancel (struct ce_if_block *); | |
0 | 73 #endif |
74 extern enum reg_class frv_secondary_reload_class | |
75 (enum reg_class, | |
111 | 76 machine_mode, rtx); |
0 | 77 extern int frv_class_max_nregs (enum reg_class rclass, |
111 | 78 machine_mode mode); |
79 extern machine_mode frv_select_cc_mode (enum rtx_code, rtx, rtx); | |
0 | 80 #endif /* RTX_CODE */ |
81 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
82 extern int frv_trampoline_size (void); |
0 | 83 extern int direct_return_p (void); |
84 extern int frv_issue_rate (void); | |
85 extern int frv_acc_group (rtx); | |
86 | |
87 #ifdef TREE_CODE | |
88 extern int frv_adjust_field_align (tree, int); | |
89 #endif | |
90 | |
91 #ifdef RTX_CODE | |
111 | 92 extern int integer_register_operand (rtx, machine_mode); |
93 extern int frv_load_operand (rtx, machine_mode); | |
94 extern int gpr_or_fpr_operand (rtx, machine_mode); | |
95 extern int gpr_no_subreg_operand (rtx, machine_mode); | |
96 extern int gpr_or_int6_operand (rtx, machine_mode); | |
97 extern int fpr_or_int6_operand (rtx, machine_mode); | |
98 extern int gpr_or_int_operand (rtx, machine_mode); | |
99 extern int gpr_or_int12_operand (rtx, machine_mode); | |
100 extern int gpr_fpr_or_int12_operand (rtx, machine_mode); | |
101 extern int gpr_or_int10_operand (rtx, machine_mode); | |
102 extern int move_source_operand (rtx, machine_mode); | |
103 extern int move_destination_operand (rtx, machine_mode); | |
104 extern int condexec_source_operand (rtx, machine_mode); | |
105 extern int condexec_dest_operand (rtx, machine_mode); | |
106 extern int lr_operand (rtx, machine_mode); | |
107 extern int gpr_or_memory_operand (rtx, machine_mode); | |
108 extern int fpr_or_memory_operand (rtx, machine_mode); | |
109 extern int reg_or_0_operand (rtx, machine_mode); | |
110 extern int fcc_operand (rtx, machine_mode); | |
111 extern int icc_operand (rtx, machine_mode); | |
112 extern int cc_operand (rtx, machine_mode); | |
113 extern int fcr_operand (rtx, machine_mode); | |
114 extern int icr_operand (rtx, machine_mode); | |
115 extern int cr_operand (rtx, machine_mode); | |
116 extern int call_operand (rtx, machine_mode); | |
117 extern int fpr_operand (rtx, machine_mode); | |
118 extern int even_reg_operand (rtx, machine_mode); | |
119 extern int odd_reg_operand (rtx, machine_mode); | |
120 extern int even_gpr_operand (rtx, machine_mode); | |
121 extern int odd_gpr_operand (rtx, machine_mode); | |
122 extern int quad_fpr_operand (rtx, machine_mode); | |
123 extern int even_fpr_operand (rtx, machine_mode); | |
124 extern int odd_fpr_operand (rtx, machine_mode); | |
125 extern int dbl_memory_one_insn_operand (rtx, machine_mode); | |
126 extern int dbl_memory_two_insn_operand (rtx, machine_mode); | |
127 extern int int12_operand (rtx, machine_mode); | |
128 extern int int6_operand (rtx, machine_mode); | |
129 extern int int5_operand (rtx, machine_mode); | |
130 extern int uint5_operand (rtx, machine_mode); | |
131 extern int uint4_operand (rtx, machine_mode); | |
132 extern int uint1_operand (rtx, machine_mode); | |
133 extern int int_2word_operand (rtx, machine_mode); | |
134 extern int pic_register_operand (rtx, machine_mode); | |
135 extern int pic_symbolic_operand (rtx, machine_mode); | |
136 extern int small_data_register_operand (rtx, machine_mode); | |
137 extern int small_data_symbolic_operand (rtx, machine_mode); | |
138 extern int upper_int16_operand (rtx, machine_mode); | |
139 extern int uint16_operand (rtx, machine_mode); | |
140 extern int symbolic_operand (rtx, machine_mode); | |
141 extern int relational_operator (rtx, machine_mode); | |
142 extern int signed_relational_operator (rtx, machine_mode); | |
143 extern int unsigned_relational_operator (rtx, machine_mode); | |
144 extern int float_relational_operator (rtx, machine_mode); | |
145 extern int ccr_eqne_operator (rtx, machine_mode); | |
146 extern int minmax_operator (rtx, machine_mode); | |
147 extern int condexec_si_binary_operator (rtx, machine_mode); | |
148 extern int condexec_si_media_operator (rtx, machine_mode); | |
149 extern int condexec_si_divide_operator (rtx, machine_mode); | |
150 extern int condexec_si_unary_operator (rtx, machine_mode); | |
151 extern int condexec_sf_conv_operator (rtx, machine_mode); | |
152 extern int condexec_sf_add_operator (rtx, machine_mode); | |
153 extern int condexec_memory_operand (rtx, machine_mode); | |
154 extern int intop_compare_operator (rtx, machine_mode); | |
155 extern int acc_operand (rtx, machine_mode); | |
156 extern int even_acc_operand (rtx, machine_mode); | |
157 extern int quad_acc_operand (rtx, machine_mode); | |
158 extern int accg_operand (rtx, machine_mode); | |
0 | 159 extern rtx frv_matching_accg_for_acc (rtx); |
160 extern void frv_expand_fdpic_call (rtx *, bool, bool); | |
161 extern rtx frv_gen_GPsym2reg (rtx, rtx); | |
111 | 162 extern int frv_legitimate_memory_operand (rtx, machine_mode, int); |
0 | 163 |
164 /* Information about a relocation unspec. SYMBOL is the relocation symbol | |
165 (a SYMBOL_REF or LABEL_REF), RELOC is the type of relocation and OFFSET | |
166 is the constant addend. */ | |
167 struct frv_unspec { | |
168 rtx symbol; | |
169 int reloc; | |
170 HOST_WIDE_INT offset; | |
171 }; | |
172 | |
173 extern bool frv_const_unspec_p (rtx, struct frv_unspec *); | |
174 | |
175 #endif | |
176 |