Introduce sb!vm::fixnum-lowtags
authorAlastair Bridgewater <nyef_sbcl@lisphacker.com>
Sun, 14 Feb 2010 15:39:18 +0000 (10:39 -0500)
committerAlastair Bridgewater <nyef@virtdev-1.lisphacker.com>
Wed, 19 Oct 2011 19:49:32 +0000 (15:49 -0400)
commitf2942b56a5ed1b60b730b387ee2b9e40c8cc28fb
tree9757c1589a7f899879f36dc0945dec8c90482084
parente57523089c7ad0ce2c874c03ecfe721d299efbfb
Introduce sb!vm::fixnum-lowtags

  * This is defined as a list of the exported SB!VM -LOWTAG symbols
bound to integers that are zero when masked with fixnum-tag-mask (in
short, the names of the fixnum lowtags).

  * Replace all direct references to the fixnum lowtags with something
based on fixnum-lowtags.

  * Introduce the corresponding change to genesis, with the predicate
is-fixnum-lowtag instead of testing against specific lowtags.

  * Introduce the corresponding change to the runtime, making fixnump()
check against fixnum-tag-mask instead of comparing individual fixnum
tags.

  * And, while we're redefining fixnump() in terms of the significant
part of the lowtag, do the same with other_immediate_lowtag_p().
src/code/class.lisp
src/compiler/generic/early-objdef.lisp
src/compiler/generic/early-type-vops.lisp
src/compiler/generic/genesis.lisp
src/compiler/generic/late-type-vops.lisp
src/runtime/fixnump.h
src/runtime/runtime.h