summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2003-12-22 04:27:17 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2003-12-22 04:27:17 +0000
commit6c9999e01d54b972d8f30366978cbbab8241c110 (patch)
tree477b0b522e45bc3af5462b5703e0209a7605b83d
parente04499a7721e611e649fb8f3fa759b3b85573c4d (diff)
downloadsrc-test2-6c9999e01d54b972d8f30366978cbbab8241c110.tar.gz
src-test2-6c9999e01d54b972d8f30366978cbbab8241c110.zip
Notes
-rw-r--r--contrib/gcc/config/i386/freebsd.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/contrib/gcc/config/i386/freebsd.h b/contrib/gcc/config/i386/freebsd.h
index be9729c35bb2..3cdfdb29a2c0 100644
--- a/contrib/gcc/config/i386/freebsd.h
+++ b/contrib/gcc/config/i386/freebsd.h
@@ -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