Skip to content
  • dtc's avatar
    Merge in changes to the x86 backend from the gencgc branch, allowing · 725ab9ee
    dtc authored
    common binaries to be run on both:
    
    * The immediate-stack storage class has been removed, this is
    unnecessary as the descriptor-stack SC can be used. It may have once
    been part of some GC stragety to reduce the number of stack slots that
    needed to be noted for a GC.
    
    * The object allocation has been abstracted and cleaned up. This
    should produce slightly faster smaller code with CGC, and can be
    compiled to support inline allocation with GENCGC.  CGC compiled code
    will run under GENCGC, and GENCGC binaries that don't use inline
    allocation will run under CGC.
    
    * A random hash is now placed in the unused symbol object slot (the
    symbol-hash slot). This saves flushing the info cache at each GC, and
    may have other uses for symbol based hash tables. Should help MP
    safety.
    
    * Common set of static symbols used by both CGC and GENCGC.
    
    * Corrections to the stack-ref VOP; now returns lisp objects not
    unsigned numbers. Required some patches to debug-int.
    
    * Inline unsigned/signed byte 32 to bignum allocation enabled.
    
    * Support for the x86 xadd instruction applied to instance slot and
    symbol values - may be handy for some MP code.
    
    * Bump up the FASL file version from 1 to 2.
    725ab9ee