aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <dje@gnu.org>1994-11-16 01:02:01 +0000
committerDoug Evans <dje@gnu.org>1994-11-16 01:02:01 +0000
commit7e7be9c3b1132b8be3b12e390862572a4b2fbf37 (patch)
treeb33df1f6f8379bf0cb3bcca85d2d37a2541c24d5
parent2ffe831c363dee219e8d9788b0c84c87c2d5a37d (diff)
downloadgcc-7e7be9c3b1132b8be3b12e390862572a4b2fbf37.zip
gcc-7e7be9c3b1132b8be3b12e390862572a4b2fbf37.tar.gz
gcc-7e7be9c3b1132b8be3b12e390862572a4b2fbf37.tar.bz2
(ASM_OUTPUT_SECTION_NAME): New arg DECL.
From-SVN: r8461
-rw-r--r--gcc/config/h8300/h8300.c5
-rw-r--r--gcc/config/h8300/h8300.h15
-rw-r--r--gcc/config/sh/sh.h8
-rw-r--r--gcc/config/sparc/sysv4.h19
4 files changed, 28 insertions, 19 deletions
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index d0689b3..8208b2a 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -576,9 +576,10 @@ handle_pragma (file)
if (strcmp (pbuf, "saveall") == 0)
pragma_saveall = 1;
- /* ??? This is deprecated. Use section attributes. */
+ /* ??? This is deprecated. Delete for gcc 2.8. */
if (strcmp (pbuf, "section") == 0)
{
+ warning ("#pragma section is deprecated, use section attributes");
while (c && !isalpha (c))
c = getc (file);
psize = 0;
@@ -589,7 +590,7 @@ handle_pragma (file)
c = getc (file);
}
pbuf[psize] = 0;
- named_section (pbuf);
+ named_section (NULL_TREE, pbuf);
}
ungetc (c, file);
return c;
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index 7ce716a..1b24204 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -1022,14 +1022,9 @@ dtors_section() \
} \
} \
-#if 0
-#define ASM_OUTPUT_CONSTRUCTOR(FILE, NAME) \
- do { named_section(".init"); fprintf(FILE,"\t.word\t%s\n", NAME); } while (0)
-#else
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { ctors_section(); \
fprintf(FILE, "\t%s\t_%s\n", ASM_WORD_OP, NAME); } while (0)
-#endif
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { dtors_section(); \
@@ -1079,11 +1074,13 @@ dtors_section() \
#define SDB_DEBUGGING_INFO
#define SDB_DELIM "\n"
-/* Assemble generic sections.
- This is currently only used to support section attributes. */
+/* A C statement to output something to the assembler file to switch to section
+ NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or
+ NULL_TREE. Some target formats do not support arbitrary sections. Do not
+ define this macro in such cases. */
-#define ASM_OUTPUT_SECTION_NAME(FILE, NAME) \
- fprintf (FILE, ".section\t%s\n", NAME)
+#define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME) \
+ fprintf (FILE, "\t.section %s\n", NAME)
/* This is how to output the definition of a user-level label named NAME,
such as the label on a static function or variable NAME. */
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 58bb113..791ba6c 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -1244,10 +1244,12 @@ dtors_section() \
} \
}
-/* Assemble generic sections.
- This is currently only used to support section attributes. */
+/* A C statement to output something to the assembler file to switch to section
+ NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or
+ NULL_TREE. Some target formats do not support arbitrary sections. Do not
+ define this macro in such cases. */
-#define ASM_OUTPUT_SECTION_NAME(FILE, NAME) \
+#define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME) \
do { fprintf (FILE, ".section\t%s\n", NAME); } while (0)
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
diff --git a/gcc/config/sparc/sysv4.h b/gcc/config/sparc/sysv4.h
index 066fa18..f81a4f7 100644
--- a/gcc/config/sparc/sysv4.h
+++ b/gcc/config/sparc/sysv4.h
@@ -175,11 +175,20 @@ do { ASM_OUTPUT_ALIGN ((FILE), Pmode == SImode ? 2 : 3); \
#define CTORS_SECTION_ASM_OP ".section\t\".ctors\",#alloc,#execinstr"
#define DTORS_SECTION_ASM_OP ".section\t\".dtors\",#alloc,#execinstr"
-/* Assemble generic sections.
- This is currently only used to support section attributes. */
-
-#define ASM_OUTPUT_SECTION_NAME(FILE, NAME) \
- fprintf (FILE, ".section\t\"%s\",#alloc\n", NAME)
+/* A C statement to output something to the assembler file to switch to section
+ NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or
+ NULL_TREE. Some target formats do not support arbitrary sections. Do not
+ define this macro in such cases. */
+
+#define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME) \
+do { \
+ if (TREE_CODE (DECL) == FUNCTION_DECL) \
+ fprintf (FILE, ".section\t\"%s\",#alloc,#execinstr\n", (NAME)); \
+ else if (TREE_READONLY (DECL)) \
+ fprintf (FILE, ".section\t\"%s\",#alloc\n", (NAME)); \
+ else \
+ fprintf (FILE, ".section\t\"%s\",#alloc,#write\n", (NAME)); \
+} while (0)
/* If the host and target formats match, output the floats as hex. */
#if HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT