+
+lispobj
+alloc_code_object (unsigned boxed, unsigned unboxed) {
+ struct code * code;
+ boxed = make_fixnum(boxed + 1 + 4); /* 4 == trace_table_offset offset in words */
+ boxed &= ~LOWTAG_MASK;
+
+ unboxed += LOWTAG_MASK;
+ unboxed &= ~LOWTAG_MASK;
+
+ code = (struct code *) pa_alloc(ALIGNED_SIZE((boxed + unboxed) * sizeof(lispobj)),
+ CODE_PAGE_FLAG);
+
+ boxed = boxed << (N_WIDETAG_BITS - WORD_SHIFT);
+ code->header = boxed | CODE_HEADER_WIDETAG;
+ code->code_size = unboxed;
+ code->entry_points = NIL;
+ code->debug_info = NIL;
+ return make_lispobj(code, OTHER_POINTER_LOWTAG);
+}