This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: binary compatibility ABI (was: Re: [boehm-gc] Import 6.3 alpha1)
- From: Jeff Sturm <jsturm at one-point dot com>
- To: Andrew Haley <aph at redhat dot com>
- Cc: Bryce McKinlay <bryce at mckinlay dot net dot nz>, Ranjit Mathew <rmathew at hotmail dot com>, <java at gcc dot gnu dot org>
- Date: Thu, 14 Aug 2003 11:19:22 -0400 (EDT)
- Subject: Re: binary compatibility ABI (was: Re: [boehm-gc] Import 6.3 alpha1)
On Thu, 14 Aug 2003, Andrew Haley wrote:
> Jeff Sturm writes:
> >
> > One of my sore points is the performance gap between static and
> > position-independent code with the current gcj compiler. For example:
> > reading a static field requires one memory load without -fPIC, but two
> > loads with -fPIC (to obtain the memory address from the GOT offset).
>
> Short of overwriting the instruction that does the fetch, how would you
> do that?
That wasn't really such a good example.
Consider:
static int a, b;
...
return a + b;
Does this require 2, 3 or 4 memory loads?
(I believe 2 is the answer for non-PIC, 4 for PIC. If we take advantage
of the fact that static fields are at a fixed offset from the class
record, it can be done in three, while preserving position independence.)
Jeff