Update of /cvsroot/sbcl/sbcl
In directory sc8-pr-cvs1:/tmp/cvs-serv30195
Implement 64-bit modular arithmetic for alpha.
... can't simplify BIGNUM-LOGNOT or 32BIT-LOGICAL-FOO here,
because modular arithmetic is 64-bit, duh :-)
... it would be nice to compile (logand ... (1- (ash 1 32)))
more efficiently than we currently do; currently we
load up a 32-bit quantity into a register, followed
by an and instruction; however, we should be able
simply to do mskll reg, 4, reg.
I think this works. Simple testing shows that it seems to work.
But see also CSR sbcl-devel 2003-09-12, because there are a number
of nasty surprises lurking in the depths of this backend.
RCS file: /cvsroot/sbcl/sbcl/NEWS,v
retrieving revision 1.400.2.3
retrieving revision 1.400.2.4
diff -u -d -r1.400.2.3 -r1.400.2.4
--- NEWS 11 Sep 2003 16:04:24 -0000 1.400.2.3
+++ NEWS 12 Sep 2003 16:53:39 -0000 1.400.2.4
@@ -2031,7 +2031,9 @@
simple-base-strings and simple-bit-vectors is improved.
* optimization: the optimization of 32-bit logical and arithmetic
functions introduced in version 0.8.3 on the x86 has been
- implemented on the mips, ppc and sparc platforms.
+ implemented on the mips, ppc and sparc platforms; an
+ implementation of the same facility, but for 64-bit arithmetic,
+ has been added for the alpha.
* microoptimization: the compiler is better able to make use of the
x86 LEA instruction for multiplication by constants.
* bug fix: in some situations compiler did not report usage of
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.1230.2.5
retrieving revision 1.1230.2.6
diff -u -d -r1.1230.2.5 -r1.1230.2.6
--- version.lisp-expr 11 Sep 2003 16:04:24 -0000 1.1230.2.5
+++ version.lisp-expr 12 Sep 2003 16:53:39 -0000 1.1230.2.6
@@ -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".)