Merge in changes to the x86 backend from the gencgc branch, allowing
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.
Showing
- assembly/x86/alloc.lisp 9 additions, 11 deletionsassembly/x86/alloc.lisp
- assembly/x86/arith.lisp 12 additions, 14 deletionsassembly/x86/arith.lisp
- assembly/x86/array.lisp 8 additions, 19 deletionsassembly/x86/array.lisp
- code/debug-int.lisp 19 additions, 13 deletionscode/debug-int.lisp
- code/gc.lisp 4 additions, 4 deletionscode/gc.lisp
- code/lispinit.lisp 3 additions, 2 deletionscode/lispinit.lisp
- code/symbol.lisp 2 additions, 2 deletionscode/symbol.lisp
- compiler/generic/new-genesis.lisp 13 additions, 5 deletionscompiler/generic/new-genesis.lisp
- compiler/generic/objdef.lisp 9 additions, 4 deletionscompiler/generic/objdef.lisp
- compiler/globaldb.lisp 9 additions, 9 deletionscompiler/globaldb.lisp
- compiler/x86/alloc.lisp 73 additions, 101 deletionscompiler/x86/alloc.lisp
- compiler/x86/arith.lisp 38 additions, 37 deletionscompiler/x86/arith.lisp
- compiler/x86/array.lisp 6 additions, 12 deletionscompiler/x86/array.lisp
- compiler/x86/c-call.lisp 6 additions, 6 deletionscompiler/x86/c-call.lisp
- compiler/x86/call.lisp 32 additions, 35 deletionscompiler/x86/call.lisp
- compiler/x86/cell.lisp 26 additions, 1 deletioncompiler/x86/cell.lisp
- compiler/x86/char.lisp 7 additions, 6 deletionscompiler/x86/char.lisp
- compiler/x86/debug.lisp 13 additions, 31 deletionscompiler/x86/debug.lisp
- compiler/x86/float.lisp 27 additions, 37 deletionscompiler/x86/float.lisp
- compiler/x86/insts.lisp 3 additions, 3 deletionscompiler/x86/insts.lisp
Loading
Please register or sign in to comment