diff options
author | Alexander Kabaev <kan@FreeBSD.org> | 2003-12-22 04:27:17 +0000 |
---|---|---|
committer | Alexander Kabaev <kan@FreeBSD.org> | 2003-12-22 04:27:17 +0000 |
commit | 6c9999e01d54b972d8f30366978cbbab8241c110 (patch) | |
tree | 477b0b522e45bc3af5462b5703e0209a7605b83d /contrib/gcc | |
parent | e04499a7721e611e649fb8f3fa759b3b85573c4d (diff) | |
download | src-test2-6c9999e01d54b972d8f30366978cbbab8241c110.tar.gz src-test2-6c9999e01d54b972d8f30366978cbbab8241c110.zip |
Notes
Diffstat (limited to 'contrib/gcc')
-rw-r--r-- | contrib/gcc/config/i386/freebsd.h | 20 |
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 |