190075Sobrien/* Prototypes. 2169689Skan Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 390075Sobrien 4132718SkanThis file is part of GCC. 590075Sobrien 6132718SkanGCC is free software; you can redistribute it and/or modify 790075Sobrienit under the terms of the GNU General Public License as published by 890075Sobrienthe Free Software Foundation; either version 2, or (at your option) 990075Sobrienany later version. 1090075Sobrien 11132718SkanGCC is distributed in the hope that it will be useful, 1290075Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of 1390075SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1490075SobrienGNU General Public License for more details. 1590075Sobrien 1690075SobrienYou should have received a copy of the GNU General Public License 17132718Skanalong with GCC; see the file COPYING. If not, write to 18169689Skanthe Free Software Foundation, 51 Franklin Street, Fifth Floor, 19169689SkanBoston, MA 02110-1301, USA. */ 2090075Sobrien 21169689Skanextern void darwin_init_sections (void); 22132718Skanextern int name_needs_quotes (const char *); 2390075Sobrien 24169689Skanextern void machopic_validate_stub_or_non_lazy_ptr (const char *); 2590075Sobrien 26132718Skanextern const char *machopic_function_base_name (void); 27132718Skanextern void machopic_output_function_base_name (FILE *); 28169689Skanextern const char *machopic_indirection_name (rtx, bool); 29169689Skanextern const char *machopic_mcount_stub_name (void); 3090075Sobrien 3190075Sobrien#ifdef RTX_CODE 3290075Sobrien 33169689Skanextern rtx machopic_function_base_sym (void); 34132718Skanextern int machopic_operand_p (rtx); 35169689Skanextern enum machopic_addr_class machopic_classify_symbol (rtx); 3690075Sobrien 37132718Skanextern rtx machopic_indirect_data_reference (rtx, rtx); 38132718Skanextern rtx machopic_indirect_call_target (rtx); 39132718Skanextern rtx machopic_legitimize_pic_address (rtx, enum machine_mode, rtx); 4090075Sobrien 41132718Skanextern void machopic_asm_out_constructor (rtx, int); 42132718Skanextern void machopic_asm_out_destructor (rtx, int); 4390075Sobrien#endif /* RTX_CODE */ 4490075Sobrien 4590075Sobrien#ifdef TREE_CODE 4690075Sobrien 47169689Skanextern void machopic_define_symbol (rtx); 48132718Skanextern void darwin_encode_section_info (tree, rtx, int); 49169689Skanextern void darwin_set_default_type_attributes (tree); 5090075Sobrien 5190075Sobrien#endif /* TREE_CODE */ 5290075Sobrien 53132718Skanextern void machopic_finish (FILE *); 5490075Sobrien 55169689Skanextern int machopic_reloc_rw_mask (void); 56169689Skanextern section *machopic_select_section (tree, int, unsigned HOST_WIDE_INT); 57169689Skanextern section *machopic_select_rtx_section (enum machine_mode, rtx, 58169689Skan unsigned HOST_WIDE_INT); 5990075Sobrien 60169689Skanextern void darwin_unique_section (tree decl, int reloc); 61169689Skanextern void darwin_asm_named_section (const char *, unsigned int, tree); 62169689Skanextern void darwin_non_lazy_pcrel (FILE *, rtx); 63169689Skan 64169689Skanextern void darwin_emit_unwind_label (FILE *, tree, int, int); 65169689Skanextern void darwin_emit_except_table_label (FILE *); 66169689Skan 67132718Skanextern void darwin_pragma_ignore (struct cpp_reader *); 68132718Skanextern void darwin_pragma_options (struct cpp_reader *); 69132718Skanextern void darwin_pragma_unused (struct cpp_reader *); 70169689Skanextern void darwin_pragma_ms_struct (struct cpp_reader *); 71117395Skan 72169689Skanextern void darwin_file_start (void); 73132718Skanextern void darwin_file_end (void); 74132718Skan 75169689Skanextern void darwin_mark_decl_preserved (const char *); 76169689Skan 77169689Skanextern tree darwin_handle_kext_attribute (tree *, tree, tree, int, bool *); 78169689Skanextern tree darwin_handle_weak_import_attribute (tree *node, tree name, 79169689Skan tree args, int flags, 80169689Skan bool * no_add_attrs); 81132718Skanextern void machopic_output_stub (FILE *, const char *, const char *); 82132718Skanextern void darwin_globalize_label (FILE *, const char *); 83132718Skanextern void darwin_assemble_visibility (tree, int); 84132718Skanextern void darwin_asm_output_dwarf_delta (FILE *, int, const char *, 85132718Skan const char *); 86169689Skanextern void darwin_asm_output_dwarf_offset (FILE *, int, const char *, 87169689Skan section *); 88169689Skanextern bool darwin_binds_local_p (tree); 89169689Skanextern void darwin_cpp_builtins (struct cpp_reader *); 90169689Skanextern void darwin_asm_output_anchor (rtx symbol); 91169689Skanextern bool darwin_kextabi_p (void); 92169689Skanextern void darwin_override_options (void); 93