X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=1aef68dbf4ecc81dc9972f3b42fdbe7d9e64e40a;hb=8a19ff566e3a1a43cb3b2d11d2781a1c89981f43;hp=ac1482d23b51f626e1fa107d3bdcd2bc4c4fb5be;hpb=62964aced3a1480849e0bc9de1b0ca927b2e2475;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index ac1482d..1aef68d 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -367,6 +367,10 @@ (defknown logbitp (unsigned-byte integer) boolean (movable foldable flushable)) (defknown ash (integer integer) integer (movable foldable flushable explicit-check)) +#!+ash-right-vops +(defknown %ash/right ((or word sb!vm:signed-word) (mod #.sb!vm:n-word-bits)) + (or word sb!vm:signed-word) + (movable foldable flushable always-translatable)) (defknown (logcount integer-length) (integer) bit-index (movable foldable flushable explicit-check)) ;;; FIXME: According to the ANSI spec, it's legal to use any @@ -703,9 +707,19 @@ (defknown make-list (index &key (:initial-element t)) list (movable flushable)) +(defknown sb!impl::backq-list (&rest t) list (movable flushable)) +(defknown sb!impl::backq-list* (t &rest t) t (movable flushable)) +(defknown sb!impl::backq-append (&rest t) t (flushable)) +(defknown sb!impl::backq-nconc (&rest t) t () + :destroyed-constant-args (remove-non-constants-and-nils #'butlast)) +(defknown sb!impl::backq-cons (t t) cons (foldable movable flushable)) +(defknown sb!impl::backq-vector (list) simple-vector + (foldable movable flushable)) + ;;; All but last must be of type LIST, but there seems to be no way to ;;; express that in this syntax. (defknown append (&rest t) t (flushable)) +(defknown sb!impl::append2 (list t) t (flushable)) (defknown copy-list (list) list (flushable)) (defknown copy-alist (list) list (flushable))