OSDN Git Service

b6f4d74cb0021342c403c9232e54b1117bcfcf9f
[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   progmem_section             PARAMS ((void));
39 extern int    mask_one_bit_p              PARAMS ((HOST_WIDE_INT mask));
40 extern void   gas_output_limited_string PARAMS ((FILE *file, const char *str));
41 extern void   gas_output_ascii          PARAMS ((FILE *file, const char *str,
42                                                          size_t length));
43 #ifdef TREE_CODE
44 extern void   asm_output_external          PARAMS ((FILE *file, tree decl,
45                                                    char *name));
46 extern void   unique_section               PARAMS ((tree decl, int reloc));
47 extern void   encode_section_info          PARAMS ((tree decl));
48 extern int    avr_progmem_p                PARAMS ((tree decl));
49
50
51 #ifdef RTX_CODE /* inside TREE_CODE */
52 extern rtx    avr_function_value           PARAMS ((tree type, tree func));
53 extern void   init_cumulative_args         PARAMS ((CUMULATIVE_ARGS *cum,
54                                                    tree fntype, rtx libname,
55                                                    int indirect));
56 extern rtx    function_arg         PARAMS ((CUMULATIVE_ARGS *cum,
57                                            enum machine_mode mode,
58                                            tree type, int named));
59
60
61 #endif /* RTX_CODE inside TREE_CODE */
62
63 #ifdef HAVE_MACHINE_MODES /* inside TREE_CODE */
64 extern void   function_arg_advance PARAMS ((CUMULATIVE_ARGS *cum,
65                                            enum machine_mode mode, tree type,
66                                            int named));
67 #endif /* HAVE_MACHINE_MODES inside TREE_CODE*/
68 #endif /* TREE_CODE */
69
70 #ifdef RTX_CODE
71 extern void   asm_output_external_libcall PARAMS ((FILE *file, rtx symref));
72 extern int    legitimate_address_p    PARAMS ((enum machine_mode mode, rtx x,
73                                         int strict));
74 extern void   machine_dependent_reorg PARAMS ((rtx first_insn));
75 extern int    compare_diff_p  PARAMS ((rtx insn));
76 extern const char * output_movqi    PARAMS ((rtx insn, rtx operands[], int *l));
77 extern const char * output_movhi    PARAMS ((rtx insn, rtx operands[], int *l));
78 extern const char * out_movqi_r_mr  PARAMS ((rtx insn, rtx op[], int *l));
79 extern const char * out_movqi_mr_r  PARAMS ((rtx insn, rtx op[], int *l));
80 extern const char * out_movhi_r_mr  PARAMS ((rtx insn, rtx op[], int *l));
81 extern const char * out_movhi_mr_r  PARAMS ((rtx insn, rtx op[], int *l));
82 extern const char * out_movsi_r_mr  PARAMS ((rtx insn, rtx op[], int *l));
83 extern const char * out_movsi_mr_r  PARAMS ((rtx insn, rtx op[], int *l));
84 extern const char * output_movsisf  PARAMS ((rtx insn, rtx operands[], int *l));
85 extern const char * out_tstsi       PARAMS ((rtx insn, int *l));
86 extern const char * out_tsthi       PARAMS ((rtx insn, int *l));
87 extern const char * ret_cond_branch PARAMS ((rtx x, int len, int reverse));
88
89 extern const char * ashlqi3_out PARAMS ((rtx insn, rtx operands[], int *len));
90 extern const char * ashlhi3_out PARAMS ((rtx insn, rtx operands[], int *len));
91 extern const char * ashlsi3_out PARAMS ((rtx insn, rtx operands[], int *len));
92
93 extern const char * ashrqi3_out PARAMS ((rtx insn, rtx operands[], int *len));
94 extern const char * ashrhi3_out PARAMS ((rtx insn, rtx operands[], int *len));
95 extern const char * ashrsi3_out PARAMS ((rtx insn, rtx operands[], int *len));
96
97 extern const char * lshrqi3_out PARAMS ((rtx insn, rtx operands[], int *len));
98 extern const char * lshrhi3_out PARAMS ((rtx insn, rtx operands[], int *len));
99 extern const char * lshrsi3_out PARAMS ((rtx insn, rtx operands[], int *len));
100
101 extern void avr_output_bld PARAMS ((rtx operands[], int bit_nr));
102 extern void avr_output_addr_vec_elt PARAMS ((FILE *stream, int value));
103
104 extern enum reg_class preferred_reload_class PARAMS ((rtx x,
105                                                      enum reg_class class));
106 extern int    avr_address_cost       PARAMS ((rtx x));
107 extern int    extra_constraint       PARAMS ((rtx x, int c));
108 extern rtx    legitimize_address     PARAMS ((rtx x, rtx oldx,
109                                              enum machine_mode mode));
110 extern int    adjust_insn_length     PARAMS ((rtx insn, int len));
111 extern rtx    avr_libcall_value      PARAMS ((enum machine_mode mode));
112 extern const char * output_reload_inhi PARAMS ((rtx insn, rtx *operands,
113                                                 int *len));
114 extern const char * output_reload_insisf PARAMS ((rtx insn, rtx *operands,
115                                                 int *len));
116 extern int    default_rtx_costs      PARAMS ((rtx X, RTX_CODE code,
117                                              RTX_CODE outer_code));
118 extern void   asm_output_char        PARAMS ((FILE *file, rtx value));
119 extern void   asm_output_short       PARAMS ((FILE *file, rtx value));
120 extern void   asm_output_byte        PARAMS ((FILE *file, int value));
121 extern enum reg_class secondary_input_reload_class PARAMS ((enum reg_class,
122                                                            enum machine_mode,
123                                                            rtx));
124 extern void   notice_update_cc       PARAMS ((rtx body, rtx insn));
125 extern void   print_operand          PARAMS ((FILE *file, rtx x, int code));
126 extern void   print_operand_address  PARAMS ((FILE *file, rtx addr));
127 extern int    reg_unused_after       PARAMS ((rtx insn, rtx reg));
128 extern int    _reg_unused_after      PARAMS ((rtx insn, rtx reg));
129 extern int    avr_jump_mode          PARAMS ((rtx x, rtx insn));
130 extern int    byte_immediate_operand PARAMS ((register rtx op,
131                                              enum machine_mode mode));
132 extern int    test_hard_reg_class    PARAMS ((enum reg_class class, rtx x));
133 extern int    jump_over_one_insn_p   PARAMS ((rtx insn, rtx dest));
134
135 extern int    avr_hard_regno_mode_ok PARAMS ((int regno,
136                                              enum machine_mode mode));
137 extern int    call_insn_operand      PARAMS ((rtx op, enum machine_mode mode));
138 extern void   final_prescan_insn     PARAMS ((rtx insn, rtx *operand,
139                                               int num_operands));
140 extern int    avr_simplify_comparision_p PARAMS ((enum machine_mode mode,
141                                               RTX_CODE operator, rtx x));
142 extern RTX_CODE avr_normalize_condition  PARAMS ((RTX_CODE condition));
143 extern int    compare_eq_p           PARAMS ((rtx insn));
144 extern void   out_shift_with_cnt     PARAMS ((const char *template, rtx insn,
145                                               rtx operands[], int *len,
146                                               int t_len));
147 extern int    const_int_pow2_p       PARAMS ((rtx x));
148 extern int    avr_peep2_scratch_safe PARAMS ((rtx reg_rtx));
149 #endif /* RTX_CODE */
150
151 #ifdef HAVE_MACHINE_MODES
152 extern int    class_max_nregs        PARAMS ((enum reg_class class,
153                                              enum machine_mode mode));
154 #endif /* HAVE_MACHINE_MODES */
155
156 #ifdef REAL_VALUE_TYPE
157
158 extern void   asm_output_float       PARAMS ((FILE *file, REAL_VALUE_TYPE n));
159
160 #endif