From e4adabd269cb2997e1e31520e7c80f5226c3cc3c Mon Sep 17 00:00:00 2001 From: rth Date: Sun, 19 Aug 2001 09:03:02 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45029 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 abc349f..7936dc2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 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 pic relative addressing here. (tablejump_1): Rename from tablejump_pic. diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 97e609f..40fbf94 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 3902072..86d89ac 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. */ -- 2.7.4