Fix ticket:76
authorRaymond Toy <toy.raymond@gmail.com>
Wed, 6 Mar 2013 08:27:44 +0000 (00:27 -0800)
committerRaymond Toy <toy.raymond@gmail.com>
Wed, 6 Mar 2013 08:27:44 +0000 (00:27 -0800)
Missed one place in DO-UNARY-BYTE-BASH to adjust the call to END-MASK
to use a bit offset instead of a byte offset.  This affects anything
that was using DO-UNARY-BYTE-BASH, including REPLACE.

src/code/bit-bash.lisp

index a9bb688..ba2706a 100644 (file)
                (unless (zerop dst-byte-offset)
                  ;; We are only writing part of the first word, so mask off the
                  ;; bits we want to preserve.
-                 (let ((mask (end-mask (- dst-byte-offset)))
+                 (let ((mask (end-mask (* vm:byte-bits (- dst-byte-offset))))
                        (orig (funcall dst-ref-fn dst dst-word-offset))
                        (value (funcall src-ref-fn src src-word-offset)))
                    (declare (type unit mask orig value))