+#ifdef LISP_FEATURE_GENCGC
+#include "gencgc-alloc-region.h"
+void *
+gc_alloc_with_region(sword_t nbytes,int page_type_flag, struct alloc_region *my_region,
+ int quick_p);
+static inline void *
+gc_general_alloc(sword_t nbytes, int page_type_flag, int quick_p)
+{
+ struct alloc_region *my_region;
+ if (UNBOXED_PAGE_FLAG == page_type_flag) {
+ my_region = &unboxed_region;
+ } else if (BOXED_PAGE_FLAG & page_type_flag) {
+ my_region = &boxed_region;
+ } else {
+ lose("bad page type flag: %d", page_type_flag);
+ }
+ return gc_alloc_with_region(nbytes, page_type_flag, my_region, quick_p);
+}
+#else
+extern void *gc_general_alloc(word_t nbytes,int page_type_flag,int quick_p);
+#endif
+
+static inline lispobj
+gc_general_copy_object(lispobj object, long nwords, int page_type_flag)
+{
+ lispobj *new;
+
+ gc_assert(is_lisp_pointer(object));
+ gc_assert(from_space_p(object));
+ gc_assert((nwords & 0x01) == 0);