diff options
author | Doug Evans <dje@gnu.org> | 1994-11-16 01:02:01 +0000 |
---|---|---|
committer | Doug Evans <dje@gnu.org> | 1994-11-16 01:02:01 +0000 |
commit | 7e7be9c3b1132b8be3b12e390862572a4b2fbf37 (patch) | |
tree | b33df1f6f8379bf0cb3bcca85d2d37a2541c24d5 | |
parent | 2ffe831c363dee219e8d9788b0c84c87c2d5a37d (diff) | |
download | gcc-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.c | 5 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.h | 15 | ||||
-rw-r--r-- | gcc/config/sh/sh.h | 8 | ||||
-rw-r--r-- | gcc/config/sparc/sysv4.h | 19 |
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 |