aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2004-11-15 16:11:19 +0000
committerJoseph Myers <jsm28@gcc.gnu.org>2004-11-15 16:11:19 +0000
commitdbdd0cf3095c82c73b7fb2d418562c38e44a00fe (patch)
tree323eb7dde25183e99fcd63d6d7c36b9fe1509643 /gcc
parent11559c7515d65ff631f6482d96b4cdf560e589ea (diff)
downloadgcc-dbdd0cf3095c82c73b7fb2d418562c38e44a00fe.zip
gcc-dbdd0cf3095c82c73b7fb2d418562c38e44a00fe.tar.gz
gcc-dbdd0cf3095c82c73b7fb2d418562c38e44a00fe.tar.bz2
sol2.h (ASM_OUTPUT_CALL): Use print_operand.
2004-11-15 Mark Mitchell <mark@codesourcery.com> * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand. * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise. * config/sol2.c (solaris_output_init_fini): Update calls to ASM_OUTPUT_CALL. Include "rtl.h". From-SVN: r90674
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/sol2.h10
-rw-r--r--gcc/config/sol2.c5
-rw-r--r--gcc/config/sparc/sol2.h10
4 files changed, 26 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ffc4d8..0eeffd5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2004-11-15 Mark Mitchell <mark@codesourcery.com>
+ * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand.
+ * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise.
+ * config/sol2.c (solaris_output_init_fini): Update calls to
+ ASM_OUTPUT_CALL. Include "rtl.h".
+
+2004-11-15 Mark Mitchell <mark@codesourcery.com>
+
* config/sol2-c.c (cmn_err_char_table): Add "p".
2004-11-15 Mark Mitchell <mark@codesourcery.com>
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
index 36db29e..ab81c82 100644
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -87,5 +87,11 @@ Boston, MA 02111-1307, USA. */
#define SUBTARGET_ATTRIBUTE_TABLE SOLARIS_ATTRIBUTE_TABLE
/* Output a simple call for .init/.fini. */
-#define ASM_OUTPUT_CALL(FILE, NAME) \
- fprintf (FILE, "\tcall\t%s\n", NAME)
+#define ASM_OUTPUT_CALL(FILE, FN) \
+ do \
+ { \
+ fprintf (FILE, "\tcall\t"); \
+ print_operand (FILE, XEXP (DECL_RTL (FN), 0), 'P'); \
+ fprintf (FILE, "\n"); \
+ } \
+ while (0)
diff --git a/gcc/config/sol2.c b/gcc/config/sol2.c
index edf0eee..ae34584 100644
--- a/gcc/config/sol2.c
+++ b/gcc/config/sol2.c
@@ -24,6 +24,7 @@ Boston, MA 02111-1307, USA. */
#include "coretypes.h"
#include "tree.h"
#include "tm.h"
+#include "rtl.h"
#include "tm_p.h"
#include "toplev.h"
#include "ggc.h"
@@ -105,14 +106,14 @@ solaris_output_init_fini (FILE *file, tree decl)
if (lookup_attribute ("init", DECL_ATTRIBUTES (decl)))
{
fprintf (file, "\t.pushsection\t\".init\"\n");
- ASM_OUTPUT_CALL (file, IDENTIFIER_POINTER (DECL_NAME (decl)));
+ ASM_OUTPUT_CALL (file, decl);
fprintf (file, "\t.popsection\n");
}
if (lookup_attribute ("fini", DECL_ATTRIBUTES (decl)))
{
fprintf (file, "\t.pushsection\t\".fini\"\n");
- ASM_OUTPUT_CALL (file, IDENTIFIER_POINTER (DECL_NAME (decl)));
+ ASM_OUTPUT_CALL (file, decl);
fprintf (file, "\t.popsection\n");
}
}
diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h
index 2739840..3153830 100644
--- a/gcc/config/sparc/sol2.h
+++ b/gcc/config/sparc/sol2.h
@@ -163,5 +163,11 @@ Boston, MA 02111-1307, USA. */
#define SUBTARGET_ATTRIBUTE_TABLE SOLARIS_ATTRIBUTE_TABLE
/* Output a simple call for .init/.fini. */
-#define ASM_OUTPUT_CALL(FILE, NAME) \
- fprintf (FILE, "\tcall\t%s\n\t nop\n", NAME)
+#define ASM_OUTPUT_CALL(FILE, FN) \
+ do \
+ { \
+ fprintf (FILE, "\tcall\t"); \
+ print_operand (FILE, XEXP (DECL_RTL (FN), 0), 0); \
+ fprintf (FILE, "\n\tnop\n"); \
+ } \
+ while (0)