Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/gnu/dist/toolchain/gcc/config/rs6000 Recent change to <netbs...



details:   https://anonhg.NetBSD.org/src/rev/7e74a19aad11
branches:  trunk
changeset: 519532:7e74a19aad11
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Wed Dec 19 23:30:53 2001 +0000

description:
Recent change to <netbsd.h> broke ASM_DECLARE_FUNCTION_NAME.  Re-define
it here to what it should be.

diffstat:

 gnu/dist/toolchain/gcc/config/rs6000/netbsd.h |  50 +++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diffs (57 lines):

diff -r 42fb594d1d73 -r 7e74a19aad11 gnu/dist/toolchain/gcc/config/rs6000/netbsd.h
--- a/gnu/dist/toolchain/gcc/config/rs6000/netbsd.h     Wed Dec 19 23:14:50 2001 +0000
+++ b/gnu/dist/toolchain/gcc/config/rs6000/netbsd.h     Wed Dec 19 23:30:53 2001 +0000
@@ -71,3 +71,53 @@
 %{posix:-D_POSIX_SOURCE} \
 %{msoft-float:-D_SOFT_FLOAT} \
 %{mcall-sysv: -D_CALL_SYSV} %{mcall-aix: -D_CALL_AIX} %{!mcall-sysv: %{!mcall-aix: -D_CALL_SYSV}}"
+
+/* <netbsd.h> redefined a bunch of these things, but we actually want the
+   <rs6000/sysv4.h> versions.  */
+
+#undef  ASM_DECLARE_FUNCTION_NAME
+#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL)                    \
+  do {                                                                 \
+    char *orig_name;                                                   \
+    char *init_ptr = (TARGET_64BIT) ? ".quad" : ".long";               \
+    STRIP_NAME_ENCODING (orig_name, NAME);                             \
+                                                                       \
+    if (TARGET_RELOCATABLE && (get_pool_size () != 0 || profile_flag)) \
+      {                                                                        \
+       char buf[256], *buf_ptr;                                        \
+                                                                       \
+       ASM_OUTPUT_INTERNAL_LABEL (FILE, "LCL", rs6000_pic_labelno);    \
+                                                                       \
+       ASM_GENERATE_INTERNAL_LABEL (buf, "LCTOC", 1);                  \
+       STRIP_NAME_ENCODING (buf_ptr, buf);                             \
+       fprintf (FILE, "\t%s %s-", init_ptr, buf_ptr);                  \
+                                                                       \
+       ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno);   \
+       fprintf (FILE, "%s\n", buf_ptr);                                \
+      }                                                                        \
+                                                                       \
+    fprintf (FILE, "\t%s\t %s,", TYPE_ASM_OP, orig_name);              \
+    fprintf (FILE, TYPE_OPERAND_FMT, "function");                      \
+    putc ('\n', FILE);                                                 \
+    ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL));                     \
+                                                                       \
+    if (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_NT)               \
+      {                                                                        \
+       char *desc_name = orig_name;                                    \
+                                                                       \
+       while (*desc_name == '.')                                       \
+         desc_name++;                                                  \
+                                                                       \
+       if (TREE_PUBLIC (DECL))                                         \
+         fprintf (FILE, "\t.globl %s\n", desc_name);                   \
+                                                                       \
+       fprintf (FILE, "%s\n", MINIMAL_TOC_SECTION_ASM_OP);             \
+       fprintf (FILE, "%s:\n", desc_name);                             \
+       fprintf (FILE, "\t%s %s\n", init_ptr, orig_name);               \
+       fprintf (FILE, "\t%s _GLOBAL_OFFSET_TABLE_\n", init_ptr);       \
+       if (DEFAULT_ABI == ABI_AIX)                                     \
+         fprintf (FILE, "\t%s 0\n", init_ptr);                         \
+       fprintf (FILE, "\t.previous\n");                                \
+      }                                                                        \
+    fprintf (FILE, "%s:\n", orig_name);                                        \
+  } while (0)



Home | Main Index | Thread Index | Old Index