0.9.9.27:
[sbcl.git] / src / compiler / ppc / arith.lisp
index aca19f4..9e675f8 100644 (file)
 (defknown %%ldb (integer unsigned-byte unsigned-byte) unsigned-byte
   (movable foldable flushable))
 
+(defun %%ldb (integer size posn)
+  (sb!kernel::%ldb size posn integer))
+
 (define-vop (ldb-c/fixnum)
   (:translate %%ldb)
   (:args (x :scs (any-reg)))
 (defknown %logbitp (integer unsigned-byte) boolean
   (movable foldable flushable))
 
+(defun %logbitp (integer index)
+  (logbitp index integer))
+
 ;;; We only handle the constant cases because those are the only ones
 ;;; guaranteed to make it past COMBINATION-IMPLEMENTATION-STYLE.
 ;;;  --njf, 06-02-2006
 (define-vop (fast-logbitp-c/fixnum fast-conditional-c/fixnum)
   (:translate %logbitp)
+  (:arg-types tagged-num (:constant (integer 0 29)))
   (:temporary (:scs (any-reg) :to (:result 0)) test)
   (:generator 4
     (if (< y 14)
 
 (define-vop (fast-logbitp-c/signed fast-conditional-c/signed)
   (:translate %logbitp)
+  (:arg-types signed-num (:constant (integer 0 31)))
   (:temporary (:scs (signed-reg) :to (:result 0)) test)
   (:generator 4
     (if (< y 16)
 
 (define-vop (fast-logbitp-c/unsigned fast-conditional-c/unsigned)
   (:translate %logbitp)
+  (:arg-types unsigned-num (:constant (integer 0 31)))
   (:temporary (:scs (unsigned-reg) :to (:result 0)) test)
   (:generator 4
     (if (< y 16)