aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/arm/arm-protos.h
blob: 3da3cd8e07e270573f9093698f6e030426317a0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/* Prototypes for exported functions defined in arm.c and pe.c
   Copyright (C) 1999 Free Software Foundation, Inc.
   Contributed by Richard Earnshaw (rearnsha@arm.com)
   Minor hacks by Nick Clifton (nickc@cygnus.com)

This file is part of GNU CC.

GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

extern void   arm_expand_prologue		PROTO ((void));
extern void   arm_finalize_pic 			PROTO ((void));
extern char * arm_output_epilogue		PROTO ((void));
extern void   arm_override_options 		PROTO ((void));
extern void   arm_poke_function_name 		PROTO ((FILE *, char *));
extern int    arm_process_pragma		PROTO ((int (*)(void), void (*) (int), char *));
extern int    arm_regno_class 			PROTO ((int));
extern int    arm_volatile_func			PROTO ((void));
extern int    const_ok_for_arm			PROTO ((HOST_WIDE_INT));
extern void   output_arm_prologue		PROTO ((FILE *, int));
extern void   output_ascii_pseudo_op		PROTO ((FILE *, unsigned char *, int));
extern void   output_func_epilogue		PROTO ((int));
extern void   output_func_prologue		PROTO ((FILE *, int));
extern int    use_return_insn			PROTO ((int));
#if defined AOF_ASSEMBLER 
extern void   aof_add_import			PROTO ((char *));
extern char * aof_data_section			PROTO ((void));
extern void   aof_delete_import			PROTO ((char *));
extern void   aof_dump_imports			PROTO ((FILE *));
extern void   aof_dump_pic_table		PROTO ((FILE *));
extern char * aof_text_section			PROTO ((void));
#endif /* AOF_ASSEMBLER */
/* Defined in pe.c */
extern int    arm_dllexport_name_p 		PROTO ((char *));
extern int    arm_dllimport_name_p 		PROTO ((char *));

#define Mmode enum machine_mode

#ifdef TREE_CODE
extern int    arm_comp_type_attributes		PROTO ((tree, tree));
extern int    arm_return_in_memory		PROTO ((tree));
extern int    arm_valid_machine_decl_attribute	PROTO ((tree, tree, tree));
extern int    arm_valid_type_attribute_p 	PROTO ((tree, tree, tree, tree));
/* Defined in pe.c */
extern int    arm_dllexport_p 			PROTO ((tree));
extern int    arm_dllimport_p 			PROTO ((tree));
extern void   arm_mark_dllexport 		PROTO ((tree));
extern void   arm_mark_dllimport 		PROTO ((tree));
extern void   arm_pe_encode_section_info 	PROTO ((tree));
extern tree   arm_pe_merge_machine_decl_attributes PROTO ((tree, tree));
extern void   arm_pe_unique_section 		PROTO ((tree, int));
extern int    arm_pe_valid_machine_decl_attribute PROTO ((tree, tree, tree, tree));
#endif

#ifdef RTX_CODE
extern int    adjacent_mem_locations		PROTO ((rtx, rtx));
extern char * arithmetic_instr			PROTO ((rtx, int));
extern int    arm_adjust_cost			PROTO ((rtx, rtx, rtx, int));
extern RTX_CODE arm_canonicalize_comparison 	PROTO ((RTX_CODE, rtx *));
extern int    arm_debugger_arg_offset		PROTO ((int, rtx));
extern void   arm_final_prescan_insn		PROTO ((rtx));
extern rtx    arm_gen_load_multiple		PROTO ((int, int, rtx, int, int, int, int, int));
extern int    arm_gen_movstrqi			PROTO ((rtx *));
extern rtx    arm_gen_store_multiple		PROTO ((int, int, rtx, int, int, int, int, int));
extern void   arm_print_operand			PROTO ((FILE *, rtx, int));
extern void   arm_reload_in_hi			PROTO ((rtx *));
extern void   arm_reload_out_hi			PROTO ((rtx *));
extern void   arm_reorg				PROTO ((rtx));
extern int    arm_rtx_costs			PROTO ((rtx, RTX_CODE));
extern Mmode  arm_select_cc_mode 		PROTO ((RTX_CODE, rtx, rtx));
extern int    const_double_rtx_ok_for_fpu	PROTO ((rtx));
extern int    const_ok_for_arm			PROTO ((HOST_WIDE_INT));
extern char * emit_ldm_seq			PROTO ((rtx *, int));
extern char * emit_stm_seq			PROTO ((rtx *, int));
extern char * fp_immediate_constant		PROTO ((rtx));
extern rtx    gen_compare_reg			PROTO ((RTX_CODE, rtx, rtx));
extern rtx    gen_rotated_half_load		PROTO ((rtx));
extern int    is_pic				PROTO ((rtx));
extern int    label_mentioned_p 		PROTO ((rtx));
extern int    legitimate_pic_operand_p		PROTO ((rtx));
extern int    load_multiple_sequence		PROTO ((rtx *, int, int *, int *, HOST_WIDE_INT *));
extern RTX_CODE minmax_code			PROTO ((rtx));
extern int    neg_const_double_rtx_ok_for_fpu	PROTO ((rtx));
extern char * output_add_immediate		PROTO ((rtx *));
extern char * output_call			PROTO ((rtx *));
extern char * output_call_mem			PROTO ((rtx *));
extern char * output_mov_double_arm_from_fpu    PROTO ((rtx *));
extern char * output_mov_double_fpu_from_arm    PROTO ((rtx *));
extern char * output_mov_immediate		PROTO ((rtx *));
extern char * output_mov_long_double_arm_from_arm PROTO ((rtx *));
extern char * output_mov_long_double_arm_from_fpu PROTO ((rtx *));
extern char * output_mov_long_double_fpu_from_arm PROTO ((rtx *));
extern char * output_move_double		PROTO ((rtx *));
extern char * output_return_instruction		PROTO ((rtx, int, int));
extern int    store_multiple_sequence		PROTO ((rtx *, int, int *, int *, HOST_WIDE_INT *));
extern int    symbol_mentioned_p		PROTO ((rtx));
#if defined AOF_ASSEMBLER 
extern rtx    aof_pic_entry			PROTO ((rtx));
#endif /* AOF_ASSEMBLER */

#ifdef HAVE_MACHINE_MODES
extern int    alignable_memory_operand		PROTO ((rtx, Mmode));
extern int    arm_add_operand			PROTO ((rtx, Mmode));
extern int    arm_go_if_legitimate_address 	PROTO ((Mmode, rtx));
extern int    arm_not_operand			PROTO ((rtx, Mmode));
extern int    arm_reload_memory_operand		PROTO ((rtx, Mmode));
extern int    arm_rhs_operand			PROTO ((rtx, Mmode));
extern int    arm_rhsm_operand			PROTO ((rtx, Mmode));
extern Mmode  arm_select_cc_mode 		PROTO ((RTX_CODE, rtx, rtx));
extern int    arm_split_constant		PROTO ((RTX_CODE, Mmode, HOST_WIDE_INT, rtx, rtx, int));
extern int    bad_signed_byte_operand		PROTO ((rtx, Mmode));
extern int    cc_register			PROTO ((rtx, Mmode));
extern int    const_shift_operand		PROTO ((rtx, Mmode));
extern int    di_operand			PROTO ((rtx, Mmode));
extern int    dominant_cc_register		PROTO ((rtx, Mmode));
extern int    equality_operator			PROTO ((rtx, Mmode));
extern int    f_register_operand		PROTO ((rtx, Mmode));
extern int    fpu_add_operand			PROTO ((rtx, Mmode));
extern int    fpu_rhs_operand			PROTO ((rtx, Mmode));
extern int    index_operand			PROTO ((rtx, Mmode));
extern rtx    legitimize_pic_address		PROTO ((rtx, Mmode, rtx));
extern int    load_multiple_operation		PROTO ((rtx, Mmode));
extern int    logical_binary_operator		PROTO ((rtx, Mmode));
extern int    minmax_operator			PROTO ((rtx, Mmode));
extern int    multi_register_push		PROTO ((rtx, Mmode));
extern int    nonimmediate_di_operand		PROTO ((rtx, Mmode));
extern int    nonimmediate_soft_df_operand 	PROTO ((rtx, Mmode));
extern int    offsettable_memory_operand 	PROTO ((rtx, Mmode));
extern int    power_of_two_operand		PROTO ((rtx, Mmode));
extern int    reg_or_int_operand		PROTO ((rtx, Mmode));
extern int    s_register_operand		PROTO ((rtx, Mmode));
extern int    shift_operator			PROTO ((rtx, Mmode));
extern int    shiftable_operator		PROTO ((rtx, Mmode));
extern int    soft_df_operand			PROTO ((rtx, Mmode));
extern int    store_multiple_operation		PROTO ((rtx, Mmode));
#if defined TREE_CODE
extern rtx    arm_function_arg			PROTO ((CUMULATIVE_ARGS *, Mmode, tree, int));
extern void   arm_init_cumulative_args		PROTO ((CUMULATIVE_ARGS *, tree, rtx, int));
#endif /* TREE_CODE */
#endif /* HAVE_MACHINE_MODES */
#endif /* RTX_CODE */

#undef Mmode