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 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 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 void machine_dependent_reorg
PARAMS ((rtx first_insn
));
73 extern int compare_diff_p
PARAMS ((rtx insn
));
74 extern const char * output_movqi
PARAMS ((rtx insn
, rtx operands
[], int *l
));
75 extern const char * output_movhi
PARAMS ((rtx insn
, rtx operands
[], int *l
));
76 extern const char * out_movqi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
77 extern const char * out_movqi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
78 extern const char * out_movhi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
79 extern const char * out_movhi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
80 extern const char * out_movsi_r_mr
PARAMS ((rtx insn
, rtx op
[], int *l
));
81 extern const char * out_movsi_mr_r
PARAMS ((rtx insn
, rtx op
[], int *l
));
82 extern const char * output_movsisf
PARAMS ((rtx insn
, rtx operands
[], int *l
));
83 extern const char * out_tstsi
PARAMS ((rtx insn
, int *l
));
84 extern const char * out_tsthi
PARAMS ((rtx insn
, int *l
));
85 extern const char * ret_cond_branch
PARAMS ((rtx x
, int len
, int reverse
));
87 extern const char * ashlqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
88 extern const char * ashlhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
89 extern const char * ashlsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
91 extern const char * ashrqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
92 extern const char * ashrhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
93 extern const char * ashrsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
95 extern const char * lshrqi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
96 extern const char * lshrhi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
97 extern const char * lshrsi3_out
PARAMS ((rtx insn
, rtx operands
[], int *len
));
99 extern void avr_output_bld
PARAMS ((rtx operands
[], int bit_nr
));
100 extern void avr_output_addr_vec_elt
PARAMS ((FILE *stream
, int value
));
101 extern const char *avr_out_sbxx_branch
PARAMS ((rtx insn
, rtx operands
[]));
103 extern enum reg_class preferred_reload_class
PARAMS ((rtx x
,
104 enum reg_class
class));
105 extern int avr_address_cost
PARAMS ((rtx x
));
106 extern int extra_constraint
PARAMS ((rtx x
, int c
));
107 extern rtx legitimize_address
PARAMS ((rtx x
, rtx oldx
,
108 enum machine_mode mode
));
109 extern int adjust_insn_length
PARAMS ((rtx insn
, int len
));
110 extern rtx avr_libcall_value
PARAMS ((enum machine_mode mode
));
111 extern const char * output_reload_inhi
PARAMS ((rtx insn
, rtx
*operands
,
113 extern const char * output_reload_insisf
PARAMS ((rtx insn
, rtx
*operands
,
115 extern int default_rtx_costs
PARAMS ((rtx X
, RTX_CODE code
,
116 RTX_CODE outer_code
));
117 extern enum reg_class secondary_input_reload_class
PARAMS ((enum reg_class
,
120 extern void notice_update_cc
PARAMS ((rtx body
, rtx insn
));
121 extern void print_operand
PARAMS ((FILE *file
, rtx x
, int code
));
122 extern void print_operand_address
PARAMS ((FILE *file
, rtx addr
));
123 extern int reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
124 extern int _reg_unused_after
PARAMS ((rtx insn
, rtx reg
));
125 extern int avr_jump_mode
PARAMS ((rtx x
, rtx insn
));
126 extern int byte_immediate_operand
PARAMS ((register rtx op
,
127 enum machine_mode mode
));
128 extern int test_hard_reg_class
PARAMS ((enum reg_class
class, rtx x
));
129 extern int jump_over_one_insn_p
PARAMS ((rtx insn
, rtx dest
));
131 extern int avr_hard_regno_mode_ok
PARAMS ((int regno
,
132 enum machine_mode mode
));
133 extern int call_insn_operand
PARAMS ((rtx op
, enum machine_mode mode
));
134 extern void final_prescan_insn
PARAMS ((rtx insn
, rtx
*operand
,
136 extern int avr_simplify_comparision_p
PARAMS ((enum machine_mode mode
,
137 RTX_CODE
operator, rtx x
));
138 extern RTX_CODE avr_normalize_condition
PARAMS ((RTX_CODE condition
));
139 extern int compare_eq_p
PARAMS ((rtx insn
));
140 extern void out_shift_with_cnt
PARAMS ((const char *template, rtx insn
,
141 rtx operands
[], int *len
,
143 extern int avr_io_address_p
PARAMS ((rtx x
, int size
));
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
));