gcc/libjava/include
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
..
Makefile.am + 2000-04-22 Anthony Green <green@cygnus.com> + + * include/jvm.h (__builtin_expect): Define as unused for now. 2000-04-22 17:09:39 +00:00
Makefile.in Makefile.in: Rebuilt. 2000-08-30 20:43:48 +00:00
boehm-gc.h All files: Updated copyright information. 2000-03-07 19:55:28 +00:00
config.h.in BytesToUnicode.java (getDefaultDecoder): Let default decoder use iconv. 2000-09-11 00:35:51 +00:00
default-signal.h Jumbo patch: 2000-05-19 17:55:34 +00:00
i386-signal.h Jumbo patch: 2000-05-19 17:55:34 +00:00
java-assert.h All files: Updated copyright information. 2000-03-07 19:55:28 +00:00
java-chardecomp.h Initial revision 1999-04-07 14:42:40 +00:00
java-chartables.h Initial revision 1999-04-07 14:42:40 +00:00
java-cpool.h [multiple changes] 2000-03-26 20:33:04 +00:00
java-insns.h All files: Updated copyright information. 2000-03-07 19:55:28 +00:00
java-interp.h All files: Updated copyright information. 2000-03-07 19:55:28 +00:00
java-props.h natSystem.cc (init_properties): Change sourceware reference to sources.redhat.com. 2000-08-21 06:05:20 +00:00
jni.h * include/jni.h: Include <gcj/array.h>. Fixes PR libgcj/270. 2000-06-30 23:09:44 +00:00
jvm.h Implement bitmap descriptor based marking for Boehm GC. 2000-09-30 10:56:58 +01:00
jvmpi.h Forgot to add this file before... 2000-04-02 15:41:00 +00:00
name-finder.h name-finder.h: Include <sys/wait.h>. 2000-05-30 23:26:02 +00:00
no-gc.h All files: Updated copyright information. 2000-03-07 19:55:28 +00:00
no-threads.h All files: Updated copyright information. 2000-03-07 19:55:28 +00:00
posix-threads.h posix-threads.h (_Jv_MutexUnlock): Replace _JV_NOT_OWNER. 2000-04-09 06:53:00 +00:00
posix.h Makefile.in: Rebuilt. 2000-08-02 21:54:04 +00:00
ppc-signal.h ppc-signal.h: New file. 2000-05-16 14:38:21 +00:00
sparc-signal.h re GNATS libgcj/261 (Macro-inconsistency) 2000-06-16 15:52:24 +00:00
stamp-h.in * include/stamp-h.in: New file. 1999-07-19 18:03:31 +00:00
win32-signal.h re GNATS libgcj/261 (Macro-inconsistency) 2000-06-16 15:52:24 +00:00
win32-threads.h Makefile.in: New #defines and friends for Thread.h. 2000-03-28 03:22:24 +01:00