]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/mips/mips-protos.h
abi64.h (mips_function_value): Add prototype arguments.
[thirdparty/gcc.git] / gcc / config / mips / mips-protos.h
CommitLineData
bd9f1972
KG
1/* Prototypes of target machine for GNU compiler. MIPS version.
2 Copyright (C) 1989, 90-98, 1999 Free Software Foundation, Inc.
3 Contributed by A. Lichnewsky (lich@inria.inria.fr).
4 Changed by Michael Meissner (meissner@osf.org).
5 64 bit r4000 support by Ian Lance Taylor (ian@cygnus.com) and
6 Brendan Eich (brendan@microunity.com).
7
8This file is part of GNU CC.
9
10GNU CC is free software; you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation; either version 2, or (at your option)
13any later version.
14
15GNU CC is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with GNU CC; see the file COPYING. If not, write to
22the Free Software Foundation, 59 Temple Place - Suite 330,
23Boston, MA 02111-1307, USA. */
24
25#ifndef __MIPS_PROTOS_H__
26#define __MIPS_PROTOS_H__
27
28extern HOST_WIDE_INT compute_frame_size PARAMS ((HOST_WIDE_INT));
29extern void function_epilogue PARAMS ((FILE *, HOST_WIDE_INT));
30extern void function_prologue PARAMS ((FILE *, HOST_WIDE_INT));
31extern void mips_asm_file_end PARAMS ((FILE *));
32extern void mips_asm_file_start PARAMS ((FILE *));
33extern int mips_can_use_return_insn PARAMS ((void));
34extern void mips_declare_object PARAMS ((FILE *, const char *, const char *, const char *, int));
35extern void mips_expand_epilogue PARAMS ((void));
36extern void mips_expand_prologue PARAMS ((void));
37#ifdef REAL_VALUE_TYPE
38extern void mips_output_double PARAMS ((FILE *, REAL_VALUE_TYPE));
39extern void mips_output_float PARAMS ((FILE *, REAL_VALUE_TYPE));
40#endif /* REAL_VALUE_TYPE */
41extern void mips_output_filename PARAMS ((FILE *, const char *));
42extern void mips_output_lineno PARAMS ((FILE *, int));
43extern void mips_order_regs_for_local_alloc PARAMS ((void));
44extern struct rtx_def * mips16_gp_pseudo_reg PARAMS ((void));
45#ifdef ASM_OUTPUT_UNDEF_FUNCTION
46extern int mips_output_external_libcall PARAMS ((FILE *, const char *));
47#endif /* ASM_OUTPUT_UNDEF_FUNCTION */
48
49
50#ifdef TREE_CODE
51extern struct rtx_def * function_arg PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int));
52extern void function_arg_advance PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int));
53extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int));
54extern int function_arg_pass_by_reference PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int));
55extern int mips16_constant_after_function_p PARAMS ((tree));
56extern int mips_output_external PARAMS ((FILE *, tree, const char *));
57extern tree mips_build_va_list PARAMS ((void));
58#ifdef RTX_CODE
59extern void mips_va_start PARAMS ((int, tree, rtx));
60#endif /* RTX_CODE */
61extern struct rtx_def *mips_va_arg PARAMS ((tree, tree));
62extern void mips_select_section PARAMS ((tree, int));
63#endif /* TREE_CODE */
64
65#ifdef RTX_CODE
66extern int arith32_operand PARAMS ((rtx, enum machine_mode));
67extern int arith_operand PARAMS ((rtx, enum machine_mode));
68extern int cmp_op PARAMS ((rtx, enum machine_mode));
69extern int const_float_1_operand PARAMS ((rtx, enum machine_mode));
70extern void expand_block_move PARAMS ((rtx []));
71extern int equality_op PARAMS ((rtx, enum machine_mode));
72extern void final_prescan_insn PARAMS ((rtx, rtx [], int));
73extern struct rtx_def * gen_int_relational PARAMS ((enum rtx_code, rtx, rtx, rtx,int *));
74#ifdef TREE_CODE
75extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *c, tree, rtx));
76#endif /* TREE_CODE */
77extern void gen_conditional_branch PARAMS ((rtx[], enum rtx_code));
78extern void gen_conditional_move PARAMS ((rtx *));
79extern int large_int PARAMS ((rtx, enum machine_mode));
80extern void machine_dependent_reorg PARAMS ((rtx));
81extern int mips_address_cost PARAMS ((rtx));
82extern int mips_const_double_ok PARAMS ((rtx, enum machine_mode));
83extern void mips_count_memory_refs PARAMS ((rtx, int));
84extern HOST_WIDE_INT mips_debugger_offset PARAMS ((rtx, HOST_WIDE_INT));
85extern int mips_check_split PARAMS ((rtx, enum machine_mode));
86extern const char *mips_fill_delay_slot PARAMS ((const char *, enum delay_type, rtx[], rtx));
87extern const char *mips_move_1word PARAMS ((rtx[], rtx, int));
88extern const char *mips_move_2words PARAMS ((rtx[], rtx));
89extern const char *output_block_move PARAMS ((rtx, rtx[], int, enum block_move_type));
90extern void override_options PARAMS ((void));
91extern int pc_or_label_operand PARAMS ((rtx, enum machine_mode));
92extern void print_operand_address PARAMS ((FILE *, rtx));
93extern void print_operand PARAMS ((FILE *, rtx, int));
94extern int reg_or_0_operand PARAMS ((rtx, enum machine_mode));
95extern int true_reg_or_0_operand PARAMS ((rtx, enum machine_mode));
96extern int simple_memory_operand PARAMS ((rtx, enum machine_mode));
97extern int double_memory_operand PARAMS ((rtx, enum machine_mode));
98extern int small_int PARAMS ((rtx, enum machine_mode));
99extern int uns_arith_operand PARAMS ((rtx, enum machine_mode));
100extern struct rtx_def * embedded_pic_offset PARAMS ((rtx));
101extern struct rtx_def * mips16_gp_offset PARAMS ((rtx));
102extern int mips16_gp_offset_p PARAMS ((rtx));
103extern int mips16_constant PARAMS ((rtx, enum machine_mode, int, int));
104extern int build_mips16_call_stub PARAMS ((rtx, rtx, rtx, int));
105extern char *mips_output_conditional_branch PARAMS ((rtx, rtx *, int, int, int, int));
106extern int mips_adjust_insn_length PARAMS ((rtx, int));
107extern enum reg_class mips_secondary_reload_class PARAMS ((enum reg_class, enum machine_mode, rtx, int));
108extern void mips_select_rtx_section PARAMS ((enum machine_mode, rtx));
109
110/* Recognition functions that return if a condition is true. */
111extern int address_operand PARAMS ((rtx, enum machine_mode));
112extern int call_insn_operand PARAMS ((rtx, enum machine_mode));
113extern int const_double_operand PARAMS ((rtx, enum machine_mode));
114extern int const_int_operand PARAMS ((rtx, enum machine_mode));
115extern int consttable_operand PARAMS ((rtx, enum machine_mode));
116extern int general_operand PARAMS ((rtx, enum machine_mode));
117extern int immediate_operand PARAMS ((rtx, enum machine_mode));
118extern int memory_operand PARAMS ((rtx, enum machine_mode));
119extern int nonimmediate_operand PARAMS ((rtx, enum machine_mode));
120extern int nonmemory_operand PARAMS ((rtx, enum machine_mode));
121extern int pic_address_needs_scratch PARAMS ((rtx));
122extern int register_operand PARAMS ((rtx, enum machine_mode));
123extern int scratch_operand PARAMS ((rtx, enum machine_mode));
124extern int move_operand PARAMS ((rtx, enum machine_mode));
125extern int movdi_operand PARAMS ((rtx, enum machine_mode));
126extern int se_register_operand PARAMS ((rtx, enum machine_mode));
127extern int se_reg_or_0_operand PARAMS ((rtx, enum machine_mode));
128extern int se_uns_arith_operand PARAMS ((rtx, enum machine_mode));
129extern int se_arith_operand PARAMS ((rtx, enum machine_mode));
130extern int se_nonmemory_operand PARAMS ((rtx, enum machine_mode));
131extern int se_nonimmediate_operand PARAMS ((rtx, enum machine_mode));
132extern int extend_operator PARAMS ((rtx, enum machine_mode));
133extern int highpart_shift_operator PARAMS ((rtx, enum machine_mode));
134extern int m16_uimm3_b PARAMS ((rtx, enum machine_mode));
135extern int m16_simm4_1 PARAMS ((rtx, enum machine_mode));
136extern int m16_nsimm4_1 PARAMS ((rtx, enum machine_mode));
137extern int m16_simm5_1 PARAMS ((rtx, enum machine_mode));
138extern int m16_nsimm5_1 PARAMS ((rtx, enum machine_mode));
139extern int m16_uimm5_4 PARAMS ((rtx, enum machine_mode));
140extern int m16_nuimm5_4 PARAMS ((rtx, enum machine_mode));
141extern int m16_simm8_1 PARAMS ((rtx, enum machine_mode));
142extern int m16_nsimm8_1 PARAMS ((rtx, enum machine_mode));
143extern int m16_uimm8_1 PARAMS ((rtx, enum machine_mode));
144extern int m16_nuimm8_1 PARAMS ((rtx, enum machine_mode));
145extern int m16_uimm8_m1_1 PARAMS ((rtx, enum machine_mode));
146extern int m16_uimm8_4 PARAMS ((rtx, enum machine_mode));
147extern int m16_nuimm8_4 PARAMS ((rtx, enum machine_mode));
148extern int m16_simm8_8 PARAMS ((rtx, enum machine_mode));
149extern int m16_nsimm8_8 PARAMS ((rtx, enum machine_mode));
150extern int m16_usym8_4 PARAMS ((rtx, enum machine_mode));
151extern int m16_usym5_4 PARAMS ((rtx, enum machine_mode));
152#endif /* RTX_CODE */
153
154#endif /* __MIPS_PROTOS_H__ */