Commit 42ad7bc8 by Kai Tietz

2010-06-01 Kai Tietz

        * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
        argument for fprintf.
        (ix86_output_addr_diff_elt): Likewise.
        (x86_function_profiler): Likewise.
        * config/cygming.h (LOCAL_LABEL_PREFIX): Fix
        for x64 no-underscore.
        (LPREFIX): Likewise.
        (ASM_GENERATE_INTERNAL_LABEL): Likewise.

From-SVN: r160093
parent d7581cea
2010-06-01 Kai Tietz
* config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
argument for fprintf.
(ix86_output_addr_diff_elt): Likewise.
(x86_function_profiler): Likewise.
* config/cygming.h (LOCAL_LABEL_PREFIX): Fix
for x64 no-underscore.
(LPREFIX): Likewise.
(ASM_GENERATE_INTERNAL_LABEL): Likewise.
2010-05-31 Jakub Jelinek <jakub@redhat.com> 2010-05-31 Jakub Jelinek <jakub@redhat.com>
PR target/44338 PR target/44338
......
...@@ -42,6 +42,18 @@ along with GCC; see the file COPYING3. If not see ...@@ -42,6 +42,18 @@ along with GCC; see the file COPYING3. If not see
#if ! defined (USE_MINGW64_LEADING_UNDERSCORES) #if ! defined (USE_MINGW64_LEADING_UNDERSCORES)
#undef USER_LABEL_PREFIX #undef USER_LABEL_PREFIX
#define USER_LABEL_PREFIX (TARGET_64BIT ? "" : "_") #define USER_LABEL_PREFIX (TARGET_64BIT ? "" : "_")
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX (TARGET_64BIT ? "." : "")
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(BUF,PREFIX,NUMBER) \
sprintf ((BUF), "%s%s%ld", LOCAL_LABEL_PREFIX, \
(PREFIX), (long)(NUMBER))
#undef LPREFIX
#define LPREFIX (TARGET_64BIT ? ".L" : "L")
#endif #endif
#undef DBX_REGISTER_NUMBER #undef DBX_REGISTER_NUMBER
......
...@@ -13015,7 +13015,7 @@ ix86_output_addr_vec_elt (FILE *file, int value) ...@@ -13015,7 +13015,7 @@ ix86_output_addr_vec_elt (FILE *file, int value)
gcc_assert (!TARGET_64BIT); gcc_assert (!TARGET_64BIT);
#endif #endif
fprintf (file, "%s" LPREFIX "%d\n", directive, value); fprintf (file, "%s%s%d\n", directive, LPREFIX, value);
} }
void void
...@@ -13031,21 +13031,21 @@ ix86_output_addr_diff_elt (FILE *file, int value, int rel) ...@@ -13031,21 +13031,21 @@ ix86_output_addr_diff_elt (FILE *file, int value, int rel)
#endif #endif
/* We can't use @GOTOFF for text labels on VxWorks; see gotoff_operand. */ /* We can't use @GOTOFF for text labels on VxWorks; see gotoff_operand. */
if (TARGET_64BIT || TARGET_VXWORKS_RTP) if (TARGET_64BIT || TARGET_VXWORKS_RTP)
fprintf (file, "%s" LPREFIX "%d-" LPREFIX "%d\n", fprintf (file, "%s%s%d-%s%d\n",
directive, value, rel); directive, LPREFIX, value, LPREFIX, rel);
else if (HAVE_AS_GOTOFF_IN_DATA) else if (HAVE_AS_GOTOFF_IN_DATA)
fprintf (file, ASM_LONG LPREFIX "%d@GOTOFF\n", value); fprintf (file, ASM_LONG "%s%d@GOTOFF\n", LPREFIX, value);
#if TARGET_MACHO #if TARGET_MACHO
else if (TARGET_MACHO) else if (TARGET_MACHO)
{ {
fprintf (file, ASM_LONG LPREFIX "%d-", value); fprintf (file, ASM_LONG "%s%d-", LPREFIX, value);
machopic_output_function_base_name (file); machopic_output_function_base_name (file);
putc ('\n', file); putc ('\n', file);
} }
#endif #endif
else else
asm_fprintf (file, ASM_LONG "%U%s+[.-" LPREFIX "%d]\n", asm_fprintf (file, ASM_LONG "%U%s+[.-%s%d]\n",
GOT_SYMBOL_NAME, value); GOT_SYMBOL_NAME, LPREFIX, value);
} }
/* Generate either "mov $0, reg" or "xor reg, reg", as appropriate /* Generate either "mov $0, reg" or "xor reg, reg", as appropriate
...@@ -26628,7 +26628,7 @@ x86_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED) ...@@ -26628,7 +26628,7 @@ x86_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED)
if (TARGET_64BIT) if (TARGET_64BIT)
{ {
#ifndef NO_PROFILE_COUNTERS #ifndef NO_PROFILE_COUNTERS
fprintf (file, "\tleaq\t" LPREFIX "P%d(%%rip),%%r11\n", labelno); fprintf (file, "\tleaq\t%sP%d(%%rip),%%r11\n", LPREFIX, labelno);
#endif #endif
if (DEFAULT_ABI == SYSV_ABI && flag_pic) if (DEFAULT_ABI == SYSV_ABI && flag_pic)
...@@ -26639,16 +26639,16 @@ x86_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED) ...@@ -26639,16 +26639,16 @@ x86_function_profiler (FILE *file, int labelno ATTRIBUTE_UNUSED)
else if (flag_pic) else if (flag_pic)
{ {
#ifndef NO_PROFILE_COUNTERS #ifndef NO_PROFILE_COUNTERS
fprintf (file, "\tleal\t" LPREFIX "P%d@GOTOFF(%%ebx),%%" PROFILE_COUNT_REGISTER "\n", fprintf (file, "\tleal\t%sP%d@GOTOFF(%%ebx),%%" PROFILE_COUNT_REGISTER "\n",
labelno); LPREFIX, labelno);
#endif #endif
fputs ("\tcall\t*" MCOUNT_NAME "@GOT(%ebx)\n", file); fputs ("\tcall\t*" MCOUNT_NAME "@GOT(%ebx)\n", file);
} }
else else
{ {
#ifndef NO_PROFILE_COUNTERS #ifndef NO_PROFILE_COUNTERS
fprintf (file, "\tmovl\t$" LPREFIX "P%d,%%" PROFILE_COUNT_REGISTER "\n", fprintf (file, "\tmovl\t$%sP%d,%%" PROFILE_COUNT_REGISTER "\n",
labelno); LPREFIX, labelno);
#endif #endif
fputs ("\tcall\t" MCOUNT_NAME "\n", file); fputs ("\tcall\t" MCOUNT_NAME "\n", file);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment