Commit [f13f1f] Maximize Restore History

Shrink symbols on x86-64 by putting tls-index in the header.

Using the upper 4 bytes of the header makes symbols take up
6 words instead of 8, reducing the initial core by 565KB.

The patch could theoretically be applied for 32-bit builds,
but using a 2-byte index limits the TLS_SIZE to 2^14 words.
This is sufficient at present, but I wouldn't want to undo
the space savings if it is decided that TLS_SIZE should
be enlarged by a factor of 8 or more in the future.

In C, tls_index_of() should be used in lieu of sym->tls_index.
This is defined to be the constant 0 for non-threaded builds,
so eliminates #ifdef LISP_FEATURE_SB_THREAD in three places.

Douglas Katzman Douglas Katzman 2014-04-07

changed src/assembly/x86-64/alloc.lisp
changed src/code/room.lisp
changed src/compiler/generic/genesis.lisp
changed src/compiler/generic/objdef.lisp
changed src/compiler/x86-64/cell.lisp
changed src/compiler/x86-64/macros.lisp
changed src/compiler/x86-64/subprim.lisp
changed src/compiler/x86-64/system.lisp
changed src/runtime/dynbind.c
changed src/runtime/gc-common.c
changed src/runtime/print.c
changed src/runtime/thread.h
src/assembly/x86-64/alloc.lisp Diff Switch to side-by-side view
Loading...
src/code/room.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/genesis.lisp Diff Switch to side-by-side view
Loading...
src/compiler/generic/objdef.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/cell.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/macros.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/subprim.lisp Diff Switch to side-by-side view
Loading...
src/compiler/x86-64/system.lisp Diff Switch to side-by-side view
Loading...
src/runtime/dynbind.c Diff Switch to side-by-side view
Loading...
src/runtime/gc-common.c Diff Switch to side-by-side view
Loading...
src/runtime/print.c Diff Switch to side-by-side view
Loading...
src/runtime/thread.h Diff Switch to side-by-side view
Loading...