OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [config/] [pa/] [elf.h] - Diff between revs 282 and 384

Only display areas with differences | Details | Blame | View Log

Rev 282 Rev 384
/* Definitions for ELF assembler support.
/* Definitions for ELF assembler support.
   Copyright (C) 1999, 2003, 2005, 2007 Free Software Foundation, Inc.
   Copyright (C) 1999, 2003, 2005, 2007 Free Software Foundation, Inc.
 
 
This file is part of GCC.
This file is part of GCC.
 
 
GCC is free software; you can redistribute it and/or modify
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
the Free Software Foundation; either version 3, or (at your option)
any later version.
any later version.
 
 
GCC is distributed in the hope that it will be useful,
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
GNU General Public License for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */
<http://www.gnu.org/licenses/>.  */
 
 
/* So we can conditionalize small amounts of code in pa.c or pa.md.  */
/* So we can conditionalize small amounts of code in pa.c or pa.md.  */
#define OBJ_ELF
#define OBJ_ELF
 
 
#define ENDFILE_SPEC "crtend.o%s"
#define ENDFILE_SPEC "crtend.o%s"
 
 
#define STARTFILE_SPEC "%{!shared: \
#define STARTFILE_SPEC "%{!shared: \
                         %{!symbolic: \
                         %{!symbolic: \
                          %{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}}\
                          %{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}}\
                        crtbegin.o%s"
                        crtbegin.o%s"
 
 
#define TEXT_SECTION_ASM_OP "\t.text"
#define TEXT_SECTION_ASM_OP "\t.text"
#define DATA_SECTION_ASM_OP "\t.data"
#define DATA_SECTION_ASM_OP "\t.data"
#define BSS_SECTION_ASM_OP "\t.section\t.bss"
#define BSS_SECTION_ASM_OP "\t.section\t.bss"
 
 
#define TARGET_ASM_FILE_START pa_elf_file_start
#define TARGET_ASM_FILE_START pa_elf_file_start
 
 
#undef ASM_DECLARE_FUNCTION_NAME
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
do {  \
do {  \
  if (TREE_PUBLIC (DECL)) \
  if (TREE_PUBLIC (DECL)) \
    { \
    { \
      fputs ("\t.EXPORT ", FILE); \
      fputs ("\t.EXPORT ", FILE); \
      assemble_name (FILE, NAME); \
      assemble_name (FILE, NAME); \
      fputs (",ENTRY\n", FILE); \
      fputs (",ENTRY\n", FILE); \
    } \
    } \
   } while (0)
   } while (0)
 
 
/* This is how to output a command to make the user-level label
/* This is how to output a command to make the user-level label
   named NAME defined for reference from other files.  We use
   named NAME defined for reference from other files.  We use
   assemble_name_raw instead of assemble_name since a symbol in
   assemble_name_raw instead of assemble_name since a symbol in
   a .IMPORT directive that isn't otherwise referenced is not
   a .IMPORT directive that isn't otherwise referenced is not
   placed in the symbol table of the assembled object.
   placed in the symbol table of the assembled object.
 
 
   Failure to import a function reference can cause the HP linker
   Failure to import a function reference can cause the HP linker
   to segmentation fault!
   to segmentation fault!
 
 
   Note that the SOM based tools need the symbol imported as a
   Note that the SOM based tools need the symbol imported as a
   CODE symbol, while the ELF based tools require the symbol to
   CODE symbol, while the ELF based tools require the symbol to
   be imported as an ENTRY symbol.  */
   be imported as an ENTRY symbol.  */
 
 
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
#define ASM_OUTPUT_EXTERNAL(FILE, DECL, NAME) \
  pa_hpux_asm_output_external ((FILE), (DECL), (NAME))
  pa_hpux_asm_output_external ((FILE), (DECL), (NAME))
#define ASM_OUTPUT_EXTERNAL_REAL(FILE, DECL, NAME) \
#define ASM_OUTPUT_EXTERNAL_REAL(FILE, DECL, NAME) \
  do { fputs ("\t.IMPORT ", FILE);                                      \
  do { fputs ("\t.IMPORT ", FILE);                                      \
       assemble_name_raw (FILE, NAME);                                  \
       assemble_name_raw (FILE, NAME);                                  \
       if (FUNCTION_NAME_P (NAME))                                      \
       if (FUNCTION_NAME_P (NAME))                                      \
         fputs (",ENTRY\n", FILE);                                      \
         fputs (",ENTRY\n", FILE);                                      \
       else                                                             \
       else                                                             \
         fputs (",DATA\n", FILE);                                       \
         fputs (",DATA\n", FILE);                                       \
     } while (0)
     } while (0)
 
 
/* The bogus HP assembler requires ALL external references to be
/* The bogus HP assembler requires ALL external references to be
   "imported", even library calls. They look a bit different, so
   "imported", even library calls. They look a bit different, so
   here's this macro.
   here's this macro.
 
 
   Also note not all libcall names are passed to
   Also note not all libcall names are passed to
   targetm.encode_section_info (__main for example).  To make sure all
   targetm.encode_section_info (__main for example).  To make sure all
   libcall names have section info recorded in them, we do it here.  */
   libcall names have section info recorded in them, we do it here.  */
 
 
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
#undef ASM_OUTPUT_EXTERNAL_LIBCALL
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, RTL) \
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, RTL) \
  do { fputs ("\t.IMPORT ", FILE);                                      \
  do { fputs ("\t.IMPORT ", FILE);                                      \
       if (!function_label_operand (RTL, VOIDmode))                     \
       if (!function_label_operand (RTL, VOIDmode))                     \
         hppa_encode_label (RTL);                                       \
         hppa_encode_label (RTL);                                       \
       assemble_name (FILE, XSTR ((RTL), 0));                           \
       assemble_name (FILE, XSTR ((RTL), 0));                           \
       fputs (",ENTRY\n", FILE);                                        \
       fputs (",ENTRY\n", FILE);                                        \
     } while (0)
     } while (0)
 
 
/* Biggest alignment supported by the object file format of this
/* Biggest alignment supported by the object file format of this
   machine.  Use this macro to limit the alignment which can be
   machine.  Use this macro to limit the alignment which can be
   specified using the `__attribute__ ((aligned (N)))' construct.  If
   specified using the `__attribute__ ((aligned (N)))' construct.  If
   not defined, the default value is `BIGGEST_ALIGNMENT'.  */
   not defined, the default value is `BIGGEST_ALIGNMENT'.  */
#define MAX_OFILE_ALIGNMENT (32768 * 8)
#define MAX_OFILE_ALIGNMENT (32768 * 8)
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.