X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fgc-common.c;h=cdbefd4d0c23ed3427e03feb7f3d1936fb1db2c7;hb=adeddfb8570bb924b4899679912b4629008b7566;hp=0869cd928624686d77da175d8e4525fae0d87d67;hpb=4a8044ce718c8db3192c9013ea32a5eeee2df8a0;p=sbcl.git diff --git a/src/runtime/gc-common.c b/src/runtime/gc-common.c index 0869cd9..cdbefd4 100644 --- a/src/runtime/gc-common.c +++ b/src/runtime/gc-common.c @@ -188,7 +188,7 @@ scavenge(lispobj *start, long n_words) } } gc_assert_verbose(object_ptr == end, "Final object pointer %p, end %p\n", - object_ptr, end); + object_ptr, end); } static lispobj trans_fun_header(lispobj object); /* forward decls */ @@ -314,9 +314,12 @@ trans_code(struct code *code) fheaderl = fheaderp->next; prev_pointer = &nfheaderp->next; } +#ifdef LISP_FEATURE_GENCGC + /* Cheneygc doesn't need this os_flush_icache, it flushes the whole + spaces once when all copying is done. */ os_flush_icache((os_vm_address_t) (((long *)new_code) + nheader_words), ncode_words * sizeof(long)); -#ifdef LISP_FEATURE_GENCGC + gencgc_apply_code_fixups(code, new_code); #endif return new_code; @@ -346,7 +349,7 @@ scav_code_header(lispobj *where, lispobj object) entry_point = function_ptr->next) { gc_assert_verbose(is_lisp_pointer(entry_point), "Entry point %lx\n", - (long)entry_point); + (long)entry_point); function_ptr = (struct simple_fun *) native_pointer(entry_point); gc_assert(widetag_of(function_ptr->header)==SIMPLE_FUN_HEADER_WIDETAG);