+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
/* 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. */
#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
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. */