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
|