Commit c45632b7 by Richard Henderson Committed by Richard Henderson

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
parent 90675921
2001-08-19 Richard Henderson <rth@redhat.com> 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 * config/i386/i386.md (tablejump): Make an expander; handle
pic relative addressing here. pic relative addressing here.
(tablejump_1): Rename from tablejump_pic. (tablejump_1): Rename from tablejump_pic.
......
...@@ -1969,10 +1969,13 @@ do { \ ...@@ -1969,10 +1969,13 @@ do { \
that encode section info. */ that encode section info. */
#define STRIP_NAME_ENCODING(VAR, SYMBOL_NAME) \ #define STRIP_NAME_ENCODING(VAR, SYMBOL_NAME) \
(VAR) = ((SYMBOL_NAME) \ do { \
+ (*(SYMBOL_NAME) == '*' || *(SYMBOL_NAME) == SDATA_NAME_FLAG_CHAR)) (VAR) = (SYMBOL_NAME); \
if ((VAR)[0] == SDATA_NAME_FLAG_CHAR) \
(VAR)++; \
if ((VAR)[0] == '*') \
(VAR)++; \
} while (0)
/* Position Independent Code. */ /* Position Independent Code. */
...@@ -2548,23 +2551,6 @@ do { \ ...@@ -2548,23 +2551,6 @@ do { \
#define UNALIGNED_INT_ASM_OP "\tdata4.ua\t" #define UNALIGNED_INT_ASM_OP "\tdata4.ua\t"
#define UNALIGNED_DOUBLE_INT_ASM_OP "\tdata8.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) #define DWARF2_ASM_LINE_DEBUG_INFO (TARGET_DWARF2_ASM)
/* Use tags for debug info labels, so that they don't break instruction /* Use tags for debug info labels, so that they don't break instruction
......
...@@ -55,27 +55,17 @@ do { \ ...@@ -55,27 +55,17 @@ do { \
#undef ASM_OUTPUT_LABELREF #undef ASM_OUTPUT_LABELREF
#define ASM_OUTPUT_LABELREF(STREAM, NAME) \ #define ASM_OUTPUT_LABELREF(STREAM, NAME) \
do \ do { \
{ \ const char *name_ = NAME; \
const char *real_name; \ if (*name_ == SDATA_NAME_FLAG_CHAR) \
const char *name_end; \ name_++; \
\ if (*name_ == '*') \
STRIP_NAME_ENCODING (real_name, 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 \ else \
fputs (real_name, STREAM); \ fputs (user_label_prefix, STREAM); \
\ fputs (name_, STREAM); \
if (ia64_asm_output_label) \
fputc ('#', STREAM); \ fputc ('#', STREAM); \
\ } while (0)
if (name_end) \
fputs (name_end, STREAM); \
} \
while (0)
/* Intel assembler requires both flags and type if declaring a non-predefined /* Intel assembler requires both flags and type if declaring a non-predefined
section. */ section. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment