1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
/* d30v prototypes.
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GNU CC.
GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* External functions called. */
extern void override_options PARAMS ((void));
#ifdef RTX_CODE
extern int short_memory_operand PARAMS ((rtx, enum machine_mode));
extern int long_memory_operand PARAMS ((rtx, enum machine_mode));
extern int d30v_memory_operand PARAMS ((rtx, enum machine_mode));
extern int single_reg_memory_operand PARAMS ((rtx, enum machine_mode));
extern int const_addr_memory_operand PARAMS ((rtx, enum machine_mode));
extern int call_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_operand PARAMS ((rtx, enum machine_mode));
extern int accum_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_or_accum_operand PARAMS ((rtx, enum machine_mode));
extern int cr_operand PARAMS ((rtx, enum machine_mode));
extern int repeat_operand PARAMS ((rtx, enum machine_mode));
extern int flag_operand PARAMS ((rtx, enum machine_mode));
extern int br_flag_operand PARAMS ((rtx, enum machine_mode));
extern int br_flag_or_constant_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_br_flag_operand PARAMS ((rtx, enum machine_mode));
extern int f0_operand PARAMS ((rtx, enum machine_mode));
extern int f1_operand PARAMS ((rtx, enum machine_mode));
extern int carry_operand PARAMS ((rtx, enum machine_mode));
extern int reg_or_0_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_or_signed6_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_or_unsigned5_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_or_unsigned6_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_or_constant_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_or_dbl_const_operand PARAMS ((rtx, enum machine_mode));
extern int gpr_or_memory_operand PARAMS ((rtx, enum machine_mode));
extern int move_input_operand PARAMS ((rtx, enum machine_mode));
extern int move_output_operand PARAMS ((rtx, enum machine_mode));
extern int signed6_operand PARAMS ((rtx, enum machine_mode));
extern int unsigned5_operand PARAMS ((rtx, enum machine_mode));
extern int unsigned6_operand PARAMS ((rtx, enum machine_mode));
extern int bitset_operand PARAMS ((rtx, enum machine_mode));
extern int condexec_test_operator PARAMS ((rtx, enum machine_mode));
extern int condexec_branch_operator PARAMS ((rtx, enum machine_mode));
extern int condexec_unary_operator PARAMS ((rtx, enum machine_mode));
extern int condexec_addsub_operator PARAMS ((rtx, enum machine_mode));
extern int condexec_binary_operator PARAMS ((rtx, enum machine_mode));
extern int condexec_shiftl_operator PARAMS ((rtx, enum machine_mode));
extern int condexec_extend_operator PARAMS ((rtx, enum machine_mode));
extern int branch_zero_operator PARAMS ((rtx, enum machine_mode));
extern int cond_move_dest_operand PARAMS ((rtx, enum machine_mode));
extern int cond_move_operand PARAMS ((rtx, enum machine_mode));
extern int cond_exec_operand PARAMS ((rtx, enum machine_mode));
extern int srelational_si_operator PARAMS ((rtx, enum machine_mode));
extern int urelational_si_operator PARAMS ((rtx, enum machine_mode));
extern int relational_di_operator PARAMS ((rtx, enum machine_mode));
#endif
extern d30v_stack_t *d30v_stack_info PARAMS ((void));
extern int direct_return PARAMS ((void));
#ifdef TREE_CODE
#ifdef RTX_CODE
extern void d30v_init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree,
rtx, int, int));
#endif
extern int d30v_function_arg_boundary PARAMS ((enum machine_mode, tree));
#ifdef RTX_CODE
extern rtx d30v_function_arg PARAMS ((CUMULATIVE_ARGS *,
enum machine_mode,
tree, int, int));
#endif
extern int d30v_function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *,
enum machine_mode,
tree, int));
extern int d30v_function_arg_pass_by_reference PARAMS ((CUMULATIVE_ARGS *,
enum machine_mode,
tree, int));
extern void d30v_function_arg_advance PARAMS ((CUMULATIVE_ARGS *,
enum machine_mode,
tree, int));
#endif
#ifdef RTX_CODE
extern rtx d30v_expand_builtin_saveregs PARAMS ((void));
#endif
#ifdef TREE_CODE
extern void d30v_setup_incoming_varargs PARAMS ((CUMULATIVE_ARGS *,
enum machine_mode,
tree, int *, int));
extern tree d30v_build_va_list PARAMS ((void));
#ifdef RTX_CODE
extern void d30v_expand_builtin_va_start PARAMS ((int, tree, rtx));
extern rtx d30v_expand_builtin_va_arg PARAMS ((tree, tree));
#endif /* RTX_CODE */
#endif /* TREE_CODE */
extern void d30v_expand_prologue PARAMS ((void));
extern void d30v_expand_epilogue PARAMS ((void));
extern void d30v_function_profiler PARAMS ((FILE *, int));
#ifdef RTX_CODE
extern void d30v_split_double PARAMS ((rtx, rtx *, rtx *));
extern void d30v_print_operand PARAMS ((FILE *, rtx, int));
extern void d30v_print_operand_address PARAMS ((FILE *, rtx));
#endif
extern int d30v_trampoline_size PARAMS ((void));
#ifdef RTX_CODE
extern void d30v_initialize_trampoline PARAMS ((rtx, rtx, rtx));
extern int d30v_legitimate_address_p PARAMS ((enum machine_mode, rtx, int));
extern rtx d30v_legitimize_address PARAMS ((rtx, rtx,
enum machine_mode, int));
extern int d30v_mode_dependent_address_p PARAMS ((rtx));
extern rtx d30v_emit_comparison PARAMS ((int, rtx, rtx, rtx));
extern const char *d30v_move_2words PARAMS ((rtx *, rtx));
extern int d30v_emit_cond_move PARAMS ((rtx, rtx, rtx, rtx));
extern void d30v_machine_dependent_reorg PARAMS ((rtx));
extern rtx d30v_return_addr PARAMS ((void));
#endif
extern void d30v_init_expanders PARAMS ((void));
extern void debug_stack_info PARAMS ((d30v_stack_t *));
/* External variables referenced */
/* Define the information needed to generate branch and scc insns. This is
stored from the compare operation. */
extern GTY(()) rtx d30v_compare_op0;
extern GTY(()) rtx d30v_compare_op1;
/* Define the information needed to modify the epilogue for EH. */
#ifdef RTX_CODE
extern rtx d30v_eh_epilogue_sp_ofs;
#endif
|