X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=cee370926c5614ca7fb3fde35260b0b967b564e9;hb=cd1c0c889786b8d43bfc22f0892a17f23c73ab3b;hp=358208f9f5d41ea0bc60e58d8e2576644aeb4a21;hpb=f25039178959a9b302b3399dd04a4d7ba492674d;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 358208f..cee3709 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -76,6 +76,11 @@ (defknown (eq eql) (t t) boolean (movable foldable flushable)) (defknown (equal equalp) (t t) boolean (foldable flushable recursive)) + +#!+(or x86 x86-64) +(defknown fixnum-mod-p (t fixnum) boolean + (movable foldable flushable always-translatable)) + ;;;; classes @@ -367,6 +372,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 @@ -409,6 +418,18 @@ char-lessp char-greaterp char-not-greaterp char-not-lessp) (character &rest character) boolean (movable foldable flushable)) +(defknown (two-arg-char-equal + two-arg-char-not-equal + two-arg-char-lessp + two-arg-char-not-lessp + two-arg-char-greaterp + two-arg-char-not-greaterp) + (character character) boolean (movable foldable flushable)) + +(defknown char-equal-constant (character character character) + boolean + (movable foldable flushable explicit-check)) + (defknown character (t) character (movable foldable unsafely-flushable)) (defknown char-code (character) char-code (movable foldable flushable)) (defknown (char-upcase char-downcase) (character) character @@ -469,10 +490,6 @@ (defknown %map-to-list-arity-1 (callable sequence) list (flushable call)) (defknown %map-to-simple-vector-arity-1 (callable sequence) simple-vector (flushable call)) -(defknown %map-to-nil-on-simple-vector (callable simple-vector) null - (flushable call)) -(defknown %map-to-nil-on-vector (callable vector) null (flushable call)) -(defknown %map-to-nil-on-sequence (callable sequence) null (flushable call)) (defknown map-into (sequence callable &rest sequence) sequence @@ -839,6 +856,7 @@ (defknown hash-table-test (hash-table) symbol (foldable flushable)) (defknown sxhash (t) hash (#-sb-xc-host foldable flushable)) (defknown psxhash (t &optional t) hash (#-sb-xc-host foldable flushable)) +(defknown hash-table-equalp (hash-table hash-table) boolean (foldable flushable)) ;;;; from the "Arrays" chapter @@ -1110,7 +1128,8 @@ (:lines (or unsigned-byte null)) (:right-margin (or unsigned-byte null)) (:miser-width (or unsigned-byte null)) - (:pprint-dispatch t)) + (:pprint-dispatch t) + (:suppress-errors t)) t (any explicit-check) :derive-type #'result-type-first-arg) @@ -1240,6 +1259,8 @@ (defknown pathname-version (pathname-designator) pathname-version (flushable)) +(defknown pathname= (pathname pathname) boolean (movable foldable flushable)) + (defknown (namestring file-namestring directory-namestring host-namestring) (pathname-designator) (or simple-string null) (unsafely-flushable)) @@ -1472,12 +1493,12 @@ (defknown %check-bound (array index fixnum) index (movable foldable flushable dx-safe)) (defknown data-vector-ref (simple-array index) t - (foldable explicit-check always-translatable)) -(defknown data-vector-ref-with-offset (simple-array index fixnum) t - (foldable explicit-check always-translatable)) + (foldable unsafely-flushable explicit-check always-translatable)) +(defknown data-vector-ref-with-offset (simple-array fixnum fixnum) t + (foldable unsafely-flushable explicit-check always-translatable)) (defknown data-vector-set (array index t) t (explicit-check always-translatable)) -(defknown data-vector-set-with-offset (array index fixnum t) t +(defknown data-vector-set-with-offset (array fixnum fixnum t) t (explicit-check always-translatable)) (defknown hairy-data-vector-ref (array index) t (foldable explicit-check))