diff --git a/src/mzscheme/gc2/compact.c b/src/mzscheme/gc2/compact.c index a84e94e812..9e6d44a481 100644 --- a/src/mzscheme/gc2/compact.c +++ b/src/mzscheme/gc2/compact.c @@ -165,8 +165,6 @@ void GC_set_variable_stack(void **p) { GC_variable_stack = p; } void GC_register_root_custodian(void *_c) {} /********************* Type tags *********************/ -Type_Tag pair_tag = 42; /* set by client */ -Type_Tag mutable_pair_tag = 42; /* set by client */ Type_Tag weak_box_tag = 42; /* set by client */ Type_Tag ephemeron_tag = 42; /* set by client */ Type_Tag weak_array_tag = 42; /* set by client */ @@ -440,8 +438,6 @@ void GC_set_stack_base(void *base) void GC_init_type_tags(int count, int pair, int mutable_pair, int weakbox, int ephemeron, int weakarray, int custbox) { - pair_tag = pair; - mutable_pair_tag = mutable_pair; weak_box_tag = weakbox; ephemeron_tag = ephemeron; weak_array_tag = weakarray; @@ -3837,40 +3833,6 @@ void *GC_malloc_one_small_dirty_tagged(size_t size_in_bytes) return GC_malloc_one_tagged(size_in_bytes); } -void *GC_malloc_pair(void *a, void *b) -{ - void *p; - - park[0] = a; - park[1] = b; - p = GC_malloc_one_tagged(3 << LOG_WORD_SIZE); - a = park[0]; - b = park[1]; - - ((Type_Tag *)p)[0] = pair_tag; - ((void **)p)[1] = a; - ((void **)p)[2] = b; - - return p; -} - -void *GC_malloc_mutable_pair(void *a, void *b) -{ - void *p; - - park[0] = a; - park[1] = b; - p = GC_malloc_one_tagged(3 << LOG_WORD_SIZE); - a = park[0]; - b = park[1]; - - ((Type_Tag *)p)[0] = mutable_pair_tag; - ((void **)p)[1] = a; - ((void **)p)[2] = b; - - return p; -} - #ifndef gcINLINE # define gcINLINE inline #endif diff --git a/src/mzscheme/gc2/gc2.h b/src/mzscheme/gc2/gc2.h index 3d2be614fe..dbf7251cb3 100644 --- a/src/mzscheme/gc2/gc2.h +++ b/src/mzscheme/gc2/gc2.h @@ -154,11 +154,6 @@ GC2_EXTERN void *GC_malloc_one_small_dirty_tagged(size_t); zeroed. The client must set all words in the allocated object before a GC can occur. */ -GC2_EXTERN void *GC_malloc_pair(void *car, void *cdr); -GC2_EXTERN void *GC_malloc_mutable_pair(void *car, void *cdr); -/* - Like GC_malloc_one_tagged, but even more streamline. */ - GC2_EXTERN void *GC_malloc_one_xtagged(size_t); /* Alloc an item, initially zeroed. Rather than having a specific tag, diff --git a/src/mzscheme/gc2/newgc.c b/src/mzscheme/gc2/newgc.c index 994f3ad93e..91e2ae8c36 100644 --- a/src/mzscheme/gc2/newgc.c +++ b/src/mzscheme/gc2/newgc.c @@ -630,48 +630,6 @@ void *GC_malloc_one_small_dirty_tagged(size_t sizeb) } } -void *GC_malloc_pair(void *car, void *cdr) -{ - unsigned long ptr, newptr; - size_t sizeb; - void *retval; - - sizeb = ALIGN_BYTES_SIZE(gcWORDS_TO_BYTES(gcBYTES_TO_WORDS(sizeof(Scheme_Simple_Object))) + WORD_SIZE); - ptr = GC_gen0_alloc_page_ptr; - newptr = GC_gen0_alloc_page_ptr + sizeb; - - if(newptr > NUM(GC_gen0_alloc_page_addr) + GEN0_PAGE_SIZE) { - park[0] = car; - park[1] = cdr; - retval = GC_malloc_one_tagged(sizeb - WORD_SIZE); - car = park[0]; - cdr = park[1]; - park[0] = NULL; - park[1] = NULL; - } else { - struct objhead *info; - - GC_gen0_alloc_page_ptr = newptr; - - retval = PTR(ptr); - info = (struct objhead *)retval; - - ((void **)retval)[0] = NULL; /* objhead */ - ((void **)retval)[1] = 0; /* tag word */ - - /* info->type = type; */ /* We know that the type field is already 0 */ - info->size = (sizeb >> gcLOG_WORD_SIZE); - - retval = PTR(NUM(retval) + WORD_SIZE); - } - - ((short *)retval)[0] = scheme_pair_type; - ((void **)retval)[1] = car; - ((void **)retval)[2] = cdr; - - return retval; -} - long GC_compute_alloc_size(long sizeb) { return ALIGN_BYTES_SIZE(gcWORDS_TO_BYTES(gcBYTES_TO_WORDS(sizeb)) + WORD_SIZE); @@ -697,14 +655,6 @@ long GC_alloc_alignment() return APAGE_SIZE; } -void *GC_malloc_mutable_pair(void *car, void *cdr) -{ - void *p; - p = GC_malloc_pair(car, cdr); - *(short *)p = scheme_mutable_pair_type; - return p; -} - long GC_malloc_stays_put_threshold() { return gcWORDS_TO_BYTES(MAX_OBJECT_SIZEW); } /* this function resizes generation 0 to the closest it can get (erring high) diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index eab698aad5..d856e88225 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -4427,11 +4427,7 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i mz_prepare(2); jit_pusharg_p(JIT_R1); jit_pusharg_p(JIT_R0); -# ifdef MZ_PRECISE_GC - (void)mz_finish(GC_malloc_pair); -# else (void)mz_finish(scheme_make_pair); -# endif jit_retval(JIT_R0); #endif @@ -4456,11 +4452,7 @@ static int generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i mz_prepare(2); jit_pusharg_p(JIT_R1); jit_pusharg_p(JIT_R0); -# ifdef MZ_PRECISE_GC - (void)mz_finish(GC_malloc_mutable_pair); -# else (void)mz_finish(scheme_make_mutable_pair); -# endif jit_retval(JIT_R0); #endif diff --git a/src/mzscheme/src/list.c b/src/mzscheme/src/list.c index 9ef14a814c..219dde0923 100644 --- a/src/mzscheme/src/list.c +++ b/src/mzscheme/src/list.c @@ -669,30 +669,22 @@ scheme_init_list (Scheme_Env *env) Scheme_Object *scheme_make_pair(Scheme_Object *car, Scheme_Object *cdr) { -#ifdef MZ_PRECISE_GC - return GC_malloc_pair(car, cdr); -#else Scheme_Object *cons; cons = scheme_alloc_object(); cons->type = scheme_pair_type; SCHEME_CAR(cons) = car; SCHEME_CDR(cons) = cdr; return cons; -#endif } Scheme_Object *scheme_make_mutable_pair(Scheme_Object *car, Scheme_Object *cdr) { -#ifdef MZ_PRECISE_GC - return GC_malloc_mutable_pair(car, cdr); -#else Scheme_Object *cons; cons = scheme_alloc_object(); cons->type = scheme_mutable_pair_type; SCHEME_CAR(cons) = car; SCHEME_CDR(cons) = cdr; return cons; -#endif } Scheme_Object *scheme_make_raw_pair(Scheme_Object *car, Scheme_Object *cdr) @@ -710,11 +702,7 @@ Scheme_Object *scheme_make_raw_pair(Scheme_Object *car, Scheme_Object *cdr) return cons; } -#ifdef MZ_PRECISE_GC -# define cons(car, cdr) GC_malloc_pair(car, cdr) -#else # define cons(car, cdr) scheme_make_pair(car, cdr) -#endif Scheme_Object *scheme_build_list(int size, Scheme_Object **argv) { diff --git a/src/mzscheme/src/vector.c b/src/mzscheme/src/vector.c index b88279e30f..31155b111a 100644 --- a/src/mzscheme/src/vector.c +++ b/src/mzscheme/src/vector.c @@ -287,11 +287,7 @@ vector_to_list (int argc, Scheme_Object *argv[]) return scheme_vector_to_list(argv[0]); } -#ifdef MZ_PRECISE_GC -# define cons(car, cdr) GC_malloc_pair(car, cdr) -#else # define cons(car, cdr) scheme_make_pair(car, cdr) -#endif Scheme_Object * scheme_vector_to_list (Scheme_Object *vec)