1 /* Prototypes for exported functions defined in avr.c
3 Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
4 Contributed by Denis Chertykov (denisc@overta.ru)
6 This file is part of GCC.
8 GCC 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 GCC 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 GCC; 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 avr_init_once
PARAMS ((void));
26 extern void avr_override_options
PARAMS ((void));
27 extern void avr_optimization_options
PARAMS ((int level
, int size
));
28 extern char * avr_change_section
PARAMS ((char *sect_name
));
29 extern int avr_ret_register
PARAMS ((void));
30 extern enum reg_class class_likely_spilled_p
PARAMS ((int c
));
31 extern enum reg_class avr_regno_reg_class
PARAMS ((int r
));
32 extern enum reg_class avr_reg_class_from_letter
PARAMS ((int c
));
33 extern int frame_pointer_required_p
PARAMS ((void));
34 extern void asm_globalize_label
PARAMS ((FILE *file
, const char *name
));
35 extern void order_regs_for_local_alloc
PARAMS ((void));
36 extern int initial_elimination_offset
PARAMS ((int from
, int to
));
37 extern int avr_simple_epilogue
PARAMS ((void));
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
,
44 extern void asm_output_external
PARAMS ((FILE *file
, tree decl
,
46 extern int avr_progmem_p
PARAMS ((tree decl
));
49 #ifdef RTX_CODE /* inside TREE_CODE */
50 extern rtx avr_function_value
PARAMS ((tree type
, tree func
));
51 extern void init_cumulative_args
PARAMS ((CUMULATIVE_ARGS
*cum
,
52 tree fntype
, rtx libname
,
54 extern rtx function_arg
PARAMS ((CUMULATIVE_ARGS
*cum
,
55 enum machine_mode mode
,
56 tree type
, int named
));
59 #endif /* RTX_CODE inside TREE_CODE */
61 #ifdef HAVE_MACHINE_MODES /* inside TREE_CODE */
62 extern void function_arg_advance
PARAMS ((CUMULATIVE_ARGS
*cum
,
63 enum machine_mode mode
, tree type
,
65 #endif /* HAVE_MACHINE_MODES inside TREE_CODE*/
66 #endif /* TREE_CODE */
69 extern void asm_output_external_libcall
PARAMS ((FILE *file
, rtx symref
));
70 extern int legitimate_address_p
PARAMS ((enum machine_mode mode
, rtx x
,
72 extern int compare_diff_p
PARAMS ((rtx insn
));
73 extern const char * output_movqi
PARAMS ((rtx insn
, rtx operands
[], int *l
));
74 extern const char * output_movhi
PARAMS ((rtx insn
, rtx operands
[], int *l
));
75 extern const char * out_movqi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
76 extern const char * out_movqi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
77 extern const char * out_movhi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
78 extern const char * out_movhi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
79 extern const char * out_movsi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
80 extern const char * out_movsi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
81 extern const char * output_movsisf
PARAMS ((rtx insn
, rtx operands
[], int *l
));
82 extern const char * out_tstsi
PARAMS ((rtx insn
, int *l
));
83 extern const char * out_tsthi
PARAMS ((rtx insn
, int *l
));
84 extern const char * ret_cond_branch
PARAMS ((rtx x
, int len
, int reverse
));
86 extern const char * ashlqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
87 extern const char * ashlhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
88 extern const char * ashlsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
90 extern const char * ashrqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
91 extern const char * ashrhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
92 extern const char * ashrsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
94 extern const char * lshrqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
95 extern const char * lshrhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
96 extern const char * lshrsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
98 extern void avr_output_bld
PARAMS ((rtx operands
[], int bit_nr
));
99 extern void avr_output_addr_vec_elt
PARAMS ((FILE *stream
, int value
));
100 extern const char *avr_out_sbxx_branch
PARAMS ((rtx insn
, rtx operands
[]));
102 extern enum reg_class preferred_reload_class
PARAMS ((rtx x
,
103 enum reg_class
class));
104 extern int extra_constraint
PARAMS ((rtx x
, int c
));
105 extern rtx legitimize_address
PARAMS ((rtx x
, rtx oldx
,
106 enum machine_mode mode
));
107 extern int adjust_insn_length
PARAMS ((rtx insn
, int len
));
108 extern rtx avr_libcall_value
PARAMS ((enum machine_mode mode
));
109 extern const char * output_reload_inhi
PARAMS ((rtx insn
, rtx
*operands
,
111 extern const char * output_reload_insisf
PARAMS ((rtx insn
, rtx
*operands
,
113 extern enum reg_class secondary_input_reload_class
PARAMS ((enum reg_class
,
116 extern void notice_update_cc
PARAMS ((rtx body
, rtx insn
));
117 extern void print_operand
PARAMS ((FILE *file
, rtx x
, int code
));
118 extern void print_operand_address
PARAMS ((FILE *file
, rtx addr
));
119 extern int reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
120 extern int _reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
121 extern int avr_jump_mode
PARAMS ((rtx x
, rtx insn
));
122 extern int byte_immediate_operand
PARAMS ((register rtx op
,
123 enum machine_mode mode
));
124 extern int test_hard_reg_class
PARAMS ((enum reg_class
class, rtx x
));
125 extern int jump_over_one_insn_p
PARAMS ((rtx insn
, rtx dest
));
127 extern int avr_hard_regno_mode_ok
PARAMS ((int regno
,
128 enum machine_mode mode
));
129 extern int call_insn_operand
PARAMS ((rtx op
, enum machine_mode mode
));
130 extern void final_prescan_insn
PARAMS ((rtx insn
, rtx
*operand
,
132 extern int avr_simplify_comparison_p
PARAMS ((enum machine_mode mode
,
133 RTX_CODE
operator, rtx x
));
134 extern RTX_CODE avr_normalize_condition
PARAMS ((RTX_CODE condition
));
135 extern int compare_eq_p
PARAMS ((rtx insn
));
136 extern void out_shift_with_cnt
PARAMS ((const char *template, rtx insn
,
137 rtx operands
[], int *len
,
139 extern int avr_io_address_p
PARAMS ((rtx x
, int size
));
140 extern int const_int_pow2_p
PARAMS ((rtx x
));
141 extern int avr_peep2_scratch_safe
PARAMS ((rtx reg_rtx
));
142 #endif /* RTX_CODE */
144 #ifdef HAVE_MACHINE_MODES
145 extern int class_max_nregs
PARAMS ((enum reg_class
class,
146 enum machine_mode mode
));
147 #endif /* HAVE_MACHINE_MODES */
149 #ifdef REAL_VALUE_TYPE
151 extern void asm_output_float
PARAMS ((FILE *file
, REAL_VALUE_TYPE n
));