Fix ASM_OUTPUT_LABELREF to deal with TSL model prefixes GCC

started to use internally. They need to be stripped before
the name of the label or symbol is printed.
This commit is contained in:
Alexander Kabaev 2003-12-22 04:27:17 +00:00
parent e04499a772
commit 6c9999e01d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=123715

View File

@ -153,18 +153,26 @@ Boston, MA 02111-1307, USA. */
#undef ASM_OUTPUT_LABELREF
#define ASM_OUTPUT_LABELREF(FILE, NAME) \
do { \
char *_name = (NAME); \
const char *xname = (NAME); \
/* Hack to avoid writing lots of rtl in \
FUNCTION_PROFILER_EPILOGUE (). */ \
if (*_name == '.' && strcmp(_name + 1, "mexitcount") == 0) \
if (*xname == '.' && strcmp(xname + 1, "mexitcount") == 0) \
{ \
if (flag_pic) \
fprintf ((FILE), "*%s@GOT(%%ebx)", _name); \
fprintf ((FILE), "*%s@GOT(%%ebx)", xname); \
else \
fprintf ((FILE), "%s", _name); \
fprintf ((FILE), "%s", xname); \
} \
else \
{ \
if (xname[0] == '%') \
xname += 2; \
if (xname[0] == '*') \
xname += 1; \
else \
fputs (user_label_prefix, FILE); \
fputs (xname, FILE); \
} \
else \
fprintf (FILE, "%s", _name); \
} while (0)
/* This is how to hack on the symbol code of certain relcalcitrant