From: Christophe R. <cr...@us...> - 2003-09-12 16:53:43
|
Update of /cvsroot/sbcl/sbcl In directory sc8-pr-cvs1:/tmp/cvs-serv30195 Modified Files: Tag: modular_arithmetic_branch NEWS version.lisp-expr Log Message: 0.8.3.45.modular6: 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. Index: NEWS =================================================================== 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 Index: version.lisp-expr =================================================================== 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".) -"0.8.3.45.modular5" +"0.8.3.45.modular6" |