From e3bcd115d2ac7d9574cf94635f109e326a08d70a Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 21 Mar 2018 16:08:27 -0700 Subject: [PATCH] Port data-tests-popcnt to 32-bit Emacs MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * test/src/data-tests.el (data-tests-popcnt): Don’t assume Emacs integers can represent 32-bit quantities. Change to a simple and straightforward approach, since runtime performance is not important here. --- test/src/data-tests.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/src/data-tests.el b/test/src/data-tests.el index 3b88dbca9a2..33b00d6c9ad 100644 --- a/test/src/data-tests.el +++ b/test/src/data-tests.el @@ -111,9 +111,9 @@ "Calculate the Hamming weight of BYTE." (if (< byte 0) (setq byte (lognot byte))) - (setq byte (- byte (logand (lsh byte -1) #x55555555))) - (setq byte (+ (logand byte #x33333333) (logand (lsh byte -2) #x33333333))) - (lsh (* (logand (+ byte (lsh byte -4)) #x0f0f0f0f) #x01010101) -24)) + (if (zerop byte) + 0 + (+ (logand byte 1) (data-tests-popcnt (lsh byte -1))))) (ert-deftest data-tests-logcount () (should (cl-loop for n in (number-sequence -255 255) -- 2.39.2