From: Mahyar Samani Date: Tue, 5 Nov 2019 19:54:35 +0000 (-0800) Subject: tests, base: Removed ambiguity from base/intmath.hh X-Git-Tag: v19.0.0.0~298 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=732c47ffd328feb71d14aaf6ae823f80167c47ff;p=gem5.git tests, base: Removed ambiguity from base/intmath.hh The function intmath.leastSigBit is ambiguous given its name. It does not return the value of the least significant bit, or the position of the least significant set bit, but instead 2 to the power of the position of the least significant set bit. It has thereby been removed and the function intmath.isPowerOf2 has been refactored to not require intmath.leastSigBit. Change-Id: I22479c666cdd059865b8c73b70b5388f98a4584d Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22583 Reviewed-by: Bobby R. Bruce Reviewed-by: Daniel Carvalho Maintainer: Bobby R. Bruce Tested-by: kokoro --- diff --git a/src/base/intmath.hh b/src/base/intmath.hh index 0b22ba0db..ee5cf66c8 100644 --- a/src/base/intmath.hh +++ b/src/base/intmath.hh @@ -61,20 +61,6 @@ isPrime(const T& n) return true; } -template -inline T -leastSigBit(const T& n) -{ - return n & ~(n - 1); -} - -template -inline bool -isPowerOf2(const T& n) -{ - return n != 0 && leastSigBit(n) == n; -} - inline uint64_t power(uint32_t n, uint32_t e) { @@ -179,6 +165,13 @@ ceilLog2(const T& n) return floorLog2(n - (T)1) + 1; } +template +inline bool +isPowerOf2(const T& n) +{ + return n != 0 && floorLog2(n) == ceilLog2(n); +} + template inline T floorPow2(const T& n)