gcc/libjava
Bryce McKinlay 861ef92859 java-tree.h (otable_methods, [...]): New field/global tree definitions.
gcc/java:

	* java-tree.h (otable_methods, otable_decl, otable_syms_decl,
	otable_type, otable_ptr_type, method_symbol_type,
	method_symbols_array_type, method_symbols_array_ptr_type): New
	field/global tree definitions.
	(flag_indirect_dispatch): New flag.
	* decl.c (java_init_decl_processing): Initialize new otable and
	otable_syms type nodes and decls. Add new field "index" to
	method_type_node.
	* class.c (build_method_symbols_entry): New function.
	(make_method_value): Set "index" to to method's vtable index for
	virtual methods when indirect-dispatch is not used.
	(make_class_data): For indirect-dispatch, dont emit the dtable_decl,
	and set vtable_method_count to -1. Set otable and otable_syms field
	if indirect-dispatch is used and there was something to put in them.
	(build_method_symbols_entry): New function.
	(emit_offset_symbol_table): New function.
	* expr.c (get_offset_table_index): New function.
	(build_invokevirtual): Build array reference to otable at the index
	returned by get_offset_table_index, and use the result as the vtable
	offset.
	(build_invokeinterface): Similar.
	* jcf-parse.c (yyparse): If indirect-dispatch, call
	emit_offset_symbol_table at the end of compilation, after all classes
	have been generated.
	* jvspec.c: Don't pass findirect-dispatch to jvgenmain.
	* lang.c (flag_indirect_dispatch): Define.
	(lang_f_options): Add indirect-dispatch flag.

libjava:

	* include/jvm.h (_Jv_VTable::idx_to_offset): New method.
	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call
	_Jv_MakeVTable and _Jv_LinkOffsetTable if needed.
	* java/lang/Class.h (_Jv_Method): Add "index" field.
	(_Jv_MethodSymbol): New struct type.
	(_Jv_LinkOffsetTable, _Jv_LayoutVTableMethods, _Jv_SetVTableEntries,
	_Jv_MakeVTable): Friends.
	(otable, otable_syms): New Class fields.
	* java/lang/natClass.cc (_Jv_LinkOffsetTable): New function.
	(isVirtualMethod): New static function.
	(_Jv_LayoutVTableMethods): New function.
	(_Jv_SetVTableEntries): New function.
	(_Jv_MakeVTable): New function.

From-SVN: r48038
2001-12-15 08:31:49 +00:00
..
doc
gcj prims.cc: Some old cleanups. 2001-12-14 18:43:55 +00:00
gnu * gnu/gcj/runtime/StringBuffer.java 2001-12-12 16:50:01 +00:00
include java-tree.h (otable_methods, [...]): New field/global tree definitions. 2001-12-15 08:31:49 +00:00
java java-tree.h (otable_methods, [...]): New field/global tree definitions. 2001-12-15 08:31:49 +00:00
javax HACKING, [...]: Fix spelling errors. 2001-10-31 00:48:17 +00:00
libltdl
org HACKING, [...]: Fix spelling errors. 2001-10-31 00:48:17 +00:00
scripts
sysdep
testsuite For PR libgcj/5103: 2001-12-14 21:56:29 +00:00
acconfig.h
acinclude.m4 HACKING, [...]: Fix spelling errors. 2001-10-31 00:48:17 +00:00
aclocal.m4 HACKING, [...]: Fix spelling errors. 2001-10-31 00:48:17 +00:00
addr2name.awk
boehm.cc * boehm.cc (_Jv_GCCanReclaimSoftReference): Fix warning. 2001-11-12 10:42:45 +00:00
ChangeLog java-tree.h (otable_methods, [...]): New field/global tree definitions. 2001-12-15 08:31:49 +00:00
ChangeLog-1999
chartables.pl
configure Makefile.am (nat_headers, [...]): Depend on .class files, not libgcj.jar. 2001-11-30 03:04:01 +00:00
configure.host
configure.in Makefile.am (nat_headers, [...]): Depend on .class files, not libgcj.jar. 2001-11-30 03:04:01 +00:00
COPYING
defineclass.cc resolve.cc (_Jv_PrepareClass): Verify method here... 2001-12-10 01:18:30 +00:00
exception.cc
gij.cc * gij.cc (main): Clarify --help output. 2001-12-12 20:56:08 +00:00
HACKING * HACKING: Make people commit their own patches. 2001-11-07 01:19:20 +00:00
interpret.cc
jni.cc * jni.cc (call): Synchronize if required. 2001-12-12 20:58:41 +00:00
LIBGCJ_LICENSE
libgcj-test.spec.in
libgcj.spec.in
libtool-version
Makefile.am Collections drop from Classpath: 2001-12-15 07:47:03 +00:00
Makefile.in Collections drop from Classpath: 2001-12-15 07:47:03 +00:00
mauve-libgcj
name-finder.cc
NEWS
no-threads.cc
nogc.cc
posix-threads.cc HACKING, [...]: Fix spelling errors. 2001-10-31 00:48:17 +00:00
posix.cc
prims.cc prims.cc: Some old cleanups. 2001-12-14 18:43:55 +00:00
README
resolve.cc resolve.cc (_Jv_PrepareClass): Verify method here... 2001-12-10 01:18:30 +00:00
THANKS
verify.cc resolve.cc (_Jv_PrepareClass): Verify method here... 2001-12-10 01:18:30 +00:00
win32-threads.cc

This is libgcj: the runtime library for gcj, the GNU Compiler for Java. 
libgcj provides a partial implementation of the Java Class Libraries.

libgcj is free software.  See the file LIBGCJ_LICENSE for copying permission.


DOCUMENTATION
=============

All documentation, including detailed installation and usage instructions,
can be found on the gcj web pages at this URL:

		http://gcc.gnu.org/java/


REQUIREMENTS
============

libgcj must be built with a compatible version of the gcc compiler. libgcj
releases are usually numbered according to their corresponding gcc release.
For example, if this is "libgcj 2.95.3", you need to build it using "gcc
2.95.3".


QUICK INSTALLATION
==================

  > mkdir build
  > cd build
  > ../libgcj/configure --enable-threads=<THREADS_TYPE> --prefix=<DIR>
  > make
  > make install

where:

<THREADS_TYPE> specifies the threads library to be used by libgcj. Currently 
the possible values are "posix" and "none". This value must be the same as
the value used when configuring gcc itself.

<DIR> specifies the installation directory. This should be the same location 
as where gcc is installed.

Consult the gcj web pages for additional "configure" arguments.

NOTE: libgcj can not be built in the same directory as `configure'. You must 
create a separate build directory. 


BUGS
====

Please submit bug reports via this URL:

	http://gcc.gnu.org/cgi-bin/gnatsweb.pl?database=gcc