X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fcross-misc.lisp;h=0d68f251cc9b15c1ac5b3c0636a6b8e1c17f7f52;hb=dd357f3be290498fb7ef172696d986337f517a93;hp=a0fe12d4518c13d2d40cb5ec6ce8630b6c34fd2e;hpb=1476586427d13b59571fa2c2a0d3836496b4c803;p=sbcl.git diff --git a/src/code/cross-misc.lisp b/src/code/cross-misc.lisp index a0fe12d..0d68f25 100644 --- a/src/code/cross-misc.lisp +++ b/src/code/cross-misc.lisp @@ -122,7 +122,9 @@ ;;; These functions are needed for constant-folding. (defun sb!kernel:simple-array-nil-p (object) - (typep object '(simple-array nil))) + (when (typep object 'array) + (assert (not (eq (array-element-type object) nil)))) + nil) (defun sb!kernel:%negate (number) (- number)) @@ -135,3 +137,17 @@ (defun sb!kernel:%ldb (size posn integer) (ldb (byte size posn) integer)) + +(defun sb!kernel:%dpb (newbyte size posn integer) + (dpb newbyte (byte size posn) integer)) + +(defun sb!kernel:%with-array-data (array start end) + (assert (typep array '(simple-array * (*)))) + (values array start end 0)) + +#!+sparc +(progn + (defun sb!vm::ash-right-signed (num shift) + (ash num (- shift))) + (defun sb!vm::ash-right-unsigned (num shift) + (ash num (- shift))))