1 /* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
2 Contributed by Red Hat, Inc and Ubicom, Inc.
4 This file is part of GNU CC.
6 GNU CC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
11 GNU CC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU CC; see the file COPYING. If not, write to
18 the Free Software Foundation, 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
21 extern void asm_file_start
PARAMS ((FILE *));
22 extern void asm_file_end
PARAMS ((FILE *));
24 extern void function_prologue
PARAMS ((FILE *, HOST_WIDE_INT
));
25 extern void function_epilogue
PARAMS ((FILE *, HOST_WIDE_INT
));
26 extern int find_one_set_bit_p
PARAMS ((HOST_WIDE_INT
));
27 extern int find_one_clear_bit_p
PARAMS ((HOST_WIDE_INT
));
30 extern void unique_section
PARAMS ((tree
, int));
31 extern void asm_output_section_name
PARAMS ((FILE *, tree
, const char *,
33 extern int valid_machine_type_attribute
PARAMS ((tree
, tree
, tree
, tree
));
34 extern int valid_machine_decl_attribute
PARAMS ((tree
, tree
, tree
, tree
));
35 extern int ip2k_return_pops_args
PARAMS ((tree
, tree
, int));
36 #endif /* TREE_CODE */
39 extern int legitimate_address_p
PARAMS ((enum machine_mode
, rtx
, int));
40 extern int ip2k_extra_constraint
PARAMS ((rtx
, int));
41 extern rtx legitimize_address
PARAMS ((rtx
, rtx
, enum machine_mode
, rtx
));
42 extern int adjust_insn_length
PARAMS ((rtx insn
, int len
));
43 extern void asm_output_char
PARAMS ((FILE *, rtx
));
44 extern void asm_output_short
PARAMS ((FILE *, rtx
));
45 extern void asm_output_byte
PARAMS ((FILE *, int));
46 extern void print_operand
PARAMS ((FILE *, rtx
, int));
47 extern void print_operand_address
PARAMS ((FILE *, rtx
));
48 extern int ip2k_jump_mode
PARAMS ((rtx
, rtx
));
49 extern void ip2k_split_words
PARAMS ((enum machine_mode
, enum machine_mode
,
51 extern rtx ip2k_get_low_half
PARAMS ((rtx
, enum machine_mode
));
52 extern rtx ip2k_get_high_half
PARAMS ((rtx
, enum machine_mode
));
53 extern int ip2k_nonptr_operand
PARAMS ((rtx
, enum machine_mode
));
54 extern int ip2k_ptr_operand
PARAMS ((rtx
, enum machine_mode
));
55 extern int ip2k_ip_operand
PARAMS ((rtx
, enum machine_mode
));
56 extern int ip2k_short_operand
PARAMS ((rtx
, enum machine_mode
));
57 extern int ip2k_gen_operand
PARAMS ((rtx
, enum machine_mode
));
58 extern int ip2k_nonsp_reg_operand
PARAMS ((rtx
, enum machine_mode
));
59 extern int ip2k_symbol_ref_operand
PARAMS ((rtx
, enum machine_mode
));
60 extern const char *ip2k_set_compare
PARAMS ((rtx
, rtx
));
61 extern const char *ip2k_gen_sCOND
PARAMS ((rtx
, enum rtx_code
, rtx
));
62 extern const char *ip2k_gen_signed_comp_branch
PARAMS ((rtx
,
65 extern const char *ip2k_gen_unsigned_comp_branch
PARAMS ((rtx
,
68 extern int is_regfile_address
PARAMS ((rtx
));
69 extern int ip2k_mode_dependent_address
PARAMS ((rtx
));
70 extern int ip2k_address_uses_reg_p
PARAMS ((rtx
, unsigned int));
71 extern int ip2k_xexp_not_uses_reg_p
PARAMS ((rtx
, unsigned int, int));
72 extern int ip2k_composite_xexp_not_uses_reg_p
PARAMS ((rtx
, unsigned int, int));
73 extern int ip2k_composite_xexp_not_uses_cc0_p
PARAMS ((rtx
));
74 extern int ip2k_signed_comparison_operator
PARAMS ((rtx
,
76 extern int ip2k_unsigned_comparison_operator
PARAMS ((rtx
,
78 extern int ip2k_unary_operator
PARAMS ((rtx
, enum machine_mode
));
79 extern int ip2k_binary_operator
PARAMS ((rtx
, enum machine_mode
));
81 extern rtx ip2k_compare_operands
[3];
84 #ifdef HAVE_MACHINE_MODES
85 extern int class_max_nregs
PARAMS ((enum reg_class
, enum machine_mode
));
86 extern enum reg_class class_likely_spilled_p
PARAMS ((int c
));
87 #endif /* HAVE_MACHINE_MODES */
89 #ifdef REAL_VALUE_TYPE
90 extern void asm_output_float
PARAMS ((FILE *, REAL_VALUE_TYPE
));
93 extern int ip2k_init_elim_offset
PARAMS ((int, int));
94 extern void ip2k_init_local_alloc
PARAMS ((int *));