Commit eff01bb6 by Richard Henderson

varasm.c (UNIQUE_SECTION): Move default implementation ...

        * varasm.c (UNIQUE_SECTION): Move default implementation ...
        * defaults.h: ... here.

From-SVN: r39213
parent 7c01b2b5
/* Definitions of various defaults for how to do assembler output /* Definitions of various defaults for tm.h macros.
(most of which are designed to be appropriate for GAS or for
some BSD assembler).
Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001 Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc. Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com) Contributed by Ron Guilmette (rfg@monkeys.com)
...@@ -192,6 +190,33 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0) ...@@ -192,6 +190,33 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0)
# endif # endif
#endif #endif
/* If we have no definition for UNIQUE_SECTION, but do have the
ability to generate arbitrary sections, construct something
reasonable. */
#ifdef ASM_OUTPUT_SECTION_NAME
#ifndef UNIQUE_SECTION
#define UNIQUE_SECTION(DECL,RELOC) \
do { \
int len; \
const char *name; \
char *string; \
\
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
/* Strip off any encoding in name. */ \
STRIP_NAME_ENCODING (name, name); \
\
len = strlen (name) + 1; \
string = alloca (len + 1); \
sprintf (string, ".%s", name); \
\
DECL_SECTION_NAME (DECL) = build_string (len, string); \
} while (0)
#endif
#ifndef UNIQUE_SECTION_P
#define UNIQUE_SECTION_P(DECL) 0
#endif
#endif
/* By default, we generate a label at the beginning and end of the /* By default, we generate a label at the beginning and end of the
text section, and compute the size of the text section by text section, and compute the size of the text section by
subtracting the two. However, on some platforms that doesn't subtracting the two. However, on some platforms that doesn't
......
...@@ -326,30 +326,6 @@ named_section (decl, name, reloc) ...@@ -326,30 +326,6 @@ named_section (decl, name, reloc)
} }
} }
#ifdef ASM_OUTPUT_SECTION_NAME
#ifndef UNIQUE_SECTION
#define UNIQUE_SECTION(DECL,RELOC) \
do { \
int len; \
const char *name; \
char *string; \
\
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
/* Strip off any encoding in name. */ \
STRIP_NAME_ENCODING (name, name); \
\
len = strlen (name) + 1; \
string = alloca (len + 1); \
sprintf (string, ".%s", name); \
\
DECL_SECTION_NAME (DECL) = build_string (len, string); \
} while (0)
#endif
#ifndef UNIQUE_SECTION_P
#define UNIQUE_SECTION_P(DECL) 0
#endif
#endif
#ifdef BSS_SECTION_ASM_OP #ifdef BSS_SECTION_ASM_OP
/* Tell the assembler to switch to the bss section. */ /* Tell the assembler to switch to the bss section. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment