* config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
authorAlan Modra <amodra@bigpond.net.au>
Wed, 5 Jun 2002 03:56:27 +0000 (03:56 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Wed, 5 Jun 2002 03:56:27 +0000 (13:26 +0930)
From-SVN: r54272

gcc/ChangeLog
gcc/config/rs6000/linux64.h

index 6d4ae5f9f64749f6a6cfdcf6727bd56953b164b3..742bc19c2e72815a3f46536edca5df539488f2db 100644 (file)
@@ -1,3 +1,7 @@
+2002-06-05  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
+
 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
 
        * gengtype-yacc.y: Make sure all rules end with a semicolon.
index 81df3e46d4cc985da3663a8b3bf072a0c76aa3c6..4e9812c14a952149f4874bf8375f781bc4cf8015 100644 (file)
@@ -294,3 +294,22 @@ do {                                               \
               || (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT          \
                   && ! TARGET_NO_FP_IN_TOC)))))
 
+/* This is the same as the dbxelf.h version, except that we need to
+   use the function code label, not the function descriptor.  */
+#undef ASM_OUTPUT_SOURCE_LINE
+#define        ASM_OUTPUT_SOURCE_LINE(FILE, LINE)                              \
+do                                                                     \
+  {                                                                    \
+    static int sym_lineno = 1;                                         \
+    char temp[256];                                                    \
+    ASM_GENERATE_INTERNAL_LABEL (temp, "LM", sym_lineno);              \
+    fprintf (FILE, "\t.stabn 68,0,%d,", LINE);                         \
+    assemble_name (FILE, temp);                                                \
+    fputs ("-.", FILE);                                                        \
+    assemble_name (FILE,                                               \
+                  XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0));\
+    putc ('\n', FILE);                                                 \
+    ASM_OUTPUT_INTERNAL_LABEL (FILE, "LM", sym_lineno);                        \
+    sym_lineno += 1;                                                   \
+  }                                                                    \
+while (0)