1 /* Prototypes for exported functions defined in avr.c
3 Copyright (C) 2000, 2001 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 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 void unique_section
PARAMS ((tree decl
, int reloc
));
47 extern void encode_section_info
PARAMS ((tree decl
, int));
48 extern int avr_progmem_p
PARAMS ((tree decl
));
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
,
56 extern rtx function_arg
PARAMS ((CUMULATIVE_ARGS
*cum
,
57 enum machine_mode mode
,
58 tree type
, int named
));
61 #endif /* RTX_CODE inside TREE_CODE */
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
,
67 #endif /* HAVE_MACHINE_MODES inside TREE_CODE*/
68 #endif /* TREE_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
,
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
));
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
));
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
));
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
));
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
));
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
,
114 extern const char * output_reload_insisf
PARAMS ((rtx insn
, rtx
*operands
,
116 extern int default_rtx_costs
PARAMS ((rtx X
, RTX_CODE code
,
117 RTX_CODE outer_code
));
118 extern enum reg_class secondary_input_reload_class
PARAMS ((enum reg_class
,
121 extern void notice_update_cc
PARAMS ((rtx body
, rtx insn
));
122 extern void print_operand
PARAMS ((FILE *file
, rtx x
, int code
));
123 extern void print_operand_address
PARAMS ((FILE *file
, rtx addr
));
124 extern int reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
125 extern int _reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
126 extern int avr_jump_mode
PARAMS ((rtx x
, rtx insn
));
127 extern int byte_immediate_operand
PARAMS ((register rtx op
,
128 enum machine_mode mode
));
129 extern int test_hard_reg_class
PARAMS ((enum reg_class
class, rtx x
));
130 extern int jump_over_one_insn_p
PARAMS ((rtx insn
, rtx dest
));
132 extern int avr_hard_regno_mode_ok
PARAMS ((int regno
,
133 enum machine_mode mode
));
134 extern int call_insn_operand
PARAMS ((rtx op
, enum machine_mode mode
));
135 extern void final_prescan_insn
PARAMS ((rtx insn
, rtx
*operand
,
137 extern int avr_simplify_comparision_p
PARAMS ((enum machine_mode mode
,
138 RTX_CODE
operator, rtx x
));
139 extern RTX_CODE avr_normalize_condition
PARAMS ((RTX_CODE condition
));
140 extern int compare_eq_p
PARAMS ((rtx insn
));
141 extern void out_shift_with_cnt
PARAMS ((const char *template, rtx insn
,
142 rtx operands
[], int *len
,
144 extern int const_int_pow2_p
PARAMS ((rtx x
));
145 extern int avr_peep2_scratch_safe
PARAMS ((rtx reg_rtx
));
146 #endif /* RTX_CODE */
148 #ifdef HAVE_MACHINE_MODES
149 extern int class_max_nregs
PARAMS ((enum reg_class
class,
150 enum machine_mode mode
));
151 #endif /* HAVE_MACHINE_MODES */
153 #ifdef REAL_VALUE_TYPE
155 extern void asm_output_float
PARAMS ((FILE *file
, REAL_VALUE_TYPE n
));