aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/darwin-protos.h
blob: cfe0a326eb7c5e1d61a4aa27ca9606fb18b44f6e (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
156
157
158
159
160
161
/* Prototypes.
   Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.

This file is part of GCC.

GCC 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.

GCC 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 GCC; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

extern int name_needs_quotes (const char *);

extern void machopic_validate_stub_or_non_lazy_ptr (const char *, int);

extern const char *machopic_function_base_name (void);
extern void machopic_output_function_base_name (FILE *);
extern const char *machopic_stub_name (const char*);
/* APPLE LOCAL coalescing  */
extern int machopic_var_referred_to_p (const char*);

extern void machopic_picsymbol_stub_section (void);
extern void machopic_picsymbol_stub1_section (void);
extern void machopic_symbol_stub_section (void);
extern void machopic_symbol_stub1_section (void);
extern void machopic_lazy_symbol_ptr_section (void);
extern void machopic_nl_symbol_ptr_section (void);

extern void constructor_section (void);
extern void destructor_section (void);
extern void mod_init_section (void);
extern void mod_term_section (void);

#ifdef RTX_CODE

extern int machopic_operand_p (rtx);
extern enum machopic_addr_class machopic_classify_name (const char*);

extern rtx machopic_indirect_data_reference (rtx, rtx);
extern rtx machopic_indirect_call_target (rtx);
extern rtx machopic_legitimize_pic_address (rtx, enum machine_mode, rtx);

extern void machopic_asm_out_constructor (rtx, int);
extern void machopic_asm_out_destructor (rtx, int);
#endif /* RTX_CODE */

#ifdef TREE_CODE

extern enum machopic_addr_class machopic_classify_ident (tree);
extern void machopic_define_ident (tree);
extern void machopic_define_name (const char*);
extern int machopic_name_defined_p (const char*);
extern int machopic_ident_defined_p (tree);
extern void darwin_encode_section_info (tree, rtx, int);
extern const char *darwin_strip_name_encoding (const char *);

#endif /* TREE_CODE */

extern void machopic_finish (FILE *);

extern void darwin_exception_section (void);
extern void darwin_eh_frame_section (void);
extern void machopic_select_section (tree, int, unsigned HOST_WIDE_INT);
extern void machopic_select_rtx_section (enum machine_mode, rtx,
					 unsigned HOST_WIDE_INT);

extern void darwin_pragma_ignore (struct cpp_reader *);
extern void darwin_pragma_options (struct cpp_reader *);
extern void darwin_pragma_unused (struct cpp_reader *);

/* APPLE LOCAL begin Macintosh alignment 2002-1-22 ff */
extern void darwin_pragma_pack (struct cpp_reader *);
/* APPLE LOCAL end Macintosh alignment 2002-1-22 ff */
/* APPLE LOCAL begin CALL_ON_LOAD/CALL_ON_UNLOAD pragmas  20020202 turly  */
extern void darwin_pragma_call_on_load (struct cpp_reader *);
extern void darwin_pragma_call_on_unload (struct cpp_reader *);
/* APPLE LOCAL end CALL_ON_LOAD/CALL_ON_UNLOAD pragmas  20020202 turly  */
/* APPLE LOCAL begin CALL_ON_MODULE_BIND deprecated 2002-4-10 ff */
extern void darwin_pragma_call_on_module_bind (struct cpp_reader *);
/* APPLE LOCAL end CALL_ON_MODULE_BIND deprecated 2002-4-10 ff */
/* APPLE LOCAL begin temporary pragmas 2001-07-05 sts */
extern void darwin_pragma_cc_no_mach_text_sections (struct cpp_reader *);
extern void darwin_pragma_cc_opt_off (struct cpp_reader *);
extern void darwin_pragma_cc_opt_on (struct cpp_reader *);
extern void darwin_pragma_cc_opt_restore (struct cpp_reader *);
extern void darwin_pragma_cc_writable_strings (struct cpp_reader *);
extern void darwin_pragma_cc_non_writable_strings (struct cpp_reader *);
/* APPLE LOCAL end temporary pragmas 2001-07-05 sts */

/* APPLE LOCAL begin coalescing  */
extern void darwin_asm_named_section (const char *, unsigned int);
extern unsigned int darwin_section_type_flags (tree, const char *, int);
extern int darwin_set_section_for_var_p (tree, int, int);
/* APPLE LOCAL end coalescing */

/* APPLE LOCAL  double destructor  */
extern tree darwin_handle_odd_attribute (tree *, tree, tree, int, bool *);

extern void darwin_file_end (void);

/* Expanded by EXTRA_SECTION_FUNCTIONS into varasm.o.  */
extern void const_section (void);
extern void const_data_section (void);
extern void cstring_section (void);
extern void literal4_section (void);
extern void literal8_section (void);
extern void constructor_section (void);
extern void mod_init_section (void);
extern void mod_term_section (void);
extern void destructor_section (void);
extern void objc_class_section (void);
extern void objc_meta_class_section (void);
extern void objc_category_section (void);
extern void objc_class_vars_section (void);
extern void objc_instance_vars_section (void);
extern void objc_cls_meth_section (void);
extern void objc_inst_meth_section (void);
extern void objc_cat_cls_meth_section (void);
extern void objc_cat_inst_meth_section (void);
extern void objc_selector_refs_section (void);
extern void objc_selector_fixup_section (void);
extern void objc_symbols_section (void);
extern void objc_module_info_section (void);
extern void objc_image_info_section (void);
extern void objc_protocol_section (void);
extern void objc_string_object_section (void);
extern void objc_constant_string_object_section (void);
extern void objc_class_names_section (void);
extern void objc_meth_var_names_section (void);
extern void objc_meth_var_types_section (void);
extern void objc_cls_refs_section (void);
/* APPLE LOCAL constant cfstrings */
extern void cfstring_constant_object_section (void);
extern void machopic_lazy_symbol_ptr_section (void);
extern void machopic_nl_symbol_ptr_section (void);
extern void machopic_symbol_stub_section (void);
extern void machopic_picsymbol_stub_section (void);
extern void machopic_output_stub (FILE *, const char *, const char *);
extern void darwin_exception_section (void);
extern void darwin_eh_frame_section (void);
extern void darwin_globalize_label (FILE *, const char *);
extern void darwin_assemble_visibility (tree, int);
extern void darwin_asm_output_dwarf_delta (FILE *, int, const char *,
					   const char *);
/* APPLE LOCAL C++ EH */
extern void darwin_non_lazy_pcrel (FILE *file, rtx addr);

/* APPLE LOCAL begin constant cfstrings */
extern void darwin_init_cfstring_builtins (void);
extern tree darwin_expand_tree_builtin (tree, tree, tree);
extern tree darwin_construct_objc_string (tree);
/* APPLE LOCAL end constant cfstrings */