tests, base: Removed ambiguity from base/intmath.hh
authorMahyar Samani <msamani@ucdavis.edu>
Tue, 5 Nov 2019 19:54:35 +0000 (11:54 -0800)
committerMahyar Samani <msamani@ucdavis.edu>
Thu, 14 Nov 2019 08:31:52 +0000 (08:31 +0000)
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 <bbruce@ucdavis.edu>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
src/base/intmath.hh

index 0b22ba0dbdd7bc66ac1eae1d5b752e6d73351363..ee5cf66c84d8fafd9c9531444d5539f34338ae67 100644 (file)
@@ -61,20 +61,6 @@ isPrime(const T& n)
     return true;
 }
 
-template <class T>
-inline T
-leastSigBit(const T& n)
-{
-    return n & ~(n - 1);
-}
-
-template <class T>
-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 <class T>
+inline bool
+isPowerOf2(const T& n)
+{
+    return n != 0 && floorLog2(n) == ceilLog2(n);
+}
+
 template <class T>
 inline T
 floorPow2(const T& n)