mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
344b78b848
commit
7830ba7bc8
|
@ -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>
|
Mon Sep 30 21:33:23 CEST 2002 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
* reload.c (push_reload): Handle subregs and secondary memory.
|
* reload.c (push_reload): Handle subregs and secondary memory.
|
||||||
|
|
|
@ -6487,11 +6487,6 @@ hppa_encode_label (sym)
|
||||||
char *newstr, *p;
|
char *newstr, *p;
|
||||||
|
|
||||||
p = newstr = alloca (len + 1);
|
p = newstr = alloca (len + 1);
|
||||||
if (str[0] == '*')
|
|
||||||
{
|
|
||||||
str++;
|
|
||||||
len--;
|
|
||||||
}
|
|
||||||
*p++ = '@';
|
*p++ = '@';
|
||||||
strcpy (p, str);
|
strcpy (p, str);
|
||||||
|
|
||||||
|
@ -6523,7 +6518,9 @@ static const char *
|
||||||
pa_strip_name_encoding (str)
|
pa_strip_name_encoding (str)
|
||||||
const char *str;
|
const char *str;
|
||||||
{
|
{
|
||||||
return str + (*str == '*' || *str == '@');
|
str += (*str == '@');
|
||||||
|
str += (*str == '*');
|
||||||
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1688,7 +1688,16 @@ do { \
|
||||||
`assemble_name' uses this. */
|
`assemble_name' uses this. */
|
||||||
|
|
||||||
#define ASM_OUTPUT_LABELREF(FILE,NAME) \
|
#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
|
/* This is how to output an internal numbered label where
|
||||||
PREFIX is the class of label and NUM is the number within the class. */
|
PREFIX is the class of label and NUM is the number within the class. */
|
||||||
|
|
Loading…
Reference in New Issue