OSDN Git Service

3d99a313b9405c3ea2ce2e08cb974967c75bce12
[pf3gnuchains/gcc-fork.git] / gcc / config / avr / avr-protos.h
1 /* Prototypes for exported functions defined in avr.c
2    
3    Copyright (C) 2000, 2001 Free Software Foundation, Inc.
4    Contributed by Denis Chertykov (denisc@overta.ru)
5
6    This file is part of GNU CC.
7
8    GNU CC is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2, or (at your option)
11    any later version.
12
13    GNU CC is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with GNU CC; see the file COPYING.  If not, write to
20    the Free Software Foundation, 59 Temple Place - Suite 330,
21    Boston, MA 02111-1307, USA.  */
22
23
24 extern int    function_arg_regno_p              PARAMS ((int r));
25 extern void   asm_file_start                    PARAMS ((FILE *file));
26 extern void   asm_file_end                      PARAMS ((FILE *file));
27 extern void   avr_init_once                     PARAMS ((void));
28 extern void   avr_override_options              PARAMS ((void));
29 extern char * avr_change_section                PARAMS ((char *sect_name));
30 extern int    avr_ret_register                  PARAMS ((void));
31 extern enum reg_class class_likely_spilled_p    PARAMS ((int c));
32 extern enum reg_class avr_regno_reg_class       PARAMS ((int r));
33 extern enum reg_class avr_reg_class_from_letter PARAMS ((int c));
34 extern int    frame_pointer_required_p          PARAMS ((void));
35 extern void   asm_globalize_label         PARAMS ((FILE *file, const char *name));
36 extern void   order_regs_for_local_alloc  PARAMS ((void));
37 extern int    initial_elimination_offset  PARAMS ((int from, int to));
38 extern void   function_prologue           PARAMS ((FILE *file, int size));
39 extern void   function_epilogue           PARAMS ((FILE *file, int size));
40 extern void   progmem_section             PARAMS ((void));
41 extern int    mask_one_bit_p              PARAMS ((HOST_WIDE_INT mask));
42 extern void   gas_output_limited_string PARAMS ((FILE *file, const char *str));
43 extern void   gas_output_ascii          PARAMS ((FILE *file, const char *str,
44                                                          size_t length));
45 #ifdef TREE_CODE
46 extern void   asm_output_external          PARAMS ((FILE *file, tree decl,
47                                                    char *name));
48 extern void   unique_section               PARAMS ((tree decl, int reloc));
49 extern void   encode_section_info          PARAMS ((tree decl));
50 extern void   asm_output_section_name      PARAMS ((FILE *file, tree decl,
51                                                    const char *name,
52                                                    int reloc));
53 extern int    avr_progmem_p                PARAMS ((tree decl));
54
55
56 #ifdef RTX_CODE /* inside TREE_CODE */
57 extern rtx    avr_function_value           PARAMS ((tree type, tree func));
58 extern void   init_cumulative_args         PARAMS ((CUMULATIVE_ARGS *cum,
59                                                    tree fntype, rtx libname,
60                                                    int indirect));
61 extern rtx    function_arg         PARAMS ((CUMULATIVE_ARGS *cum,
62                                            enum machine_mode mode,
63                                            tree type, int named));
64
65
66 #endif /* RTX_CODE inside TREE_CODE */
67
68 #ifdef HAVE_MACHINE_MODES /* inside TREE_CODE */
69 extern void   function_arg_advance PARAMS ((CUMULATIVE_ARGS *cum,
70                                            enum machine_mode mode, tree type,
71                                            int named));
72 #endif /* HAVE_MACHINE_MODES inside TREE_CODE*/
73 #endif /* TREE_CODE */
74
75 #ifdef RTX_CODE
76 extern void   asm_output_external_libcall PARAMS ((FILE *file, rtx symref));
77 extern int    legitimate_address_p    PARAMS ((enum machine_mode mode, rtx x,
78                                         int strict));
79 extern void   machine_dependent_reorg PARAMS ((rtx first_insn));
80 extern int    compare_diff_p  PARAMS ((rtx insn));
81 extern const char * output_movqi    PARAMS ((rtx insn, rtx operands[], int *l));
82 extern const char * output_movhi    PARAMS ((rtx insn, rtx operands[], int *l));
83 extern const char * out_movqi_r_mr  PARAMS ((rtx insn, rtx op[], int *l));
84 extern const char * out_movqi_mr_r  PARAMS ((rtx insn, rtx op[], int *l));
85 extern const char * out_movhi_r_mr  PARAMS ((rtx insn, rtx op[], int *l));
86 extern const char * out_movhi_mr_r  PARAMS ((rtx insn, rtx op[], int *l));
87 extern const char * out_movsi_r_mr  PARAMS ((rtx insn, rtx op[], int *l));
88 extern const char * out_movsi_mr_r  PARAMS ((rtx insn, rtx op[], int *l));
89 extern const char * output_movsisf  PARAMS ((rtx insn, rtx operands[], int *l));
90 extern const char * out_tstsi       PARAMS ((rtx insn, int *l));
91 extern const char * out_tsthi       PARAMS ((rtx insn, int *l));
92 extern const char * ret_cond_branch PARAMS ((rtx x, int len, int reverse));
93
94 extern const char * ashlqi3_out PARAMS ((rtx insn, rtx operands[], int *len));
95 extern const char * ashlhi3_out PARAMS ((rtx insn, rtx operands[], int *len));
96 extern const char * ashlsi3_out PARAMS ((rtx insn, rtx operands[], int *len));
97
98 extern const char * ashrqi3_out PARAMS ((rtx insn, rtx operands[], int *len));
99 extern const char * ashrhi3_out PARAMS ((rtx insn, rtx operands[], int *len));
100 extern const char * ashrsi3_out PARAMS ((rtx insn, rtx operands[], int *len));
101
102 extern const char * lshrqi3_out PARAMS ((rtx insn, rtx operands[], int *len));
103 extern const char * lshrhi3_out PARAMS ((rtx insn, rtx operands[], int *len));
104 extern const char * lshrsi3_out PARAMS ((rtx insn, rtx operands[], int *len));
105
106 extern void avr_output_bld PARAMS ((rtx operands[], int bit_nr));
107 extern void avr_output_addr_vec_elt PARAMS ((FILE *stream, int value));
108
109 extern enum reg_class preferred_reload_class PARAMS ((rtx x,
110                                                      enum reg_class class));
111 extern int    avr_address_cost       PARAMS ((rtx x));
112 extern int    extra_constraint       PARAMS ((rtx x, int c));
113 extern rtx    legitimize_address     PARAMS ((rtx x, rtx oldx,
114                                              enum machine_mode mode));
115 extern int    adjust_insn_length     PARAMS ((rtx insn, int len));
116 extern rtx    avr_libcall_value      PARAMS ((enum machine_mode mode));
117 extern const char * output_reload_inhi PARAMS ((rtx insn, rtx *operands,
118                                                 int *len));
119 extern const char * output_reload_insisf PARAMS ((rtx insn, rtx *operands,
120                                                 int *len));
121 extern int    default_rtx_costs      PARAMS ((rtx X, RTX_CODE code,
122                                              RTX_CODE outer_code));
123 extern void   asm_output_char        PARAMS ((FILE *file, rtx value));
124 extern void   asm_output_short       PARAMS ((FILE *file, rtx value));
125 extern void   asm_output_byte        PARAMS ((FILE *file, int value));
126 extern enum reg_class secondary_input_reload_class PARAMS ((enum reg_class,
127                                                            enum machine_mode,
128                                                            rtx));
129 extern void   notice_update_cc       PARAMS ((rtx body, rtx insn));
130 extern void   print_operand          PARAMS ((FILE *file, rtx x, int code));
131 extern void   print_operand_address  PARAMS ((FILE *file, rtx addr));
132 extern int    reg_unused_after       PARAMS ((rtx insn, rtx reg));
133 extern int    _reg_unused_after      PARAMS ((rtx insn, rtx reg));
134 extern int    avr_jump_mode          PARAMS ((rtx x, rtx insn));
135 extern int    byte_immediate_operand PARAMS ((register rtx op,
136                                              enum machine_mode mode));
137 extern int    test_hard_reg_class    PARAMS ((enum reg_class class, rtx x));
138 extern int    jump_over_one_insn_p   PARAMS ((rtx insn, rtx dest));
139
140 extern int    avr_hard_regno_mode_ok PARAMS ((int regno,
141                                              enum machine_mode mode));
142 extern int    call_insn_operand      PARAMS ((rtx op, enum machine_mode mode));
143 extern void   final_prescan_insn     PARAMS ((rtx insn, rtx *operand,
144                                               int num_operands));
145 extern int    avr_simplify_comparision_p PARAMS ((enum machine_mode mode,
146                                               RTX_CODE operator, rtx x));
147 extern RTX_CODE avr_normalize_condition  PARAMS ((RTX_CODE condition));
148 extern int    compare_eq_p           PARAMS ((rtx insn));
149 extern void   out_shift_with_cnt     PARAMS ((const char *template, rtx insn,
150                                               rtx operands[], int *len,
151                                               int t_len));
152 extern int    const_int_pow2_p       PARAMS ((rtx x));
153 extern int    avr_peep2_scratch_safe PARAMS ((rtx reg_rtx));
154 #endif /* RTX_CODE */
155
156 #ifdef HAVE_MACHINE_MODES
157 extern int    class_max_nregs        PARAMS ((enum reg_class class,
158                                              enum machine_mode mode));
159 #endif /* HAVE_MACHINE_MODES */
160
161 #ifdef REAL_VALUE_TYPE
162
163 extern void   asm_output_float       PARAMS ((FILE *file, REAL_VALUE_TYPE n));
164
165 #endif