Go to file
Hans Boehm bf3b8e42e2 Implement bitmap descriptor based marking for Boehm GC.
2000-09-30  Hans Boehm  <boehm@acm.org>
	    Bryce McKinlay  <bryce@albatross.co.nz>

	Implement bitmap descriptor based marking for Boehm GC.

	* configure.in: Define JC1GCSPEC. Set it if boehm-gc is used.
	* configure: Rebuilt.
	* libgcj.spec.in: Pass JC1GCSPEC to jc1.
	* include/jvm.h (struct _Jv_VTable): New field `gc_descr'. New inline
	method get_finalizer().
	(struct _Jv_ArrayVTable): Ditto. Declare method array with
	NUM_OBJECT_METHODS elements instead of NUM_OBJECT_METHODS + 1.
	(_Jv_AllocObj): Add new jclass parameter.
	(_Jv_AllocArray): Ditto.
	(_Jv_BuildGCDescr): New prototype.
	* prims.cc (_Jv_AllocObject): Rename parameter `c' to `klass'. Pass
	`klass' to _Jv_AllocObj. Don't set the new object's vtable. Use
	get_finalizer() instead of direct finalizer vtable offset.
	(_Jv_NewObjectArray): Rename parameter `clas' to `klass'. Pass
	`klass' to _Jv_AllocArray. Don't set the new array's vtable.
	(_Jv_NewPrimArray): Call _Jv_FindArrayClass before _Jv_AllocObj.
	Pass `klass' to _Jv_AllocObj. Don't set the new array's vtable.
	* resolve.cc (METHOD_NOT_THERE, METHOD_INACCESSIBLE): New #defines.
	(_Jv_ResolvePoolEntry): Use METHOD_NOT_THERE and METHOD_INACCESSIBLE.
	(_Jv_DetermineVTableIndex): Ditto.
	(_Jv_PrepareClass): Ditto. Remove offset-by-one adjustments from vtable
	calculations to account for new gc_descr field.
	* boehm.cc: #include gc_gcj.h.
	(obj_kind_x, obj_free_list): `#if 0'-ed away.
	(_Jv_MarkObj): Check that vtable doesn't point to a cleared object.
	New commentary from HB. Mark the classes vtable.
	(_Jv_MarkArray): Check that vtable doesn't point to a cleared object.
	(GC_DEFAULT_DESCR): New #define.
	(_Jv_BuildGCDescr): New function. Use GC_DEFAULT_DESCR, for now.
	(_Jv_AllocObj): New parameter `klass'. Use GC_GCJ_MALLOC ().
	(_Jv_AllocArray): New parameter `klass'. Allocate with GC_MALLOC and
	scan conservativly if size is less than min_heap_addr. Set vtable
	pointer of new object before returning.
	(_Jv_AllocBytes): Use GC_MALLOC_ATOMIC, not GC_GENERIC_MALLOC.
	(_Jv_InitGC): Call GC_init_gcj_malloc(). Don't set up marking and
	allocation for obj_kind_x.
	* nogc.cc (_Jv_BuildGCDescr): New function. Return 0.
	(_Jv_AllocObj): Set vtable on returned object.
	(_Jv_AllocArray): Ditto.
	* java/lang/Class.h (_Jv_NewObjectArray): No longer a friend.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_AllocObj): Declare as a friend.
	(_Jv_AllocArray): Ditto.
	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Copy gc_descr
	from &ObjectClass into new array class. Remove offset-by-one
	adjustments from `method' size calculations to account for gc_descr
	field.

Co-Authored-By: Bryce McKinlay <bryce@albatross.co.nz>

From-SVN: r36679
2000-09-30 10:56:58 +01:00
boehm-gc configure.in: Define GC_GCJ_SUPPORT. 2000-09-30 10:54:21 +01:00
config * config/mt-aix43 (NM_FOR_TARGET): Add -B bsd-style flag. 2000-09-26 15:57:08 -04:00
contrib gcc_update (touch_files): Add some informative output. 2000-09-28 11:24:18 +00:00
etc
gcc * i386.c: Move include of "config.h" to before that of <setjmp.h>. 2000-09-30 09:05:55 +01:00
include splay-tree.h (splay_tree_predecessor): Declare. 2000-09-10 21:28:21 +00:00
INSTALL * INSTALL/README: egcs -> GCC update. 2000-09-18 15:38:48 +00:00
libchill
libf2c Daily bump. 2000-09-30 01:45:07 -06:00
libffi ltconfig, [...]: Updated from libtool multi-language branch, to work around Solaris' /bin/sh bug. 2000-09-30 06:11:54 +00:00
libiberty splay-tree.c (splay_tree_predecessor): Fix typo in comment. 2000-09-17 07:38:23 +00:00
libio stdstreams.cc: Include <libio.h>, not "libio.h". 2000-09-23 17:01:47 +00:00
libjava Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
libobjc Move statement-tree facilities from C++ to C front-end. 2000-09-07 01:36:11 +00:00
libstdc++ configure.in: Add AIX multithread support fragment. 2000-09-19 16:36:39 -04:00
libstdc++-v3 ltconfig, [...]: Updated from libtool multi-language branch, to work around Solaris' /bin/sh bug. 2000-09-30 06:02:57 +00:00
texinfo
zlib configure.in (multilib): Enable by default only for target. 2000-09-06 19:13:01 +00:00
.cvsignore merge with /cvs/src 2000-07-22 04:08:22 -04:00
ChangeLog Makefile.in (DEVO_SUPPORT): Added gettext.m4, libtool.m4, ltcf-c.sh, ltcf-cxx.sh and ltcf-gcj.sh. 2000-09-30 06:20:24 +00:00
config-ml.in config-ml.in (CC, CXX): Avoid trailing whitespace. 2000-08-22 05:02:48 +00:00
config.guess Checked in for recognition of x86_64 2000-09-05 10:33:51 +00:00
config.if
config.sub Checked in for recognition of x86_64 2000-09-05 10:33:51 +00:00
configure top level: 2000-08-14 18:08:46 +00:00
configure.in configure.in: Do not build byacc for hppa64. 2000-09-13 11:11:04 -06:00
COPYING
COPYING.LIB
djunpack.bat merge with /cvs/src 2000-07-22 04:08:22 -04:00
install-sh
libtool.m4 ltconfig, [...]: Updated from libtool multi-language branch, to work around Solaris' /bin/sh bug. 2000-09-30 06:02:57 +00:00
ltcf-c.sh ltconfig, [...]: Updated from libtool multi-language branch. 2000-09-06 13:59:29 +00:00
ltcf-cxx.sh ltconfig, [...]: Updated from libtool multi-language branch, to work around Solaris' /bin/sh bug. 2000-09-30 06:02:57 +00:00
ltcf-gcj.sh ltconfig, [...]: Updated from libtool multi-language branch. 2000-09-06 13:59:29 +00:00
ltconfig ltconfig, [...]: Updated from libtool multi-language branch, to work around Solaris' /bin/sh bug. 2000-09-30 06:02:57 +00:00
ltmain.sh ltconfig, [...]: Updated from libtool multi-language branch, to work around Solaris' /bin/sh bug. 2000-09-30 06:02:57 +00:00
MAINTAINERS * MAINTAINERS: Add self as cpplib co-maintainer. 2000-09-25 18:48:45 +00:00
Makefile.in Makefile.in (DEVO_SUPPORT): Added gettext.m4, libtool.m4, ltcf-c.sh, ltcf-cxx.sh and ltcf-gcj.sh. 2000-09-30 06:20:24 +00:00
missing merge with /cvs/src 2000-07-22 04:08:22 -04:00
mkdep merge with /cvs/src 2000-07-22 04:08:22 -04:00
mkinstalldirs
move-if-change
README
symlink-tree
ylwrap

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.


Check the INSTALL directory for detailed configuration and installation
instructions.


Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.