X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fbit-bash.lisp;h=1753747f3f9148339d70e4cea9c09f2a24a6679f;hb=cb7837b769ce190baec60a2159c33099816ea6e3;hp=88c9db07f91296b080836ee9720310ef529b76bc;hpb=334af30b26555f0bf706f7157b399bdbd4fad548;p=sbcl.git diff --git a/src/code/bit-bash.lisp b/src/code/bit-bash.lisp index 88c9db0..1753747 100644 --- a/src/code/bit-bash.lisp +++ b/src/code/bit-bash.lisp @@ -186,6 +186,12 @@ #!-sb-fluid (declaim (inline do-unary-bit-bash)) (defun do-unary-bit-bash (src src-offset dst dst-offset length dst-ref-fn dst-set-fn src-ref-fn) + ;; FIXME: Declaring these bit indices to be of type OFFSET, then + ;; using the inline expansion in SPEED 3 SAFETY 0 functions, is not + ;; a good thing. At the very least, we should make sure that the + ;; type (overflow) checks get done. Better would be to avoid + ;; using bit indices, and to use 32-bit unsigneds instead, and/or + ;; to call out to things like memmove(3) for big moves. (declare (type offset src-offset dst-offset length) (type function dst-ref-fn dst-set-fn src-ref-fn)) (multiple-value-bind (dst-word-offset dst-bit-offset)