sol2.h (ASM_OUTPUT_CALL): Use print_operand.
authorMark Mitchell <mark@codesourcery.com>
Mon, 15 Nov 2004 16:11:19 +0000 (16:11 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Mon, 15 Nov 2004 16:11:19 +0000 (16:11 +0000)
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

gcc/ChangeLog
gcc/config/i386/sol2.h
gcc/config/sol2.c
gcc/config/sparc/sol2.h

index 5ffc4d89a1903112801e3192c47c796bc56b2441..0eeffd5303eab8b3abc05b0151a9bce37f29ca77 100644 (file)
@@ -1,3 +1,10 @@
+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".
index 36db29e61f0b101ca8e0d7621e9bf66efaf0e2d9..ab81c82fd7d81d281afff08d14b9cdc2564a0a28 100644 (file)
@@ -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)
index edf0eee3b413f6bd171bfc4e224781655faa1808..ae34584a961d0402c9df2cde97ee60759f783b5e 100644 (file)
@@ -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");
     }
 }
index 27398402ee46f518304ca41ccccdbbf0b22b86b8..3153830c13b2d640cf6cdb28e59cac41f6c40fe2 100644 (file)
@@ -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)