/*
 * This is a machine-generated file. Please do not edit it by hand.
 * (As of sbcl-0.8.14, it came from WRITE-CONFIG-H in genesis.lisp.)
 *
 * This file contains low-level information about the
 * internals of a particular version and configuration
 * of SBCL. It is used by the C compiler to create a runtime
 * support environment, an executable program in the host
 * operating system's native format, which can then be used to
 * load and run 'core' files, which are basically programs
 * in SBCL's own format.
 */
#ifndef SBCL_GENESIS_GC_TABLES
#define SBCL_GENESIS_GC_TABLES
#include "lispobj.h"
static inline int specialized_vector_widetag_p(unsigned char widetag) {
  return widetag>=0x86 && (0x007FFFFAU >> ((widetag-0x80)>>2)) & 1;
}
static inline int leaf_obj_widetag_p(unsigned char widetag) {
  int bit = widetag>>2;
  return (bit<32 ? 0x20401B4U >> bit : 0x7FFFFAU >> (bit-32)) & 1;
}
extern unsigned char widetag_lowtag[256];
static inline lispobj compute_lispobj(lispobj* base_addr) {
  return make_lispobj(base_addr, LOWTAG_FOR_WIDETAG(*base_addr & WIDETAG_MASK));
}

#ifdef WANT_SCAV_TRANS_SIZE_TABLES
unsigned char widetag_lowtag[256] = {
    3,    3,    0,    3,    3,    3,    0,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x81,    3,    3,    3, 0x85,    3,
    3,    3, 0x85,    3,    3,    3, 0x85,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3,    3,    3,    3,    3, 0x87,    3,    3,    3,    3,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3,    0,    3,    3,    3,    0,    3,
    3,    3,    0,    3,    3,    3, 0x87,    3,    3,    3,    0,    3,    3,    3,    0,    3,
    3,    3,    0,    3,    3,    3,    0,    3,    3,    3,    0,    3,    3,    3,    0,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,    3,    3, 0x87,    3,
    3,    3,    0,    3,    3,    3,    0,    3,    3,    3,    0,    3,    3,    3,    0,    3,
};
sword_t (*const scavtab[256])(lispobj *where, lispobj object) = {
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_lose,                     scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_bignum,                   scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_boxed,                    scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_unboxed,                  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_unboxed,                  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_boxed,                    scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_unboxed,                  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_unboxed,                  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_symbol,                   scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_instance,                 scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_funinstance,              scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_short_boxed,              scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_code_header,              scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_return_pc_header,         scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_boxed,                    scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_immediate,                scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_unboxed,                  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_immediate,                scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_weak_pointer,             scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_fdefn,                    scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_immediate,                scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_lose,                     scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_unboxed,                  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_lose,                     scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_lose,                     scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_lose,                     scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_array,                    scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_nil,               scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_t,                 scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_bit,               scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_2,   scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_4,   scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_8,   scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_8,   scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_16,  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_16,  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_32,  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_32,  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_32,  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_8,   scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_16,  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_32,  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_32,  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_32,  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_64,  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_vector_unsigned_byte_64,  scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_128, scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_base_string,              scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_vector_unsigned_byte_32,  scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_array,                    scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_array,                    scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_array,                    scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_array,                    scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_array,                    scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_lose,                     scav_other_pointer,
  scav_immediate,                scav_instance_pointer,         scav_lose,                     scav_list_pointer,
  scav_immediate,                scav_fun_pointer,              scav_lose,                     scav_other_pointer,
};
static void (*scav_ptr[4])(lispobj *where, lispobj object)= {
  (void(*)(lispobj*,lispobj))scav_instance_pointer,
  (void(*)(lispobj*,lispobj))scav_list_pointer,
  (void(*)(lispobj*,lispobj))scav_fun_pointer,
  (void(*)(lispobj*,lispobj))scav_other_pointer
};
static lispobj (*transother[64])(lispobj object) = {
  trans_lose,                    trans_lose,                    trans_bignum,                  trans_ratio_or_complex,
  trans_unboxed,                 trans_unboxed,                 trans_ratio_or_complex,        trans_unboxed,
  trans_unboxed,                 trans_tiny_mixed,              trans_lose,                    trans_lose,
  trans_lose,                    trans_lose,                    trans_code_header,             trans_return_pc_header,
  trans_boxed,                   trans_lose,                    trans_unboxed,                 trans_lose,
  trans_tiny_mixed,              trans_fdefn,                   trans_lose,                    trans_lose,
  trans_lose,                    trans_unboxed,                 trans_lose,                    trans_lose,
  trans_lose,                    trans_lose,                    trans_lose,                    trans_lose,
  trans_array,                   trans_vector_nil,              trans_vector_t,                trans_vector_bit,
  trans_vector_unsigned_byte_2,  trans_vector_unsigned_byte_4,  trans_vector_unsigned_byte_8,  trans_vector_unsigned_byte_8,
  trans_vector_unsigned_byte_16, trans_vector_unsigned_byte_16, trans_vector_unsigned_byte_32, trans_vector_unsigned_byte_32,
  trans_vector_unsigned_byte_32, trans_vector_unsigned_byte_8,  trans_vector_unsigned_byte_16, trans_vector_unsigned_byte_32,
  trans_vector_unsigned_byte_32, trans_vector_unsigned_byte_32, trans_vector_unsigned_byte_64, trans_vector_unsigned_byte_64,
  trans_vector_unsigned_byte_128,trans_base_string,             trans_vector_unsigned_byte_32, trans_array,
  trans_array,                   trans_array,                   trans_array,                   trans_array,
  trans_lose,                    trans_lose,                    trans_lose,                    trans_lose,
};
#define size_pointer size_immediate
#define size_unboxed size_boxed
sword_t (*sizetab[256])(lispobj *where) = {
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_bignum,                   size_pointer,
  size_immediate,                size_pointer,                  size_boxed,                    size_pointer,
  size_immediate,                size_pointer,                  size_unboxed,                  size_pointer,
  size_immediate,                size_pointer,                  size_unboxed,                  size_pointer,
  size_immediate,                size_pointer,                  size_boxed,                    size_pointer,
  size_immediate,                size_pointer,                  size_unboxed,                  size_pointer,
  size_immediate,                size_pointer,                  size_unboxed,                  size_pointer,
  size_immediate,                size_pointer,                  size_tiny_boxed,               size_pointer,
  size_immediate,                size_pointer,                  size_instance,                 size_pointer,
  size_immediate,                size_pointer,                  size_short_boxed,              size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_short_boxed,              size_pointer,
  size_immediate,                size_pointer,                  size_code_header,              size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_boxed,                    size_pointer,
  size_immediate,                size_pointer,                  size_immediate,                size_pointer,
  size_immediate,                size_pointer,                  size_unboxed,                  size_pointer,
  size_immediate,                size_pointer,                  size_immediate,                size_pointer,
  size_immediate,                size_pointer,                  size_boxed,                    size_pointer,
  size_immediate,                size_pointer,                  size_fdefn,                    size_pointer,
  size_immediate,                size_pointer,                  size_immediate,                size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_unboxed,                  size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_array,                    size_pointer,
  size_immediate,                size_pointer,                  size_vector_nil,               size_pointer,
  size_immediate,                size_pointer,                  size_vector_t,                 size_pointer,
  size_immediate,                size_pointer,                  size_vector_bit,               size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_2,   size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_4,   size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_8,   size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_8,   size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_16,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_16,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_32,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_32,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_32,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_8,   size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_16,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_32,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_32,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_32,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_64,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_64,  size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_128, size_pointer,
  size_immediate,                size_pointer,                  size_base_string,              size_pointer,
  size_immediate,                size_pointer,                  size_vector_unsigned_byte_32,  size_pointer,
  size_immediate,                size_pointer,                  size_array,                    size_pointer,
  size_immediate,                size_pointer,                  size_array,                    size_pointer,
  size_immediate,                size_pointer,                  size_array,                    size_pointer,
  size_immediate,                size_pointer,                  size_array,                    size_pointer,
  size_immediate,                size_pointer,                  size_array,                    size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
  size_immediate,                size_pointer,                  size_lose,                     size_pointer,
};
#undef size_pointer
#undef size_unboxed
#endif
#endif
