diff --git a/src/md5.lisp b/src/md5.lisp index 42f4ea5..7e5b20f 100644 --- a/src/md5.lisp +++ b/src/md5.lisp @@ -111,11 +111,12 @@ where a is the intended low-order byte and d the high-order byte." (ftype (function (ub32 ub32) ub32) mod32+)) (defun mod32+ (a b) (declare (type ub32 a b) (optimize (speed 3) (safety 0) (space 0) (debug 0))) - #+cmu - (ext:truly-the ub32 (+ a b)) - #-cmu (ldb (byte 32 0) (+ a b))) +#+cmu +(define-compiler-macro mod32+ (a b) + `(ext:truly-the ub32 (+ ,a ,b))) + (declaim (inline rol32) (ftype (function (ub32 (unsigned-byte 5)) ub32) rol32)) (defun rol32 (a s)