From c45632b732c887f2d180b60e1094feaa72164973 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 19 Aug 2001 02:03:02 -0700 Subject: [PATCH] ia64.h (STRIP_NAME_ENCODING): Handle @ and * in the same string. * 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. From-SVN: r45029 --- gcc/ChangeLog | 8 ++++++++ gcc/config/ia64/ia64.h | 30 ++++++++---------------------- gcc/config/ia64/sysv4.h | 34 ++++++++++++---------------------- 3 files changed, 28 insertions(+), 44 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index abc349fdc3a..7936dc28976 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2001-08-19 Richard Henderson + + * 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 * config/i386/i386.md (tablejump): Make an expander; handle diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 97e609fd21e..40fbf941c75 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -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) /* 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 diff --git a/gcc/config/ia64/sysv4.h b/gcc/config/ia64/sysv4.h index 39020722bb5..86d89acf1fb 100644 --- a/gcc/config/ia64/sysv4.h +++ b/gcc/config/ia64/sysv4.h @@ -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. */