This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/63534] [5 Regression] Bootstrap failure on x86_64/i686-linux
- From: "evstupac at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 14 Oct 2014 14:20:04 +0000
- Subject: [Bug target/63534] [5 Regression] Bootstrap failure on x86_64/i686-linux
- Auto-submitted: auto-generated
- References: <bug-63534-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63534
--- Comment #4 from Stupachenko Evgeny <evstupac at gmail dot com> ---
Profiling implementation has hard coded "%ebx" use.
There are at least 2 quick solutions to resolve this:
1. Disable the changes for PIC profiling
Lead to different behavior with and without profiling of code with EBX asm
insertions. However could be applied as temporary solution as there are no EBX
asm insertions right now.
2.
print:
push %ebx
call __x86.get_pc_thunk.bx
addl $_GLOBAL_OFFSET_TABLE_, %ebx
and pop %ebx at the end
Here:
else if (flag_pic)
{
#ifndef NO_PROFILE_COUNTERS
fprintf (file, "\tleal\t%sP%d@GOTOFF(%%ebx),%%" PROFILE_COUNT_REGISTER
"\n",
LPREFIX, labelno);
#endif
fprintf (file, "1:\tcall\t*%s@GOT(%%ebx)\n", mcount_name);
}
Lower profiling performance in PIC mode.
I vote for the second solution and can prepare patch for this.