diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-19 09:03:02 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-19 09:03:02 +0000 |
commit | e4adabd269cb2997e1e31520e7c80f5226c3cc3c (patch) | |
tree | 311dc8ce24e67b878c70d43e655f401614d880e1 /gcc/config/ia64 | |
parent | ecc09f51d5c868604521d79f1b6b886d8087d353 (diff) | |
download | gcc-e4adabd269cb2997e1e31520e7c80f5226c3cc3c.tar.gz |
* 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
Diffstat (limited to 'gcc/config/ia64')
-rw-r--r-- | gcc/config/ia64/ia64.h | 30 | ||||
-rw-r--r-- | gcc/config/ia64/sysv4.h | 34 |
2 files changed, 20 insertions, 44 deletions
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. */ |