X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Farith.lisp;h=3910de909539d4a2b7cc05e8c45eee7594ae4c92;hb=942e45e3bb73fd55786e4a0ab4590324063c0c89;hp=3c0869313301de2df30b9d05b9a405b4d560b1d0;hpb=625e155af989109f79fc4759a72a54ab2d18c8c1;p=sbcl.git diff --git a/src/compiler/x86/arith.lisp b/src/compiler/x86/arith.lisp index 3c08693..3910de9 100644 --- a/src/compiler/x86/arith.lisp +++ b/src/compiler/x86/arith.lisp @@ -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)))