OSDN Git Service

* config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Aug 2001 09:03:02 +0000 (09:03 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Aug 2001 09:03:02 +0000 (09:03 +0000)
in the same string.
(ASM_NAME_TO_STRING): Remove.
* config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
in the same string.  Remove support for expressions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45029 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/ia64/ia64.h
gcc/config/ia64/sysv4.h

index abc349f..7936dc2 100644 (file)
@@ -1,5 +1,13 @@
 2001-08-19  Richard Henderson  <rth@redhat.com>
 
+       * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
+       in the same string.
+       (ASM_NAME_TO_STRING): Remove.
+       * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
+       in the same string.  Remove support for expressions.
+
+2001-08-19  Richard Henderson  <rth@redhat.com>
+
        * config/i386/i386.md (tablejump): Make an expander; handle
        pic relative addressing here.
        (tablejump_1): Rename from tablejump_pic.
index 97e609f..40fbf94 100644 (file)
@@ -1968,11 +1968,14 @@ do {                                                                    \
 /* Decode SYM_NAME and store the real name part in VAR, sans the characters
    that encode section info.  */
 
-#define STRIP_NAME_ENCODING(VAR, SYMBOL_NAME) \
-  (VAR) = ((SYMBOL_NAME)                        \
-          + (*(SYMBOL_NAME) == '*' || *(SYMBOL_NAME) == SDATA_NAME_FLAG_CHAR))
-
-
+#define STRIP_NAME_ENCODING(VAR, SYMBOL_NAME)  \
+do {                                           \
+  (VAR) = (SYMBOL_NAME);                       \
+  if ((VAR)[0] == SDATA_NAME_FLAG_CHAR)                \
+    (VAR)++;                                   \
+  if ((VAR)[0] == '*')                         \
+    (VAR)++;                                   \
+} while (0)
 \f
 /* Position Independent Code.  */
 
@@ -2548,23 +2551,6 @@ do {                                                                     \
 #define UNALIGNED_INT_ASM_OP           "\tdata4.ua\t"
 #define UNALIGNED_DOUBLE_INT_ASM_OP    "\tdata8.ua\t"
 
-/* We need to override the default definition for this in dwarf2out.c so that
-   we can emit the necessary # postfix.  */
-#define ASM_NAME_TO_STRING(STR, NAME)                  \
-  do {                                                 \
-      if ((NAME)[0] == '*')                            \
-       dyn_string_append (STR, NAME + 1);              \
-      else                                             \
-       {                                               \
-         char *newstr;                                 \
-         STRIP_NAME_ENCODING (newstr, NAME);           \
-         dyn_string_append (STR, user_label_prefix);   \
-         dyn_string_append (STR, newstr);              \
-         dyn_string_append (STR, "#");                 \
-       }                                               \
-  }                                                    \
-  while (0)
-
 #define DWARF2_ASM_LINE_DEBUG_INFO (TARGET_DWARF2_ASM)
 
 /* Use tags for debug info labels, so that they don't break instruction
index 3902072..86d89ac 100644 (file)
@@ -54,28 +54,18 @@ do {                                                                        \
    we have to scan it for a non-label character and insert the # there.  */
 
 #undef ASM_OUTPUT_LABELREF
-#define ASM_OUTPUT_LABELREF(STREAM, NAME)                              \
-  do                                                                   \
-    {                                                                  \
-      const char *real_name;                                           \
-      const char *name_end;                                            \
-                                                                       \
-      STRIP_NAME_ENCODING (real_name, NAME);                           \
-      name_end = strchr (real_name, '+');                              \
-                                                                       \
-      fputs (user_label_prefix, STREAM);                               \
-      if (name_end)                                                    \
-       fwrite (real_name, name_end - real_name, 1, STREAM);            \
-      else                                                             \
-       fputs (real_name, STREAM);                                      \
-                                                                       \
-      if (ia64_asm_output_label)                                       \
-       fputc ('#', STREAM);                                            \
-                                                                       \
-      if (name_end)                                                    \
-       fputs (name_end, STREAM);                                       \
-    }                                                                  \
-  while (0)
+#define ASM_OUTPUT_LABELREF(STREAM, NAME)      \
+do {                                           \
+  const char *name_ = NAME;                    \
+  if (*name_ == SDATA_NAME_FLAG_CHAR)          \
+    name_++;                                   \
+  if (*name_ == '*')                           \
+    name_++;                                   \
+  else                                         \
+    fputs (user_label_prefix, STREAM);         \
+  fputs (name_, STREAM);                       \
+  fputc ('#', STREAM);                         \
+} while (0)
 
 /* Intel assembler requires both flags and type if declaring a non-predefined
    section.  */