aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2002-06-05 03:56:27 +0000
committerAlan Modra <amodra@gcc.gnu.org>2002-06-05 13:26:27 +0930
commit1fd9ba59dab4e2c841917e5ec3e9dc27ae821b17 (patch)
treee60f729ceccd6f13d2ef92f82f82818fdbb1872f /gcc
parent77d2dd29ad82e632a6b2154edf49f2c207e28c9b (diff)
downloadgcc-1fd9ba59dab4e2c841917e5ec3e9dc27ae821b17.zip
gcc-1fd9ba59dab4e2c841917e5ec3e9dc27ae821b17.tar.gz
gcc-1fd9ba59dab4e2c841917e5ec3e9dc27ae821b17.tar.bz2
* config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
From-SVN: r54272
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/rs6000/linux64.h19
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6d4ae5f..742bc19 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
index 81df3e4..4e9812c 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
@@ -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)