pa.c (hppa_encode_label): Don't drop '*' from function labels.

* pa.c (hppa_encode_label): Don't drop '*' from function labels.
	(pa_strip_name_encoding): Strip '@' and '*', in that order.
	* pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when
	there is a '*' prefix in NAME.

From-SVN: r57664
This commit is contained in:
John David Anglin 2002-09-30 19:52:45 +00:00 committed by John David Anglin
parent 344b78b848
commit 7830ba7bc8
3 changed files with 20 additions and 7 deletions

View file

@ -1,3 +1,10 @@
2002-09-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
* pa.c (hppa_encode_label): Don't drop '*' from function labels.
(pa_strip_name_encoding): Strip '@' and '*', in that order.
* pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when
there is a '*' prefix in NAME.
Mon Sep 30 21:33:23 CEST 2002 Jan Hubicka <jh@suse.cz>
* reload.c (push_reload): Handle subregs and secondary memory.

View file

@ -6487,11 +6487,6 @@ hppa_encode_label (sym)
char *newstr, *p;
p = newstr = alloca (len + 1);
if (str[0] == '*')
{
str++;
len--;
}
*p++ = '@';
strcpy (p, str);
@ -6523,7 +6518,9 @@ static const char *
pa_strip_name_encoding (str)
const char *str;
{
return str + (*str == '*' || *str == '@');
str += (*str == '@');
str += (*str == '*');
return str;
}
int

View file

@ -1688,7 +1688,16 @@ do { \
`assemble_name' uses this. */
#define ASM_OUTPUT_LABELREF(FILE,NAME) \
fprintf ((FILE), "%s", (NAME) + (FUNCTION_NAME_P (NAME) ? 1 : 0))
do { \
const char *xname = (NAME); \
if (FUNCTION_NAME_P (NAME)) \
xname += 1; \
if (xname[0] == '*') \
xname += 1; \
else \
fputs (user_label_prefix, FILE); \
fputs (xname, FILE); \
} while (0)
/* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class. */