[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master cae9e0f: Port data-tests-popcnt to 32-bit Emacs
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master cae9e0f: Port data-tests-popcnt to 32-bit Emacs |
Date: |
Wed, 21 Mar 2018 19:08:59 -0400 (EDT) |
branch: master
commit cae9e0fa0358d6323b57a288b5661dc72d36356d
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Port data-tests-popcnt to 32-bit Emacs
* 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 3b88dbc..33b00d6 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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master cae9e0f: Port data-tests-popcnt to 32-bit Emacs,
Paul Eggert <=