This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
Re: A very "strange" bug in gcc 2.96
On Tue, May 23, 2000 at 09:04:58AM -0700, Ian Lance Taylor wrote:
> Sparc, Alpha, and IA-64 at a minimum adjust the compiler's notion
> of the appropriate name binding rules depending on -fpic.
>
> In what way, other than the recently introduced optimization? I'm
> genuinely curious.
Symbols that are known to be defined locally are referenced with
gp-relative addressing instead of indirectly through the got.
This is trivially all static variables, but also includes
int i = 0;
int j; // if !TREE_COMMON (via -fno-common or c++)
On Alpha it also controls whether we fold
ldq $27, foo($29) !literal!0
jsr $26, ($27), foo !lituse_jsr!0
ldah $29, 0($26) !gpdisp!1
lda $29, 0($29) !gpdisp!1
to
bsr $26, $foo..ng
where "$foo..ng" is a special symbol emitted by the compiler
in foo after the gp is loaded.
r~