From: Nathan F. <nf...@us...> - 2006-02-08 19:19:38
|
Update of /cvsroot/sbcl/sbcl/src/compiler/x86 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv800/src/compiler/x86 Modified Files: arith.lisp Log Message: 0.9.9.23: More fixes courtesy of PFD's ansi-tests: ...%LOGBITP had its arglist reversed. Oops; ...be more proactive in declaring the types of constant arguments in the %LOGBITP VOPs to avoid bogosity. Index: arith.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86/arith.lisp,v retrieving revision 1.40 retrieving revision 1.41 diff -u -d -r1.40 -r1.41 --- arith.lisp 7 Feb 2006 16:23:41 -0000 1.40 +++ arith.lisp 8 Feb 2006 19:19:29 -0000 1.41 @@ -1059,14 +1059,14 @@ (defknown %logbitp (integer unsigned-byte) boolean (movable foldable flushable)) -(defun %logbitp (index integer) +(defun %logbitp (integer index) (logbitp index integer)) ;;; too much work to do the non-constant case (maybe?) (define-vop (fast-logbitp-c/fixnum fast-conditional-c/fixnum) (:translate %logbitp) + (:arg-types tagged-num (:constant (integer 0 29))) (:generator 4 - (aver (<= y 29)) (inst bt x (+ y n-fixnum-tag-bits)) (inst jmp (if not-p :nc :c) target))) @@ -1078,6 +1078,7 @@ (define-vop (fast-logbitp-c/signed fast-conditional-c/signed) (:translate %logbitp) + (:arg-types signed-num (:constant (integer 0 31))) (:generator 5 (inst bt x y) (inst jmp (if not-p :nc :c) target))) @@ -1090,6 +1091,7 @@ (define-vop (fast-logbitp-c/unsigned fast-conditional-c/unsigned) (:translate %logbitp) + (:arg-types unsigned-num (:constant (integer 0 31))) (:generator 5 (inst bt x y) (inst jmp (if not-p :nc :c) target))) |