summaryrefslogtreecommitdiffstats
path: root/boehm-gc/typd_mlc.c
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-13 23:05:36 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2004-08-13 23:05:36 +0000
commite08a5204e5f7a3c3a15588de39202f9579ba0e79 (patch)
tree863181355c9339e1361dad10263a322aaabe426e /boehm-gc/typd_mlc.c
parent7cde58555127f31ba0a5b2a222c81d160e7168e9 (diff)
downloadppe42-gcc-e08a5204e5f7a3c3a15588de39202f9579ba0e79.tar.gz
ppe42-gcc-e08a5204e5f7a3c3a15588de39202f9579ba0e79.zip
libjava:
2004-08-13 Bryce McKinlay <mckinlay@redhat.com> * configure.in (GCINCS): Don't use "boehm-cflags". Instead, -I boehm-gc's include dirs. * configure: Rebuilt. * include/boehm-gc.h: Include gc_config.h. boehm-gc: 2004-08-13 Bryce McKinlay <mckinlay@redhat.com> * configure.ac (gc_cflags): Add -Iinclude. (AC_CONFIG_HEADERS): New. Configure gc_config.h header. Don't write DEFS to boehm-cflags file. * configure: Rebuilt. * gcj_mlc.c: Check #ifdef GC_GCJ_SUPPORT after including headers. * specific.c: Check #ifdef GC_LINUX_THREADS after including headers. * include/gc_config_macros.h: Remove backward-compatibility redefinitions of GC_ names. * include/gc.h: Include <gc_config.h>. 2004-08-13 Bryce McKinlay <mckinlay@redhat.com> Import Boehm GC version 6.3. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85972 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/typd_mlc.c')
-rw-r--r--boehm-gc/typd_mlc.c48
1 files changed, 12 insertions, 36 deletions
diff --git a/boehm-gc/typd_mlc.c b/boehm-gc/typd_mlc.c
index a081c9797c3..373257cd260 100644
--- a/boehm-gc/typd_mlc.c
+++ b/boehm-gc/typd_mlc.c
@@ -348,8 +348,6 @@ mse * GC_array_mark_proc GC_PROTO((register word * addr,
mse * mark_stack_limit,
word env));
-GC_descr GC_generic_array_descr;
-
/* Caller does not hold allocation lock. */
void GC_init_explicit_typing()
{
@@ -370,47 +368,25 @@ void GC_init_explicit_typing()
}
GC_explicit_typing_initialized = TRUE;
/* Set up object kind with simple indirect descriptor. */
- GC_eobjfreelist = (ptr_t *)
- GC_INTERNAL_MALLOC((MAXOBJSZ+1)*sizeof(ptr_t), PTRFREE);
- if (GC_eobjfreelist == 0) ABORT("Couldn't allocate GC_eobjfreelist");
- BZERO(GC_eobjfreelist, (MAXOBJSZ+1)*sizeof(ptr_t));
- GC_explicit_kind = GC_n_kinds++;
- GC_obj_kinds[GC_explicit_kind].ok_freelist = GC_eobjfreelist;
- GC_obj_kinds[GC_explicit_kind].ok_reclaim_list = 0;
- GC_obj_kinds[GC_explicit_kind].ok_descriptor =
- (((word)WORDS_TO_BYTES(-1)) | GC_DS_PER_OBJECT);
- GC_obj_kinds[GC_explicit_kind].ok_relocate_descr = TRUE;
- GC_obj_kinds[GC_explicit_kind].ok_init = TRUE;
+ GC_eobjfreelist = (ptr_t *)GC_new_free_list_inner();
+ GC_explicit_kind = GC_new_kind_inner(
+ (void **)GC_eobjfreelist,
+ (((word)WORDS_TO_BYTES(-1)) | GC_DS_PER_OBJECT),
+ TRUE, TRUE);
/* Descriptors are in the last word of the object. */
- GC_typed_mark_proc_index = GC_n_mark_procs;
- GC_mark_procs[GC_typed_mark_proc_index] = GC_typed_mark_proc;
- GC_n_mark_procs++;
- /* Moving this up breaks DEC AXP compiler. */
+ GC_typed_mark_proc_index = GC_new_proc_inner(GC_typed_mark_proc);
/* Set up object kind with array descriptor. */
- GC_arobjfreelist = (ptr_t *)
- GC_INTERNAL_MALLOC((MAXOBJSZ+1)*sizeof(ptr_t), PTRFREE);
- if (GC_arobjfreelist == 0) ABORT("Couldn't allocate GC_arobjfreelist");
- BZERO(GC_arobjfreelist, (MAXOBJSZ+1)*sizeof(ptr_t));
- if (GC_n_mark_procs >= MAX_MARK_PROCS)
- ABORT("No slot for array mark proc");
- GC_array_mark_proc_index = GC_n_mark_procs++;
- if (GC_n_kinds >= MAXOBJKINDS)
- ABORT("No kind available for array objects");
- GC_array_kind = GC_n_kinds++;
- GC_obj_kinds[GC_array_kind].ok_freelist = GC_arobjfreelist;
- GC_obj_kinds[GC_array_kind].ok_reclaim_list = 0;
- GC_obj_kinds[GC_array_kind].ok_descriptor =
- GC_MAKE_PROC(GC_array_mark_proc_index, 0);;
- GC_obj_kinds[GC_array_kind].ok_relocate_descr = FALSE;
- GC_obj_kinds[GC_array_kind].ok_init = TRUE;
- /* Descriptors are in the last word of the object. */
- GC_mark_procs[GC_array_mark_proc_index] = GC_array_mark_proc;
+ GC_arobjfreelist = (ptr_t *)GC_new_free_list_inner();
+ GC_array_mark_proc_index = GC_new_proc_inner(GC_array_mark_proc);
+ GC_array_kind = GC_new_kind_inner(
+ (void **)GC_arobjfreelist,
+ GC_MAKE_PROC(GC_array_mark_proc_index, 0),
+ FALSE, TRUE);
for (i = 0; i < WORDSZ/2; i++) {
GC_descr d = (((word)(-1)) >> (WORDSZ - i)) << (WORDSZ - i);
d |= GC_DS_BITMAP;
GC_bm_table[i] = d;
}
- GC_generic_array_descr = GC_MAKE_PROC(GC_array_mark_proc_index, 0);
UNLOCK();
ENABLE_SIGNALS();
}
OpenPOWER on IntegriCloud