1 /* Prototypes for exported functions defined in avr.c
3 Copyright (C) 2000 Free Software Foundation, Inc.
4 Contributed by Denis Chertykov (denisc@overta.ru)
6 This file is part of GNU CC.
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)
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.
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. */
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
,
46 extern void asm_output_external
PARAMS ((FILE *file
, tree decl
,
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
,
53 extern int valid_machine_type_attribute
PARAMS ((tree type
, tree attributes
,
56 extern int valid_machine_decl_attribute
PARAMS ((tree decl
, tree attributes
,
57 tree attr
, tree args
));
59 extern int avr_progmem_p
PARAMS ((tree decl
));
62 #ifdef RTX_CODE /* inside TREE_CODE */
63 extern rtx avr_function_value
PARAMS ((tree type
, tree func
));
64 extern void init_cumulative_args
PARAMS ((CUMULATIVE_ARGS
*cum
,
65 tree fntype
, rtx libname
,
67 extern rtx function_arg
PARAMS ((CUMULATIVE_ARGS
*cum
,
68 enum machine_mode mode
,
69 tree type
, int named
));
72 #endif /* RTX_CODE inside TREE_CODE */
74 #ifdef HAVE_MACHINE_MODES /* inside TREE_CODE */
75 extern void function_arg_advance
PARAMS ((CUMULATIVE_ARGS
*cum
,
76 enum machine_mode mode
, tree type
,
78 #endif /* HAVE_MACHINE_MODES inside TREE_CODE*/
79 #endif /* TREE_CODE */
82 extern void asm_output_external_libcall
PARAMS ((FILE *file
, rtx symref
));
83 extern int legitimate_address_p
PARAMS ((enum machine_mode mode
, rtx x
,
85 extern void machine_dependent_reorg
PARAMS ((rtx first_insn
));
86 extern int compare_diff_p
PARAMS ((rtx insn
));
87 extern const char * output_movqi
PARAMS ((rtx insn
, rtx operands
[], int *l
));
88 extern const char * output_movhi
PARAMS ((rtx insn
, rtx operands
[], int *l
));
89 extern const char * out_movqi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
90 extern const char * out_movqi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
91 extern const char * out_movhi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
92 extern const char * out_movhi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
93 extern const char * out_movsi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
94 extern const char * out_movsi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
95 extern const char * output_movsisf
PARAMS ((rtx insn
, rtx operands
[], int *l
));
96 extern const char * out_tstsi
PARAMS ((rtx insn
, int *l
));
97 extern const char * out_tsthi
PARAMS ((rtx insn
, int *l
));
98 extern const char * ret_cond_branch
PARAMS ((RTX_CODE cond
, int len
));
100 extern const char * ashlqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
101 extern const char * ashlhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
102 extern const char * ashlsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
104 extern const char * ashrqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
105 extern const char * ashrhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
106 extern const char * ashrsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
108 extern const char * lshrqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
109 extern const char * lshrhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
110 extern const char * lshrsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
112 extern void avr_output_bld
PARAMS ((rtx operands
[], int bit_nr
));
114 extern enum reg_class preferred_reload_class
PARAMS ((rtx x
,
115 enum reg_class
class));
116 extern int avr_address_cost
PARAMS ((rtx x
));
117 extern int extra_constraint
PARAMS ((rtx x
, int c
));
118 extern rtx legitimize_address
PARAMS ((rtx x
, rtx oldx
,
119 enum machine_mode mode
));
120 extern int adjust_insn_length
PARAMS ((rtx insn
, int len
));
121 extern rtx avr_libcall_value
PARAMS ((enum machine_mode mode
));
122 extern const char * output_reload_inhi
PARAMS ((rtx insn
, rtx
*operands
,
124 extern const char * output_reload_insisf
PARAMS ((rtx insn
, rtx
*operands
,
126 extern int default_rtx_costs
PARAMS ((rtx X
, RTX_CODE code
,
127 RTX_CODE outer_code
));
128 extern void asm_output_char
PARAMS ((FILE *file
, rtx value
));
129 extern void asm_output_short
PARAMS ((FILE *file
, rtx value
));
130 extern void asm_output_byte
PARAMS ((FILE *file
, int value
));
131 extern enum reg_class secondary_input_reload_class
PARAMS ((enum reg_class
,
134 extern void notice_update_cc
PARAMS ((rtx body
, rtx insn
));
135 extern void print_operand
PARAMS ((FILE *file
, rtx x
, int code
));
136 extern void print_operand_address
PARAMS ((FILE *file
, rtx addr
));
137 extern int reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
138 extern int _reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
139 extern int avr_jump_mode
PARAMS ((rtx x
, rtx insn
));
140 extern int byte_immediate_operand
PARAMS ((register rtx op
,
141 enum machine_mode mode
));
142 extern int test_hard_reg_class
PARAMS ((enum reg_class
class, rtx x
));
143 extern int jump_over_one_insn_p
PARAMS ((rtx insn
, rtx dest
));
145 extern int avr_hard_regno_mode_ok
PARAMS ((int regno
,
146 enum machine_mode mode
));
147 extern int call_insn_operand
PARAMS ((rtx op
, enum machine_mode mode
));
148 extern void final_prescan_insn
PARAMS ((rtx insn
, rtx
*operand
,
150 extern int avr_simplify_comparision_p
PARAMS ((enum machine_mode mode
,
151 RTX_CODE
operator, rtx x
));
152 extern RTX_CODE avr_normalize_condition
PARAMS ((RTX_CODE condition
));
153 extern int compare_eq_p
PARAMS ((rtx insn
));
154 extern void out_shift_with_cnt
PARAMS ((const char *template, rtx insn
,
155 rtx operands
[], int *len
,
157 extern int const_int_pow2_p
PARAMS ((rtx x
));
158 #endif /* RTX_CODE */
160 #ifdef HAVE_MACHINE_MODES
161 extern int class_max_nregs
PARAMS ((enum reg_class
class,
162 enum machine_mode mode
));
163 #endif /* HAVE_MACHINE_MODES */
165 #ifdef REAL_VALUE_TYPE
167 extern void asm_output_float
PARAMS ((FILE *file
, REAL_VALUE_TYPE n
));