Update of /cvsroot/sbcl/sbcl
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5388
... renumber all widetags. (LESS BINARY-COMPATIBILITY)
... implement some smarter type tag checking on the x86.
The smarter type checking comes in several flavours.
* If we have two adjacent lowtags, in three cases out of four
we can do "and, cmp, branch", rather than
"cmp, branch, cmp, branch";
* If we have two lowtags that are unadjacent but differ by
just one bit, we can likewise do "and, cmp, branch" rather
than "cmp, branch, cmp, branch";
* If we have a contiguous range of lowtags that includes the
most positive lowtag, we do not need to test the upper bound;
* If we have four lowtags with only two bits different, we can
do "and, cmp, branch" rather than *four* "cmp, branch" pairs.
This change will conflict with ongoing 64-bit ports. The
conflict is resolvable (there are enough widetags in the "array"
range (which in practice is 130 - 254; currently there are five
in this range unused (or three with long-float arrays)
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.1483
retrieving revision 1.1484
diff -u -d -r1.1483 -r1.1484
--- version.lisp-expr 1 Mar 2004 21:32:42 -0000 1.1483
+++ version.lisp-expr 1 Mar 2004 23:22:25 -0000 1.1484
@@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)