Curious Kaffe vs. jdk speed test results under Linux
gback at cs.utah.edu
Mon Jan 4 18:11:23 PST 1999
> One more question - how kaffe calls interface mathods?
> By special method that lookups method signatures?
Kaffe uses a function (softcall) which is invoked when a INVOKEINTERFACE
bytecode instruction is executed. This function finds and invokes the method
implementing the interface.
It used to be the case that this function would look the method up by
signature and name, but this was fixed recently.
Currently, this function takes a pointer to Class structure of the
interface being invoked, and an integer index describing which method
in this interface is invoked.
During class loading, two tables are set up for each class that describe
how to find the corresponding method based on such a (interface, idx)
pair. First, a linear search is performed through the list of interfaces
supported by this class. This gives an offset in a table of method
indices. The interface index is added to this offset to obtain the
method implementing the interface method, which is then invoked.
More information about the kaffe