This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Mixing native code and bytecode
- From: Andrew Haley <aph at redhat dot com>
- To: Jerome Roussel <Roussel at AdaCore dot com>
- Cc: java at gcc dot gnu dot org
- Date: Tue, 17 May 2005 13:50:42 +0100
- Subject: Re: Mixing native code and bytecode
- References: <20050517123348.GC30042@cardiff.act-europe.fr>
Jerome Roussel writes:
>
> I am looking for information about the way GCJ mix native code and
> bytecode. I know that the bytecode is interpreted so now I am trying to
> understand the interface used to "switch" from native to bytecode and
> from bytecode to native.
>
> For instance, when -findirect-dispatch is used, a vtable needs to be
> filled for each native class, but what happens if one method is
> inherited from a parent class which is in bytecode form. This is the
> kind of question I am trying to understand about the implementation
> internals.
The part you perhaps don't know about is the libffi invocation
interface. This is the "magic bullet" that allows you to construct on
the fly a native code thunk to interpreted code. More explanation at
ftp://gcc.gnu.org/pub/gcc/summit/2004/GCJ%20New%20ABI.pdf
> The possibility to mix native code and bytecode is very powerful so
> I thought that some papers would explain the mechanism but I
> haven't found anything on that matter. If you have a link to such a
> paper, a documentation or to some specific source files in GCC to
> look at, I would be very grateful.
Let us know if there's anything more you need.
Andrew.